Xcode
初心者
Swift
アプリ開発

初心者が『Swiftによるアプリケーション開発:入門編』を読んで自作アプリを作ってみた

はじめに

自己紹介

初めまして、はなまと申します。
本業(?)は京都大学理学部で化学を勉強しています。
プログラミング初心者ながらアウトプットしていこうと思っております。拙いところがあれば是非ご指摘よろしくお願いします。
Qiitaでの初投稿として、最近始めたswiftの入門書の書評を書いていきたいと思います。

動機と本の紹介

今回swiftの勉強をしようと思ったきっかけは大学の友人が一緒にお酒についてのアプリを作らないかという声をかけてきたからです。
お酒もプログラミングも好きだったのでいいきっかけとしてswiftの勉強をすることにしました。
さて、swiftをどうやって勉強しようかとAppleの公式サイトを見ているとApple自身で学習ツールを提供してくれているということが書いてありました。そしてまず手始めにそこで見つけた『Swiftによるアプリケーション開発:入門編』を使って勉強を始めてみようと決意しました。
(上のリンクからiBookで無料で入手出来るので初めてみたい方は是非!)

書評

環境

macOS Mojave ver 10.14
Xcode ver 10.1
Swift 4
Swiftによるアプリケーション開発:入門編 p.5からダウンロードしたXcode9用のプロジェクトファイル
(2018/11/4現在 Xcode10用のプロジェクトファイルは更新されていませんが、画面レイアウトが少し異なる点以外はXcode9用でも十分学習できました。)
を使って学習しました。

目次と構成

  • Playgroundの基本
  • 命名と識別子
  • 文字列(Strings)
  • Hello, world!
  • 最初のアプリケーション
  • 関数(Functions)
  • BoogieBot
  • 定数と変数(Constants and Variables)
  • 型(Types)
  • パラメータと結果(Parameters and Results)
  • 意思決定を行う
  • インスタンス、メソッド、プロパティ
  • QuestionBot
  • 配列とループ(Arrays and Loops)
  • 構造体を定義する(Defining Structures)
  • QuestionBot 2
  • アクションとアウトレット
  • アダプティブユーザーインターフェイス
  • 列挙型とswitch文(Enumerations and Switch)
  • 最終プロジェクト
  • アプリケーションデザイン
  • 次のステップ
  • その他のリソース

以上の構成になっており、実際の作業はダウンロードしたプロジェクトファイルを使ってPlayground上で実際に手を動かしながら学べます。
iBookにはイントロダクションとまとめ、次のステップへのヒント、理解度チェックというそのレッスンの確認テストが掲載されています。
各理解度チェックは選択式のものでそのレッスンに出てきた新しい言葉の意味やコードのテンプレートの正誤を判定するもので手軽に出来る様に工夫されています。
練習問題の解答などについては友人のこちらのブログにまとまっているのでぜひ活用すると良いと思います。

感想

プログラミングに初めて触れる人でもレッスンを順にこなしていくことで無理なくスキルを身につけることができる様になっていると感じました。後半のレッスンでは少し長いコードを書くことも要求されますが、事前にしっかり解説や準備があるのでコーディングに対する苦手意識も生まれにくいと思います。
中でも僕が特筆したいと思うのはレッスン2の変数の命名とレッスン10の関数の命名です。
僕が初めてプログラミングに触れたのは約1年前でしたが今までコードを書いてきた上で使ってきた変数名や関数名は可読性や保守性の面であまりよくないものだということを実感させられました。

#Bad Naming
hA:Double //図形Aの高さ
vB:Double //図形Bの体積
func greeting(people: String) //挨拶文を出力する関数

#Good Naming
heightOfA:Double //図形Aの高さ
volumeOfB:Double //図形Bの体積
func printGreeting(to name: String) //挨拶文を出力する関数

恥ずかしながら1年前から書いてきたコードたちには上の様な名前が散見されていました^^;
上の例でもわかる様に下の変数は連結して一つのものを明確に表しているし、関数は文の形になっていて関数内部での引数の扱いも明示できています。Xcodeでコードを書くとオートコンプリート機能が働いて名前の続きは自動的に補填されるので多少長くてもわかりやすい命名をすることが大切だと感じました。(あまりにも冗長なものはもちろん逆効果ですが、、、)

この他にも後々重要になってくることや他の言語で開発するときにも重宝する様な情報も散りばめられていました。

作ってみた

学習のまとめとしてこの参考書を使って学んだことを使ってその日の状況に応じてオススメの夕食を提案するアプリを作ってみました。ソースコードはこちらです。
練習として構造体の定義や様々なアウトレットの配置をおこなってみました。
シンプルながら下の様なレイアウトのアプリの作成ができました。
UI見本.png

まとめとこれから

親切にswiftに入門できる良書であり、これからアプリを作ってみたいという方にもお勧めできると思います。
以後は発展編である『App Development with Swift』(英語版のみ)を使って本格的なアプリ作成法を勉強したり、他のリソースを探してアプリケーションデザインの勉強をしたりしてアプリらしいアプリを作成できる様になりたいと思います。
駄文ながら閲覧していただきありがとうございました。