[Tech/IONIC] モバイルアプリ開発のオススメフレームワーク

IONIC事始め


Posted by Ryuichi Yamashita on Nov 26, 2016

アプリ開発フレームワークであるIONICを触り始めて早2か月くらいが経ちました。まだまだ初心者の領域を抜け切れておりませんが、IONICに関して感じるメリット、デメリットについて、私が今まで経験してきた他言語での開発と比較しながらまとめてみたいと思います。

概要:IONICとは
まずはじめに、IONICとは何ぞやという方々のためにその概要を紹介しておくと、AngularJSという一種のJavascript系言語で記述されるアプリ開発フレームワークです。様々なプラグイン(例えばカメラ機能を扱えるもの)を導入することができ、スマホならではの動作も基本的なものはカバーできるという特徴を備えています。

さて、ここからが本題なのですが、メリット、デメリットについて以下のように感じています。

<メリット>
やはり最大のメリットは、同一のコードでiOSアプリ、Androidアプリの両方を開発できる点です。実際に私も練習の一環で、iOSアプリ、Androidアプリをそれぞれ公開してみましたが、簡単なアプリであれば全く問題なく作ることができたのは大きな収穫でした。本来であればiOSアプリはSwiftで、AndroidアプリはJavaで開発しなければならないところ、AngularJS一本で開発できることで、開発工数の低減とサービス公開までのスピードアップを図ることができ、特にベンチャー企業にとっては伝家の宝刀になるような気がしています。

ただ、ここで一つ注意するべき点があるとすれば、あくまでも「簡単なアプリ」を作る場合にその威力が発揮されるだけで、少しでも高機能かつリッチなUIのアプリを作ろうとすると、途端にIONICでは実現できないところが出てくるという点をしっかり認識するということだと思います。(どこからが「簡単」なアプリでどこからが「高機能かつリッチ」なアプリなのかというのは実際に開発経験がないと難しいかと思いますが。。。)

<デメリット>
上記と内容が少し被ってしまいますが、それぞれのプラットフォーム(iOS/Android)上で、実際に実機で動かしてみると様々な細かい不具合に悩まされることが多く、この点が現在私がIONICに対して感じているデメリットです。例えばの話、扱うデータ量がそれほど多くないにもかかわらず少し(ユーザー視点で気になるレベルで)動作が重かったり、Swiftでの開発では経験したことのないようなメモリリークが起きるという、おそらくはIONIC特有のバグに悩まされることが多いのです。

以上、簡単にメリット・デメリットをまとめさせていただきましたが、結論をまとめさせていただくと、本当に簡単なアプリ(極端な話、InstagramやFacebookの100分の1くらいのレベルの機能を備えたアプリ)であれば、IONICでささっと公開してユーザニーズを確認し、もしスケールしそうなら改めてSwift/Javaで開発をするというのがベンチャーとしてあるべき姿なのではないかと考えています。

実際に今年中に最低2本、IONICで開発したアプリをリリース予定なので、これらアプリの詳細も含めてまたどこかでご紹介したいと思います。