Dynamic frameworks tips

883 views

Published on

関西モバイルアプリ研究会 #9での発表スライドです。

Published in: Engineering
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
883
On SlideShare
0
From Embeds
0
Number of Embeds
181
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dynamic frameworks tips

  1. 1. Dynamic(frameworks(0ps @ikesyo 関西モバイルアプリ研究会!#9,!2015)12)22!Tue #関モバ
  2. 2. @ikesyo !ikesyo_nnid いけしょー/池田翔 京都でフリーランスのiOSエンジニア (時々Android)しています フリュー㈱のモバイル開発の チームにジョイン中。
  3. 3. ✨!Contribu*ons!✨ • Himotoki • Carthage • Reac0veCocoa • APIKit • Result • AMScrollingNavbar
  4. 4. try!%Swi)2016.3.2∼2016.3.4 東京・渋谷
  5. 5. Today's(Topics 1. Nested(frameworks? 2. Dynamic(Frameworks(and(app(launch(<me
  6. 6. Nested&frameworks?
  7. 7. Nested&frameworks • Foo.framework/Frameworks/Bar.framework • How0to0add0framework0with0inner0framework0in0an0app070Issue0 #688070Carthage/Carthage • Nested0Frameworks?070Issue0#844070Carthage/Carthage
  8. 8. Nested&frameworks&can&be&used?
  9. 9. 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
  10. 10. フレームワークをフレームワークに埋め込まず、 アプリレベルでリンク、埋め込みをしましょう。
  11. 11. Dynamic(frameworks(and app#launch#)me
  12. 12. • Dynamic)frameworks(=Dynamic)libraries)のロードでアプリの起 動に時間が掛かる。⌚ • App)launch)9me)increased);)Issue)#586);)artsy/eigen • stepanhruda/dyldDimageDloadingDperformance • johnno1962/Accelerator
  13. 13. Dynamic(frameworksのロード時間 • アプリ起動時の環境変数に2つの値をセットする。 • DYLD_PRINT_APIS • DYLD_PRINT_STATISTICS
  14. 14. Sta$cally(linked(Swi/(object(files!❗
  15. 15. 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ファイル)が作れるわけではなさそう。
  16. 16. Sta$cally(linked(Swi/(object(files!❗ The$workaround$I$talked$about$above$has$ now$officially$passed$App$Store$review! —"@stepanhruda
  17. 17. ❗!To!be!careful!for!❗ ❗!micro!frameworks!❗
  18. 18. !!Happy%frameworking!!!!
  19. 19. Thank&you❗"

×