iOSDC 2017 前夜祭 参加メモ

iOSDC 2017 前夜祭の参加メモです。

SiriKit and Me

SiriKitについて

  • 対応しているアプリ
    • 全国タクシーとUberでタクシーを呼び出せる
    • LINEでメッセージが送れる
    • OpenTableでレストランを予約できる
  • Siriを使えば目の見えないユーザに対してもサービスを提供できる。
  • HomePodの発売も控えている(今のところアプリの発表はされていない)

SiriKitの実装について

  • SiriKitはフレームワークではなくIntentsとIntents UIフレームワークで実装する
  • SiriKitはAppExtensionの一種
  • iOS11では23種類のAppExtensionがある
  • AppExtensionはHostAppと一緒にリリースされるが、プロセスは別
  • iOSではメモリ空間がプロセスごとに制限されている
  • HostAppとの情報共有はアプリ間で共通で使えるFile StorageのAppGroupを利用する
  • Siwikitの処理にはタイムアウト制限がある
  • ネットワーク処理は厳しいのでキャッシュを使う必要がある
  • Sirikitはエラー情報の取得が難しい。成功、失敗しか返さない。
  • エラーの情報はSirikitのフレームワークのログを見て確認する
  • SiriKit更新が早い。マイナーバージョンアップで破壊的な変更やUIの変更がある。
  • 英語では正しく動くけど日本語では動かないということよくある
  • SiriKitは実装量は少ないが、デバックが大変

Objective-C++を使ってMRCで快適に開発する

Swaggerで始めるAPI定義管理とコードジェネレート

発表スライド

  • なぜAPI定義を明文化するか
  • サーバ、クライアントでOptionalなどの認識を合わせられる
  • Swaggerはコードジェネレートも用意されている
  • コードをジェネレート、設計とコードの乖離を防止する
  • Swift, Kotlin Javaにも対応している

Swiftのコードジェネレート

  • Swift4絶賛対応中
  • JSONパースはCodableで実装
  • API ClientはAlamofireがベース
  • RxSwiftとも連携可能
  • CocoaPodsライブラリとして出力できる

節子、それViewControllerやない…、FatViewControllerや…。

発表資料
togetter

  • なぜViewControllerの責務分けが注目されるのか
  • ViewControllerがiOS開発の重要な機能を多く持っている
  • それゆえに多くの機能が実装される
  • Fatはコード量ではなく責務が多いことが問題
  • いかにして責務わけを実現するか。本日はMVPを紹介
  • Presenterにおける描画処理をInterfaceとして定義
  • ViewControllerがInterfaceを実装