SlideShare a Scribd company logo
1 of 63
iPhoneアプリ開発 
の歩き方 
〜Swift編〜 
2014-9-16 
株式会社ジブンスタイル斉藤祐輔 
1
はじめに 
この資料は2014-9-16にCreek&River社で行ったセミナー、 
「プログラム未経験でもできる!iOSアニメーションUI入 
門〜新言語Swiftでスワイプアニメーションを作ってみよう 
〜」にて使用したスライドを、配布用に再編集したもので 
す。 
2
自己紹介 
斉藤祐輔 
株式会社ジブンスタイル代表 
o 社員一人ひとりがやりたいことを仕事にする会社 
o 五反田でプログラミング教育を軸とするIT企業 
略歴 
o ITコンサル3年 
o 創業〜受託開発/いろいろ模索2年 
o プログラミング教育2年 
3
本日は、 
皆さんが1 時間でSwiftマスターに! 
…なるための地図をお渡ししたいと思います 
プログラミングを覚えよう!という人が挫折をす 
る一番の理由 
4 
覚えることが多すぎる 
(=気になる/知りたくなることが多すぎる) 
• とりあえず「写経」って目隠しで自転車に乗って綱渡りしてる気分。。 
• 最低限知らないといけないことが何かがわからない 
• 入門書ならこれは知っとけ/これは知らなくていい、という言い切りが欲 
しい
本日は、 
皆さんが1 時間でSwiftマスターに! 
…なるための地図をお渡ししたいと思います 
5 
iPhoneアプリ開発の歩き方〜Swift編〜 
• 気になる知りたい欲求を最低限満たし 
• 目隠しを外します
今日のゴール 
このUIを実現するまでの 
道程を理解する 
6
もくじ 
1. Swiftトピックス 
o Swiftってどんな言語? 
o この文法だけは今日覚えときましょう 
2. アプリってどう動いてるの? 
o アプリが動くのに必要な登場人物を知る 
3. で、どう作るの? 
o Xcode(コーディング→ コンパイル→ ビルド) 
o 常連さんを知る(一見さんを見分ける) 
4. やりたいこと別、使うFramework 
5. UIを扱うには? 
7
Swiftトピックス 
8
Swiftトピックス 
• 関数型言語系機能 
o 定数宣言(Scala のval) 
o Optional型(Scala) 
o タプル(Scala) 
o クロージャ(JavaScript) 
o 高階関数(JavaScript) 
o 関数のカリー化(Scala) 
• オブジェクト指向系機能 
o ジェネリクス(JavaのArray<T>) 
• その他便利機能 
o nil結合演算子(JavaScriptの|| ) 
o lazy修飾子(Scala) 
o カスタム演算子 
9 
使わなくても 
アプリは作れます 
Java7やPHPよりは 
自由度が高い 
(=覚えることが多い) 
くらいのイメージでOK
Swiftトピックス 
• 関数型言語系機能 
o 定数宣言(Scala のval) 
o Optional型(Scala) 
o タプル(Scala) 
o クロージャ(JavaScript) 
o 高階関数(JavaScript) 
o 関数のカリー化(Scala) 
• オブジェクト指向系機能 
o ジェネリクス(JavaのArray<T>) 
• その他便利機能 
o nil結合演算子(JavaScriptの|| ) 
o lazy修飾子(Scala) 
o カスタム演算子 
10 
var animator: UIDynamicAnimator? 
attachmentBehavior = UIAttachmentBehavior(…) 
attachmentBehavior?.frequency = 0 
animator!.addBehavior(attachmentBehavior) 
!とか?とか検索できない!!
まず変数から 
• 数学を思い出して下さい 
• 変数x の値が変わることでy の値が変わるのでした 
• 概念的には変数は箱 
11
プログラミングでの変数 
• 箱の種類が豊富です 
• 何が入るのかを決めるための「データ型」があります 
var userName: String = ”斉藤祐輔” 
var x: Int = 5 
println(userName) 
12
定数を作る時はlet 
• var はVariable([名]: 変化するもの)の略 
• 定数を作る時は、let を使う 
• letで作った箱は、中身を変えることはできません 
13 
var x: Int = 5 
let y: Int = 10
何も入っていないを示すnil 
• 箱の中が空である状態 
• あると思って箱の中身を使おうと思うと実行時に予期せ 
ぬエラーが! 
14
Swiftでの変数の決まり 
• 必ず初期化を行うこと 
• 何もない、すなわちnil が入っているという状態はダメ 
15
Optional型 
• nilがOKなデータ型 
• userNameの中身は、 
o 何かしらの文字列が入っている 
o あるいはnil 
• 初期値として何も代入 
しなければ初期値はnil 
16 
var userName: String? = ”斉藤祐輔”
何が嬉しいの? 
空かどうかのチェックが実行時ではなく、実装時に可能 
17 
var userName: String? = ”斉藤祐輔” 
if let name = userName { 
// userNameに値がある場合 
println(name) 
} else { 
// userNameがnilの場合 
println(“userNameがnilです”) 
} 
安全な使い方
その他使い方 
18 
var userName: String? = ”斉藤祐輔” 
• 安全に中身を取り出す(Unwrapする) 
userName? 
• 中身がある場合は、中身を取り出し 
• 中身がない場合には、nilとなる 
• 強制的に中身を取り出す 
userName! 
• 中身がある場合には、中身を取り出し 
• 中身がない場合には、エラーとなる 
→ おそらく過渡期対応(Objective-Cとの互換性を 
保つため)なので、ポジティブに使うべきではない
ここまでのおさらい 
19 
コードに沢山でてくる?とか!を調べる時は 
「Optional型」で検索!
アプリってどう 
動いてるの? 
20
メモリ上でアプリは動く 
iOSのメモリ 
21
メモリを食うアプリがいると 
iOSのメモリ 
22 
アクティブでないアプリが 
OSによって終了させられる
アプリの中身は? 
23
アプリ毎に 
実装する部分 
Application(アプリ共通部の制御) 
Device(iPhoneやiPadの制御) 
24
アプリ毎の実装の中身は? 
25
View 
画面インタフェース 
ViewController 
26
ここまでのおさらい 
iOSのメモリ 
View 
ViewController 
Application 
Device 
27 
• アプリが動くのに必要な登場人物
で、どう作る 
の? 
28
Xcode 
• Swiftが動くのはXcodeの「6」 
• Xcode6はMac OS X Yosemiteでしか動きません 
• 「ios dev center」でググりましょう 
• 日本語版はありません→ あきらめましょう 
29
30
31
32
ツールバー 
ナビゲーション 
エリア 
エディタ 
エリア 
インスペクタ 
エリア 
ライブラリ 
エリア 
33
アプリ開発でやること 
• 実装 
o StoryboardでUI部品の配置 
o ソースファイルに動作をプログラミング 
• 各種画像の設定 
o アイコン 
o 起動時画像 
• ユニバーサル対応 
o どの大きさの端末でも動くように対応(Auto Layout) 
• 多言語対応 
o ベースは英語+ 日本語が一般的 
34
アプリ開発でやること 
• 実装 
o StoryboardでUI部品の配置 
o ソースファイルに動作をプログラミング 
• 各種画像の設定 
o アイコン 
o 起動時画像 
• ユニバーサル対応 
o どの大きさの端末でも動くように対応(Auto Layout) 
• 多言語対応 
o ベースは英語+ 日本語が一般的 
35 
完璧を求めなくて 
いいんです
実演 
• 画面のデザイン 
o Imageファイルを設置 
• デモプロジェクト 
o https://github.com/uskithub/SwiftUI 
36
View 
ViewController 
Application 
Device 
手の込んだことをしない限り 
いじりません 
37
View 
ViewController 
Application 
Device 
ここを主に実装します 
38
アプリの一生(ライフサイクル) 
39 
アプリ起動 
イベント 
ループ 
アプリ終了 
Application 
Applicationが 
イベントを 
待ってる状態 
イベントとは 
• ユーザが画面をタッチした 
• 電話が掛かってきた 
• 端末が横向きになった 
• ホームボタンが押された 
• 指定された時刻になった 
• サーバからPush通知が来た
Viewの一生(ライフサイクル) 
Application 40 
ViewControllerを生成 
ViewController 
Viewのロード 
View 
Viewの表示 
Viewの非表示 
Viewの破棄
UI部品をタッチ 
View 
ViewController 
Application 41
ジェスチャー操作 
ジェスチャー 
検出 
センサー 
View 
ViewController 
Application 42
デバイスを傾ける 
View 
ViewController 
Application 43
Homeボタンを押した 
View 
ViewController 
非表示 
Application 44
View 
ViewController 
Application 
Device 
45 
画面タッチのイベントを受け取って何かする場合 
→ ViewController.swift を実装 
上記以外のイベントを受け取って何かする場合 
→ AppDelegate.swift を実装
import UIKit 
classViewController: UIViewController { 
override func viewDidLoad() { 
super.viewDidLoad() 
// Do any additional setup after loading the view, typically from a nib. 
} 
override func didReceiveMemoryWarning() { 
super.didReceiveMemoryWarning() 
// Dispose of any resources that can be recreated. 
} 
} 
UIKitという名前の道具箱を 
使うよ、という指示 
46
import UIKit 
classViewController: UIViewController { 
override func viewDidLoad() { 
super.viewDidLoad() 
// Do any additional setup after loading the view, typically from a nib. 
} 
override func didReceiveMemoryWarning() { 
super.didReceiveMemoryWarning() 
// Dispose of any resources that can be recreated. 
} 
} 
道具箱の中のViewController の 
型紙を使って、新しい 
ViewController を作っている 
47
import UIKit 
classViewController: UIViewController { 
override func viewDidLoad() { 
super.viewDidLoad() 
// Do any additional setup after loading the view, typically from a nib. 
} 
override func didReceiveMemoryWarning() { 
super.didReceiveMemoryWarning() 
// Dispose of any resources that can be recreated. 
} 
} 
func ◯◯ は◯◯メソッドと 
呼び、処理のひと塊に名前 
を付けたもの 
48
import UIKit 
classViewController: UIViewController { 
override func viewDidLoad() { 
super.viewDidLoad() 
// Do any additional setup after loading the view, typically from a nib. 
} 
override func didReceiveMemoryWarning() { 
super.didReceiveMemoryWarning() 
// Dispose of any resources that can be recreated. 
} 
} 
viewDidLoadは、Viewが 
ロードされた後に呼ばれる 
処理を指示できるメソッド 
49
import UIKit 
classViewController: UIViewController { 
override func viewDidLoad() { 
super.viewDidLoad() 
// Do any additional setup after loading the view, typically from a nib. 
} 
override func didReceiveMemoryWarning() { 
super.didReceiveMemoryWarning() 
// Dispose of any resources that can be recreated. 
} 
} 
didReceiveMemoryWarningは 
「メモリが足んないよ」とOS 
から警告が来た時の処理を指 
示するためのメソッド 
50
import UIKit 
classViewController: UIViewController { 
override func viewDidLoad() { 
super.viewDidLoad() 
// Do any additional setup after loading the view, typically from a nib. 
} 
override func didReceiveMemoryWarning() { 
super.didReceiveMemoryWarning() 
// Dispose of any resources that can be recreated. 
} 
} 
super.メソッド名は、型紙 
で決まられた元々の処理を 
実行する、という指示 
51
ここまでのおさらい 
52 
• メモリ上でアプリは動く 
• アプリはDevice、Application、 
ViewController+Viewの集まりで構成され 
てる 
• Applicationがイベント(画面タッチした、 
デバイス傾いた、ホームボタン押された、 
etc…)を受け取って、デフォルト動作を 
呼んだり、ViewControllerに渡したりする 
• View上のUI部品の処理とかは開発者が 
ViewControllerにコードを書く 
• コードを書くために色々な道具箱があり、 
その中にある型紙を駆使して開発する
やりたいこと別、 
使うFramework 
53
道具箱の種類 
AddressBook UI 
CocoaTouchレイヤー 
GameKit MapKit 
Message UI 
UIKit 
AVKit Core Graphics 
Photos UI 
Mediaレイヤー 
CoreAudioKit Media Player 
SpriteKit 
SceneKit 
Quartz Core 
CloudKit 
CoreServicesレイヤー 
Core Data 
Core Location 
Core Telephony 
Foundation 
HealthKit 
HomeKit 
Accelerate 
Core Bluetooth 
External 
Accessory 
Social 
PushKit 
Twitter 
Local 
Authentication 
54 
iAd 
Network 
Extension 
Security CoreOSレイヤー
道具箱の種類 
AddressBook UI 
Message UI 
CocoaTouchレイヤー 
GameKit MapKit 
Photos UI 
Mediaレイヤー 
CoreServicesレイヤー 
CoreOSレイヤー 
UIKit 
AVKit Core Graphics 
CoreAudioKit Media Player 
SpriteKit 
SceneKit 
Quartz Core 
CloudKit 
Core Data 
Core Location 
Core Telephony 
Foundation 
HealthKit 
HomeKit 
Accelerate 
Core Bluetooth 
External 
Accessory 
Social 
PushKit 
Twitter 
Local 
Authentication 
55 
iAd 
Network 
Extension 
Security
UIを扱うには? 
56
道具箱の種類 
AddressBook UI 
Message UI 
CocoaTouchレイヤー 
GameKit MapKit 
Photos UI 
Mediaレイヤー 
CoreServicesレイヤー 
CoreOSレイヤー 
UIKit 
AVKit Core Graphics 
CoreAudioKit Media Player 
SpriteKit 
SceneKit 
Quartz Core 
CloudKit 
Core Data 
Core Location 
Core Telephony 
Foundation 
HealthKit 
HomeKit 
Accelerate 
Core Bluetooth 
External 
Accessory 
Social 
PushKit 
Twitter 
Local 
Authentication 
57 
iAd 
Network 
Extension 
Security
実践UIKit Dynamics 
UI部品を物理法則をシミュレートしてアニ 
メートさせる 
• AttachBehavior 
o 指定した点とバネで繋がれているようにする 
• SnapBehavior 
o 引っ張っても指定した箇所に戻るようにする 
• おまけ 
58
実演 
• コーディング 
o ジェスチャーリコグナイザーの設置 
o イベントハンドラーの記述 
59
まとめ 
60
アプリ開発に必要な知識 
① iPhoneアプリ開発の歩き方 
② Swiftの文法 
③ 道具箱(Framework)の種類と 
型紙(クラス)の使い方 
61 
あとは… 
自分の足で確かめよう!
最後に宣伝を… 
62
• 五反田で小中学生向けのプログラミング塾を開きます 
• 自分もこっそり一緒に学びたいというデザイナの方を絶 
賛募集中! 
• 興味のある方はこの後声掛けて下さい 
63 
一緒に働く仲間を 
大募集しています!

More Related Content

What's hot

UnityとBlenderハンズオン第7章
UnityとBlenderハンズオン第7章UnityとBlenderハンズオン第7章
UnityとBlenderハンズオン第7章yaju88
 
UnityとBlenderハンズオン第2章
UnityとBlenderハンズオン第2章UnityとBlenderハンズオン第2章
UnityとBlenderハンズオン第2章yaju88
 
UnityとBlenderハンズオン第9章
UnityとBlenderハンズオン第9章UnityとBlenderハンズオン第9章
UnityとBlenderハンズオン第9章yaju88
 
UnityとBlenderハンズオン第10章
UnityとBlenderハンズオン第10章UnityとBlenderハンズオン第10章
UnityとBlenderハンズオン第10章yaju88
 
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unity×HTMLで作るiPhone オンラインゲーム開発事例Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unity×HTMLで作るiPhone オンラインゲーム開発事例Kouji Hosoda
 
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahooもしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahooniwatako
 
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜Unity Technologies Japan K.K.
 
オープンソースで始めるAR/VR開発
オープンソースで始めるAR/VR開発オープンソースで始めるAR/VR開発
オープンソースで始めるAR/VR開発Takashi Yoshinaga
 
Unityの夕べ in Fukuoka
Unityの夕べ in FukuokaUnityの夕べ in Fukuoka
Unityの夕べ in FukuokaShinobu Izumi
 
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VRHTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VRTakashi Yoshinaga
 
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用までARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用までTakashi Yoshinaga
 
UnityとBlenderハンズオン第8章
UnityとBlenderハンズオン第8章UnityとBlenderハンズオン第8章
UnityとBlenderハンズオン第8章yaju88
 
Android カスタムROMの作り方
Android カスタムROMの作り方Android カスタムROMの作り方
Android カスタムROMの作り方Masahiro Hidaka
 
エンジニアカフェ1周年イベント:WebAR/VR開発入門
エンジニアカフェ1周年イベント:WebAR/VR開発入門エンジニアカフェ1周年イベント:WebAR/VR開発入門
エンジニアカフェ1周年イベント:WebAR/VR開発入門Takashi Yoshinaga
 
UnityとBlenderハンズオン第3章
 UnityとBlenderハンズオン第3章 UnityとBlenderハンズオン第3章
UnityとBlenderハンズオン第3章yaju88
 
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会Mori Tetsuya
 
個人的にお気に入りのVuforia公式サンプル #AR_Fukuoka
個人的にお気に入りのVuforia公式サンプル #AR_Fukuoka個人的にお気に入りのVuforia公式サンプル #AR_Fukuoka
個人的にお気に入りのVuforia公式サンプル #AR_FukuokaShinji Hayai
 

What's hot (20)

UnityとBlenderハンズオン第7章
UnityとBlenderハンズオン第7章UnityとBlenderハンズオン第7章
UnityとBlenderハンズオン第7章
 
UnityとBlenderハンズオン第2章
UnityとBlenderハンズオン第2章UnityとBlenderハンズオン第2章
UnityとBlenderハンズオン第2章
 
UnityとBlenderハンズオン第9章
UnityとBlenderハンズオン第9章UnityとBlenderハンズオン第9章
UnityとBlenderハンズオン第9章
 
UnityとBlenderハンズオン第10章
UnityとBlenderハンズオン第10章UnityとBlenderハンズオン第10章
UnityとBlenderハンズオン第10章
 
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unity×HTMLで作るiPhone オンラインゲーム開発事例Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unity×HTMLで作るiPhone オンラインゲーム開発事例
 
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahooもしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
 
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
 
OpenCV 3.0 on iOS
OpenCV 3.0 on iOSOpenCV 3.0 on iOS
OpenCV 3.0 on iOS
 
オープンソースで始めるAR/VR開発
オープンソースで始めるAR/VR開発オープンソースで始めるAR/VR開発
オープンソースで始めるAR/VR開発
 
Unityの夕べ in Fukuoka
Unityの夕べ in FukuokaUnityの夕べ in Fukuoka
Unityの夕べ in Fukuoka
 
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VRHTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
HTMLを書くだけで誰でも簡単!A-FrameではじめるWeb AR/VR
 
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用までARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
 
UnityとBlenderハンズオン第8章
UnityとBlenderハンズオン第8章UnityとBlenderハンズオン第8章
UnityとBlenderハンズオン第8章
 
Android カスタムROMの作り方
Android カスタムROMの作り方Android カスタムROMの作り方
Android カスタムROMの作り方
 
エンジニアカフェ1周年イベント:WebAR/VR開発入門
エンジニアカフェ1周年イベント:WebAR/VR開発入門エンジニアカフェ1周年イベント:WebAR/VR開発入門
エンジニアカフェ1周年イベント:WebAR/VR開発入門
 
Titanium勉強会
Titanium勉強会Titanium勉強会
Titanium勉強会
 
UnityとBlenderハンズオン第3章
 UnityとBlenderハンズオン第3章 UnityとBlenderハンズオン第3章
UnityとBlenderハンズオン第3章
 
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
 
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
 
個人的にお気に入りのVuforia公式サンプル #AR_Fukuoka
個人的にお気に入りのVuforia公式サンプル #AR_Fukuoka個人的にお気に入りのVuforia公式サンプル #AR_Fukuoka
個人的にお気に入りのVuforia公式サンプル #AR_Fukuoka
 

Similar to iPhoneアプリ開発の歩き方〜Swift編〜

iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 EastiOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 Eastirgaly
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストYoichiro Sakurai
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」techtalkdwango
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)Yoshiki Ushida
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法Naruto TAKAHASHI
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3codeal
 
Getting started with Handoff
Getting started with HandoffGetting started with Handoff
Getting started with HandoffYuichi Yoshida
 
Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Manato KAMEYA
 
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介Fumiya Sakai
 
Android起動周りのノウハウ
Android起動周りのノウハウAndroid起動周りのノウハウ
Android起動周りのノウハウchancelab
 
ようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへようこそ! Swift Playgroundsへ
ようこそ! Swift PlaygroundsへKinkumaDesign
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介Mori Shingo
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Takashi EGAWA
 
130329 perl casual_ruik
130329 perl casual_ruik130329 perl casual_ruik
130329 perl casual_ruikRui Kimura
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Yuki Higuchi
 

Similar to iPhoneアプリ開発の歩き方〜Swift編〜 (20)

iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 EastiOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
 
Css nite(2010.09.23)
Css nite(2010.09.23)Css nite(2010.09.23)
Css nite(2010.09.23)
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
 
Xamarin.Forms概要
Xamarin.Forms概要Xamarin.Forms概要
Xamarin.Forms概要
 
AndroidでDIxAOP
AndroidでDIxAOPAndroidでDIxAOP
AndroidでDIxAOP
 
0621 ndk game
0621 ndk game0621 ndk game
0621 ndk game
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3
 
Getting started with Handoff
Getting started with HandoffGetting started with Handoff
Getting started with Handoff
 
Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。
 
Android0422
Android0422Android0422
Android0422
 
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
 
Android起動周りのノウハウ
Android起動周りのノウハウAndroid起動周りのノウハウ
Android起動周りのノウハウ
 
ようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへ
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
 
130329 perl casual_ruik
130329 perl casual_ruik130329 perl casual_ruik
130329 perl casual_ruik
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 

iPhoneアプリ開発の歩き方〜Swift編〜

Editor's Notes

  1. https://developer.apple.com/library/prerelease/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007898-CH1-SW1 Cocoa Touch 10 Media 22 CoreServices 26 CoreOS 9 67
  2. https://developer.apple.com/library/prerelease/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007898-CH1-SW1 Cocoa Touch 10 Media 22 CoreServices 26 CoreOS 9 67
  3. https://developer.apple.com/library/prerelease/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007898-CH1-SW1