Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOS_DC_2018_参加レポート.pdf
Search
SatoshiN
September 04, 2018
0
23
iOS_DC_2018_参加レポート.pdf
SatoshiN
September 04, 2018
Tweet
Share
More Decks by SatoshiN
See All by SatoshiN
開発スピード向上Tipsその2.pdf
satoshin303
0
45
担当しているiOSアプリを全部作り直す開発中に_いろいろ半自動化した事_簡易版.pdf
satoshin303
0
65
秘伝のタレ.pdf
satoshin303
0
23
GitHub小技集.pdf
satoshin303
0
26
量子コンピュータ_の仕組みとQ_.pdf
satoshin303
0
160
モバイルアプリ_開発スピード向上Tips.pdf
satoshin303
0
20
Featured
See All Featured
BBQ
matthewcrist
84
9.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
167
48k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
RailsConf 2023
tenderlove
28
840
Scaling GitHub
holman
458
140k
Art, The Web, and Tiny UX
lynnandtonic
295
20k
VelocityConf: Rendering Performance Case Studies
addyosmani
324
23k
How STYLIGHT went responsive
nonsquared
94
5.1k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Transcript
iOS DC 2018 参加レポート
会場 早稲田大学理工 キャンパス 63号館
会場の様子
オープニング スポンサー紹介
会場案内
観客の投票でベストトーク賞を決める 1位 MicroViewControllerで無限にスケールするiOS開発 2位 iOS アプリの開発速度を70%高速化したデバッ グ ノウハウ 3位 Depth
in Depth
まとめ資料リンク集 iOSDC2018 セッション資料まとめ Togetter
比較的簡単に 導入できそうなセッション
Haptic(触覚) Feedback による効果的な マイクロインタラクション • iOS で 何かの動作を行った際に 「ブッ」 となるやつの実装例
• Human Interface Guideline でも 乱用はしないようにと記載 • 以下の 3 種類を 適材適所で使うと 最近のアプリっぽくなる • Notification 「 Success, Warning, Failure 」 • Impact 「 Light, Medium, Heavy 」 • Selection 「 selection 」
宣言的 UICollectionView • 複数のセルを利用する UICollectionView を 可読性高く実装するための tips • 単純な画面でもメソッドの中で相当
switch する必要を回避する • Android の Epoxy を参考にした。
詳解Fastfile • 巨大な Fastfile を 避けるための Tips • Fastfile に集約させないために
Appfile, Gymfile, Scanfile などで分割するといい • 通常開発 =>autosign CI ・配布・リリース =>manual を buildconfig でそれぞれ設定 するといい • Fastlane のデバッグで 「専用のブランチに push して ログ出力して … 」などを行ってい る場合は ローカル で走らせて pry 使うと捗る
Depth in Depth • iOS12 から使える PortraitMatte で深度からマスクを簡単にとれる (1. 深度データが入ってる静止画
& 人が写ってる場合のみ利用可能 ) (2. 前面カメラからだけではなく、背面カメラからも取得できる ) • iOS11 までで深度から綺麗なマスク取ろうとすると三手間くらい 掛かるが実装可能。境界は多少ギザギザしてしまう。 詳細記事 Portrait Matte で背景分離/セグメンテーション デプス(深度)を iOS で扱う方法を網羅したサンプルコード集 「 iOS-Depth-Sampler 」を公開しました
ARKit Maniacs • 建物程度の広さで ARWorldMap を利用して永続化可能か?の実験 → ビルいけた。データサイズが問題? → 50
〜 150MBMB の範囲では relocalize で現在地点を見つける 0.01s くらい • EnvironmentTextureing → .automatic でよさそう • 平面をみつけてからの Tips → 平面を検知しつづけるので一度検知したら画面タップ等で 検知を止める機構いれるとユーザーのストレスすくないよね
LIFULL HOME'S「かざして検索」リリースの裏側 • CoreML + Vision + ARKit を実際のプロダクトでリリースした際の Tips
• 実際のプロダクション環境でリリースする際の問題 ( 学習モデルをダウンロード , モデル容量は CoreMLTools で落とす , Vision の fps 制御 ) • 学習モデルはサーバーからダウンロードなので比較的容易な機能強化
先進的な事例のセッション
MicroViewControllerで無限にスケールするiOS開発 • ChildViewController + StackView を利用して UI の部品を UIView ではなく
UIViewController で 実装する • VC なので 部品毎に ライフサイクル持てるため 開発スピード UP • Storyboard でなく XIB で レイアウトを行う (xib 使って初期化にすると ViewController も generics 使えるようになる等 ) • プロトコルを 3 つ定義して VC 同士を疎結合に サンプルコード https://github.com/mercari/Mew
iOSエンジニアの為のgrpc-swift入門 • grpc (google の rpc 通信プロトコル ) • 同じ立ち位置としては
REST だったり GraphQL とか • リクエストとレスポンスが定義した型で包まれるため REST の問題点を解消できる • ただ protbuff でやりとりするため デバッグが辛い • TCP コネクションを使い回すことになるのでロードバランサー動かない
iOS × GraphQLの嬉しみとつらみ • エラーハンドリング辛い • 発行 Query によっては N+1
問題の対応が辛い • クエリの一部成功、一部失敗が起きうるのが辛い • 404でもstatuscodeが200で返ってくるのが辛い
補足 REST と GraphQL
個人的に気になった セッション
Swiftの生みの親によるasync/await for Swiftを徹底 解説し、新しい非同期処理の手法を理解する
所感 • AR や機械学習 は 飛び道具の時代が終わり一般的なものにシフトしつつある • アーキテクチャー や Rx
とか 設計手法は出揃った感 • HapticFeedback や 3DTouch などマイクロインタラクションは 重要な箇所で • Swift5 の async/await は 雰囲気 Rx の代替 になりそうでインパクト大 • grpc や GraphQL の ツラミやデバッグツールが出たら一気に普及しそう