「iPhoneアプリ」ってどうやって作ればいいの?
「iPhone・iPad」などのポータブルデバイスが普及するにつれて人気を集めているのが「iPhoneアプリ開発」です。
初心者にはハードルが高いと言われている「iPhoneアプリ開発」ですが、具体的にどのように「iPhoneアプリ」を作っていけばいいのかを見ていきましょう。
iPhoneアプリ開発に必要なものとは?
iPhoneアプリを開発する方法は複数の手段があり、
- XCode(Swift)
- Xamarin
- Monaca
- Apache Cordova
- Titanium Mobile
- React Native
など、年々開発方法も多様化と増加をしています。
それでは、1つずつそれぞれの開発手法について見ていきましょう。
XCode(Swift)
Apple社が無料で提供している「XCode」という開発用のソフトウェアを用いて行う開発方法なのですが、Apple社が開発した「Swift」というプログラム言語を用いて開発を行います。
従来は「Objective-C」という初心者には扱いづらいプログラム言語を利用して開発が行われていましたが、「Objective-C」と比べて「Swift」は初心者でも学びやすいプログラム言語となっていて、iPhoneアプリ開発では、スタンダードな開発手法となっています。
しかし、Swiftは誕生して数年しか経っていないこともあり、現在でも活発にプログラム言語の仕様変更・追加が行われていて、以前に書いたコードの変更を余儀なくされることも多いため、頻繁にプログラムのメンテナンスをしなければいけないというデメリットもあります。
「高速に処理ができる」という点では、Swiftが有利なため、2D・3Dグラフィックスを高速に描画する必要のあるゲームアプリケーションなどでは、Swift言語での開発が多く行われています。
Xamarin
「Xamarin(ザマリン)」は、開発環境の名前として認知されていますが、本来は、企業名を表していました。
現在はMirosoftに買収されVisual StudioでXamarinが使えるようになっています。
Xamarinを使うことのメリットは、「一つのコードでiOSとAndroid」の両方のアプリが使えるということです。
iOSでの開発はSwift、Androidの開発はJavaと1つのアプリに2種類のコードが存在するのは、メンテナンス・コードの変更処理の作業量が増えてしまうため、好ましくありません。
そこで、2つのアプリを1つのコードで管理できる仕組みがXamarinに採用されています。
Xamarinでは、C#言語を利用して開発を行いますが、「.NET Framework」の仕組みを活用して開発を行っています。
iOSには「Xamarin.iOS」、Androidには「Xamarin.Android」が対応していて、C#言語をそれぞれのプラットフォームで稼働させる仕組みを持っています。
Monaca
「Monaca(モナカ)」は、WEBベースの技術を利用したスマートフォンアプリ開発が行えるプラットフォームです。
開発環境がWEB上にも用意されているため、WEBブラウザが利用できるPCであればどこからでも開発できるというメリットがあります。
開発自体も「HTML・CSS・Javascript」ベースで行えるため、技術習得も他の開発方法と比較するとハードルが低いことも、初心者向けの開発手法と言えるのではないでしょうか。
2D・3Dアプリケーションを高速に描画するには動作速度も問題がありますが、ユーティリティアプリなどであれば十分に実用できる品質のアプリを作ることができます。
テレビ朝日向けのスマホアプリ開発なども行っているそうで、大手メディア系企業でも採用されているとのこと。
→「開発実績 | 「みんながカメラマン」アプリ開発 | アシアル株式会社」
どのプラットフォームを選ぶのかは開発実績も重要なポイントですね。
すでに60000以上のアプリがMonacaでリリースされていて、他にも「TANITA・ジャパンネット銀行・ASIS」などさまざまな企業が「Monaca」を採用しています。
「HTML・CSS・Javascript」を書けるコーダーやプログラマでも開発ができるとあって、近年利用者が増えてきている開発手法です。
→「Monaca - HTML5ハイブリッドアプリ開発プラットフォーム」
Apache Cordova
オープンソースのモバイル開発フレームワークとして開発された「Apache Cordova」ですが、先述した「Monaca」が利用していることでも有名です。
Apache Cordovaは、
- iOS
- Android
- Windows Phone
- Symbian
- Firefox OS
などに対応していて、さまざまなプラットフォームのアプリを作ることができます。
他にも、Microsoftが提供しているVisual Studioでも拡張機能としてApache Cordovaを使うことができます。
「Net Beans」などの統合開発環境(IDE)などでも開発を行うことができ、さまざまな開発環境を利用することができます。
Apache Cordovaに限らず、WEB技術を利用して作られたアプリは基本的に「SPA(Single page Application)」として開発されることが多いのが現状です。
DOMを動的に操作しながらUIを変更していくため、これまでにそのようなアプリケーション開発の経験が無い方は少し戸惑うかもしれませんがいくつかアプリを作ればすぐに慣れることができるでしょう。
Titanium Mobile
「Titanium Mobile」はネイティブアプリケーションを開発できるプラットフォームで、Javascriptから、iOS・Androidなどのネイティブコンポーネントを利用する点で、他のWEBベースの開発プラットフォームと異なり、本格的なアプリを開発することもできます。
しかし、開発元が買収されるなど、今後の提供が保証されるのか心配なニュースもあり、継続して使っていけるかどうかは、その時点での開発状況を見極めて判断をしていく必要があります。
React Native
「React Native」は、FaceBookによって開発された「React」と呼ばれるWEBコンポーネント構築技術を活用して生み出された「モバイルアプリ開発技術」です。
「React Native」では、ReactのコンポーネントとObjective-Cのコードを紐つける形で実装されていて、Reactでの開発経験者であれば、開発が行いやすい仕様となっています。
Microsoftが開発している「ReactXP」は「React」と「React Native」を利用してクロスプラットフォームアプリを作ることができるライブラリですが、「React」「React Native」を「wrap(包む)」ような役割を担っています。
FACEBOOKが開発したライブラリをMicrosoftがさらに包み込んだというのもおもしろい変遷ですね。
結局どのアプリ開発の方法がいいの?
さまざまな開発方法をご紹介してきましたが、今後もどんどん新しい開発手法が増えることも想定され、どの開発方法が自分に合っているかわからないという人もいるのではないでしょうか。
開発方法を決める要素は1つでは無く、
- 開発の難易度
- 開発速度
- 開発環境のサポート状況
- ライセンス内容及びライセンス費用
- 拡張性の高さ
- 処理速度
- メンテナンス・保守性
などさまざまな要素総合的に勘案する必要があります。
大きく分類すると、Swift・Javaなどを利用する「ネイティブ開発」と、さまざまなプラットフォームで動作する「クロスプラットフォーム開発」に分けることができます。
アプリケーション開発は作って終わりでは無く、リリース後も「機能改善・バグ修正・機能追加」など、アプリケーションのライフサイクルに合わせた、プログラムケアが必要になってきます。
どのような人たちが今後のアプリケーション開発やメンテナンスに携わるのかを考えながら、アプリケーションを円滑にリリース&メンテナンスできる手法を選ぶようにしましょう。