Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
モバイルアプリ_開発スピード向上Tips.pdf
Search
SatoshiN
May 29, 2018
29
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
モバイルアプリ_開発スピード向上Tips.pdf
SatoshiN
May 29, 2018
More Decks by SatoshiN
See All by SatoshiN
開発スピード向上Tipsその2.pdf
satoshin303
0
55
担当しているiOSアプリを全部作り直す開発中に_いろいろ半自動化した事_簡易版.pdf
satoshin303
0
73
秘伝のタレ.pdf
satoshin303
0
31
GitHub小技集.pdf
satoshin303
0
34
iOS_DC_2018_参加レポート.pdf
satoshin303
0
30
量子コンピュータ_の仕組みとQ_.pdf
satoshin303
0
220
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1369
210k
The agentic SEO stack - context over prompts
schlessera
0
940
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
570
エンジニアに許された特別な時間の終わり
watany
109
250k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
What's in a price? How to price your products and services
michaelherold
247
13k
Claude Code のすすめ
schroneko
67
230k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
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