2017年2月20日月曜日

Xcode で iOS アプリを作る際に抑えておきたい技術

概要

個人的にアプリを作っていて「この技術やツール、仕組みは知っておいて損はない」という項目を集めてみました
細かい使い方は説明しませんがキーワードを元に自分で調べてみるといいと思います

環境

  • Mac OS X 10.11.5
  • Xcode 7.3.1
  • Swift 2.2

ツール

Cocoapods

ライブラリを管理するためのツールです
Ruby で書かれているため Gem コマンドを使ってインストールします
Podfile という設定ファイルにインストールしたいライブラリを記載することで簡単にライブラリを追加することができます
昔は zip ファイルを落としてプロジェクトに追加してみたいな面倒なことをやっていたのですが、これを使えばそんなことをしなくて良くなります
同じようなツールで Carthage というものがあります

Swift

最近は専ら Swift で書かれているアプリが多いと思います
Swift が出る前は Objective-c (Objc) でしたが Objc よりも遥かにコーディングしやすいです
コーディングのしやすさもありますが、コードの読みやすさやシンプルに書ける (コードの量が減る) 等のメリットもあると思います
最近では Web 上にもいろいろとノウハウが溜まってきたので導入の障壁も下がったのではないかと思います
ただ、まだまだ開発は進んでおり今後も文法の変更や新機能の追加等があるので、Swift がバージョンアップしてコンパイルが通らなくなる可能性があるという点は考慮しておく必要がありそうです

技術

IBOutlet

Storyboard で作成した UI コンポーネントをコード上 (.swift ファイル等) で扱えるようにするための技術です
Storyboard 上で作成したコンポーネントは基本的に Storyboard だけで設定 (色やフォントサイズなどの設定) をしたほうが良いのですが、例えば動的に変更したいケースがあると思います
そういう場合は IBOutlet を使ってコンポーネントとコードをひも付けてコード上で動的に変更するような処理を実装する感じです

IBOutlet 自体の作成も非常に簡単で Storyboard 上からコードに対してドラッグアンドドロップで紐付けるだけです

IBAction

同じく Storyboard 上で作成したコンポーネントを支援するための技術です
IBAction は主にボタンやタップ等のイベントをコンポーネントに紐付けるためのもので、IBOutlet 同様に Storyboard からコード上にドラッグアンドドロップするだけで作成することができます

例えばボタンが押されたときに、この IBAction を実行するみたいなひも付けが簡単にできます

Segue

ある UIView から別の UIView に移動するために使う技術です
UIView と UIView を Segue でつなぎその Segue に名前を付けます
指定された名前の Segue をコード上で呼び出す (performSegueWithIdentifier -> prepareForSegue) と次の UIView に移動することができます

設定も IBOutlet や IBAction と同じように設定できますが Segue の場合は移動する際のアニメーション (show や modal など) 指定することができます

Constraints (Autolayout)

これが使えるか使えないかで、アプリのレイアウトが大きく変わると思います
具体的に言うと Autolayout が使えると iPhone5s でも iPhone6 でも iPad でもレイアウト崩れを起こさず表示することできるようになります

設定 (操作) がやや面倒なのがネックかなと思います
コード上でも Autolayout を使ってレイアウトを設定することができますが個人的には Storyboard 上で設定するほうが簡単です
Storyboard 上で設定すれば実際にどういうレイアウトになるかプレビューを見ながら確認することができます
ただ、複雑な Constraints を設定しすぎるとプレビュー機能が全く機能しなくなるケースがあったので、その場合は実機やシミュレータで確認する必要があります

Delegate

よく使うのは UITableViewDelegate かなと思います
例えばセルを選択したときに didSelectRowAtIndexPath が呼ばれるようにするとかピッカーの値が選択されたときに didSelectRow が自動的に呼ばれるようすることができます

基本的には ViewController に必要な Delegate を継承し必要なメソッドを実装することで呼ばれるようになります

呼ばれない場合はうまく Delegate が UI コンポーネントに紐付いていないケースが多いです
ひも付けはコード上でも Storyboard 上でも可能です

最後に

上記を記載した理由というか背景ですが、個人的には

  • これだけあればある程度のアプリが簡単に作れる

という観点で記載しました
なので、他にも抑えておきたい技術やツールはたくさんあると思います

特にゲーム系のアプリをつくる場合は Sprite Kit など使えないと厳しいと思います

0 件のコメント:

コメントを投稿