iOSDC Japan 2020 プロポーザル一覧

他イベントOK レギュラートーク(20分)

MetricKitの魅力を語る

ahirustarrr ahiru_starrr
私たちデベロッパーは誰しもが「アプリのパフォーマンス向上」を目標とするものの実現するための道のりは非常に困難で険しいです。

知識や経験をフル活用しながら日々取り組んでいるこの課題ですが、iOS開発においては2019年のWWDCで登場したMetricKitが強力な武器となります。

MetricKitについてみなさんはどれくらいご存知ですか?
また、十分使いこなせていますか?

MetricKitはデバイス上のアプリの電力やパフォーマンスなどのメトリックを受け取るためのフレームワークです。

このフレームワークを効果的に使うことでパフォーマンスを向上させる上でどの機能がボトルネックになっているのか、何が原因で起動時間が遅いのかなどの調査を以前よりも簡単に行えるようになりました。

このセッションでは、実際にMetricKitを導入しているアプリを使ってどのように使用するのか、どのようなデータが取得できるのかを中心にパフォーマンスの改善につながるためのテスト手法などをお話しいたします。

MetricKitの魅力を余すことなくお伝えできればと思います。
- MetricKitとは何か
- MetricKitでできること・できないこと
- MetricKitを用いたデバッグ・テスト手法
- パフォーマンステストについて
- WWDC20で追加された新機能について
2
他イベントOK レギュラートーク(20分)

ベジェ曲線の知らない世界

かびごん小野 takoikatakotako
ベジェ曲線は、シトロエン社のド・カステリョとルノー社のピエール・ベジェにより考案されました。
ベジェ曲線はアプリのアイコンやアニメーション、ポスターなど様々な箇所で用いられ、私たちの身の回りは実はベジェ曲線で溢れています。

本トークではベジェ曲線を定義から追いかけ、iOS でベジェ曲線を扱うための API である UIBezierPath や Path に絡めながらその魅力をお伝えできたらと思います。
3
他イベントOK LT(5分)

テストコードが増えるとバグは減るのだろうか? - 「0% → 60.3%」で見えた世界の話

ahirustarrr ahiru_starrr
私たちエンジニアはバグのない世界を切望し、自身のスキルに磨きをかけながら悪戦苦闘の毎日を送っています。

こと開発においてはユーザー体験の向上やサービスのグロースに目を向け、新機能の開発や既存機能の改善に多くの時間を費やしています。

一方でテストにはどれくらいの時間を費やしているでしょうか?
テストコードの実装は本当に品質の担保につながるのでしょうか?
時間を割いてまで書く目的とはなんでしょうか?

このセッションでは、私が開発に携わっているプロダクトにおいて約1年間でテストコードカバレッジがほぼ0%の状態から60.3%まで増えたことで実際にバグの減少につながったのかを中心に日々の開発でテストが実装されることで変わったこと・変わらなかったことをお話しいたします。

品質の向上や組織としての開発の効率化につながるための考え方や手法についてお伝えできればと思います。

- テストコードを書くことでバグは減るのか
- テストコードの価値と有用性
- テストコードを実装するメリット・デメリット
- テストカバレッジが上昇したことで変わったこと
- 組織・開発体制に適したテストの選択方法
4
他イベントOK レギュラートーク(20分)

テストコードが増えるとバグは減るのだろうか? - 「0% → 60.3%」で見えた世界の話

ahirustarrr ahiru_starrr
私たちエンジニアはバグのない世界を切望し、自身のスキルに磨きをかけながら悪戦苦闘の毎日を送っています。

こと開発においてはユーザー体験の向上やサービスのグロースに目を向け、新機能の開発や既存機能の改善に多くの時間を費やしています。

一方でテストにはどれくらいの時間を費やしているでしょうか?
テストコードの実装は本当に品質の担保につながるのでしょうか?
時間を割いてまで書く目的とはなんでしょうか?

このセッションでは、私が開発に携わっているプロダクトにおいて約1年間でテストコードカバレッジがほぼ0%の状態から60.3%まで増えたことで実際にバグの減少につながったのかを中心に日々の開発でテストが実装されることで変わったこと・変わらなかったことをお話しいたします。

品質の向上や組織としての開発の効率化につながるための考え方や手法についてお伝えできればと思います。

- テストコードを書くことでバグは減るのか
- テストコードの価値と有用性
- テストコードを実装するメリット・デメリット
- テストカバレッジが上昇したことで変わったこと
- 組織・開発体制に適したテストの選択方法
2
他イベントOK LT(5分)

SwiftUIとFlutterを比較する

tamappe tamapppe
今年のWWDCでiOS14からSwiftUIがパワーアップしてListだけでなくGridも追加されました。
ListとGridの概念は既にGoogle製クロスプラットフォームのFlutterのウィジェットに
存在していますのでよりFlutterに近づいてきたなという印象です。

実はSwiftUIの知見があればスムーズにFlutterに移行でき、
またFlutterでの開発経験があればSwiftUIに移行するコストも少ないです。
私はどちらかといえば、FlutterがiOSアプリエンジニアにもっと普及すればいいのにと思っています。

本セッションではサンプルアプリをSwiftUIとFlutterの両方で開発してみて、
SwiftUIとFlutterそれぞれの書き方を検証したいと思います。

それとともにFlutterの学習ロードマップを紹介しようと思います。

# 聞いてほしい対象者
- SwiftUIにそろそろ本腰を入れようと人
- SwiftUIの知識でFlutterの学習コストを減らしたいと思っている人
- Flutterでのアプリ開発に興味がある人
1
レギュラートーク(40分)

ほどよいVIPER ~大規模アプリケーションの事例を添えて~

Yoshikazu Ando andooown_dev
VIPERはスケーラビリティに優れたアーキテクチャでView/Interactor/Presenter/Entity/Routerの頭文字から命名されています。...このような説明はもう十分に聞いたのではないでしょうか。
このトークではVIPERの簡単な説明と、大規模アプリケーションの実例をベースにし、ここから一歩進むための
- 実際にアプリケーションに適用していくときに大事なこと
- 大規模・複雑なアプリケーションにおけるVIPERのTips
について紹介します。

昨年1年間をかけて立ち上げからリリースまで持っていき、現在半年ほど運用しているアプリは、リリース時点で画面数が80以上、現時点では100を超える大規模なアプリケーションでした。
この経験から学んだサンプルと実務の間を埋めるVIPERの勘所や、他のレイヤードアーキテクチャでも活かせる様々な実装Tipsを紹介します。

【アジェンダ】
- VIPERの簡単な説明
- 大規模アプリケーションにVIPERを適用するときに注目すべき点
- 実例を元にしたTips
-- 複雑なサインアップフローの実装
-- 1画面1Moduleにこだわらない
-- 割り込み画面の実装
【こんな方に】
- VIPERが気になっていてサンプル以上の情報が欲しい
- レイヤードアーキテクチャを採用しているが複雑なアプリケーションに適用するためのアイデアが欲しい
4
レギュラートーク(20分)

ほどよいVIPER ~大規模アプリケーションの事例を添えて~

Yoshikazu Ando andooown_dev
VIPERはスケーラビリティに優れたアーキテクチャでView/Interactor/Presenter/Entity/Routerの頭文字から命名されています。...このような説明はもう十分に聞いたのではないでしょうか。
このトークではVIPERの簡単な説明と、大規模アプリケーションの実例をベースにし、ここから一歩進むための
- 実際にアプリケーションに適用していくときに大事なこと
- 大規模・複雑なアプリケーションにおけるVIPERのTips
について紹介します。

昨年1年間をかけて立ち上げからリリースまで持っていき、現在半年ほど運用しているアプリは、リリース時点で画面数が80以上、現時点では100を超える大規模なアプリケーションでした。
この経験から学んだサンプルと実務の間を埋めるVIPERの勘所や、他のレイヤードアーキテクチャでも活かせる様々な実装Tipsを紹介します。

【アジェンダ】
- VIPERの簡単な説明
- 大規模アプリケーションにVIPERを適用するときに注目すべき点
- 実例を元にしたTips
-- 複雑なサインアップフローの実装
-- 1画面1Moduleにこだわらない
-- 割り込み画面の実装
【こんな方に】
- VIPERが気になっていてサンプル以上の情報が欲しい
- レイヤードアーキテクチャを採用しているが複雑なアプリケーションに適用するためのアイデアが欲しい
2
他イベントOK LT(5分)

高速モックジェネレーターMockoloでストレスフリーなテスト生活

Yoshikazu Ando andooown_dev
モック作るの辛くないですか?
このLTでは「普段の開発を邪魔しないほど軽量」で「すぐに捨てられるほどシンプル」なモックジェネレーターMockoloの魅力をお伝えします。

テストしたい対象だけをユニットテストのために切り出せるのがベストですが、

- UserDefaultsなどの副作用
- 大量のProtocolを要求するアーキテクチャ

によってモックの作成を余儀なくされることも多いのが現実です。
大量のモックを書くのは辛く、これが原因でテストを諦めてしまっては、キレイでTestableなアーキテクチャを採用した意味がなくなってしまいます。

そんなものはMockoloにまかせてしまいましょう!

Mockoloは2019年9月に1.0.0がリリースされた新しいモックジェネレーターで、「高いパフォーマンス」を開発の目的にあげています。
パフォーマンス以外にも「依存が少なくシンプルですぐに捨てられる」点も大きな魅力だと私は考えています。

このLTを通してそんなMockoloの魅力が伝わり、ストレスフリーなテスト生活の助けとなることができたら幸いです。

【こんな方に】
- かっこいいアーキテクチャを使っているが、テストを書けていない/モックを書くのが辛い
- SwiftyMockyやCuckooを利用しているが生成速度やモックの複雑さが辛い
1
他イベントOK レギュラートーク(20分)

複数の小・中規模アプリを効率的に開発するためのFlux

Yuta Nagai
SwiftUIが発表されてから1年。
命令型から宣言型へのパラダイムシフトに対応すべく既存のアーキテクチャを見直す動きが高まってます。
大規模アプリにはVIPPERやReduxが適している反面、複数の小・中規模アプリを並行して開発する場合には適していませんでした。
そこで、Android→フロントエンドを経てiOSチームに異動した私が多くのアーキテクチャの中からなぜFluxを選択したのか。
複数のアプリを異なるリリースサイクルで開発するための工夫や業務に導入する際のリファクタリング手順、導入効果をご紹介します。
2
他イベントOK レギュラートーク(20分)

Swiftネイティブアプリでの素敵なAR表現の作り方

服部 智 shmdevelop
AR機能を使った表現や機能の注目度はここ数年高まり続けARKitも毎年機能追加されています。

SNSのタイムラインで見栄えのするAR表現を見る機会もあると思います。
これを自分の手で実装するにはどうしたら良いのでしょうか。

Appleの公式サンプルも多数ありますが、そこから次の一手が分からずに
実機で動かしておしまい、という方も多いのではないでしょうか。

このセッションでは公式サンプルから一歩進んだ表現の実装方法を紹介していきます。
さらにARならではの価値の出し方を解説しその例を説明していきます。

これであなたもAR表現者。
格好良い表現を作って投稿してみませんか。
2
他イベントOK レギュラートーク(40分)

ハイレベルなAR表現の追求と試行錯誤

服部 智 shmdevelop
AR表現レベルアップのためにした行動とそこから得た知見を共有します。

現在私は、世界2位フリースタイルフットボーラーやForbes JAPAN NEXT UNDER30の一人に選ばれた映像クリエイター、現役プロダンサー、エンジニア達とチームを組みAR映像表現作成を進めています。

そこではメンバーからフィードバックを受けながらSwiftのアプリ実装を進めています。
新たな驚きのある表現を作るべく日々検証を積み重ねています。

ARの持つ価値を考えSwiftで実装しiOSネイティブアプリで動かしてきました。
現実を拡張するためMetal Shaderを100日間書いたりmacOS用仮想カメラを作ったりもしました。

いくつか形になった物があり、その要素を理解することでより価値のある物に繋がると考えています。
ここ1年の活動を通じて得たAR表現の知見を凝縮して共有し、皆のAR表現への好奇心に火を点けます!
1
レギュラートーク(20分)

Call Directory Extension詳解

Yuta Nagai
トビラシステムズ株式会社では、アプリ内に迷惑電話フィルタ機能を実装しています。
弊社では3年以上に渡り多くの電話番号情報を提供するためにCall Directory Extensionと向き合ってきました。
何かと制限が多いCall Directory Extensionに多くのデータを安全に入れるために実践してきたTipsをご紹介します。

【サマリー】
- 各OSごとのパフォーマンス
- 差分データの更新のTips
- メモリ管理
- 更新途中でキルされるとCall Directoryがクラッシュする問題
3
他イベントOK レギュラートーク(20分)

実行できる形で作成するiOSアプリ開発のガイドライン

佐藤 光 hicka04
私が働いているニフティライフスタイルではiOSアプリ開発のガイドラインを策定中です。
ガイドラインを策定することになった背景としては、5年以上も運用して負債が積み重なっているプロジェクトが複数あったため、それらのプロジェクトで使える共通のガイドラインを定めて負債を効率よく解消しようと思ったからです。

具体的には以下のような項目について策定しています。
* コーディングルール(Lint)
* アーキテクチャ
* パッケージマネジメント
* CI/CD
* etc...

そして、このガイドラインの一番のポイントは「実際にXcode上で実行してシミュレーターや実機で動かせる状態にしている」ということです。
これは、策定したガイドラインを各プロジェクトへ導入しやすくする狙いがあります。
* ガイドラインの各項目ごとにプルリクエストを作ることで、導入手順がGitの差分として確認できる
* 各プロジェクトへの導入でつまづいた場合の原因切り分けがしやすい

本セッションでは、ガイドラインに策定している内容を簡単にご紹介し、実際のプロジェクトに適用するまでの流れについて詳しくお話します。
また、このガイドラインを活用して新規アプリの立ち上げやモックアプリ作成などの準備時間を0にする工夫をしているのでその点も合わせてお話します。
2
他イベントOK レギュラートーク(20分)

iOS14 Widgets キャッチアップ

所友太 tokorom
iOS14でWidgetが大幅刷新されました。
タイミング的に実際に導入してアプリをリリースまでした実績を紹介するのは無理ですが、研究案件への導入実験が決まっているため目下勉強中です。
9月までにそれなりの知識がスタックされる見込みですので、WWDCでの発表内容をキャッチアップし、研究案件で試した成果を紹介できればと考えています。
4
他イベントOK レギュラートーク(20分)

TableViewとCollectionViewがない?!SwiftUIでパフォーマンスの良いリストやグリッドを実装する

josh yhkaplan
SwiftUIでは、Stack・List・Grid・ForEach・LazyGrid・LazyStackが存在し、どれをどのときに使って、どうやって使うかについて紹介します。また、ScrollViewとの付き合い方やCollectionView/TableViewとの違いについても説明します。その中で、SwiftUIの上記Viewで複雑なレイアウトを組んで、パフォーマンスチューニングしたり、動的レイアウトにしたり、リファクタリングしりする方法について、具体例を見せながら解説します。
3
他イベントOK レギュラートーク(20分)

SwiftUIを導入したアプリ設計

Yu Tawata yuta24
WWDC2019でSwiftUIが発表されました。WWDC2020でもSwiftUIに関するセッションがいくつもあり、AppleがSwiftUIに注力していることが伺えます。SwiftUIはiOS 13以降で利用できるということもあり、既存アプリの運用保守では現段階ではまだ導入できないでしょう。
ですが、iOS 14から導入されるWidgetがSwiftUIのみで開発できるということもあり、今後、SwiftUIに触れる方も多いと思います。

そんな中、私が担当したアプリは新規アプリということもあり、SwiftUIとCombineを採用しました。実際にSwiftUIでアプリを開発してみると、機能が不足しており、SwiftUIだけでアプリを完結させるのは難しいといいうことがわかりました。
そのため、弊アプリではSwiftUI×UIKitという選択をして、SwiftUIはUIコンポーネントの実装に利用し、画面遷移はUIKitを利用するという設計にしました。

本トークでは弊アプリで選択した設計の説明と、この設計で解決した問題について説明します。
2
他イベントOK レギュラートーク(20分)

UI とモデルとのバインディングを行うためのリアクティブプログラミング

宇佐見 公輔 usamik26
Swift でリアクティブプログラミングのフレームワークを使う動機のひとつは、UI とモデルとのバインディングにあると考えています。これは、フレームワークとして Combine / ReactiveSwift / RxSwift のどれを使う場合でも同じことであろうと思います。

このトークでは、UI とモデルとのバインディングの考えかた、アプリケーションの設計にどのように活かすか、といった点についてお話しします。同名のパンフレット記事がありますので、そちらをあわせてご覧いただくと、より理解が深まると考えています。
4
他イベントOK LT(5分)

子育てに役立つHomeKit対応製品ランキング

所友太 tokorom
子育てに役立ったHomeKit対応製品をランキング形式で一挙紹介!
2
他イベントOK レギュラートーク(20分)

HomeKit 2020

所友太 tokorom
2020年におけるHomeKitの総括。

みなさんにあまり知られていないだろうHomeKitの入門からオープンソース化されたHomeKit ADKまで20分に凝縮してお届けします。
2
他イベントOK レギュラートーク(20分)

機械学習のブルーオーシャン、Core ML

堤 修一 shu223
今や技術面で何か画期的なことが達成される場合、十中八九、機械学習/ディープラーニングが利用されています。大学で専門的に機械学習を学ぶ人も多く、技術書でもオンライン講座でも機械学習系は非常に人気です。今や猫も杓子も機械学習を学び一見レッドオーシャンとなっている機械学習分野ですが、我々iOSエンジニアには実は「機械学習のブルーオーシャン」が残されています。それがCore MLです。

『Core ML?触ってみたことあるけど、簡単だし、今更トークで聞くことなくない?』

と思われた方もいるかもしれません。しかし、多くの人が触ったことがあるのは、CoreML.framework止まりです。

CoreML.frameworkは既存のモデルをiOSで扱う際に利用するフレームワークに過ぎず、実はそれはCore MLのポテンシャル全体からみれば氷山の一角にすぎません。たとえば近年のWWDCでは毎年多くのML関連の新機能が発表されますが、CoreML.frameworkのレイヤーだけ知っていてもその機能の多くは活かせず、そもそも具体的に何がどこまでできるということすら理解は難しいと思われます。

Core MLはCore MLのモデルフォーマットと、そのモデル作成を担うCore ML Tools(coremltools)を理解してこそその真価を発揮できます。そして、iOSで最先端の機械学習モデルを効率的に動作させるには、このCore MLの全体を理解しつつ、iOSアプリ開発についても熟知し、その上で機械学習にも理解がある必要があるので、機械学習の専門家でも簡単には参入できないブルーオーシャンとなるわけです。

本トークではiOS×ML分野で仕事をするために必要な技術領域全体について解説します。
5
2019 スポンサー 2019〆切後 資料請求
オンライン対応未決定 削除予定 オンライン対応検討中 要ロゴ 要PR 要支払
仮採択 採択しない スピーカー採択
仮採択(原稿) 採択済 採択しない 仮採択 要審議 ニッチ企画? LT向き加点