アプリ名やリリースノート、はたまたスクリーンショットなど、アプリを審査に出す際には、バイナリの他に多くのメタデータと呼ばれる情報をアップロードする必要があります。
Xcode Cloudなどでサブミットの自動化がやりやすくなった今日では、メタデータはリポジトリ内で管理し、サブミットと同時に自動アップロードにしているというプロジェクトも多いのではないでしょうか。
しかし、このメタデータには実は細かい制約がいくつもあり、サブミットしてからメタデータアップロードだけ失敗するということがしばしば…
これを未然に防ぐため、サブミット前に自動でこれらの制約をチェックできる仕組みをプロジェクトに導入しました。
このトークでは、今日から実践できる便利な自動チェックの数々を紹介します。
iOSアプリ開発では、機能そのものの開発以外に気にかけることが多々あります。
例えば、各種証明書の有効期限、ライブラリの選定・バージョンアップなどです。
さらに、社内にiOSアプリが数多くあるとどうでしょう。
例えば証明書の有効期限が切れていたり、脆弱性を含んだバージョンのライブラリを使い続けていたり、といった問題が各所で起きる可能性があります。
社内にある全てのアプリで、これらの問題に漏れなく対応できる状態を作るのは、複数アプリを管理する上での大きな課題です。
これを解決するために、社内全てのアプリについて、証明書や依存ライブラリなどの情報をまとめて管理するツールを作りました。
本トークでは、これを実現するにあたって利用したApp Store Connect API利用の際のTipsやライブラリの情報収集の方法、これによってアプリの複数運用がどのように便利になったのかを紹介します。
アプリの行動ログの運用が辛いという話は、どのアプリでもよく聞く話だと思います。
では、ログ運用の「辛さ」とは一体何なのでしょう?
たとえばログを分析する人の目線だと、欲しいログが欲しいときに用意されていない状態は辛いと思います。
あるいはログを実装する人の目線だと、毎度命名に悩まなければいけなかったり、パラメータに型がなく実装ミスの可能性があったりする状態は辛いといえるでしょう。
私が携わるアプリもまた例外ではなく、アプリの行動ログの運用がつらい状況のときがありました。
このトークでは、実際に体験した行動ログ運用の辛かったエピソードと、それにどのような対処・対策をしたかをお話します。
この発表で、ログの辛さに悩む人が一人でも元気になるとうれしいです。
今年新卒のiOSエンジニアとしてキャリアをスタートした私が、BtoCとBtoBtoCのアプリ開発を通じて得た学びと経験を共有します!
インターン時代にはBtoCアプリの開発に携わり、新卒としてはBtoBtoCアプリの開発を担当しています。この両方のアプリ開発において遭遇した課題、そしてそれらから得られた知見を詳しく紹介します。また、開発フローやチームワークの観点からも、BtoCとBtoBtoC開発の違いを説明します。
どちらのアプリ開発が私のキャリアや技術成長にどのように影響を与えたか、具体的な例と共にお話しします。新入社員や現役のエンジニア、またはiOS開発について学びたいと思っている方々に有益な情報を提供できればと考えています!
皆さんは、モバイルアプリ向けのSAST(Static Application Security Testing)ツールであるmobsfscanをご存知でしょうか?
このツールを使うことで、AndroidやiOS開発において安全でないコードパターンを見つけ、診断結果をSARIF(Static Analysis Results Interchange Format)ファイルとして出力できます。
本セッションでは具体的な設定方法を示しつつ、mobsfscanとGitHub Actionsを活用したDevSecOpsついて紹介します。
App Store Connect 使っていますか? 使っていますよね!
では、App Store Connect API は使っていますか?たぶん、使っていないですよね。
TestFlightを非アプリ開発チームメンバーに展開していく上で、App Store ConnectやTestFlightへの登録といった定型作業を楽にするために、 Github ActionsからApp Store Connect APIを使いました。
Github ActionsからApp Store Connect APIをたたいていく上で遭遇したり、実用する上での苦労話や、何を実現したのかを話していきます。
Redux Saga は単方向データフローの Redux を拡張し、非同期処理や副作用を直感的に管理できるようにしたアーキテクチャです。JavaScript で実装され、Web(React)や React Native でよく利用されています。
今回は、その Redux Saga を Swift で実装します。JavaScript と Swift の言語設計と性質の違いを考慮しつつ、Swift の言語特性を活かす形で、Redux Saga の主要な機能を実装したコードについて紹介します。そのコードを見ながら、Redux Saga の特性や利点を理解してもらい、iOS アプリ開発における Redux Saga の可能性を探求し、有用性と将来的な応用について議論したいです。
Redux Saga は単方向データフローの Redux を拡張し、非同期処理や副作用を直感的に管理できるようにしたアーキテクチャです。JavaScript で実装され、Web(React)や React Native でよく利用されています。同じ宣言的 UI の SwiftUI との相性が期待できます。しかし、残念なことに Swift で Redux Saga を実装したライブラリはありません。
無いのであれば、自身で作成するしかありません。JavaScript と Swift の言語設計と性質の違いを考慮しつつ、Swift の言語特性を活かす形で、Redux Saga の主要な機能をどのように実装するかを解説します。Redux Saga の特性や利点を紹介して、iOS アプリ開発における Redux Saga の可能性を探求します。
日付・時刻・時間・数値・測定値・名前などの情報を、ローカライズ済の String との間で変換してくれる Formatter。有名なのは DateFormatter・NumberFormatter でしょうか。
iOSDC Japan 2021 では、当時のすべての Formatter を紹介しました。あれから2年、今年は iOS 15+ で使用できる FormatStyle を使用した formatted メソッドを、使用機会の多いと思われるものを中心に紹介します。これは Formatter の強力な機能はそのままに、自分でインスタンスを作る必要がなく、より Swift らしく書け、さらに iOS 17 ではパフォーマンスも向上します。
まだまだ Web 検索での情報が乏しい FormatStyle の使い方をこのトークでマスターし、従来の Formatter から移行しましょう。
業務ではGraphQLを採用しデータ取得(クエリー)や更新処理(ミューテーション)を書いています。
GraphQLのネットワーク基盤として、Apollo iOS SDKを採用しており当時v0.53のバージョンを使用していました。
Apollo iOS SDKは、GraphQLを使用するiOSアプリケーションの開発を簡素化し、効率的に行うことができる強力なツールです。
豊富な機能と柔軟性を備えており、GraphQLの採用が増えている現在の開発環境において、重要な役割を果たしています。
v1.0が正式リリースとなり、Swiftコード生成のためのCLIツールの刷新と破壊的変更が加わっておりマイグレーションが必要でした。
このトークでは、いかにしてレガシー版となったApollo iOS SDKを最新版にマイグレーションしたのかと破壊と創造の戦い軌跡を紹介します。
日付・時刻・時間・数値・測定値・名前などの情報を、ローカライズ済の String との間で変換してくれる Formatter。有名なのは DateFormatter・NumberFormatter でしょうか。
iOSDC Japan 2021 では、当時のすべての Formatter を紹介しました。あれから2年、今年は iOS 15+ で使用できる FormatStyle を使用した formatted メソッドを紹介します。これは Formatter の強力な機能はそのままに、自分でインスタンスを作る必要がなく、より Swift らしく書け、さらに iOS 17 ではパフォーマンスも向上します。
FormatStyle の使い方はまだまだ Web 検索での情報が乏しいです。このトークで FormatStyle の使い方をマスターし、従来の Formatter から移行しましょう。
弊社「株式アンドパッド」では、「幸せを築く人を、幸せに。」をミッションに建設DXに取り組んでいます。
この超巨大な建設業界というドメインに対し、弊社では1つの巨大アプリ(スーパーアプリ)ではなく、複数のアプリを提供する「マルチアプリ戦略」という手段を用いて課題解決に取り組んできました。
現在「施工管理」「図面」など10個近くのiOSアプリを運用しています(Flutter製も含む)。
そこから見えてきたマルチアプリ戦略の良かったこと・課題に感じていること・うまく解決できたこと、などを記事にまとめます。具体的には、
などになります。
iOS開発の「詳細」というよりは、「アーキテクト」だとか「組織論」的な話も幾分含むことになります。
近年では、FlutterやKMMなどのマルチプラットフォームによるモバイルアプリ開発が盛んになってきました。
最近ではComposeMutiplatform for iOSが発表され、マルチプラットフォーム開発の新たな選択肢として話題を集めています。
ComposeMultiplatformとはKotlinとJetpackComposeをベースにした新たなプラットフォームです。
本セクションでは、ComposeMultiplatform for iOSを用いたKotlinによるiOSアプリの開発方法、またみなさんが疑問に思っているであろう、使用可能なネイティブ機能の話やSwiftUIとJetpackComposeの比較などを交えながら、ComposeMultiplatform for iOSの今後の可能性を紹介していきいます。
iOSエンジニアにとってネットワークは縁遠いものです。
実物や設計を見る機会がなく、教科書を読んでもイメージがつかない方が多いのではないでしょうか。
ちょっと待ってください!実物が目の前にあるじゃありませんか。こんな貴重な機会はありません。
本トークではカンファレンスネットワークを題材にネットワークを学びます。死活監視アプリを作りiOSDC Japanネットワークのふるまいを観察しましょう。
話すこと
対象
ABEMAでは、iOSアプリとAndroidアプリのアーキテクチャの統一を図っているだけでなく、コード自体も共通化されている状態を目指して一部実装にKotlin Multiplatformを採用しています。これらの取り組みの中で、両プラットフォームで共通して採用できるアーキテクチャとはどのようなものか、どの実装が共通化できてどの実装はそれぞれ実装すべきかなど、OSの境界を跨いで多くの議論を行ってきました。
このトークでは、こうした議論を経た現在、ABEMAがモバイルアプリのアーキテクチャをどのように議論し、どのように定義して、どのように運用しているのかを実例を交えてご紹介します。
ABEMAでは、iOSアプリとAndroidアプリのアーキテクチャの統一を図っているだけでなく、コード自体も共通化されている状態を目指して一部実装にKotlin Multiplatformを採用しています。これらの取り組みの中で、両プラットフォームで共通して採用できるアーキテクチャとはどのようなものか、どの実装が共通化できてどこができないのかなど、OSの境界を跨いで多くの議論を行ってきました。
このトークでは、こうした議論を経てABEMAがモバイルアプリのアーキテクチャをどのように捉え、検討し、運用していくことになったのかをご説明します。また、議論によって整理された考え方の中心的な部分を、大規模なアプリから開発が始まったばかりのシンプルなアプリまで多くのアプリに応用できるように体系立ててご紹介します。
アーキテクチャにまつわる多くの人の多くの疑問に答えられるトークを目指します。
STORES 予約アプリは店舗などの管理者様向けの予約管理アプリで、2021年にiOS版をSwiftUIでフルリニューアルしました。
その後も追加機能の開発をし続け、今年の4月には待望のカレンダーUI (https://x.gd/GwDja) をリリースしました。
カレンダーUIとは「予約の入り具合や空き状況をカレンダーで閲覧するための画面」で、実装にあたり3つの壁に直面しました。
・既存ライブラリは使用せずにSwiftUIフルスクラッチで実装する
・予約スケジュールの時間の重複を可視化する
・予約情報の取得処理をKMMを利用してiOS/Android版で共通化する
本トークでは、カレンダーUI検討の背景から本実装、リリースに至るまでの過程をソースコードを交えながら解説します。
トークを聞いてくださった皆さんにSwiftUIで複雑なレイアウト画面を実装するためのヒントとなれば幸いです。
初めまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、心理学系の大学院に通っていて、大学院では心理学の観点からVRの研究を行っております!!
Apple Vision Proは、Appleが初の空間コンピュータとして販売する発売予定の複合現実ヘッドセット型PCであり、これは2023年のWWDC23で発表され、米国では2024年初旬に購入可能になる予定です。
他のHDMの例としては、Meta QuestやVIVE Proなどが挙げられますが、これらとはいくつかの重要な違いがあります。
特に、操作方法について注目すべきだと考えています。他のHDMはコントローラを用いて操作しますが、Apple Vision Proではコントローラは不要で、アイトラッキングとハンドジェスチャーで操作することができます。
これらの具体的な違いやメリット・デメリットについて詳しく説明します。
▼ 概要
iOS16.1からActivityKitが追加され、Live Activitiesを利用できるようになりました。
Live Activitiesを利用すれば、アプリの最新情報をリアルタイムにロック画面やDynamic Islandに表示することができます。
これによって、アプリを開かずに常にカスタマーに最新情報を提供することが可能になりました。
そこで私たちの開発している旅行アプリ「NEWT」では、Live Activitiesを利用すれば、リアルタイムにフライトの状況を提供し、時刻・ステータスの変更や確認に役立てることができると考えました。
今回はLive Activitiesについて、概要から実装方法について具体的な活用事例を用いてお話できればと思います。
▼ 内容
初めまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、心理学系の大学院に通っていて、大学院では心理学の観点からVRの研究を行っております!!
Apple Vision Proは、Appleが初の空間コンピュータとして販売する発売予定の複合現実ヘッドセット型PCであり、これは2023年のWWDC23で2023年6月5日に発表され、米国では2024年初旬に購入可能になる予定です。これまでのVR市場では、Meta社のMeta QuestやHTC社のVIVE Proなどがありますが、それらはiPhoneのような普及率は達成していません。理由は、HMDを身につけて日常生活を送ることは少ないからだと私は考えています。しかし、Apple Vision Proの登場により、値段は高いものの、私はこの発表を2007年の初代iPhoneの発売に匹敵する衝撃と捉えています。