dynamic frameworks tips

23
Dynamic frameworks 0ps @ikesyo 関西モバイルアプリ研究会 #9, 2015)12)22 Tue #関モバ

Upload: syo-ikeda

Post on 18-Jan-2017

862 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Dynamic frameworks tips

Dynamic(frameworks(0ps@ikesyo

関西モバイルアプリ研究会!#9,!2015)12)22!Tue

#関モバ

Page 2: Dynamic frameworks tips

@ikesyo

!ikesyo_nnid

いけしょー/池田翔京都でフリーランスのiOSエンジニア(時々Android)しています

フリュー㈱のモバイル開発のチームにジョイン中。

Page 4: Dynamic frameworks tips

try!%Swi)2016.3.2~2016.3.4

東京・渋谷

Page 5: Dynamic frameworks tips
Page 6: Dynamic frameworks tips

Today's(Topics1. Nested(frameworks?

2. Dynamic(Frameworks(and(app(launch(<me

Page 7: Dynamic frameworks tips

Nested&frameworks?

Page 8: Dynamic frameworks tips

Nested&frameworks• Foo.framework/Frameworks/Bar.framework

• How0to0add0framework0with0inner0framework0in0an0app070Issue0#688070Carthage/Carthage

• Nested0Frameworks?070Issue0#844070Carthage/Carthage

Page 9: Dynamic frameworks tips

Nested&frameworks&can&be&used?

Page 10: Dynamic frameworks tips

Nested&frameworks&can&be&used?• OS$Xでは使えるが、iOSでは実質的に使えない。

• iTCのバリデーションで蹴られる。!

• Framework$inside$embedded$framework$6$Issue$#3440$6$CocoaPods/CocoaPods

• [TargetIntegrator]$Only$embed$applicaGon$and$unit$test$bundle$targets$by$mrackwitz$6$Pull$Request$#3489$6$CocoaPods/CocoaPods

Page 11: Dynamic frameworks tips

フレームワークをフレームワークに埋め込まず、アプリレベルでリンク、埋め込みをしましょう。

Page 12: Dynamic frameworks tips

Dynamic(frameworks(andapp#launch#)me

Page 13: Dynamic frameworks tips

• Dynamic)frameworks(=Dynamic)libraries)のロードでアプリの起動に時間が掛かる。⌚

• App)launch)9me)increased);)Issue)#586);)artsy/eigen

• stepanhruda/dyldDimageDloadingDperformance

• johnno1962/Accelerator

Page 14: Dynamic frameworks tips
Page 15: Dynamic frameworks tips

Dynamic(frameworksのロード時間• アプリ起動時の環境変数に2つの値をセットする。

• DYLD_PRINT_APIS

• DYLD_PRINT_STATISTICS

Page 16: Dynamic frameworks tips
Page 17: Dynamic frameworks tips

Sta$cally(linked(Swi/(object(files!❗

Page 18: Dynamic frameworks tips

Sta$cally(linked(Swi/(object(files!❗• stepanhruda/dyld/image/loading/performance

• johnno1962/Accelerator

• App<launch<=me<increased<><Issue<#586<><artsy/eigen

• SwiEのオブジェクト(.oファイル)は静的リンクできる<❗

• OTHER_LDFLAGSに-filelistでオブジェクトファイルのリストを指定する。

• .frameworkをリンクしなくなるので、バンドルのリソースは使えない(NSBundle.bundleForClassは使えない)

• 静的ライブラリー(.aファイル)が作れるわけではなさそう。

Page 19: Dynamic frameworks tips

Sta$cally(linked(Swi/(object(files!❗The$workaround$I$talked$about$above$has$now$officially$passed$App$Store$review!

—"@stepanhruda

Page 20: Dynamic frameworks tips
Page 21: Dynamic frameworks tips

❗!To!be!careful!for!❗❗!micro!frameworks!❗

Page 22: Dynamic frameworks tips

!!Happy%frameworking!!!!

Page 23: Dynamic frameworks tips

Thank&you❗"