書籍概要

たった1 日で基本が身に付く!

たった1日で基本が身に付く! Swift アプリ開発 超入門

著者
発売日
更新日

概要

本書は,Swiftの基礎をマスターする本です。Swiftの基礎を学びながら,iPhoneのアプリ(ゲーム)を作成していきます。本書の前半ではPlaygroundを利用しSwiftの文法をわかりやすく解説し,本書の仕上げとしてXcodeを用いシューティングゲームを作成していく,Swiftのいちばんやさしい本を目指した書籍です。

こんな方におすすめ

  • Swiftの基礎を学び,iPhoneアプリを開発してみたい初心者

目次

CHAPTER 1 Swiftを学ぶ準備をしよう

01 プログラミングの準備をしよう

  • プログラミングって何だろう?
  • ソースコードって何だろう?
  • 開発環境を準備しよう

02 Xcodeに触れてみよう

  • Xcodeの起動と終了の方法を覚えよう
  • Apple IDを登録しよう
  • 学習するためのファイルを作成しよう
  • playgroundの各部の役割を覚えよう
  • playgroundファイルの閉じ方と開き方を覚えよう

CHAPTER 2 Swiftの基本を学ぼう

01 文字や数字を表示してみよう

  • 文字を表示するプログラムを作成しよう
  • 数字を表示するプログラムを作成しよう
  • 入力したコードに誤りがある場合は?

02 値を箱にしまってみよう

  • 値を入れる箱とは?
  • 値を変数に代入してみよう
  • 変数に値を代入してみよう
  • 変数の値を使ってみよう
  • 変数の値を書き換えてみよう
  • 定数を使ってみよう
  • 定数を宣言してみよう

03 データの種類を覚えよう

  • 変数の種類
  • 整数を扱うデータ型
  • 小数を取り扱うデータ型
  • 文字を扱うデータ型
  • 2つの値のみ取り扱うデータ型
  • 型推論で宣言した変数のデータ型
  • 何もない状態を扱ってみよう

04 計算をしてみよう

  • 四則演算をする記号を覚えよう
  • 演算子使用時の注意事項
  • 複数の演算子を使ってみよう
  • 計算の順序を変えてみよう

05 プログラムに説明をつけてみよう

  • 1行の説明を付けてみよう
  • 複数行の説明を付けてみよう
  • マークアップコメントを付けてみよう

CHAPTER 3 条件で動作を変えてみよう

01 「もし○○ならば」をコードで表してみよう

  • 値を比較する方法を覚えよう
  • 条件で実行するコードを分岐してみよう
  • 「そうではない場合」をコードで表してみよう
  • 「そうではなく○○ならば」をコードで表してみよう
  • 複数の条件式を組み合わせてみよう

02 複数の値から一致するものを見つけよう

  • 複数の値と比較してみよう
  • switch文の編集
  • caseの条件を複数にしてみよう
  • caseで範囲を指定してみよう

CHAPTER 4 処理の繰り返しと複数データの取り扱い

01 回数を決めて処理を繰り返してみよう

  • 繰り返し処理の必要性を考えよう
  • for~ in文で処理を繰り返しみよう
  • 降順で処理を繰り返してみよう

02 決められた条件の間,処理を繰り返してみよう

  • while文で処理を繰り返してみよう
  • while文の途中で脱出してみよう
  • repeat-whileで処理を繰り返してみよう
  • ループの入れ子

03 たくさんのデータを使ってみよう

  • コレクション
  • 配列
  • 配列を使ってみよう
  • 辞書
  • 辞書(Dictionary)を使ってみよう
  • 辞書の要素数を取得しよう
  • Dictionaryの追加と削除

04 繰り返し処理でコレクションを操作しよう

  • 繰り返し処理でコレクションにデータを格納してみよう
  • 繰り返し処理でコレクションからデータを取得してみよう
  • すべての要素をチェックしよう

CHAPTER 5 よく利用する処理をまとめよう

01 関数を作成しよう

  • 関数について理解しよう
  • 関数を定義してみよう
  • 変数の有効範囲

02 値を受け取る関数を作ってみよう

  • 値を受け取る関数
  • 複数の引数がある関数
  • 引数の初期値

03 値を返す関数を作ってみよう

  • 戻り値のある関数

04 安全な関数を作ろう

  • 引数の値をチェックしよう
  • 関数を抜ける前に必ず実行したい処理を書いてみよう

CHAPTER 6 データと処理をまとめよう

01 オブジェクト指向を理解しよう

  • オブジェクト指向について理解しよう
  • クラスとは

02 クラスを定義して使ってみよう

  • クラスを定義しよう
  • プロパティとメソッドを定義しよう
  • クラスを使ってみよう
  • クラスを初期化する処理を作成しよう

03 クラスをより深く理解しよう

  • プロパティ初期化の必要性を理解しよう
  • 引数のあるイニシャライザを定義してみよう
  • イニシャライザの多重定義
  • 計算型プロパティを理解しよう
  • プロパティ監視を理解しよう

04 クラスの機能を引き継いだクラスを作成しよう

  • クラスの機能を引き継いで新しいクラスを作成しよう
  • スーパークラスのメソッドを上書きしてみよう
  • サブクラスを使ってみよう

CHAPTER 7 ゲームを作る準備をしよう

01 実機でアプリ動作を確認できるようにしよう

  • XcodeにApple IDを登録しよう

02 プロジェクトを作成しよう

  • 作成するゲームアプリの概要
  • プロジェクトを作成する
  • 各部の名称
  • 実行してみよう

03 画面をデザインしよう

  • 起動画面を作成しよう
  • タイトルを中央に配置しよう
  • スタート画面を作成しよう
  • スタート画面からゲーム画面が表示されるようにしよう

04 キャラクターを作成しよう

  • パーツを組み合わせてキャラクターを作成しよう
  • Assetsにキャラクターを登録しよう

CHAPTER 8 キャラクターを表示して動かそう

01 画面に自機を表示しよう

  • SpriteKitについて理解しよう
  • 座標系を理解しよう
  • シーンを準備しよう
  • 不要なコードを削除しよう
  • 自機を表示しよう
  • 実行してみよう

02 画面に敵を表示しよう

  • 敵を表示させるメソッドを作成しよう

03 自機を動かそう

  • センサーを使用しよう

04 ミサイルを発射しよう

  • 画面タップ時の処理を作成しよう
  • 実機で動作を確認しよう

CHAPTER 9 ゲームを仕上げよう

01 スプライト同士の衝突を作成しよう

  • 物理シミュレーションを行う空間のプロパティを理解しよう
  • 物理ボディについて理解しよう
  • 衝突する相手を設定しよう
  • 実行して動作を確認しよう

02 衝突を検知しよう

  • 爆発のアニメーションを作成しよう
  • 衝突判定をしよう

03 ゲームを仕上げよう

  • ライフを表示しよう
  • 衝突判定時にライフとスコアを変化させよう
  • 画面の向きを設定しよう
  • アプリアイコンの設定をしよう
  • ゲームで遊ぼう

サポート

ダウンロード

(2019年5月9日更新)

本書に関するサンプルファイルおよび練習問題の解答解説をダウンロードできます。
データは,圧縮ファイル形式でダウンロードできます。圧縮ファイルをダウンロードしていただき,適宜解凍してご利用ください。

ダウンロード
サンプルファイル

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2020年11月5日最終更新)

P.199


033:	    // 衝突したノードを削除する
034:	    contact.bodyA.node?.removeFromParent()
035:	    contact.bodyB.node?.removeFromParent()
036:	
037:	    // 炎のパーティクルの読み込みと表示
038:	    let explosion = SKEmitterNode(fileNamed: "explosion")
039:	    explosion?.position = contact.bodyA.node?.position ?? CGPoint(x: 0, y: 0)
040:	    addChild(explosion!)
041:	
042:	    // 炎のパーティクルアニメーションを0.5秒表示して削除
043:	    self.run(SKAction.wait(forDuration: 0.5)) {
044:	        explosion?.removeFromParent()
045:	    }
046:	}

033:	    // 炎のパーティクルの読み込みと表示
034:	    let explosion = SKEmitterNode(fileNamed: "explosion")
035:	    explosion?.position = contact.bodyA.node?.position ?? CGPoint(x: 0, y: 0)
036:	    addChild(explosion!)
037:	     
038:	    // 衝突したノードを削除する
039:	    contact.bodyA.node?.removeFromParent()
040:	    contact.bodyB.node?.removeFromParent()
041:	     
042:	    // 炎のパーティクルアニメーションを0.5秒表示して削除
043:	    self.run(SKAction.wait(forDuration: 0.5)) {
044:	        explosion?.removeFromParent()
045:	    }
046:	}

商品一覧