トップページで紹介した「test.html」で、モバイルアプリの開発はそんなに難しくないというのはわかってもらえたと思うんですが、「test.html」だけではアプリになりません。

 アプリというからには、アイコンが必要ですし、「ウェブビュー」がHTMLで動くといっても、JavaやObjective-Cからブラウザを立ち上げて、その上でHTMLを実行しているので、そのブラウザを立ち上げたりする部分を結局ネイティブで作らないといけません。

 また、アプリを配布するには、App storeやGoogle Playにアプリを提出しないといけませんが、そのための設定もいろいろしないといけません。たとえば縦表示か横表示か?、タブレットを対象に含むのか?といった事です。

 でも安心してください(はいてます)。今は、そういうのを全部自動でやってくれる、便利な開発ツールがいっぱいあります。「プラットフォーム」や「フレームワーク」と呼ばれるものです。

 モバイルアプリ開発で、まず始めにする事は、どのフレームワークで開発するか決める事です。

 いろいろ出ていますが、私が今まで使った事のあるものをいくつか紹介します。参考にしてください。

intel XDK

 もともと、app mobiという名前だったのが、数年前に、intelに買収されて、「intel XDK」と名前が変わりました。それまでは、無料枠と有料オプションみたいなのがありましたが、intelに買収されて完全無料化しました。そこには、ウェブビュー開発の普及によって、Appleのネイティブ開発に対抗していきたいというintelの思惑があるようですが、開発者にとってはありがたい限りです。私も現在は、この「intel XDK」を使わせてもらっています。

 天下のintelという事もあるのか、バグとかも比較的少ないです。また毎月のように、アップデートされるのですぐに修正されます。

 Forumとかも活発で、応対も丁寧で、Forumに質問したらすぐに開発サイドから返事が返ってきますが、日本語は通じません。それが最大のネックでしょうか。

 私が、一番気にいっている所は、デバッグが容易なところです。上図のようにPC上で、動作確認ができます。しかも、iPadやiPhone6やNexsus7など、有名どころの端末の表示を瞬時にシミュレートしてくれます。PC上で、これだけ正確なシミュレーションが瞬時にできるのは、intel XDKだけです。

 他のプラットフォームは、実機シミュレーション(起動に時間がかかる)か、単にブラウザにそのまま表示するだけです。最終的には、やはり実機での確認は必要ですが、「App Preview」という無料のアプリを端末にダウンロードするだけで簡単にできます。

 対象をタブレット限定にしたり、バウンススクロール(safariで、それ以上スクロールしない時にビヨーンとなるやつ)をオフにしたりを、intel XDKのプロジェクトページ(ビルド設定ページ)からは設定できず、直接config.xmlファイルを書き換えても、ビルドする時に上書きされてしまうので、そこだけが頭痛の種でした。が、最近やっと解決方法をみつけました。当分は、intel XDKにおんぶにだっこで大丈夫そうです。

Monaca

 日本の企業が制作しているので、日本語で対応してもらえます。それが最大の利点でしょうか。

 数年前に、Beta版から正式版になって有料になりました。無料枠もありますが、最大3アプリしか作れません。

 Beta版の時に、結構がっつり使わせてもらってた時期があったんですが、1日にビルドできる回数も料金プランによって制限があるので、ちょっとしたバグを修正するのに何日もかかってしまう事があるのもネックでした。

 Onsen UIという、モダンなUIが登場しましたが(ほぼionicのパクリ)、動きがもっさりして使えないという印象でした。

  ここ2年ぐらい使ってないので、いくらか改善されているかもしれません。

 

Monaca 

Ionic

 UIが洗練されていて、美しいです。しかも、完全無料です。また、Angular.jsという便利なフレームワーク(便利アイテム参照)と親密性が高いのが、利点でもあり、欠点でもあります。

 Angular.jsもそうですが、SaaSといったモダンな開発手法で構築できるなど、機能もかなり充実していますが、基本的にConsoleから操作するので、初心者にはなじみにくいかもしれません。

 また、いろいろ細かい設定までちゃんとできるんですが、逆にそこが面倒なとこでもあります。

 最近、「マニュアルなしで誰でも使える簡単家計簿」や「Tournament Manager」といったアプリのUIをフルリニューアルしたんですが、実はこの「ionic」のCSSやjavascriptを上記の「intel XDK」に組み込んで作っています。こうする事によってionicの洗練されたUIを利用しつつ、細かい設定はintel XDKでしてくれます。こういう事ができるのもintel XDKのいいところです。

 洗練されたUIで注目のフレームワークでしたが、Googleのマテリアルデザインの登場によって、早くも古くさい部類に入ってしまいかねない状況でもあります。この技術の進歩の異常な速さが、モバイル開発の面白みでもあり、怖さでもあります。

 

ionic


 intel XDKやmonacaは、統合開発環境と呼ばれるもので、専用エディタも存在するんですが、結構使い勝手が悪かったりします。なので、自分のお気に入りのテキストエディタを使った方がいいと思います。

Sublime Text

 私が普段、愛用しているテキストエディタです。コードが見やすくて、見た目もきれいです。

 そのままでも、特に不足は感じませんが、ほしい機能があれば、プラグインが充実しているので、どんどん追加して、お気に入りのセッティングに仕上げて使っている人が多いです。

 あくまでお試し版というスタンスで、たまに、「購入しますか?」みたいなメッセージが出ますが、無視して使い続ければ、普通に無料で使え続けます。私の知っている限り、みんなそうして使っています。


  Sublime Text

Brackets

 ホームページ作成統合環境「Dream Weaver」でお馴染みのAdobe社製の無料エディタです。HTMLで結構面倒なスタイルシート(CSS)の記述や、反映の確認がものすごく楽です。

 また、上記のSublime Textの唯一の不満は、画面分割が面倒なところですが、Bracketsは、その点もかなり使いやすいです。

 上の画像のような白ベースと、黒ベースのスタイルを選べるんですが、どちらにしても、Sublime Textに比べちょっと見づらい感じがします。


Brackets

Sakuraエディタ

 無料、テキストエディタの代表格です。ウェブデザイナーやモバイルアプリ開発者よりも、システム開発のプログラマーで愛用している人が多いです。

 無料にしては、かなりの高機能・完成度です。特に、正規表現での検索や置換がし易いなあという印象があります。

 ただ見た目の美しさは、上記の2つには劣ります。また、コードが折り返さず、横にずーっとスクロールしないと長いコードが見えなかったりするのが、うっとおしかったりします。


Sakuraエディタ

Atom

 私は、基本的に全部一人で開発しているので、今まではSVCやgitといったソース管理を全く必要としませんでした。

 しかしながら、ソースのバージョン管理をする事によって、修正するたびに「// 2016/2/15 ADD START…」みたいなコメントを入れまくる必要もなく、「やっぱり戻すかもしれんから、コメントにして残しておこう」みたいな事も考えずに、余分なものはバッサリ消し去って、コードをすっきりさせたりできます。このAtomというテキストエディタは、gitとの親和性が非常に高いと評判です(gitも最近めちゃ流行ってます)。

 そういいながらも結局導入するのが面倒でソース管理してませんが、そういうのなしでもAtomはめちゃ見やすくて、使いやすいです。Sublimeの弱点である画面分割や、検索(なんか動きがおかしい)も簡単です。

 さらに、私は普段Macを使っていますが、Macはサーバーのプログラムを編集するFTPソフトがあまりいいのがありません。最近まで、Aptena3を使ってましたが、OSをアップグレードしてから動かなくなってしまい、大変困っていましたが、結局Atomのプラグイン「Remote FTP」が一番使い勝手がよくて、そちらでも重宝しています。

 最近は、ずっとAtomを使わせてもらっています。


その他注意事項

 上で紹介した、プラットフォームとテキストエディタがあれば、すぐにでも開発に取り掛かれますが、最後にひとつだけ注意してほしい事があります。

 モバイルアプリは、大きくわけてAndroidとiOSにわかれますが、収益性が高いのは断然iOSです。私がリリースしてきたアプリの場合で言うと、10倍以上差があります。

 なぜかというと理由はいろいろありますが、一言で言えば、Androidの方がライバルが多いからです。なぜライバルが多いかというと、その理由は大きくわけて3つあります。

 1つには、Androidのネイティブ言語であるJavaは普通のシステム開発でもよく使われている言語なので、普通のシステム開発者が手をつけやすいという事。

 2つ目は、App Storeのように審査がないので、しょうもないアプリでも全部ストアに並ぶので、ちゃんとしたアプリが埋もれてしまう事。

 そして3つ目は、windows  PCで開発できる事です。

 そうです!逆に言えば、iOSアプリはWindows PCだけでは開発できません。厳密に言えば、開発はできるが、App Storeにアプリを提出するには、最終的にMacのApplication Loaderというアプリが必要になります。なので、iOSアプリを開発するには、Macを購入する必要があります。

 さらに、Google Playにアプリを登録するのはほぼ無料でできるんですが、App Storeの場合は、年間一万円ぐらい払わないといけません。また、審査を通るには、Appleのアプリ審査基準をクリアする必要があるので、しょうもないアプリは審査を通過できません。私も何度か審査をおとされた事もありますが、落とされた理由とかも英語でくるので、ある程度英語を理解できないと対処できません。軽い質問とかは、日本のスタッフでも対応してくれますが、アプリ開発にかかわるような技術的な質問とかは、全て英語でのやりとりになります。

 英語も、アプリ開発においてはある意味必須です。でも安心してください。(はいてます。) 今はこんなんがあります→Google 翻訳

 障壁の多いiOSアプリですが、それだけ見返りも大きいので、挑戦してみる価値はあると思います。