iPhoneアプリ開発講座 はじめてのSwift
SBクリエイティブ
著者:諏訪悠紀
はじめに
CHAPTER 01 プログラミングの基礎知識
01 プログラムとは
02 プログラミング言語とは
03 コンピュータがプログラムを理解する仕組み
04 iPhoneアプリ開発のためのプログラミング言語「Swift」
モダン
安全
高速
インタラクティブ
05 プログラミングに必要な準備
Mac
Xcode
iOSデバイス(iPhone/iPod touch/iPad)
CHAPTER 02 プログラミングを始めるための準備
01 Xcodeのインストール
02 Playgroundを開く
Playgroundの画面構成
ソースエディタ(Source Editor)
リザルトサイドバー(Results Sidebar)
03 コードを書いてみよう
コードの作成
コードの解説
正しいコードと間違ったコード
コンソールへのログ出力
複数のログの出力
コード補完
コード補完の仕組み
コメント
CHAPTER 03 Swiftの基本的な文法
01 変数と定数
変数
変数の宣言と代入
変数の再代入
定数
定数の宣言と代入
定数の再代入できない
変数と定数の名前を付けるルール
既に存在する変数や定数と、同じ名前を付けることはできない
予約語を使ってはいけない
複数の単語を使うときはキャメルケースを使う
02 値の型
リテラル
型注釈
型推論
基本的な型
String型
Int型
Double型、Float型
Bool型
文字列補完
型の機能
プロパティ
メソッド
イニシャライザ
03 コレクション
Array型
配列の作成
要素の取り出し・差し替え
要素の追加
要素の削除
型注釈と初期化
Dictionary型
Dictionary型の値の作成
要素の取り出し・差し替え
要素の追加
要素の削除
型注釈と初期化
Set型
Set型の値の作成
要素の追加
要素の削除
型注釈と初期化
Set型と集合演算
04 演算子
算術演算子
代入演算子と複合代入演算子
比較演算子
論理演算子
05 制御構文
条件分岐
if文
if-else文
switch文
繰り返し文
for文
while文
06 関数
関数の定義
関数の呼び出し
引数
戻り値(返り値)
引数と戻値の組み合わせ
外部引数名
引数名の省略
引数のデフォルト値
スコープ
関数名の決まりごと
07 オプショナル
オプショナルとは
オプショナルの書き方
オプショナルチェーンを使った値の取り出し
オプショナルチェーンの連結
オプショナルの強制的なアンラップ
強制的なアンラップの注意点
暗黙的なアンラップ
オプショナルバインディング
CHAPTER 04 Swiftとオブジェクト指向プログラミング
01 オブジェクト指向プログラミングとは
02 型
型とインスタンス
03 クラス
クラスの定義
クラスでできること
04 プロパティ
格納型プロパティ
計算型プロパティ
型プロパティ
プロパティの監視
05 メソッド
インスタンスメソッド
selfキーワード
型メソッド
06 サブスクリプト
07 参照カウント
ARCによるインスタンスの生成・破棄
循環参照
強い参照と弱い参照
08 イニシャライザとデイニシャライザ
イニシャライザ
デイニシャライザ
09 継承
クラスの継承
オーバーライド
superキーワード
イニシャライザの継承
10 ストラクチャ
ストラクチャの定義
ストラクチャでできること
参照型と値型の違い
プロパティとイニシャライザ
11 列挙型
列挙型の定義
値の定義
switch文を使ったマッチング
12 プロトコル
プロトコルの定義と準拠
プロパティの定義
メソッドの定義
プロトコルの型としての使用
デリゲートの活用
13 エクステンション
エクステンションの定義
準拠するプロトコルの追加
CHAPTER 05 Swiftの発展的な文法
01 タプル
タプルの定義
タプルに含まれている値の参照
値の名前付きのタプルを定義する
関数の戻り値をタプルにする
02 関数オブジェクト
関数の型
関数オブジェクトの呼び出し
引数と戻り値がない関数の型
関数を引数にする
関数オブジェクトを戻り値にする
03 クロージャ
関数のネスト
ネストした関数による値のキャプチャ
クロージャ式
クロージャ式を引数や戻り値で使う
クロージャ式の省略記法
末尾のクロージャ
クロージャとは
04 型のキャスト
アップキャスト
ダウンキャスト
型の✓✔チェック
Any型とAnyObject型
Any型
AnyObject型
プロトコルのキャスト
CHAPTER 06 iOSアプリ開発入門
01 iOS SDKとフレームワーク
SDKとは
フレームワークとは
UIKitフレームワーク
02 iOSアプリの動作の仕組み
UIApplicationとUIApplicationDelegate
03 iOSアプリのUIの仕組み
iOSアプリの画面の表示
ビューコントローラを使った画面構成と画面遷移
ユーザーの操作のイベント
コントロールとアクション
Storybord
Auto Layout
PlaygroundとiOSアプリ開発の違い
04 サンプルアプリの作成
Xcodeプロジェクトの新規作成
テンプレートの選択
Xcodeプロジェクトの設定
Xcodeの画面構成
ツールバーエリア
ナビゲータエリア
エディタエリア
ユーティリティエリア
デバッグエリア
Xcodeプロジェクトの構成
サンプルプロジェクトのソースコードを読む
AppDelegateクラスを読む
ViewControllerクラスを読む
Storybordでシーンを編集する
Storybordの画面構成
シーンにビューを追加する
ラベルにAuto Layoutの制約を追加する
ビューコントローラで制御を加える
アクションの設定
アクション設定の詳細
アウトレットの設定
アウトレット設定の詳細
エディタ表示に関する設定
メソッドに処理を記述する
実行する
エラーになってしまった場合
まとめ
CHAPTER 07 iOSアプリ開発レシピ
Recipe 01 電卓アプリ
作り方
Xcodeプロジェクトの作成
ビューの配置
表示するテキストの設定
ビューのレイアウト
水平方向にまとめる
垂直方向にまとめる
制約の設定
UIStackViewの設定
アウトレットとアクションの接続
ラベルのアウトレットの設定
ボタンアクションの設定
計算を行うコードの記述
プロパティの定義
数値の入力
演算の種類の入力
結果の表示
オールクリア
完成したアプリを動作させてみよう
作り方
Recipe 02 タイマーアプリ
Xcodeプロジェクトの作成
ビューの配置
ラベルとボタンの属性の変更
ビューのレイアウト
UIStackViewの作成
AutoLayoutの制約の設定
アウトレットとアクションの接続
プログラムの記述
タイマー処理の全体的な流れ
プロパティの定義
タイマーを開始するメソッドの実装
更新するメソッドの実装
完成したアプリを実行してみよう
作り方
Recipe 03 マップアプリ
Xcodeプロジェクトの作成
マップビューの使用
マップビューの配置
マップビューのレイアウト
マップビューのアウトレット接続
CoreLocationフレームワークを使った現在値の取得
ユーザーの許可の設定
ユーザーの許可のリクエスト
現在値の取得
マップビューに現在地を表示する
完成したアプリを動作させてみよう
Recipe 04 図鑑アプリ
作り方
Xcodeプロジェクトの作成
一覧画面の作成
UITableViewの配置と制約の設定
UITableViewCellの追加
UITableViewのアウトレット接続の作成
データの作成
デリゲートの設定
画面遷移の作成
1.詳細画面のシーンの作成
2.UINavigationControllerの作成
3.一覧画面と詳細画面を繋ぐぐセグエの作成
詳細画面の作成
ビューコントローラの作成
ラベルの配置、レイアウト、アウトレット接続
一覧画面と詳細画面の値の受け渡し
完成したアプリを動作させてみよう
Photosフレームワーク
Recipe 05 写真ビューアアプリ
Xcodeプロジェクトの作成
ユーザーの許可の設定
UICollectionViewの配置とレイアウト
UICollectionViewCellの追加
アウトレット接続の作成
UICollectionViewのデリゲートの使用
Photosフレームワークを用いた写真データの取得
セルごとの画像の表示
完成したアプリを動作させてみよう
まとめ
終わりに
本書で学んだ後は
Swift言語仕様について
The Swift Programming Language
Swift Blog
AppleのGitHubリポジトリ
Swift.org
Swift Playgrounds
iPhoneアプリ開発について
iOS Developer Library
Apple Developer 日本語ドキュメント
Apple Developer API Reference
Developers.IO
INDEX