Swift 4 / iOS11 で iOS App の開発入門

この本がとにかくわかりやすいです。有料の本もあるので無料公開部分の作業が終わったら、買ってみようかなと思ってます。

https://www.appcoda.com/learnswift/hello-world-explained.html

開発環境の整備

  • 開発には Xcode という Apple 公式提供の IDE を使う
  • 言語は Swift
  • 基本的には Mac ユーザーしか iOS 開発はできない

上記の本に従って App Store から Xcode をダウンロード・インストールし、新規プロジェクトを立ち上げてください。

Swift の言語としての特徴

生粋の JavaScripter の私から見ると、かなり違いのある Swift 。とはいえこれが普通のプログラミング言語の一般的な形のようです。

主に JavaScript と異なるのは、型の扱いです。常に型を明示する必要がないのは JavaScript と同じではあるのですが、前もって型がおかしいことがわかっている場合や、値が含まれない場合が考えられるのに、値がある前提でコードが書かれており、値がない場合に止まってしまうような場合には、コンパイル前に、エラーでお知らせしてくれます。

また、コンパイルが必要な点も JavaScript とは異なります。JavaScript は scripting language という性質で、これはコンパイルを必要とせず、runtime engine がその場で interpret  します。(とはいえ今や JavaScript は多様で、トランスコンパイルさせるものもあるし、コンパイルさせるものもある。また反対に C+ でもコンパイルせずに、script language として処理する仕組みもある。ので、言語そのもののというよりは、環境においてその性質が決まる。) しかし Swift はコンパイルするタイプの言語で、その際に型をチェックしている。このようにコードを走らせる前に型をチェックするタイプを静的型付け言語というとのこと。

Xcode 内の操作

  • storyboard の中の viewController は UI の作成を担当
  • ViewController.swift が UI と Class のコネクションを担当
  • 例えば、UI 上のボタンをクリックした時にテキストを表示する機能を作る場合には、storyboard でボタンを作成配置して、ViewController.swift 上でメソッドを作って、ボタンと連携させるコードを書く

UI と メソッドのコネクション

  • storyboard の右側のパネルの -> がイベントへの接続リスト。ここで Touch up inside イベントとメソッドが連携されている。
  • method の @IBA は interface builder へ action を export している。
  • Storyboard の Identity Inspector の custum class の部分で、.swift と連携するクラスが指定されている。

class ViewController: UIViewController

これは swift の class の extend と書きかた。UIViewController は iOS を構成するブロックのうち、もっとも基本的なもの。これを継承して ViewController をつくっている。

override は UIViewController の default function をに上書きするためのもの

もともと UIViewController がもっている function に上書きして使用するため、override と指定している。

Compile と package

  • compile はコンパイル。これは Xcode が勝手にやってくれる。
  • package はソースコード以外の、例えば画像とか音声ファイルを、アプリケーションにまとめる作業。

AutoLayout

align to で修正。