採択
2018/08/31 13:30〜
Track C
iOSエンジニアに聞いて欲しいトーク(30分)

スマホアプリエンジニアだから知ってほしいブロックチェーンと分散型アプリケーション

niwatako にわタコ

数年以内に、皆さんのうちの何割かは、WebやクラウドのAPIを叩くのではなく、ブロックチェーンを叩くアプリケーションを開発するようになるでしょう。そして皆さんのうちほぼ全員が、そのようなアプリケーションを利用するようになるでしょう。
分散型アプリケーションクライアントとしてのiOSアプリの未来を、実際にブロックチェーンサイドとクライアントサイドでプログラムを見ながらご紹介します。

採択
2018/08/31 13:30〜
Track D
iOSエンジニアに聞いて欲しいトーク(30分)

macOSでもっとアプリを作ろう

malt03 malt03

趣味でmacOSのネイティブアプリを作ったときの知見を共有します。
macOSのネイティブアプリを作る「意味」「楽しみ」「つらみ」「つらみ」あと「つらみ」の話です。
みんながもっと作ってくれれば、エコシステムやドキュメントが充実して、この世界はもっと幸せになるはずです。
是非聴きに来て、macOSでアプリを作って、できればライブラリも作って、一緒に世界を幸せにしましょう!

採択
2018/08/31 14:20〜
Track A
レギュラートーク(30分)

iOSアプリ内で不正なSSL証明書を検知する

kobakei122 kobakei

「HTTPS化していればセキュリティ対策は十分」などと思っていませんか?
HTTPS化していても、無線LANやネットワーク機器にセキュリティ対策がなされていないと、中間者攻撃によって通信が盗聴・改ざんされるリスクがあります。これを防ぐ方法として、不正なSSL証明書を検知するピン留めという手法があります。
本発表ではピン留めを実装する手順、またSSL証明書の更新の際に気をつけることを紹介します。

採択
2018/08/31 14:20〜
Track B
レギュラートーク(30分)

コンパイラから紐解くSwift method dispatch

kateinoigakukun 家庭の医学

Swiftには実行するメソッドを効率的に決定する機構があります。
しかし、静的型付け言語であるにも関わらず動的に決定せざるを得ないパターンや、finalやprivateなどの修飾子がパフォーマンスに影響するパターンなど、実際にはどのような動きをしているのでしょうか。
このトークではSwiftコンパイラの中からその疑問を紐解いていきます。

採択
2018/08/31 14:20〜
Track C
レギュラートーク(30分)

grpc-swiftを使ってiOSアプリでも快適なgRPC通信を行う

KyoheiG3 Kyohei Ito

Swiftで記述されたiOSアプリでも、grpc-swiftを利用してgRPC通信をある程度手軽に利用可能になります。
gRPCを利用すると、通常の通信を行うよりも通信速度は速く通信量も少なく済み、更には双方向での通信を行うことができます。
今回は、gRPCの概要、grpc-swiftの導入方法、実際にプロジェクトで利用する際の応用的なことや、grpc-swiftにコントリビュートしたときの経験談などをお話させていただきます。

採択
2018/08/31 14:20〜
Track D
レギュラートーク(15分)

海外展開を目指すアプリでセキュアで速い画像と動画の閲覧を実現した話

_atsushisakai 酒井篤

「家族アルバム みてね」は、徐々に国外にユーザーを拡大しています。常に海外での快適な利用が実現されることを意識して開発していますが、その中でもメディアを高速に配信し・閲覧できることは、最重要課題でした。どのように課題を認識・改善したかの知見をお話ししたいと思います。

アジェンダ

  1. 認識(NewRelicによる計測)
  2. 設計(AWSも含むシステム全体)
  3. アプリ実装について
  4. 成果とさらなる課題
採択
2018/08/31 14:40〜
Track D
レギュラートーク(15分)

とある端末の触覚技術 -フィードバック-

TK_u_nya cokaholic

iPhoneの画面上で3DTouchを行うと、ブルッと端末が震えるフィードバックを返してくれます。
フィードバックが返ってくると、なんとなく気持ち良いですよね笑
その気持ち良いフィードバックは、iPhoneに搭載されている「Taptic Engine」によって実現されています。
このトークでは「Taptic Engine」とはどういった技術で、
どのような場面で使用すれば良いのかという話をします。

採択
2018/08/31 15:10〜
Track A
レギュラートーク(30分)

宣言的UICollectionView

_ishkawa ishkawa

UICollectionViewに複数の種類のセルがある場合、どのセルがいつ表示されるのか把握するのが難しくなります。この問題を解消する手段の1つには、コンテンツの宣言的な定義が考えられます。

このトークでは、はじめにコンテンツの宣言的な定義の実現方法を説明します。続いて、宣言的な定義を導入した時のコードの見通し、レイアウトの役割分担、差分更新、アニメーションなどの面におけるメリットとデメリットを解説します。

採択
2018/08/31 15:10〜
Track B
レギュラートーク(15分)

肥大化しがちなアプリの起動経路を整理する

d_date 松館 大輝

通常起動にプッシュ通知、Universal Linksはもちろんのこと、Core SpotlightやWidget、Home Screen Quick Actionには対応してますか?
今年はiOS12でSiri Shortcutが登場。またAppDelegateが肥大化します。
…なんてことがないようにきれいに整理しませんか?
確認に手間がかかる起動経路まわりを効率よく実装するための設計やテストについて具体例を用いて紹介します。

採択
2018/08/31 15:10〜
Track C
レギュラートーク(30分)

MusicアプリのTransitionを再現する

kzmsngd Nagado

iPhone にプリインストールされているアプリの中でも、 Music アプリの Modal Transition が良い感じですね。Githubなどで探してみると、ほぼ完全に再現してみせているライブラリやサンプルコードがいくつかあるのですが、コードを見てみるとすごく難しそうな印象が…。そこで、Musicアプリのような Modal Transition をより簡単に再現する方法を模索してみて、得られた知見をお話します。

採択
2018/08/31 15:10〜
Track D
iOSエンジニアに聞いて欲しいトーク(30分)

フロントエンドエンジニアからみたiOS開発

ohayou_kenchan ohayoukenchan

最近のWebフロントエンドとiOS開発は似ているところが多いと思います。それぞれ比較してみて何がイケてるのか見ていけたらと思います
内容
仮)

  • SwiftとTypesctipt
  • ReSwiftとRedux
  • async/await
  • AutoLayoutとCSS
採択
2018/08/31 15:30〜
Track B
レギュラートーク(15分)

iOS WKWebViewの魔改造

fokotate Shin

Content(仮):

  • 高速DOM操作 WKWebViewでダークモードを実現する
  • WKWebView内の動画再生をAVPlayerに移し替える
  • WKWebView内のジェスチャーをコントロールする
  • iOS12での変更点 (もしあれば)
  • その他 (viewportの強制変更,タップ位置の座標変換, Cookie操作, 広告ブロック, メモリ管理)
採択
2018/08/31 16:00〜
Track A
レギュラートーク(30分)

Swiftコードから状態遷移図を自動で生成し、継続的にメンテナンスしやすくする

yaso_san 八十嶋祐樹

アプリの中の複雑な状態はステートマシンなどを導入することで管理しやすくなります。
しかし、コードだけを見ても流れが分かりにくかったり、状態遷移図を作ってもコードに合わせて更新していくのが面倒だったり、継続したメンテナンスは大変です。
このトークでは、シンプルなステートマシンとSourceKit・Graphvizなどのツールを使ってコードから状態遷移図を自動で生成する仕組みを作り、継続的にメンテナンスしやすくする方法をお話しします。

採択
2018/08/31 16:00〜
Track B
レギュラートーク(30分)

iOSと(深層)強化学習

yuky_az 我妻幸長(Yukinaga Azuma)

強化学習は機械学習の一種で、試行錯誤を通じて「環境における価値を最大化するような行動」を「エージェント」が学習します。強化学習が例えばゲームでうまく機能した場合、次第にゲームの打ち方は開発者の手を離れ、エージェントは開発者自身よりもずっと強くなっていきます。発表では、強化学習の概要、及びSwiftで強化学習をどのように実装できるのか、そして、AlphaGoで注目を浴びた深層強化学習とは何か、について解説します。

採択
2018/08/31 16:00〜
Track C
iOSエンジニアに聞いて欲しいトーク(30分)

フォントと組版の30分入門

S_Shimotori_pub S_Shimotori

フォントや組版について気にしたことはありますか?
奥深く興味深い世界ですが、そのぶん難しい用語や規則がたくさん。間違えるとこわーい人にツッコミを入れられてしまうかも!
本セッションでは、日頃TextKitと親しくしている皆様、技術同人誌に興味のある皆様を対象に、基礎とちょっとした雑学を学びます。

採択
2018/08/31 16:00〜
Track D
iOSエンジニアに聞いて欲しいトーク(30分)

iOSエンジニアが知るべきProgressive Web Apps開発のエッセンス

laiso laiso

PWA - Progressive Web Apps はウェブサイトのショートカットをホーム画面に追加するだけの仕組みではありません。
技術・市場の側面からPWAムーブメントの全容を理解し、適切な活用法を知るとともに。
最新ブラウザAPIを使ったプレゼンテーションパターンやJavaScriptとフロントエンドエコシステムをフル活用した「モダンなUI開発」のためのプログラミング環境が持つ可能性についてお話しします。

採択
2018/08/31 16:50〜
Track A
レギュラートーク(30分)

差分アルゴリズムの原理について

horita_yuya horita-yuya

TableView, CollectionViewの部分更新の為に、RxDataSources, IGListKitなど、多くのライブラリが開発されて来ました。
それらの内部では、効率的な差分検出のために差分アルゴリズムが使われています。作る側はもちろん、使う側もその原理について理解しておくことは重要です。
今回、Myers, Heckelの2種類の差分アルゴリズムについて解説させて頂きます。

採択
2018/08/31 16:50〜
Track B
レギュラートーク(15分)

動画アプリをなめらかに動かす技術

dekatotoro Hato Yuji

近年、動画サービスが盛り上がりを見せています。
単に動画を再生するだけなら簡単ですが、なめらかなUI/UXの実現や複数動画再生の制御、エラーハンドリングなど
実際のサービスでは考慮すべきことが多々あります。
iOSでAVPlayerを使った動画再生の知見についてお話したいと思います。

採択
2018/08/31 16:50〜
Track C
レギュラートーク(30分)

Swiftの型システムに入門する - lib/Semaの歩き方

ukitaka_ ukitaka

Swiftの型システムを実装するSemaモジュールはswiftcの中でも1番巨大で複雑ですが、普段お世話になっているTypeCheckerの動きがわかるようになったらSwiftへの理解が一歩深まりそうですし、なにより型の話って楽しいですよね!!

このトークではSemaの実装をチョット読めるようになることを目標に、Swiftの型システムがもつ特徴を「型システム入門」や実際の実装を参考にしながら簡単に解説します。

採択
2018/08/31 16:50〜
Track D
レギュラートーク(15分)

tvOSアプリUIの勘所

tokorom 所友太

tvOSアプリはUIKitを利用してiOSアプリと同じ感覚で実装できます。ただ、実際に実装していくとフォーカスの考え方など、tvOSアプリ独自の概念を考慮しつつUI設計を進めていかならければならないことがわかってきます。そのあたり、実際に業務としてtvOSアプリを作りながら得られた知見を、WWDC 2018で発表されたtvOS 12で加わったTVUIKitなどを絡めて紹介できればと思います。