Mac、iPhone・iPad、そしてApple Watch。これらのApple製品上で動くアプリはObjective-CとSwiftという言語で開発することができます。Swiftは2014年に発表され、他のプログラミング言語の長所を多く取り入れたプログラミング言語です。何かしらのプログラミングの経験がある開発者にはもちろん、これからプログラミングを始める人にも比較的学習しやすいものとなっています。今回はiOSアプリにおけるパーティクル表現を通して、ActionScript 3.0やJavaScriptのようなWeb開発技術と比較しながらSwiftを始めてみましょう。

デモについて

Swiftで作られたパーティクルアニメーションをiPhone 6 Plus上で動かすデモです。画面上でフリックした場所にパーティクルが発生し、時間の経過とともに色が変わっていきます。

ソースコードはGithubで公開してあります。 (サンプル:Swiftを使ったパーティクル演出デモ

iOSアプリの開発技術について

Swiftを使うとiOSの最新のAPIを使い、端末の処理能力を最大限引き出したiOSアプリを作ることができます。一方、FlashやHTML5といったWeb制作で使われている技術でもiOSアプリを作ることができます。Flashを使ったアプリ開発はAdobe AIRという技術、HTML5を使ったアプリ開発はPhoneGapMonaca等のフレームワークで可能です。表を見るとわかるとおりいずれの技術も一長一短があり、プロジェクト内容や開発リソースに応じて検討していく必要があります(※)。

cap3 ※ Web制作の技術以外ではCocos2dUnityといった技術でiOS・Android両対応のアプリを作ることが可能です。

Swift製アプリの開発環境で使うのはOS XのXcode

Swiftの代表的な開発環境はOS X上で動作するXcodeというソフトです。XcodeはSwiftやObjective-Cのコーディング、UIを用いた画面作成、iOSシミュレーターと連携したデバッグなどができるIDE(開発統合環境)でありMac App Storeからダウンロードできます。一方でAdobe AIR(Flash)の開発ソフトはAdobe Flash Professional CCAdobe Flash Builder等、HTML5の開発環境はBracketsWebStorm 等があります。

cap4

Swift製アプリを作るためのテンプレートが準備されている

Swift製のアプリを作るときは、目的に応じて必要となるファイル群(テンプレート)があらかじめ準備されています(※)。

UIKitはHTMLやCSSでWebページを作るようなもの

「UIKit」というテンプレートはiOSであらかじめ準備されたテキスト・ボタン・スライドなどのパーツを使って基本的なユーザーインターフェースを作っていくのに向いています。ちょうどHTMLやCSSで部品を配置しjQueryなどを使ってDOM操作をするWebページを作るのと似ています。各パーツはXcode上で配置しSwiftコードを使ってイベント処理を設定することができます。

SpriteKitはFlashでアニメーションをつくるようなもの

WebサイトにおけるDOM要素はページ遷移やプルダウンメニューなどのちょっとしたアニメーションには向いていますが、ゲームなどのリッチなアニメーションには向いていません。そのような表現を行いたい場合にはHTML5のCanvas要素やFlashを使います。iOSアプリにおけるUIKitもリッチなアニメーションは苦手です。そこでiOSアプリでは2Dアニメーションのための「SpriteKit」、3Dアニメーションのための「SceneKit」というテンプレートが準備されています。
※ UIKitやSpriteKitなどの実態はクラス群であり、この中に各クラス(例えば画像を表示させるクラス、アニメーションを設定するクラス等)がまとめられています。他にもApple Watch用のWatchKitや、SNS用のSocial Framework等があります。また、これらのクラスはObjective-Cでも使用可能です。