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

More Related Content

What's hot

ROS JAPAN Users Group Meetup 04
ROS JAPAN Users Group Meetup 04ROS JAPAN Users Group Meetup 04
ROS JAPAN Users Group Meetup 04
Daiki Maekawa
 
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
leverages_event
 

What's hot (20)

Embedded framework and so on
Embedded framework and so onEmbedded framework and so on
Embedded framework and so on
 
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべてApple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
 
Potatotips3 hoshi gaki_akira_iwaya
Potatotips3 hoshi gaki_akira_iwayaPotatotips3 hoshi gaki_akira_iwaya
Potatotips3 hoshi gaki_akira_iwaya
 
マルチデバイスに対応するためのAuto layout
マルチデバイスに対応するためのAuto layoutマルチデバイスに対応するためのAuto layout
マルチデバイスに対応するためのAuto layout
 
KITEMATIC便利そうだよ
KITEMATIC便利そうだよKITEMATIC便利そうだよ
KITEMATIC便利そうだよ
 
高専カンファレンス in 岐阜 基調講演2 @gabu
高専カンファレンス in 岐阜 基調講演2 @gabu高専カンファレンス in 岐阜 基調講演2 @gabu
高専カンファレンス in 岐阜 基調講演2 @gabu
 
Flex入門
Flex入門Flex入門
Flex入門
 
JSR353をGroovyで賢く使う
JSR353をGroovyで賢く使うJSR353をGroovyで賢く使う
JSR353をGroovyで賢く使う
 
やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っているやはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている
 
ROS JAPAN Users Group Meetup 04
ROS JAPAN Users Group Meetup 04ROS JAPAN Users Group Meetup 04
ROS JAPAN Users Group Meetup 04
 
React way at_eight
React way at_eightReact way at_eight
React way at_eight
 
少しずつ手厚くして不具合や仕様漏れを防ぐために
少しずつ手厚くして不具合や仕様漏れを防ぐために少しずつ手厚くして不具合や仕様漏れを防ぐために
少しずつ手厚くして不具合や仕様漏れを防ぐために
 
ReactNative + Redux + NativeBaseでつくるサンプル実装をのぞく
ReactNative + Redux + NativeBaseでつくるサンプル実装をのぞくReactNative + Redux + NativeBaseでつくるサンプル実装をのぞく
ReactNative + Redux + NativeBaseでつくるサンプル実装をのぞく
 
Swiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-EdoSwiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-Edo
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
 
スキスキIonic
スキスキIonicスキスキIonic
スキスキIonic
 
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
 
はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
 
Apple watch対応アプリのポイントや基本実装・連携tips
Apple watch対応アプリのポイントや基本実装・連携tipsApple watch対応アプリのポイントや基本実装・連携tips
Apple watch対応アプリのポイントや基本実装・連携tips
 
Swift3.0に向けて enumerateを使い始めよう
Swift3.0に向けて enumerateを使い始めようSwift3.0に向けて enumerateを使い始めよう
Swift3.0に向けて enumerateを使い始めよう
 

Viewers also liked

Viewers also liked (11)

Auto Layout の小技
Auto Layout の小技Auto Layout の小技
Auto Layout の小技
 
var RAC3 = ReactiveCocoa + Swift
var RAC3 = ReactiveCocoa + Swiftvar RAC3 = ReactiveCocoa + Swift
var RAC3 = ReactiveCocoa + Swift
 
Audio QueueでSin波再生
Audio QueueでSin波再生Audio QueueでSin波再生
Audio QueueでSin波再生
 
SwiftLint
SwiftLintSwiftLint
SwiftLint
 
iOS 6 のAuto Rotation
iOS 6 のAuto RotationiOS 6 のAuto Rotation
iOS 6 のAuto Rotation
 
CAKeyframeAnimation
CAKeyframeAnimationCAKeyframeAnimation
CAKeyframeAnimation
 
iOSのFileProtection
iOSのFileProtectioniOSのFileProtection
iOSのFileProtection
 
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
 
How to handle bitcode
How to handle bitcodeHow to handle bitcode
How to handle bitcode
 
1画面から始めるStoryboard
1画面から始めるStoryboard1画面から始めるStoryboard
1画面から始めるStoryboard
 
Protocol-Oriented MVVM (extended edition)
Protocol-Oriented MVVM (extended edition)Protocol-Oriented MVVM (extended edition)
Protocol-Oriented MVVM (extended edition)
 

Similar to Dynamic frameworks tips

ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
Daiki Maekawa
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
Masakazu Muraoka
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
Yoichiro Sakurai
 

Similar to Dynamic frameworks tips (20)

Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
 
とあるサイボウズのAndroidエンジニアのお仕事
とあるサイボウズのAndroidエンジニアのお仕事とあるサイボウズのAndroidエンジニアのお仕事
とあるサイボウズのAndroidエンジニアのお仕事
 
LODEO開発ストーリー
LODEO開発ストーリーLODEO開発ストーリー
LODEO開発ストーリー
 
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
 
OpenCV on mobile
OpenCV on mobileOpenCV on mobile
OpenCV on mobile
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
Html5 and Graphics
Html5 and GraphicsHtml5 and Graphics
Html5 and Graphics
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 
Next.js Storybook Driven Development
Next.js Storybook Driven DevelopmentNext.js Storybook Driven Development
Next.js Storybook Driven Development
 
PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料
 
実践!RPA のテクノロジーを活用した自動テスト
実践!RPA のテクノロジーを活用した自動テスト実践!RPA のテクノロジーを活用した自動テスト
実践!RPA のテクノロジーを活用した自動テスト
 
IoTあるじゃん北海道支部勉強会#1
IoTあるじゃん北海道支部勉強会#1IoTあるじゃん北海道支部勉強会#1
IoTあるじゃん北海道支部勉強会#1
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
 
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
 
kintoneの大規模フロントエンド開発とツール
kintoneの大規模フロントエンド開発とツールkintoneの大規模フロントエンド開発とツール
kintoneの大規模フロントエンド開発とツール
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術
 
Jasst15 webjasst
Jasst15 webjasstJasst15 webjasst
Jasst15 webjasst
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 

Dynamic frameworks tips