iOSDC Japan 2019 プロポーザル一覧

LT(5分)

カスタムInstrumentsの簡単レシピ

行木 千春 Ridwy
Instrumentsといえば、「リーク検出などに便利なのは知っているけれど、とにかく重くてまともに動かない...」なんて印象を持たれている方もいるのではないでしょうか。実はXcodeの進化の陰で、Instrumentsも10から生まれ変わったようにパフォーマンスが向上し、できることが増えました。

特にカスタムInstrumentsはとても強力です。
アプリに機能を実装し、UIが良い感じに動いているのを確認し、リリースしてみたら...ログがうまく送れていなかったり、必要以上にAPIを叩いてしまっているのが発覚、なんて経験はありませんか?カスタムInstrumentsを作ってアプリ内のイベントを可視化すれば、こうした問題も一目瞭然です!
また、見たい処理だけにフォーカスすればパフォーマンスのネックも見つけやすく、高速化にも役立つでしょう。

作成にはCLIPSという言語を利用したり、パラメータの渡し方に若干の癖とコツが必要だったりという所もあるのですが、大量のコードは必要ありません。本LTではいくつかのユースケースについて作り方のレシピを紹介します。是非、あなたのアプリにも組み込んでみてください。
3
LT(5分)

ゆるふわFlux

熊本浩紀 twitter
iOSではMVC, MVP, MVVM, Fluxなど様々なデザインパターンが使って開発していると思います。
iOSでFlux適用する場合、web frontendの世界で実質デファクトなっているFluxの実装reduxをSwiftで実装したReSwiftなどがよく知られています。
しかし、iOSではreactのような差分更新の仕組みがないため、reduxで管理されたstateをViewに反映するには、ひと工夫必要だと感じています。
また、reduxでは非同期処理を書くことができず、別途middlewareを用意する必要があります。
ReSwiftを導入しようとしたもののコストが高いと感じたので、それらをより手軽扱える、ゆるくfluxできるライブラリを自作した話をしたいと思います。
レギュラートーク(30分)

プライバシーから見えるiOS 13とその対応

scenee scenee
WWDC'19で「Sign in with Apple」が発表されたことは記憶に新しいかと思います。

賛否両論ありますが、実際に実装してみると、認証のUI/UXを変える技術として大変魅力に感じています。

これはデバイスと密に連携してセキュリティとプライバシーを追求した認証技術であり、アップルは誰が情報を保持しコントロールすべきかを明確に示しました。

しかし、プライバシーや認証関連のアップデートは「Sign in with Apple」だけではありません。その他にも興味深い発表が多数ありました。

WWDCのセッションを見通して、「プライバシー」が大きなテーマの一つであり、他社との差別化も含めて非常に重要視されていることがわかります。

このセッションでは、アップルの考えるプライバシーの基本理念を解説し、「Sign in with Apple」をはじめとしてiOS13に焦点を当ててながらWWDC'19のアップデートをまとめます。そして、それらから見えるアップルの方向性、私たちの対応・活用方法を考察していきます。

Topics

* Apple Privacy Principle
* Sign in with Apple
* WebAuthn
* 機械学習とプライバシー
* プライバシーから見るアップルの未来
2
レギュラートーク(30分)

Auto Layout パフォーマンスチューニング

Jiro Nagashima hedjirog
Auto Layoutは過度に制約が複雑になり過ぎるとビューのサイズや位置の計算に著しく時間を要することがあります。UIStackViewは複雑な制約を指定せずにAuto Layoutによるレイアウトの仕組みを利用できる一方で、幾層にも入れ子にするなど複数のUIStackViewを単一画面内で用いると複雑な制約を扱うことになり兼ねません。

このトークでは、複数のUIStackViewを扱うことで生じていた画面描画の遅延の実例を取り上げ、計測による問題箇所の特定と解決までのプロセスを紹介します。
6
レギュラートーク(30分)

フリーランスiOSアプリ開発者という選択

所友太 tokorom
こういうセッションがあっても良いかなと思い投稿させていただきます。
フリーランスとしての仕事のしかたは人によって様々と思いますので、4人くらいの座談会形式のほうが適切なのかもしれません。
時間も私1名なら30分程度でまとめるのが良いかなと考えていますが、複数人なら適切な時間でやるべきかもしれません。

私の経歴は、
- 受託開発メインの会社に勤務 12年
- 自社サービスを持つ会社に勤務 2年
- 上記と重複しつつ個人事業主(フリーランス)としての活動 5年
- 法人化してのデザイナーさんと2名での活動 2年
といったところです。

私1名でやる場合は、フリーランスとして活動して良かった面、辛かった面の両面をできるだけどちらかに片寄らせずに紹介していければと思います。
具体的な内容としては、

- フリーランスになって良かったこと
- フリーランスになる前のほうが良かったこと
- 受託開発時代にいやいややっていたがフリーランスになって役立っている知識や経験
- フリーランスになる前から将来フリーランスになったときのために心がけていたこと
- 金額の見積もり時に注意していること
- 個人事業主/法人化を経験してみてのPros/Cons
- 顧客とのコミュニケーション
- 受ける仕事の数やボリュームについて感じていること

などをイメージしています。
8
レギュラートーク(60分)

SwiftShot、SwiftStrikeを参考にAR対戦ゲームを作ろう

satoshi0212 shmdevelop
RKitは毎年新機能が追加され洗練され続けています。
WWDC 2018ではSwiftShot、WWDC 2019ではSwiftStrikeというAR対戦ゲームがプレイアブルデモとして紹介され、開発者にはソースも公開されています。

2つのアプリの実装を読み解き、それを参考にオリジナルのAR対戦ゲームを作る流れを解説していきます。

この発表では以下の内容について話す予定です:
- SwiftShot、SwiftStrikeの実装概要解説
- P2P通信について
- プロトコルについて
- オンボーディングについて
- ゲーム進行について
- デモ
レギュラートーク(30分)

FirebaseからAWS環境下へ移行した際に気をつけた10のこと

Masakazu Sano kz56cd
最近取り組んでいたプロジェクトでは、とある事情から

「FirebaseからAWS環境下のREST APIに全て乗り換えなければならない」

という大きな課題がありました。

ご存知の通り、FirebaseはmBaaSです。また本プロジェクトで採用されていたFirebase Realtime Databaseについても、ローカルデータ同期という特性上、それぞれ理想とする設計上のポイントが通常のアプリとはやや異なります。
今回の発表では、移行作業に際して、

- どのようなアプリアーキテクチャに寄せていったのか
- どのような改善を行い、またどのような改善を行わなかったのか
- 移行作業を通して、ユーザーや開発者にどのような利益をもたらしたか

という点を踏まえ、10のケースとしてご紹介します。
LT(5分)

FirebaseからAWS環境下へ移行した際に気をつけた10のこと

Masakazu Sano kz56cd
最近取り組んでいたプロジェクトでは、とある事情から

「FirebaseからAWS環境下のREST APIに全て乗り換えなければならない」

という大きな課題がありました。

ご存知の通り、FirebaseはmBaaSです。また本プロジェクトで採用されていたFirebase Realtime Databaseについても、ローカルデータ同期という特性上、それぞれ理想とする設計上のポイントが通常のアプリとはやや異なります。
今回の発表では、移行作業に際して、

- どのようなアプリアーキテクチャに寄せていったのか
- どのような改善を行い、またどのような改善を行わなかったのか
- 移行作業を通して、ユーザーや開発者にどのような利益をもたらしたか

という点を踏まえ、10のケースとしてご紹介します。
レギュラートーク(30分)

Auto-Renewable Subscriptionsの新しいオファー使ってますか?

m_orishi m_orishi
2019年2月にAppleがAuto-Renewable Subscriptionsの新しいオファーである「プロモーションオファー」を公開しました。
現在登録中のユーザー、または以前登録を行っていたユーザーに対して、期間限定で割引価格を提供できるというものです。

このトークでは、既存のお試しオファーと比較を行うことで、プロモーションオファーではどのようなことができるのか?をお話しします。

また、オファーを設定する際に選択することになる
・無料トライアル
・都度払い
・前払い
の3つのオファータイプについても紹介します。
1
iOSDCルーキーズLT(5分)

FirebaseからAWS環境下へ移行した際に気をつけた10のこと

Masakazu Sano kz56cd
最近取り組んでいたプロジェクトでは、とある事情から

「FirebaseからAWS環境下のREST APIに全て乗り換えなければならない」

という大きな課題がありました。

ご存知の通り、FirebaseはmBaaSです。また本プロジェクトで採用されていたFirebase Realtime Databaseについても、ローカルデータ同期という特性上、それぞれ理想とする設計上のポイントが通常のアプリとはやや異なります。
今回の発表では、移行作業に際して、

- どのようなアプリアーキテクチャに寄せていったのか
- どのような改善を行い、またどのような改善を行わなかったのか
- 移行作業を通して、ユーザーや開発者にどのような利益をもたらしたか

という点を踏まえ、10のケースとしてご紹介します。
レギュラートーク(30分)

SwiftShot、SwiftStrikeを参考にAR対戦ゲームを作ろう

satoshi0212 shmdevelop
ARKitは毎年新機能が追加され洗練され続けています。
WWDC 2018ではSwiftShot、WWDC 2019ではSwiftStrikeというAR対戦ゲームがプレイアブルデモとして紹介され、開発者にはソースも公開されています。

2つのアプリの実装を読み解き、それを参考にオリジナルのAR対戦ゲームを作る流れを解説していきます。

この発表では以下の内容について話す予定です:
- SwiftShot、SwiftStrikeの実装概要解説
- P2P通信について
- ゲーム進行について
- デモ
LT(5分)

顔の検出の方法と実践

Kentaro Kawakami Knschwarze
カメラアプリ等では、目を大きくしたり、顔を小さくしたり、化粧をしたりと顔を加工できる事が当然となっておりますが、どのように顔の検出を行っているのでしょうか。

Appleが提供している顔の検出ができるAPIを利用して、それぞれの特徴を押さえつつ、それぞれのリアルタイムな顔認識の実装方法についてお話したいと思います。
iOSDCルーキーズLT(5分)

Tab Bar Iconについて再考する

Yuki Takemoto mottox2
かつてiOSのTab Bar Iconといえばアウトラインスタイルのアイコンでしたが、iOS 11からソリッドスタイルのアイコンが使用されるようになりました。
また、普段我々が利用しているアプリでは、通常時と選択時でアウトラインとソリッドスタイルのアイコンを使い分けているものもあります。

このトークではガイドラインのもの、状態によって使い分けているものを紹介し、Tab Bar Iconについて改めて考える機会を提供します。
1
レギュラートーク(60分)

クロマキー合成を使い透過動画をAR空間に表示する

satoshi0212 shmdevelop
動画を現実の風景に重ね、その一部を透過させて再生する実装について説明します。

AR(Augmented Reality)空間でシンプルに動画再生するのはそれほど難しくありません。
しかし一部透過させようとするとリアルタイム画像加工をする必要があり難易度が高まります。

表示のガタつきを抑え、一部を透過させた動画を再生するには。
60fpsかつ音声付きで再生するにはどうしたら良いのでしょうか。

クロマキーシェーダーと再生処理の工夫により実現した実装とその他Tipsを共有します。
さらにユーザ体験が向上する機能をいくつか解説します。

この発表では以下の内容について話す予定です:
- クロマキー合成シェーダーの実装
- 60fps音声付きでの透過動画のスムーズな表示
- リアルタイム配信映像の受信について
- ユーザ操作インタラクションの実装
- 現実に即した音声の聞こえ方
- 配信について
3
LT(5分)

グロースのためにプッシュ通知配信サービスを乗り換えた話

Atsuya Sato n_atmark
私が担当しているプロジェクトは、現在サービスの拡大を目指すフェーズに入ってきています。サービス拡大のための施策の一つとして、プッシュ通知をマーケティングにも利用できるように、今まで使っていたFirebase Cloud Messagingからより高機能なプッシュ通知配信サービスへと乗り換えることにしました。プッシュ通知配信サービスを乗り換える際にアプリ側で行った事と、乗り換えたことでできるようになったことについてお話しします。
レギュラートーク(30分)

SwiftのABI StabilityとModule Stabilityで得られるもの・失うもの

Sho Ikeda(いけしょー) ikesyo
SwiftのABI StabilityとModule Stabilityについて耳にしたことがあるでしょうか?前者は、当初はSwift 3.0で実装されると言われていたものの、度々の延期の末、ついにSwift 5.0で実現された機能です。後者についてはSwift 5.1で実現される機能ですが、あまり聞いたことがない方も多いかもしれません。

どちらか、もしくは両方を聞いた事がある方は多いかもしれませんが、その機能・実現する事の違いはまだ広く理解されていないように思います。本トークでは以下のトピックについて扱い、ABI StabilityとModule Stabilityへの理解を深めること、自分のプロジェクトでどのように対応すればよいのかを少しでも把握できること、そしてこれらの機能から恩恵を受ける開発者を増やすことを目指します。

- ABI StabilityとModule Stabilityの違い
- ABI Stabilityとは何か
- Module Stabilityとは何か
- ABI Stabilityによって得られるもの・失うもの
- Module Stabilityによって得られるもの・失うもの

一部ネタバレになってしまいますが、予習資料としてSwift.orgのブログ記事をご紹介しておきます: https://swift.org/blog/abi-stability-and-more/
5
レギュラートーク(60分)

AVFoundationで動画編集を極める!

imk2o imk2o
Appleは古くから AVFoundation という素晴らしい SDK を提供しています。
AVFoundationは多くの機能を提供していますが、このトークでは「動画編集」にフォーカスします。
上手く使えば、iMovie や Final Cut Pro に匹敵する動画編集アプリを作ることも不可能ではありません。

が、「知見が少なく」「罠がたくさん」なシロモノでもあります...
軽い気持ちで手出ししたり、工数を見積もると大変な🙄にあいますよ!!

しかし私はそこを乗り越え、個人で動画合成アプリをリリースしてきました。
知りたくないですか?
あの「じゃじゃ馬SDKと❤になった」手の内を!

トークではまずAVAssetExportSessionを使った動画合成の基本について説明し、
Custom Video Compositorでカスタムトランジションの実装方法を紹介します。
Core Imageも大活躍しますよ!
3
レギュラートーク(30分)

UI as Code

koyachi koyachi
iOSにもSwift UIが導入され宣言的UIプログラミングが注目を浴びています。iOS, Androidを含むマルチプラットフォーム開発をサポートするFlutterでは初期から宣言的UI開発が可能で、最近のDartへの機能追加でも宣言的UI開発をサポートする機能が含まれています。本トークではFlutterの宣言的UI開発周辺を紹介します。

- Flutterでの宣言的UIプログラミングの基本
- Dart開発チームが調査した(主にDartにおける)宣言的UIコードの問題点
- 宣言的UIプログラミングに関する最近のDartへの機能追加
レギュラートーク(30分)

カスタムInstrumentsでアプリをピカピカに!

行木 千春 Ridwy
Instrumentsといえば、「リーク検出などに便利なのは知っているけれど、とにかく重くてまともに動かない...」なんて印象を持たれている方もいるのではないでしょうか。実はXcodeの進化の陰で、Instrumentsも10から生まれ変わったようにパフォーマンスが向上し、できることが増えました。

特にカスタムInstrumentsはとても強力です。
アプリに機能を実装し、UIが良い感じに動いているのを確認し、リリースしてみたら...ログがうまく送れていなかったり、必要以上にAPIを叩いてしまっているのが発覚、なんて経験はありませんか?カスタムInstrumentsを作ってアプリ内のイベントを可視化すれば、こうした問題も一目瞭然です!
また、見たい処理だけにフォーカスすればパフォーマンスのネックも見つけやすく、高速化にも役立つでしょう。

本トークではカスタムInstrumentsの作り方について詳しく解説します。
ちょっぴり癖はあるけれど、意外と簡単に作れますよ!あなたのアプリ専用のカスタムInstrumentsを作って、アプリをピカピカにしちゃいましょう!
iOSDCルーキーズLT(5分)

心地よいDebug環境でDXを最大化しよう

kotobuki Engyokun
Debugはいつも開発者の仲間。
ユーザーに直接関係はないですが、良いDebug体験を整えることで開発も気持ちよくなり、ユーザーに高速で価値を届けることにつながります。

このトークでは、DX(デベロッパーエクスペリエンス)を最大化するためにアプリ内に実装した、様々なデバッグメニューや便利機能を紹介していきます。

具体的には以下の機能をもったデバッグメニューについてご紹介します。
・API環境を切り替える
・広告
・アプリ内コンテンツの言語設定を切り替える
・データをリセットする
iosdc-japan-2018 sponsors iosdc-japan-2018 potential-sponsors 開催後請求
ブースWL
仮採択
仮採択 採択済
iosdc-japan-2018 sponsors iosdc-japan-2018 potential-sponsors 開催後請求
ブースWL
仮採択
仮採択 採択済