今回は、現在私が開発現場でメインフレームワークとして日々使っているIonic(アイオニック)について語ろうと思います。このIonicですが、何者かというと一言で言うと「ハイブリッドアプリ」になります。
Webアプリ + ネイティブアプリ = ハイブリットアプリと行ったところです。それぞれの特徴を併せ持っており、特にWebviewというコンポーネントをもっていることからマルチプラットフォームに対応したアプリを開発できます。このWebviewは非常に便利で、QRコードリーダーやカメラ、マイクなど高性能かつ多くの機能を備えています。また、利用するWebサイトの内容を更新することですぐにブラウザ場で変化を確認できるため、ちょっとした変更点をすぐに確認・修正することができます。そのため、これまでより少ないコストでSPAを作ることができます。
特にIonicですとAngular(2以降)をベースにApache Cordovaの豊富なプラグインを使用可能で、Ionic独自のライブラリも相まって慣れれば少ない記述量でハイレベルなUIを実装することができます。私個人として一番良いと思ったのは、環境構築が非常に容易で、「npm install」を初めとした僅か数回のコマンドで環境構築が完了し、具体的な開発に移ることができる点です。開発環境構築に多々悩まされていた私としては何よりもありがたいことでした。
・・・と利点ばかり述べてきましたが、Ionicにも欠点はあり、特に大きいのは日本語の参考文献の少なさです。主に海外で多く使われているためか、散見する文献のほとんどが外国語のため、いちいちGoogle翻訳に頼らなければならないことが挙げられます。また、複数のフレームワークから構成されている故に様々な動作は緩慢で、素早くはありません。最大の欠点は習得難易度の高さです。Ionicに慣れるためには構築する際の基礎言語としてHTML、CSS、Typescript、フレームワークとしてAngular、Apache Cordova、Ionic独自のライブラリ、デプロイ時にXcodeの操作知識などを習得する必要があり、ある程度他の言語を使える人でないと扱うのが困難であるということです。
ここ数年、フロントエンド(クライアントサイド)フレームワークの変遷の激しさは話題を醸していますが、ハイブリットアプリも同様の傾向が見られます。まだまだ成熟しているとはいえない反面、伸びしろがあり、使いこなせる技術者も少ない現状ですので、SPA開発やモバイル端末開発を考えるている方には是非とも使ってみて欲しいです。また、使っていくうちに気付いた点が出てきたら逐一加筆していこうと思います。