スタートダッシュiOS
〜アプリエンジニアの必須ノウハウをサクっと押さえる

[表紙]スタートダッシュiOS 〜アプリエンジニアの必須ノウハウをサクっと押さえる

A5判/384ページ

定価(本体2,680円+税)

ISBN 978-4-297-11403-9

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

「iOSアプリ開発に必要なものは?」
「Swiftはどうやって書くのか?」
「アプリのデザインはどうなっている?」
「開発現場で使われているOSSは?」

iOSアプリエンジニアとして業務をこなすには,ただiOSアプリが開発できるだけでは足りません。現場で使われている技術や知識を学ぶ必要があります。
本書では,「これからiOSアプリ開発を始める = スタートダッシュする」ことを目的に,開発環境の知識からSwiftの基本はもちろん,UIデザイン,現場でデファクトとも言えるOSSの使い方,テストの基礎まで,スタートダッシュするために本当に必要な情報を濃縮。現場のエンジニアが,チームに入る新人に「とりあえずコレだけは押さえておいて」という生きたノウハウを伝授します。アプリエンジニアを目指す方はもちろん,これからアプリ開発にも業務の幅を広げたいエンジニアにとっても必携の1冊です。

こんな方におすすめ

  • iOSアプリ開発のエンジニアをこれから目指す人,開発チームにこれから参加する人
  • 現場の生きたノウハウを知って,新たに参加するチームの開発に活かしたいエンジニア

著者の一言

この本は,これからiOSアプリ開発を始める人に向けた入門書です。まずはじめに,「これからiOSアプリを始めること」について少し考えてみます。現代のiOS業界は,すでに世の中にはiOSアプリがたくさんあり,ある程度成熟した業界となっています。iOSアプリ開発業界がビジネスとして成り立ってから数年が経過し,今や何万ものアプリが世の中にリリースされています。iOSデバイスは,実生活の中で密接に関わっています。個人の生活を支えるツールとしての役割から始まり,お店のレジに使われていたり,飲食店の注文端末として使われていたりと,じつにさまざまな企業で活用されています。
開発側の視点でも考えてみましょう。iOSSDKやXcodeといったiOSアプリ開発に欠かせないツール,サービスも日に日に進化を遂げています。
上記のことから,iOSアプリ開発をこれから始める上で必要な知識やノウハウは,かなり膨大な量となっていることが分かります。これから始める人にとっては,非常にハードルの高いことです。
本書では「これからiOSアプリ開発を始める=スタートダッシュする」ことを目的に,数多くのiOSアプリ開発の知識やノウハウから「スタートダッシュするために本当に必要な情報」を濃縮して構成しています。
序章では,iOSアプリ開発とはどのような世界なのかを知るために,iOSアプリエンジニアにはどのような知識とスキルが必要とされるのかを解説しています。また,現状を知ってもらうだけではなく,今後もiOSアプリエンジニアとして生きていくために必要な観点も解説しています。第1章ではiOSのことを正しく理解していただくために,iOSのこれまでの歴史とiPhoneを中心としたiOSデバイスの種類を概説しています。続けて,iOSアプリ開発には欠かせないXcodeの基本的な使い方を学びます。第2章ではSwiftの基礎を解説しています。Xcodeの機能「Playground」を使って,Swiftの基本的な書き方のルールをしっかりと学びます。Swiftの言語機能は幅広いですが,ここでも特に重要な機能に焦点を当てて解説しています。
第3章はこれからのiOS開発のパラダイムとして,SwiftUIについて解説しています。SwiftUIは2019年に発表されたばかりの新しいフレームワークですが,今後デファクトスタンダードになることが予想されます。本書を今後も役に立つ書籍にすべく取り入れました。
第4章ではiOSアプリのデザインについて解説しています。iOSアプリにおいて切っては切れない関係である「UI/UXデザイン」はどのように進めれば良いのか,実際に現場で採用されている手法を用いて解説しています。
第5章ではiOSアプリにOSS(オープンソースソフトウェア)を組み込む方法を解説しています。iOSアプリを開発する際,すべて自分自身のコードで完結させることは珍しく,OSSを利用することが一般的です。OSSを使う方法は主にCocoa Pods,Carthage,Swift Package Managerと3つの選択肢がありますが,それぞれの使い方を掲載しています。
第6章では開発の手助けとなるテストについて解説しています。実際のところiOSアプリ開発においてテストは軽視されがちですが,テストを怠ると結果的に開発スピードが遅くなったりiOSアプリの品質が低下したりといった問題が発生します。かんたんに導入できるので,参考にしながらテストを実施するようにしましょう。
本書は,読者のみなさんがiOSアプリ開発をするデスクの脇に置いてもらい,何度も見返しながら開発を頑張る姿をイメージしながら執筆しました。執筆者一同,同じようにしてスタートダッシュを切ってきました。その時を思い返しながら「開発を始める時にはどのような情報があると理解できるのか」をポイントに,掲載する内容を吟味しました。
 開発のスタートダッシュに寄り添う本として活用いただけたらうれしいです。
(本書「はじめに」より)

この書籍に関連する記事があります!

アプリエンジニアの必須ノウハウを伝授
iPhoneが登場して10年以上が経ち,さまざまなスマホアプリが生活必需品となりました。

目次

  • はじめに

第0章 iOSアプリエンジニアの現場の世界

0-1 iOSアプリエンジニアとは

  • 何のためにiOSアプリを作るのか

0-2 iOSアプリ開発に必要な知識とスキル

  • UIを実装する
  • ロジックを実装する
  • 設計手法・開発手法を知る
  • ネットワーク知識・非同期処理を押さえる

0-3 iOSアプリ開発の今後の展望

  • ハードウェア・ソフトウェアの進化とユーザー体験の変化
  • Swiftの成長

第1章 これだけは知っておきたいiOSアプリ開発のはじめかた

1-1 iOSアプリ開発に必要なもの

  • Macを購入する
  • Apple IDを作成する
  • Xcodeをインストールする
  • iPhoneを用意する

1-2 iOSと開発環境を知る

  • iOSとは
  • Xcode
  • iOS SDK

1-3 アプリのリリースとApp Store

  • Apple Developer Program
  • App Store Connect

1-4 Xcode 11の基礎知識

  • Xcode 11のインストール
  • Xcodeプロジェクトの作成
  • Xcodeの画面の基本構成

1-5 iOSアプリを実行する

  • シミュレータで実行する
  • 実機のiPhoneで実行する

第2章 Swiftをマスターしよう

2-1 Swiftの実行環境とHello World

  • Swiftの特徴的な言語仕様
  • 動作環境を押さえる
  • Playgroudで実行環境を構築する

2-2 変数と定数を理解する

2-3 Swiftにおける型を理解する

  • String型
  • Int型
  • Bool型
  • 配列型
  • Dictionary型
  • 列挙型
  • Optional型
  • 値型と参照型
  • 関数
  • クロージャ
  • プロトコル

2-4 制御構文

  • if文
  • if-let文
  • guard文
  • switch文
  • for文
  • while文
  • repeat-while文

2-5 アプリケーション開発をする際に知っておくべきこと

  • トレイリングクロージャ
  • 属性(attribute)
  • Delegateパターン
  • GCDを使った非同期処理

2-6 エラー処理

  • Optionalでエラーハンドリング
  • Error protocol
  • do-catch文
  • throwsキーワード
  • tryキーワード
  • Result
  • do-catchとResultの使い分け

第3章 iOS開発の新しいパラダイム

3-1 SwiftUIとは

  • 宣言型のシンタックス
  • プレビュー
  • SwiftUIでHello World
  • フレームワークの部品を追加する

3-2 SwiftUIによるデザイン・レイアウト調整

  • デザイン調整のやり方
  • VStackやHStackを使って部品を整列させる
  • alignmentでStack内の部品の表示位置をそろえる
  • padding modifierを使ったレイアウト調整
  • Spacerを使ったレイアウト調整

3-3 SwiftUIでリスト表示と画面遷移

  • リスト表示とナビゲーション
  • Listを使って静的な行を作成する
  • Listを使って配列からリスト表示
  • セクションやヘッダー/フッターでスタイルをカスタマイズ
  • NavigationLinkを使って画面遷移を実装する

3-4 SwiftUIでユーザーの入力を受け付ける部品

  • Buttonでユーザーのインタラクションを受け付ける
  • Sliderを使ってある範囲内の値を選ぶ
  • Toggleで2つの状態を切り替える

3-5 SwiftUIでToDoアプリを作ってみよう

  • タスクを表すモデルを作成する
  • タスクを表すビューを実装する
  • タスク一覧の実装
  • タスクの新規作成のためのUI実装
  • タスクの追加と削除
  • SwiftUIの注意点と今後の展望

第4章 エンジニアでも押さえておきたいiOSアプリデザイン

4-1 アプリ開発の流れとUI/UXデザイン

  • 企画
  • 設計(デザイン)
  • 開発
  • リリース
  • 分析
  • UI/UXデザインとは
  • UXデザインの流れを押さえる

4-2 情報を設計する

  • 情報を書き出す
  • UI Flows

4-3 画面を構成する

  • iOS Human Interface Guidelinesを確認する
  • ペーパープロトタイプをつくる
  • ワイヤーフレームで設計する
  • ビジュアルデザイン
  • モックアップをつくる

4-4 Storyboardを使った開発を押さえる

  • Storyboardとは
  • Auto Layoutとは
  • 制約(Constraint)

4-5 StoryboardでAuto Layoutを設定してみよう

  • 制約を追加
  • 制約の確認・削除・編集
  • Safe Area
  • 整列ツール

4-6 ソースコードとStoryboardをつないでみよう

  • @IBOutletでソースコードからStoryboardを操作する
  • @IBActionでViewのアクションを受け取る

4-7 UINavigationControllerを使って画面遷移をする

  • UITableViewでリスト画面作成
  • 詳細画面を作成する
  • UINavigationControllerでつなげる

4-8 ダークモードに対応する

  • ダークモードへの切り替え
  • カラーの設定方法
  • UIKitのコンポーネントは未設定でダークモードに対応済
  • システムカラーとUIエレメントカラーを設定
  • カスタムカラーの設定
  • Storyboardからカラーを設定
  • プログラムからカラーを設定

4-9 パスワードレス認証 - Face IDとTouch ID

  • 多要素認証(MFA: Multi-Factor Authentication)
  • FIDOとパスワードレス認証
  • iOSの生体認証 - Face IDとTouch ID

4-10 画面サイズとジェスチャー

  • プッシュ遷移
  • モーダル遷移
  • ボトムシート(Bottom Sheet)

第5章 OSSを駆使した現場の実践TIPS

5-1 OSSを使ううえでの心得

  • メリットとデメリット
  • OSSを使用するかの判断
  • ライセンス
  • OSSの導入方法
  • 検証環境

5-2 CocoaPodsでOSSを管理する

  • メリットとデメリット
  • ライブラリの追加
  • Podfile
  • バージョン管理
  • Podfile.lock
  • ライブラリの更新
  • ライブラリの削除

5-3 CarthageでOSSを管理する

  • メリットとデメリット
  • ライブラリの追加
  • Cartfileの書き方
  • バージョン管理
  • ライブラリの更新
  • ライブラリの削除

5-4 Swift Package ManagerでOSSを管理する

  • メリットとデメリット
  • ライブラリの追加
  • バージョンの指定
  • ライブラリの更新
  • ライブラリの削除

5-5 Alamofireを使用して通信処理を実装する

  • サンプルプロジェクトの作成
  • インストール手順
  • JSONデータの取得
  • HTTPヘッダーの指定
  • レスポンスのバリデーション
  • レスポンスのハンドリング

5-6 Kingfisherを使用してWeb上の画像を表示する

  • サンプルプロジェクトの作成
  • インストール手順
  • 画像のダウンロードとUIImageViewへの設定
  • プレースホルダの設定
  • 角丸の設定
  • アニメーションの設定

5-7 PKHUDを使用してHUDを表示する

  • サンプルプロジェクトの作成
  • インストール手順
  • ローディングの表示と非表示
  • 成功/失敗の表示
  • ローディング・成功・失敗の表示(テキストあり)
  • テキストの表示
  • マスクの無効化

第6章 iOS開発テストの超入門

6-1 テストとは

  • 自動テストのメリット
  • 自動テストのデメリット
  • テストの種類

6-2 XCTestでユニットテスト

  • XCTestのセットアップ
  • テストクラスを新規作成
  • アサーション
  • テストの実行と結果表示
  • 非同期テスト
  • テストのグループ化

6-3 XCTestでUIテスト

  • UIテストのセットアップ
  • テストするサンプルプロジェクト
  • UIテストを書く
  • スクリーンショットを撮る

6-4 CI/CD入門

  • CIとは
  • CIのメリット
  • CDとは
  • Xcode ServerでCIを実践する
  • 索引
  • 参考資料

著者プロフィール

諏訪悠紀(すわゆうき)

主にモバイルアプリやWebアプリのデベロッパー,またAWSやGCPのソリューションアーキテクトとして活動している。得意分野はUI・UXデザイン,モバイルアプリ,サーバーサイド,インフラ,サーバーレスなど多岐にわたる。技術メディアへの記事投稿,イベントへの登壇などを積極的におこなっている。特撮好きな二児の父。


平屋真吾(ひらやしんご)

クラスメソッド株式会社所属のiOSアプリエンジニア。大学時代からiOSアプリ開発に取り組みはじめ,これまで数十のiOSアプリの開発や保守を担当。UIの実装が得意。理解しやすくメンテナンスしやすいコードを好む。個人でもアプリを開発していて,学生向けの時間割管理アプリや,音楽フェスのタイムテーブル作成アプリなどを公開している。


前田翼(まえだたすく)

クラスメソッド株式会社所属のiOSアプリエンジニア。Flash,Webフロントエンド,iOSアプリなどユーザーが直接触れる部分をこれまで担当している。「きんくまデザイン」名義で個人制作アプリを公開中。


田辺信之(たなべのぶゆき)

クラスメソッド株式会社所属のiOSアプリエンジニア。異業種からソフトウェアエンジニアに転職し,クラスメソッドで現在2社目。サーバーサイドとクライアントサイド両方を担当していたが,現在はネイティブアプリ開発を専門として業務に従事している。