Submit Search
Upload
Swift Library
•
1 like
•
659 views
Kosuke Usami
Follow
Published May 15, 2015 https://speakerdeck.com/usamik26/swift-library フェンリル ランチタイム勉強会 発表資料
Read less
Read more
Software
Report
Share
Report
Share
1 of 25
Download now
Download to read offline
Recommended
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
Daisuke Kasuya
Rezni Alati Od Tvrdog Materijala Oslojeni Aluminijum Oksidom
Rezni Alati Od Tvrdog Materijala Oslojeni Aluminijum Oksidom
Daniel Denny Petrovic
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C code
Chiharu Nameki
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
Mitsuhito Ishino
Swift入門
Swift入門
エンジニア勉強会 エスキュービズム
Vagrantで即席クラウドストレージ
Vagrantで即席クラウドストレージ
Yoshimi Tominaga
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
Tomoki Hasegawa
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発!
Koji Shiraishi
Recommended
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
Daisuke Kasuya
Rezni Alati Od Tvrdog Materijala Oslojeni Aluminijum Oksidom
Rezni Alati Od Tvrdog Materijala Oslojeni Aluminijum Oksidom
Daniel Denny Petrovic
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C code
Chiharu Nameki
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
Mitsuhito Ishino
Swift入門
Swift入門
エンジニア勉強会 エスキュービズム
Vagrantで即席クラウドストレージ
Vagrantで即席クラウドストレージ
Yoshimi Tominaga
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
Tomoki Hasegawa
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発!
Koji Shiraishi
OpenStack Object Storage; Overview
OpenStack Object Storage; Overview
irix_jp
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Tomoharu ASAMI
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Kazuhiro Sera
OWASPのドキュメントやツールを知ろう
OWASPのドキュメントやツールを知ろう
Yuichi Hattori
楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)
Kanako Kobayashi
Svgアニメーションを実装してみよう 20150207
Svgアニメーションを実装してみよう 20150207
Kanako Kobayashi
javascript を Xcode でテスト
javascript を Xcode でテスト
Yoichiro Sakurai
Java/Androidセキュアコーディング
Java/Androidセキュアコーディング
Masaki Kubo
Scala界隈の近況
Scala界隈の近況
takezoe
OWASP Projects
OWASP Projects
Takanori Nakanowatari
SwiftUIのライブコーディングするとxcodeが◯回落ちる
SwiftUIのライブコーディングするとxcodeが◯回落ちる
Kaname Noto
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
Tomoki Hasegawa
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
Yoichiro Sakurai
Asakusaソースコードリーディング #4 – Asakusa Test Driver
Asakusaソースコードリーディング #4 – Asakusa Test Driver
apirakun
Open modeler
Open modeler
Yoshiki Izumi
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
irix_jp
Wwdc2015 ios9あれこれ
Wwdc2015 ios9あれこれ
akihiro uehara
Swift 1.2からSwift 2への移行 #cocoa_kansai
Swift 1.2からSwift 2への移行 #cocoa_kansai
Syo Ikeda
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
tak-nakamura
SnapKit
SnapKit
Kosuke Usami
View 系ライブラリに関する悩み
View 系ライブラリに関する悩み
Kosuke Usami
More Related Content
Similar to Swift Library
OpenStack Object Storage; Overview
OpenStack Object Storage; Overview
irix_jp
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Tomoharu ASAMI
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Kazuhiro Sera
OWASPのドキュメントやツールを知ろう
OWASPのドキュメントやツールを知ろう
Yuichi Hattori
楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)
Kanako Kobayashi
Svgアニメーションを実装してみよう 20150207
Svgアニメーションを実装してみよう 20150207
Kanako Kobayashi
javascript を Xcode でテスト
javascript を Xcode でテスト
Yoichiro Sakurai
Java/Androidセキュアコーディング
Java/Androidセキュアコーディング
Masaki Kubo
Scala界隈の近況
Scala界隈の近況
takezoe
OWASP Projects
OWASP Projects
Takanori Nakanowatari
SwiftUIのライブコーディングするとxcodeが◯回落ちる
SwiftUIのライブコーディングするとxcodeが◯回落ちる
Kaname Noto
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
Tomoki Hasegawa
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
Yoichiro Sakurai
Asakusaソースコードリーディング #4 – Asakusa Test Driver
Asakusaソースコードリーディング #4 – Asakusa Test Driver
apirakun
Open modeler
Open modeler
Yoshiki Izumi
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
irix_jp
Wwdc2015 ios9あれこれ
Wwdc2015 ios9あれこれ
akihiro uehara
Swift 1.2からSwift 2への移行 #cocoa_kansai
Swift 1.2からSwift 2への移行 #cocoa_kansai
Syo Ikeda
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
tak-nakamura
Similar to Swift Library
(20)
OpenStack Object Storage; Overview
OpenStack Object Storage; Overview
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Scalaでのプログラム開発
Scalaでのプログラム開発
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
OWASPのドキュメントやツールを知ろう
OWASPのドキュメントやツールを知ろう
楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)
Svgアニメーションを実装してみよう 20150207
Svgアニメーションを実装してみよう 20150207
javascript を Xcode でテスト
javascript を Xcode でテスト
Java/Androidセキュアコーディング
Java/Androidセキュアコーディング
Scala界隈の近況
Scala界隈の近況
OWASP Projects
OWASP Projects
SwiftUIのライブコーディングするとxcodeが◯回落ちる
SwiftUIのライブコーディングするとxcodeが◯回落ちる
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
Asakusaソースコードリーディング #4 – Asakusa Test Driver
Asakusaソースコードリーディング #4 – Asakusa Test Driver
Open modeler
Open modeler
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
Wwdc2015 ios9あれこれ
Wwdc2015 ios9あれこれ
Swift 1.2からSwift 2への移行 #cocoa_kansai
Swift 1.2からSwift 2への移行 #cocoa_kansai
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
More from Kosuke Usami
SnapKit
SnapKit
Kosuke Usami
View 系ライブラリに関する悩み
View 系ライブラリに関する悩み
Kosuke Usami
RxSwift
RxSwift
Kosuke Usami
Auto Layout Tips
Auto Layout Tips
Kosuke Usami
RxSwift x APIKit
RxSwift x APIKit
Kosuke Usami
RxSwift x Realm
RxSwift x Realm
Kosuke Usami
RxSwift
RxSwift
Kosuke Usami
Eddystone Beacon
Eddystone Beacon
Kosuke Usami
Xamarin で Apple Watch アプリを作る
Xamarin で Apple Watch アプリを作る
Kosuke Usami
iBeacon Applications
iBeacon Applications
Kosuke Usami
APIKit
APIKit
Kosuke Usami
JXUG Conference 2 West
JXUG Conference 2 West
Kosuke Usami
すごいHaskell読書会
すごいHaskell読書会
Kosuke Usami
Xamarin.iOS
Xamarin.iOS
Kosuke Usami
CotEditor Script
CotEditor Script
Kosuke Usami
Affine Transform
Affine Transform
Kosuke Usami
Semantic Versioning
Semantic Versioning
Kosuke Usami
Mac アプリの Retina 対応
Mac アプリの Retina 対応
Kosuke Usami
Mountain Lion Sharing Service
Mountain Lion Sharing Service
Kosuke Usami
OS X LionのVersions対応
OS X LionのVersions対応
Kosuke Usami
More from Kosuke Usami
(20)
SnapKit
SnapKit
View 系ライブラリに関する悩み
View 系ライブラリに関する悩み
RxSwift
RxSwift
Auto Layout Tips
Auto Layout Tips
RxSwift x APIKit
RxSwift x APIKit
RxSwift x Realm
RxSwift x Realm
RxSwift
RxSwift
Eddystone Beacon
Eddystone Beacon
Xamarin で Apple Watch アプリを作る
Xamarin で Apple Watch アプリを作る
iBeacon Applications
iBeacon Applications
APIKit
APIKit
JXUG Conference 2 West
JXUG Conference 2 West
すごいHaskell読書会
すごいHaskell読書会
Xamarin.iOS
Xamarin.iOS
CotEditor Script
CotEditor Script
Affine Transform
Affine Transform
Semantic Versioning
Semantic Versioning
Mac アプリの Retina 対応
Mac アプリの Retina 対応
Mountain Lion Sharing Service
Mountain Lion Sharing Service
OS X LionのVersions対応
OS X LionのVersions対応
Swift Library
1.
Swi$%のライブラリの話
2.
3.
Swi$%の歩み • 2014/06(:(Swi-((WWDC(2014) • 2014/09(:(Swi-(1.0((Xcode(6.0) •
2014/10(:(Swi-(1.1((Xcode(6.1) • 2015/04(:(Swi-(1.2((Xcode(6.3) • 2015/06(:(Swi-(?.?((WWDC(2015(?)
4.
Swi$%の特徴 • Modern • Designed,for,Safety
5.
Modern • タプル、Struct、Enum • クロージャ、ジェネリクス •
関数型プログラミング
6.
Designed(for(Safety • var(型推論、暗黙的型変換はしない) • let(一度代入したら変更できない) •
型安全(Array/Dic.onary1内の値の型指定) • Op.onal(nil1の取り扱い)
7.
Swi$%のライブラリ
8.
Objec&ve(C*のライブラリ? • Bridging(Header • CocoaPods(は自動で対応してくれる •
しかし、Swi3(らしさは失われる • 型安全でない • 無意味な(Op6onal( • 他に代替がない場合の手段としては有益
9.
Swi$%ネイティブのライブラリ • できるだけ"Swi&"ネイティブのものを選びたい • Objec,ve.C"定番ライブラリはだいたい同様の"Swi&"版がある •
Swi&"ならではのものも少しずつ出てきている
10.
Alamofire
11.
Alamofire • AFNetworking.の.Swi0.版みたいな立ち位置 Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo":
"bar"]) .response { (request, response, data, error) in println(response) println(error) }
12.
APIKit
13.
APIKit • Swi%&らしさを打ち出したネットワーク通信ライブラリ let request
= GitHub.SearchRepositories(query: "APIKit", sort: .Stars) GitHub.sendRequest(request) { response in switch response { case .Success(let box): // SearchRepositories クラスが定めるレスポンス型 println(box.value) case .Failure(let box): // NSError 型 println(box.value) } }
14.
Result
15.
Result • さきほどの"APIKit"が内部で使っている enum Result<T,
E> { case Success(Box<T>) case Failure(Box<E>) } result = someFunc() // Result<String, NSError> を返す関数 switch result { case .Success(let box): // box.value: String case .Failure(let box): // box.value: NSError }
16.
補足:Op#onal(再考 • Op$onal:成功/失敗の意味づけ enum Optional<T>
{ case Some(T) case None } • Result(は(nil((None)(側にエラー値を持たせたもの • (Haskell(でいえば、Op4onal(は(Maybe(モナド、Result(は( Either(モナド)
17.
Swi$yJSON
18.
Swi$yJSON • ないとき let JSONObject:
AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) if let statusesArray = JSONObject as? [AnyObject], let status = statusesArray[0] as? [String: AnyObject], let user = status["user"] as? [String: AnyObject], let userName = user["name"] as? String { // userName を得た } • あるとき let json = JSON(data: dataFromNetworking) if let userName = json[0]["user"]["name"].string { // userName を得た }
19.
ObjectMapper
20.
ObjectMapper • Mantle(が(Swi,(で使えないとお嘆きの方へ struct Temperature:
Mappable { var celcius: Double? var fahrenheit: Double? init(){} init?(_ map: Map) { mapping(map) } mutating func mapping(map: Map) { celcius <- map["celcius"] fahrenheit <- map["fahrenheit"] } }
21.
SnapKit
22.
SnapKit • AutoLayout)記述ライブラリ)Masonry)の)Swi1)版 let padding
= UIEdgeInsetsMake(10, 10, 10, 10) view1.snp_makeConstraints { make in make.top.equalTo(superview.snp_top).with.offset(padding.top) make.left.equalTo(superview.snp_left).with.offset(padding.left) make.bottom.equalTo(superview.snp_bottom).with.offset(-padding.bottom) make.right.equalTo(superview.snp_right).with.offset(-padding.right) }
23.
その他
24.
その他 • RealmSwi* • ReachabilitySwi* •
KeychainAccess • PromiseKit • Typhoon • Reac9veCocoa<(3.0)
25.
おわりに • Swi%&ネイティブのライブラリを使おう • だいぶ増えてきた •
ただし、まだ&beta&版なものも多いので継続的なウォッチが 必要
Download now