Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
toyship
1,828 views
Embedded framework and so on
Embedded Framework with ObjC and Swift Swift namespace
Read more
3
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 48
2
/ 48
3
/ 48
4
/ 48
5
/ 48
6
/ 48
7
/ 48
8
/ 48
9
/ 48
10
/ 48
11
/ 48
12
/ 48
13
/ 48
14
/ 48
15
/ 48
16
/ 48
17
/ 48
18
/ 48
19
/ 48
20
/ 48
21
/ 48
22
/ 48
23
/ 48
24
/ 48
25
/ 48
26
/ 48
27
/ 48
28
/ 48
29
/ 48
30
/ 48
31
/ 48
32
/ 48
33
/ 48
34
/ 48
35
/ 48
36
/ 48
37
/ 48
38
/ 48
39
/ 48
40
/ 48
41
/ 48
42
/ 48
43
/ 48
44
/ 48
45
/ 48
46
/ 48
47
/ 48
48
/ 48
More Related Content
PDF
Swift Protocol and Selector
by
toyship
PDF
iOSでのFramework導入のおさらい #関モバ
by
Syo Ikeda
PDF
Xcode and iTC submission topics
by
Syo Ikeda
PDF
Swift勉強会
by
Nagamine Hiromasa
PDF
ようこそ! Swift Playgroundsへ
by
KinkumaDesign
PDF
みんなでおばけになる #mlkcca
by
Hikari Fukasawa
PDF
SwiftでAndroidアプリ書けるってよ
by
Syo Ikeda
PDF
最近のSpringFramework2013 #jjug #jsug #SpringFramework
by
Toshiaki Maki
Swift Protocol and Selector
by
toyship
iOSでのFramework導入のおさらい #関モバ
by
Syo Ikeda
Xcode and iTC submission topics
by
Syo Ikeda
Swift勉強会
by
Nagamine Hiromasa
ようこそ! Swift Playgroundsへ
by
KinkumaDesign
みんなでおばけになる #mlkcca
by
Hikari Fukasawa
SwiftでAndroidアプリ書けるってよ
by
Syo Ikeda
最近のSpringFramework2013 #jjug #jsug #SpringFramework
by
Toshiaki Maki
What's hot
PDF
Spring Bootキャンプ @関ジャバ #kanjava_sbc
by
Toshiaki Maki
PDF
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
by
Kenichi Mukai
PDF
laravel x モバイルアプリ
by
Masaki Oshikawa
PDF
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
by
Masaru Gushiken
PDF
ObjectMapperでJSONマッピング
by
Syo Ikeda
PDF
Dynamic frameworks tips
by
Syo Ikeda
PDF
Laravel5を使って開発してみた
by
Takeo Noda
PDF
Java + React.jsでSever Side Rendering #reactjs_meetup
by
Toshiaki Maki
PDF
OpenShift のある生活
by
Yoshimasa Tanabe
PDF
Swift入門
by
聡 中川
PPTX
JavaScript使いのためのTypeScript実践入門
by
Shumpei Shiraishi
PDF
Apple watch対応アプリのポイントや基本実装・連携tips
by
Fumiya Sakai
PDF
Jsug spring bootコードリーディング 接触篇 a contact
by
tsukasa tamaru
PPTX
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
by
Shumpei Shiraishi
PDF
Lt 20150711
by
Tomoyuki Obi
PDF
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
by
Hirokazu Egashira
PDF
Swift 3 その基本ルールを眺める #cswift
by
Tomohiro Kumagai
PDF
Java web application testing
by
Tokuhiro Matsuno
PDF
behatエクステンションの作り方
by
Ryo Tomidokoro
PDF
Angular 4がやってくる!? 新機能ダイジェスト
by
Masahiko Asai
Spring Bootキャンプ @関ジャバ #kanjava_sbc
by
Toshiaki Maki
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
by
Kenichi Mukai
laravel x モバイルアプリ
by
Masaki Oshikawa
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
by
Masaru Gushiken
ObjectMapperでJSONマッピング
by
Syo Ikeda
Dynamic frameworks tips
by
Syo Ikeda
Laravel5を使って開発してみた
by
Takeo Noda
Java + React.jsでSever Side Rendering #reactjs_meetup
by
Toshiaki Maki
OpenShift のある生活
by
Yoshimasa Tanabe
Swift入門
by
聡 中川
JavaScript使いのためのTypeScript実践入門
by
Shumpei Shiraishi
Apple watch対応アプリのポイントや基本実装・連携tips
by
Fumiya Sakai
Jsug spring bootコードリーディング 接触篇 a contact
by
tsukasa tamaru
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
by
Shumpei Shiraishi
Lt 20150711
by
Tomoyuki Obi
AITCオープンラボ 第4回 IoT勉強会 〜 Pepper x IoT x Web 〜
by
Hirokazu Egashira
Swift 3 その基本ルールを眺める #cswift
by
Tomohiro Kumagai
Java web application testing
by
Tokuhiro Matsuno
behatエクステンションの作り方
by
Ryo Tomidokoro
Angular 4がやってくる!? 新機能ダイジェスト
by
Masahiko Asai
Similar to Embedded framework and so on
PDF
Study Swift
by
Akihiro Urushihara
PDF
Swift事情2014夏 ~ Swift入門 beta6対応
by
Tomoki Hasegawa
PDF
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 1: openFrameworks入門
by
Atsushi Tadokoro
PDF
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
by
Atsushi Tadokoro
PDF
Swiftのアプリ開発でハマったこと
by
yohei sugigami
PDF
メディア・アート II 第1回: ガイダンス openFrameworks入門
by
Atsushi Tadokoro
PDF
Swift入門おさらい
by
GMO TECH 株式会社
PPTX
iPhoneアプリ開発の歩き方〜Swift編〜
by
Yusuke SAITO
PDF
openFrameworks iOS 入門
by
Atsushi Tadokoro
PDF
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
by
Yoshito Tabuchi
PDF
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
by
irgaly
KEY
Objc lambda
by
matuura_core
PDF
オープンソースエコシステム #demodaytokyo
by
Shuichi Tsutsumi
PDF
iOS豆知識ver0.0.5
by
ppengotsu Name
PPTX
Xamarin.iOS/android+F#で作る関数型アプリ
by
Masuda Tomoaki
PDF
lazy var の特徴を知る #cocoa_kansai #cswift
by
Tomohiro Kumagai
PPTX
勉強会用Swift授業2018-0126
by
Akihiro Fujiwara
PDF
iPhoneとAndroidのアプリ開発最新潮流
by
Rakuten Group, Inc.
PDF
JXUG Conference 2 West
by
Kosuke Usami
PDF
iPhone develop for Beginner
by
Sachiko Kajishima
Study Swift
by
Akihiro Urushihara
Swift事情2014夏 ~ Swift入門 beta6対応
by
Tomoki Hasegawa
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 1: openFrameworks入門
by
Atsushi Tadokoro
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
by
Atsushi Tadokoro
Swiftのアプリ開発でハマったこと
by
yohei sugigami
メディア・アート II 第1回: ガイダンス openFrameworks入門
by
Atsushi Tadokoro
Swift入門おさらい
by
GMO TECH 株式会社
iPhoneアプリ開発の歩き方〜Swift編〜
by
Yusuke SAITO
openFrameworks iOS 入門
by
Atsushi Tadokoro
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
by
Yoshito Tabuchi
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
by
irgaly
Objc lambda
by
matuura_core
オープンソースエコシステム #demodaytokyo
by
Shuichi Tsutsumi
iOS豆知識ver0.0.5
by
ppengotsu Name
Xamarin.iOS/android+F#で作る関数型アプリ
by
Masuda Tomoaki
lazy var の特徴を知る #cocoa_kansai #cswift
by
Tomohiro Kumagai
勉強会用Swift授業2018-0126
by
Akihiro Fujiwara
iPhoneとAndroidのアプリ開発最新潮流
by
Rakuten Group, Inc.
JXUG Conference 2 West
by
Kosuke Usami
iPhone develop for Beginner
by
Sachiko Kajishima
More from toyship
PDF
Time for Xcode Behavior
by
toyship
PDF
Notifications in iOS10
by
toyship
PDF
Universal Link
by
toyship
PDF
Can we live in a pure Swift world?
by
toyship
PDF
What's new Swift3
by
toyship
PDF
Xcode7時代のアプリ配布
by
toyship
PDF
My first tvOS
by
toyship
PDF
3D touch for iOS
by
toyship
PDF
Contents blocker on iOS9
by
toyship
PDF
はじめてのWKInterfaceController
by
toyship
PDF
App extension for iOS
by
toyship
PDF
サーバーからiOSアプリを変更する
by
toyship
PDF
Xcode bot
by
toyship
PDF
AVSpeechSynthesizerとロケール
by
toyship
Time for Xcode Behavior
by
toyship
Notifications in iOS10
by
toyship
Universal Link
by
toyship
Can we live in a pure Swift world?
by
toyship
What's new Swift3
by
toyship
Xcode7時代のアプリ配布
by
toyship
My first tvOS
by
toyship
3D touch for iOS
by
toyship
Contents blocker on iOS9
by
toyship
はじめてのWKInterfaceController
by
toyship
App extension for iOS
by
toyship
サーバーからiOSアプリを変更する
by
toyship
Xcode bot
by
toyship
AVSpeechSynthesizerとロケール
by
toyship
Embedded framework and so on
1.
EMBEDDED FRAMEWORK AND SO
ON 2015/02/18 @TachibanaKaoru
2.
自己紹介 • @TachibanaKaoru • VOYAGE
GROUP で働く iOS エンジニアで す。 • Blog : http://www.toyship.org/
3.
EMBEDDED FRAMEWORKとは
4.
IOS8のAPP EXTENSIONで導入され た、複数のプロセスから利用できる 共有ライブラリ
5.
ただし、制限があります
6.
IOSではアプリ内サンドボックスでし か使えません。アプリAからアプリBの EMBEDDED FRAMEWORKは使えない
7.
APP EXTENSIONくらいでしか 使えない
8.
でもとりあえず
9.
どんな感じか見てみましょう
10.
まずはOBJCで。
11.
ホストアプリをOBJCで作成
12.
新規TARGETで「COCOA TOUCH FRAMEWORK」を追加
13.
こんな感じでEMBEDDED FRAMEWORKが追加されます
14.
ホストアプリに、共通ヘッダー をよみこめば、すぐ使える。 #import "ViewController.h" // Embedded
Frameworkの共通ヘッダー #import "weather.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Embedded Frameworkのクラス [[WTInformation sharedInstance] test]; }
15.
わりと簡単。
16.
でも、リアルプロジェクトに 導入しようとすると……
17.
……IOS7でビルドエラー!
18.
EMBEDDED FRAMEWORKは、APP EXTENSIONに伴って導入されたの で、IOS8からしか使えない
19.
IOS7対応のアプリでEMBEDDED FRAMWORKを使いたい
20.
でも、裏技があります。
21.
まずは、FRAMEWORKをリン クからはずしましょう。
22.
そして、そのFRAMEWORKを BUNDLEにいれます。
23.
そして、FRAMEWORKを実行 時によみだします。
24.
こんな感じ // for dlopen/dlclose #import
<dlfcn.h> @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Frameworkをロードする void *newframework = dlopen("./weather.framework/weather", RTLD_LAZY); // WTInformationクラスを作成 id loadedClass = [[NSClassFromString (@"WTInformation") alloc] init]; // メッセージを送る [loadedClass performSelector:@selector(logtoday:) withObject:nil withObject:nil]; }
25.
(え、これ審査にひっかかる んじゃないの?)
26.
大丈夫、公式ドキュメントに 書いてあります。
27.
ではSWIFTだとどうでしょう
28.
ホストアプリをSWIFTで作成
29.
新規TARGETで「COCOA TOUCH FRAMEWORK」を追加
30.
こんな感じでEMBEDDED FRAMEWORKが追加されます
31.
ライブラリ側にCATクラスを 作ってみる import Foundation public class
Cat{ public init(){ } public func meow(count: Int) -> String { println(" meow! (count)") return "meow (otheranimals version)" } }
32.
ライブラリをIMPORTすると、ホス トアプリからライブラリのアプリが 使えるようになります import otheranimals class ViewController:
UIViewController { override func viewDidLoad() { super.viewDidLoad() var cat1 : Cat = Cat() cat1.meow(3) }
33.
ここで唐突ですが
34.
SWIFTには NAMESPACEがあります
35.
やったー、これで AF*****とか TS*****とかPREFIXを書かなくてもよ くなるぞ!
36.
と思ったのもつかのま
37.
……でも NAMESPACEってど うやってつかうの?
38.
USING NAMESPACE とかないけど?
39.
実は、SWIFTのNAMESPACEは MODULE単位
40.
APPやEMBEDDED FRAMEWORKがMODULE
41.
SWIFTではEMBEDDED FRAMEWORK でNAMESPACEの分割ができる!
42.
ではちょっとNAMESPACEを 試してみましょう
43.
さきほど、ライブラリ側にCATクラス を作成しましたが、アプリ側にもCAT クラスを作成してみます。 import Foundation class Cat{
init(){ } func meow(count: Int) -> String { println(" にゃあ! (count)") return "meow (otheranimals version)" } }
44.
ホストアプリからよんでみる import otheranimals class ViewController:
UIViewController { override func viewDidLoad() { super.viewDidLoad() // App Version var cat1 : Cat = Cat() //ホストアプリのCatがよばれる cat1.meow(3) // Lib Version var cat2 : otheranimals.Cat = otheranimals.Cat() // ライブラリのCatがよばれる cat2.meow(5) } }
45.
NAMESPACEがあれば、同じアプ リ内でCATクラスが二つ使える!
46.
PREFIXをつけなくていい!
47.
まとめ • SwiftのEmbedded Frameworkいいかも。
48.
おまけ • Blogにもう少し詳しく書いてあるので、そち らもどうぞ。 • http://www.toyship.org/archives/2096 •
http://www.toyship.org/archives/2111 • http://www.toyship.org/archives/2099
Download