SlideShare a Scribd company logo
iOS 8 / Swift 概要
iOS8 / Swiftエンジニア勉強会
2014/10/18(Sat.)
Ryosuke Hiramatsu
Session 1
自己紹介
・平松 亮介 @himara2
・iOSアプリ開発歴 2年
・ヤフー株式会社 新卒3年目
・現在は新規アプリをSwiftで書いてます
Swift案件
iOS 8, Swift の概要をお話しします。
アジェンダ
・本日までの経緯
・Swift概要
・iOS 8概要
本日までの経緯
WWDC 2014
2014/06/02
・iOS 8 - リファレンスが公開
・Swift - iBooksが公開
Xcode GM 登場
WWDC
iPhone 6 / 6 plus 発表
iOS 8リリース
2014/06/02
09/09
09/16
09/19 iPhone 6 / 6 plus 発売
10/18 本日
その頃ヤフーでは…
「iOS 8が正式にリリースされたら勉強会したいね」
社内ChatやLTで積極的に情報交換
実現!
iOS 8 概要
・見た目の変更が大きかった
・UIの対応
・複数画面サイズへの対応
・アプリ間連携やWidgetなど、
 +αの機能でUX向上
アプリの対応
新しいAPI・機能
ひとつずつ簡単に説明
App Extension
・アプリ間連携の仕組み
・ウィジェットやカスタムキーボードなど
・全部で7種類
・Share
・Action
・Today
・Photo Extension
・Document Provider
・Custom Keyboard
・(Finder)
Share
TwitterやFacebookの特権だった部分が開放された
Share
TwitterやFacebookの特権だった部分が開放された
Action
別アプリのViewControllerを内部で表示できる
Today (Widget)
・通知センターのToday領域
・自分の好きなViewを置ける
・一等地であり激戦区
・ジャンル問わず、使い勝手が良い
App Extension
Photo Editing Custom KeyboardDocument Provider
キーボード領域のカスタマイズiCloudなどストレージと連携「写真」アプリとの連携
App Extension
Share Action Today(Widget)
Photo Editing Document Provider Custom Keyboard
Session 4.
「App Extension」で詳しく!
Interactive Notification
・Remote Notification の拡張機能
・通知センターやロック画面から直接アクションできる
CloudKit
・Apple製のMBaaS
・1PB assets
 10PB db が無料
HomeKit
・家電の操作
HealthKit
・Healthアプリと連携
・身長や体重などの
 データと連携
・SiriをIFに指示
XXXKit
CloudKit
・Apple製のMBaaS
・1PB assets
 10PB db が無料
HomeKit
・家電の操作
HealthKit
・Healthアプリと連携
・身長や体重などの
 データと連携
・SiriをIFに指示
Session5.
「オトナのHomeKit」で詳しく!
XXXKit
WKWebView
・UIWebViewの強化版
・Safariと同じエンジン(Nitro)を使え、パフォーマンスが向上
・読み込みのprogressや閲覧historyのプロパティが追加
・WebViewアプリには嬉しい変更
iTunesConnet
・UIが大きく変化!
・メニューが大きなアイコンで表現
・日本語に対応
・(慣れるまでは時間が必要)
・iTunes Connectに統合された
・内部テスター(身内)と外部テスター(一般)
・配布には制限があります
・Buildをアップロード → 「テスターに配布」の項目が増えてる
Test Flight
・http://www.slideshare.net/IchiroYamamoto/test-flight20140918
・テスター向け配信サポートサービス
iTunes Connect / AppStore
・App Previews
・App Bundle
・Analytics
・有料アプリのみ。10個まで
・30秒まで
・流入経路やリテンションの解析
・スクショの部分に動画を1つ
・複数アプリのセット販売
More
・iOS 7.1 to iOS 8.0 API Differences
https://developer.apple.com/library/ios/releasenotes/General/iOS80APIDiffs/
Swift 概要
Swiftとは
・Appleの発表した新しいプログラミング言語
・OS X / iOS アプリ開発に使える
・Swiftでつくったアプリも申請可能
・「Swiftはあなたを映し出す鏡」
・色々な言語に似ていて、学習障壁が低い
Swiftとは
・Objective-C時代の不満
・Closures
・=> Swiftの登場!!
・Namespace
・Generics
・Multiple return type
etc..
Swiftの文法
[self someMethod:@"Hello" index:2];
Objective-C
someMethod("Hello", 5)
Swift
Swiftの文法
@がない!    [ ]がない!    ;がない!
var array: [String] = ["a", "b", "c"]
Swift の Array
var dict: [String: Int] = ["a":1, "b":2]
Swift の Dictionary
Array と Dictionary
すっきりシンプル
クロージャ
func addTowNumbers(numA:Int , numB:Int) -> Int {
return numA + numB
}
let result = addTowNumbers(1, 3)
Swift の Closure
int (^addTowNumbers)(int, int) = ^(int numA,int numB) {
return numA + numB;
};
result = addTowNumbers(1, 3);
Objective-C の blocks
これなら覚えられる
関数
// 関数を定義
func plusAndminus(a:Int) -> (Int, Int) {
return (a - 1, a + 1)
}
!
plusAndminus(7) // (6, 8)
複数の返り値をもつ関数
新しい開発者に馴染みやすく、
既存のiOSデベロッパーにとっても使いやすい。
所感
Objective-C から Swift へ
・シンプルに書ける
・堅牢に書ける
Swiftはこれまでより
シンプルに書ける
・記述がシンプル
var myName = “#ios8yahoo" // 型推論
someMethod(myName, "B")
・単純にファイル数が減る
シンプルに書ける
・文字列の操作などが簡単
// Swift
var appendStr = "Hello, " + "World"
println("appendStr is (appendStr)")
// Objective-Cでは [NSString stringByAppend…]
// とする必要があった
堅牢に書ける
・オプショナル値
・nilの扱いがObjective-Cより厳しく
・静的解析で確認できる、コンパイルエラーとできる
var myName :String
myName = nil // error!
!
!
var myAddress :String?
myAddress = nil // OK
someMethod(myAddress, "B") // error!
someMethod(myAddress!, "B") // OK
堅牢に書ける
・アクセス修飾子
・public / private / internal の追加
・override 宣言も必要
func publicHello() {
// ...
}
private func privateHello() {
// ...
}
internal func internalHello() {
// ...
}
Generics
// 何でも入れれた
NSArray *array = @[@"A", @"B", @3];
Objective-C
// 型を指定できる
var array: [String] = ["a", "b", "c"]
var array: [String] = ["yahoo", "ios", 8] // コンパイルエラー!
Swift
3週間ほどガッツリ書いてますが、
個人の感想
- だいぶシンプルに書ける
- くせもなく馴染みやすい
ぼくはすきです。
- しっかり書けて安心感がある
Objective-CとSwiftの共存
・共存できます
・Swift->Obj-C
・Obj-C -> Swift
import MyObject
MyProject-Bridging-Header.h
// 使いたい箇所で
let obj = MyObject()
// 使いたいクラスで
#import "MyProject-Swift.h"
!
MySwiftObject *swiftObj = [MySwiftObject new];
Swift Playground
・REPL環境がXcode 6に標準搭載されている
・Appleのインタラクティブに学べるドキュメント
・試したり勉強するのに最適
https://developer.apple.com/library/mac/documentation/Swift/Conceptual/
Swift_Programming_Language/GuidedTour.html
実際にSwiftを使ったコーディングは
「6. Swiftで学ぶ複素数」でご覧ください!
この後の予定
16:05 「iOS 8 / Swift 概要」
16:20 「既存アプリのiOS 8対応」
16:40 「Xcode 6での新機能」
17:10 「App Extension」
17:30 「オトナのHomeKit」
17:40 「虚数は作れる!Swiftで学ぶ複素数」
----- 休憩10分間 -----
18:00 「シークレットセッション」
----- 休憩20分間 -----
18:30 LTセッション
さいごに
Objective-C も大好きです!
おわり

More Related Content

PDF
Xcodeを便利に使って爆速開発する #yxcm
PDF
SwiftでSioriを開発した体験記
PDF
Xcode 6の新機能
PDF
既存アプリのiOS8対応 #ios8yahoo
PDF
これからはじめる SwiftPlayground入門
PDF
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
PDF
Swift 3 その基本ルールを眺める #cswift
PDF
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
Xcodeを便利に使って爆速開発する #yxcm
SwiftでSioriを開発した体験記
Xcode 6の新機能
既存アプリのiOS8対応 #ios8yahoo
これからはじめる SwiftPlayground入門
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
Swift 3 その基本ルールを眺める #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift

What's hot (20)

PDF
iOS 8 Widget ~ 導入から Tips まで
PDF
Swift勉強会
PDF
Xcode 7 の新しいところ #cm_ios9
PDF
Objective-Cプログラマのためのswift導入法
PDF
NSNotification in Swift #cocoa_kansai
PDF
可変値変数 var を極力避けることを模索するための事前知識 #cswift
PDF
Swift ドキュメントコメント
PDF
Swift 構造体の時代 #yidev
PDF
Study Swift
PDF
Swift入門
PDF
プロトコル拡張の話? #WWDC21cafe
PDF
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
PDF
Swift を振り返ってみよう #cswift
PPTX
【Swift】 それ、enumとstructでやってみましょう!!
PDF
iOS豆知識ver0.0.5
PDF
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
PDF
Xcode グループとフォルダー参照 #yhios
PDF
lazy var の特徴を知る #cocoa_kansai #cswift
ZIP
LT発表資料
PDF
プロトコル指向に想う世界観 #__swift__
iOS 8 Widget ~ 導入から Tips まで
Swift勉強会
Xcode 7 の新しいところ #cm_ios9
Objective-Cプログラマのためのswift導入法
NSNotification in Swift #cocoa_kansai
可変値変数 var を極力避けることを模索するための事前知識 #cswift
Swift ドキュメントコメント
Swift 構造体の時代 #yidev
Study Swift
Swift入門
プロトコル拡張の話? #WWDC21cafe
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift を振り返ってみよう #cswift
【Swift】 それ、enumとstructでやってみましょう!!
iOS豆知識ver0.0.5
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
Xcode グループとフォルダー参照 #yhios
lazy var の特徴を知る #cocoa_kansai #cswift
LT発表資料
プロトコル指向に想う世界観 #__swift__
Ad

Similar to iOS 8/Swift 概要 #ios8yahoo (20)

PDF
Swift事情2014夏 ~ Swift入門 beta6対応
PPTX
勉強会用Swift授業2018-0126
PDF
Swiftアプリ制作入門 かんたんシューティングゲーム
PDF
Swiftの魅力と可能性 2
PDF
20140822 Swift 勉強会 vol.3 - はぢめての Swift
PDF
勉強会資料ースイフト入門ー
PDF
What's new Swift3
PDF
Wolcome to swift
PPTX
iPhoneアプリ開発の歩き方〜Swift編〜
PDF
Swift入門おさらい
PDF
Swiftビギナーズ勉強会 第1回 @Co-Edo
PDF
Objective-CからSwiftへの移行講座
PDF
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
PDF
アドベント2015ios基礎
PDF
楽しいSwift!クラスと構造体を知る:)
PDF
ほんわかSwift勉強資料
PDF
Swift歴2ヶ月でアプリを8本リリースしてみた話
PDF
SwiftによるiOS開発再入門
PDF
Swiftのアプリ開発でハマったこと
PDF
Swift使ってみた (2014/07/23)
Swift事情2014夏 ~ Swift入門 beta6対応
勉強会用Swift授業2018-0126
Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftの魅力と可能性 2
20140822 Swift 勉強会 vol.3 - はぢめての Swift
勉強会資料ースイフト入門ー
What's new Swift3
Wolcome to swift
iPhoneアプリ開発の歩き方〜Swift編〜
Swift入門おさらい
Swiftビギナーズ勉強会 第1回 @Co-Edo
Objective-CからSwiftへの移行講座
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
アドベント2015ios基礎
楽しいSwift!クラスと構造体を知る:)
ほんわかSwift勉強資料
Swift歴2ヶ月でアプリを8本リリースしてみた話
SwiftによるiOS開発再入門
Swiftのアプリ開発でハマったこと
Swift使ってみた (2014/07/23)
Ad

More from Hiramatsu Ryosuke (10)

PDF
6秒動画アプリ Vineの作り方
PDF
iOSアプリ開発にほんのり役に立つtips集
PDF
5分でつまむEffective Objective-C
PDF
iOSアプリの特急申請 - Apple Expedited Review Request
PDF
emoSound by たこ部 | OpenHackDay2
PDF
AppSwitcherでアプリをユーザーファーストに
PDF
Bitbucket Pull Request 練習帳
KEY
iPhoneアプリ開発を楽に楽しくするサイトまとめ
PDF
6秒動画アプリ Vineの作り方
iOSアプリ開発にほんのり役に立つtips集
5分でつまむEffective Objective-C
iOSアプリの特急申請 - Apple Expedited Review Request
emoSound by たこ部 | OpenHackDay2
AppSwitcherでアプリをユーザーファーストに
Bitbucket Pull Request 練習帳
iPhoneアプリ開発を楽に楽しくするサイトまとめ

iOS 8/Swift 概要 #ios8yahoo