はじめてのiOSアプリ開発 
Swift対応版
デジタルサーカス(株)長谷川智希
長谷川智希
とも き
@tomzoh

とむぞう
開発系趣味
その他趣味
iOSアプリ開発, Webサイト開発
レンタルカートレース, 電子工作(mbed), …
TOMZOH
お仕事 スマホアプリ受託開発 Mgr
デジタルサーカス(株) 副団長CTO
デジタルサーカス(株)
・ Webサイト受託開発
・ スマホアプリ受託開発



・ 自社サービス
(PHP, Drupal, CakePHP)
(iOS, Android)



(http://appbuilder.jp)
Twitter: @tomzoh
デジタルサーカス(株)
・ Webサイト受託開発
・ スマホアプリ受託開発



・ 自社サービス
(PHP, Drupal, CakePHP)
(iOS, Android)



(http://appbuilder.jp)
Twitter: @tomzoh
Twitter: @tomzoh
Twitter: @tomzoh
今日のテーマ:
はじめてのiOSアプリ開発
Swift対応版
http://www.amazon.co.jp/dp/4798043656
iOSアプリ開発の要素
• 言語そのものの仕様、書き方。
• 配列、Optional…、非同期プログラミング。
• 言語の仕様変更、機能追加。
Swift / Objective-C
• テーブル(一覧)、ボタン、ラベル、画像…。
• iOSのバージョンによる使い方の変化。
Cocoa Touch
• アプリとしてのXcode。ファイル、プロジェクト、画像…
• UI設計の変遷。コードから、.xib、.storyboard、SizeClass…
Xcode
ネット vs 書籍
• ネット
• 速報性が高い
• 断片的
• 信頼度のばらつきが大きい
• 古い情報も残り続ける
• 書籍
• ある時点のスナップショットとして機能する
• 信頼度のばらつきが小さい
基礎知識識と環境整備
Xcodeの使い⽅方、UI開発の仕⽅方
Swift ⾔言語仕様
画⾯面部品(ビュー)の概要
(Cocoa Touch)
⼀一覧表⽰示、ライブラリ、APIからの
情報取得。画⾯面遷移。
⾼高度度な機能: データ保存、
GPS、 タブバー …
⾼高度度な機能: 写真撮影、
アプリ連携、
AppStore公開
Xcode
画面の実装
• 画面の実装にはStoryboardを使う。
• プログラムから画面を作る
• xibを使う
• Storyboardでできることは出来るだけStoryboardでやる。
• プログラムからやxibは上級者になってから。
• 古い情報ではプログラムからやxibを使う例が多いので注意。
• ビューの大きさ制御にはAutoLayoutを使う。
• 「Use Auto Layoutチェックボックスをオフにします」
• 「新しい方法の使い方が分からないから古い方法を使う」は幸
せにならない。
OSSライブラリ
• 原則としてOSSライブラリは使った方が良い。
• 自分が作ったものより良い実装は世の中に存在する。
• オレオレライブラリをあまり育てない方が良い。
• OSSライブラリのカスタマイズはしない。
• しなければならない状態になるのであればOSSライブラリの使
用を再考する。
• 万人に有効なカスタマイズならまた話は別。フィードバックし
てあげよう。
• 要件定義でどのOSSライブラリを使うか決めておき、要件をそ
れに合う様にコントロールする。それができないなら使わない。
ライブラリ管理
• ライブラリ管理にはCocoaPodsを使う。
• CocoaPodsを使わないメリットは無い。
• Swiftのライブラリはファイル or CocoaPodsで。
• iOS8以降サポートで良ければCocoaPodsを使う。
• iOS7サポートの必要があれば.swiftをファイルとしてプロジェ
クトに追加する。
• 書籍で紹介した方法はCocoaPodsがSwiftライブラリをサポー
トする前の手順。現状はお勧めしない。
Swift / Objective-C
Swift vsObjective-C
• どちらを使うべきか
• Swiftだけ使うことをお勧めする。
• Objective-Cのイケてないところが解決されている。
• とは言っても…
• Objective-Cベースのライブラリにも優秀なライブラリは多く
存在するので、それは活かしていきたい。
• Objective-Cのことも少し知る必要がある。
• …と言うことはSwiftの登場によってプログラマラクになってな
くね?
• 知識的にはそうかもしれないけど、確実にiOSアプリを作る
手間は減っている。
スマホプログラム
• 「スマホならでは」のプログラム
• リソース(CPUパワー/メモリ)の制限が大きい。
• アプリ・画面のライフサイクルが複雑。
• 動作中、バックグラウンド遷移、PUSH通知…
• nilへのアクセスでアプリが落ちる。
• 非同期処理。
• 単純に上から下に順番に実行されない。
Swift
• Swiftの勘所
• Optionalに尽きる。
• Optionalの理解をしないままにSwiftを書くと大惨事確定。
• 正しくない理解のもとに書かれた情報が多いので要注意。
時間ありそうなら
Optionalのお話
Cocoa Touch
Cocoa Touch
• 「iOS開発」のコアは?
• Cocoa Touchの理解。
• これを理解しないとiOSアプリは作れない。
• まず理解すべきは?
• UIKit
• UILabel(文字表示), UIButton(ボタン), UIImage(画像)
• UIView(汎用部品)
• UITableView(一覧)
• UINavigationController(画面履歴。「戻る」ボタンとか。)
• 学習方法は?
• 使い方はObjective-CでもSwiftでも同じ。
• ネットやAppleのドキュメントを読もう。
まとめ
• おすすめのiOSアプリ開発手法。
• 画面開発はStoryboardを使う。
• ライブラリは積極的に使う。
• ライブラリ管理はCocoaPodsを使う。
• Swiftを使う。
• Optionalを正しく理解する。
• 情報のスナップショットとしての書籍をうまく使ってく
ださい。
ありがとうございました。
@tomzoh
デジタルサーカス(株)

はじめてのiOSアプリ開発 Swift対応版