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
モバイルアプリ_開発スピード向上Tips.pdf
Search
SatoshiN
May 29, 2018
0
20
モバイルアプリ_開発スピード向上Tips.pdf
SatoshiN
May 29, 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
iOS_DC_2018_参加レポート.pdf
satoshin303
0
23
量子コンピュータ_の仕組みとQ_.pdf
satoshin303
0
160
Featured
See All Featured
KATA
mclloyd
27
13k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
4
99
Making Projects Easy
brettharned
114
5.8k
RailsConf 2023
tenderlove
28
840
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Done Done
chrislema
181
16k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Web Components: a chance to create the future
zenorocha
310
42k
The Cult of Friendly URLs
andyhume
76
6k
Teambox: Starting and Learning
jrom
131
8.7k
Transcript
モバイルアプリ 開発スピード向上Tips (開発寄り) 2018 / 05 / 29
さらに 良質で高速な開発が求められる時代
自己紹介 佐藤慎 (さとしん) twitter @satoshin2071 github https://github.com/SatoshiN303 iOS (ObjC・Swift) /
Ruby DeepHouse, TechHouse, Nu Soul, Jazz
開発スピードアップのTipsをおさらいしてみる
※ ほぼ iOS 主体で話します
Level 0 iOS シミュレータの起動
前回のビルドを利用して シミュレータを起動する ⌘ + Ctl + R バグの現象確認などに
Level 1 Xcode ビルド設定最適化
ビルド時間が長い…
対処案 Xcodeの設定で ビルド時間を短く
Build Active Architecture Only を Debug : YES 最適なアーキテクチャでのみビルド
Optimization Level + Other Swift Flags (モジュール内の全体最適化を行いつつ、コード自体のCompileへ の最適化は無効化する) → 差分Buildは遅くなるが、Clean
Buildが大幅に早くなる → cocoapods や carthage 更新での clean 時に有利
その他 最適化 Tips が 以下にまとまっています • Build時間改善 • Xcodeのビルド待ちで消耗してたので見直したら50% 以上削減できた話
• iOSプロジェクトのビルドを高速化する
Level 2 UI 修正確認の高速化
修正したらシミュレータ立ち上げて画面遷移して… UI を確認するまでに時間が掛かる
解決案 • Playgroundドリブンな開発 • Injection ドリブンな開発
Playground ドリブンな開発 PlaygroundのLiveView に ViewController を 読み込ませてシミュレータ代わりに
Injection ⌘+S で シミュレータを更新
比較検証 Playground Driven Development • 設定: Playgroudの追加, import 等 •
ViewのFramework化が必要 • Playground.liveViewで更新 (遅め?) • Storyboard での更新は 再Build の必要有 Injection • 設定: Macアプリをインストール • injection()メソッドを 追加する必要あり • ⌘ + R で更新 • Storyboard での更新は 再Build の必要有 UI を コードで実装する際に Injection 使うと早そう
参考リンク • Injection • Playground Driven Development
Level 3 WebAPI 結合の高速化
◯◯の実装をしたい ◯◯ API のレスポンスを jsonファイルで下さい WebAPI 同時開発の初期によくある光景 json出力しました。 (一式渡される)
結合テストまで遠い API修正の度に発生 (やりとりコスト⤴) 結合テスト時のコスト⤴⤴
解決案 API仕様書ドリブンな 開発フローにする
None
None
サーバー / クライアントのコードを生成 (デモ) swagger-api/swagger-codegen $ swagger-codegen generate -l {LanguageName}
-i hoge.yml -o build/output/
API仕様書ドリブンで開発 (TopDown形式) 仕様書からサーバーサ イドの実装雛形を生成 仕様書から モックサーバー 生成 エンティティ APIクライアント生成
稼働しているAPIをswagger化 (BottomUp形式)
メリット - 結合テストエラー時の 原因の特定が早くなる - 差分管理が容易
デメリット - OpenAPI の理解が必要 - yml の肥大化を防ぐ手間
参考リンク • swagger-codegen から眺める Swift4 • OAI/OpenAPI-Specification • SwaggerでRESTful APIの管理を楽にする
• 似たようなツール • API BluePrint
まとめ スピードを向上させて 時間を掛けて開発したい箇所の比率を上げていきましょう Swift-Project-Template