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
26
iOS_DC_2018_参加レポート.pdf
SatoshiN
September 04, 2018
Tweet
Share
More Decks by SatoshiN
See All by SatoshiN
開発スピード向上Tipsその2.pdf
satoshin303
0
50
担当しているiOSアプリを全部作り直す開発中に_いろいろ半自動化した事_簡易版.pdf
satoshin303
0
70
秘伝のタレ.pdf
satoshin303
0
26
GitHub小技集.pdf
satoshin303
0
29
量子コンピュータ_の仕組みとQ_.pdf
satoshin303
0
200
モバイルアプリ_開発スピード向上Tips.pdf
satoshin303
0
24
Featured
See All Featured
Embracing the Ebb and Flow
colly
87
4.8k
How to train your dragon (web standard)
notwaldorf
96
6.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Music & Morning Musume
bryan
46
6.8k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Designing Experiences People Love
moore
142
24k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
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 の ツラミやデバッグツールが出たら一気に普及しそう