NIJIBOX Advent Calendar の19日目の記事です。
HTML5ハイブリッドアプリ開発環境である、Monacaを1年ほど業務で使っていたので
Monacaによるスマホアプリ開発に関する個人的な感想を書いてみたいと思います。
#個人的に良いと思うところ
##学習コストが低い
HTML+CSS+JavaScriptで作ったページがそのままアプリに使えます。
デバイス機能を利用する時だけ、専用APIを使いますが学習コストは低いです。
(昔Titaniumという似たような技術をさわったときは独自SDKの学習で挫折しました)
##単純なアプリならすぐ作れる
ハッカソンなどのイベントで簡単なプロトタイプを作るときに Monaca で開発しますが
2~3時間くらいでAndroid/iOS両方のビルド済みアプリまで完成しています。
#実案件で使って見ての感想
##WEB制作と同じチームでそのまま開発できる
アプリ専門のエンジニアはいませんが、WEB制作と同じチームで開発できています。
HTML+CSSはデザイナー、JavaScriptはエンジニアといった具合で問題なく分業できていると思います。
##アプリ機能の検証にデバッガーが超便利
ライブリロード機能でコードの修正がリアルタイムで反映されるので、確認作業が大変らくです。
スマホとPCをUSB接続すると Chrome Dev Tools が使えるため、デバッグ作業も効率的に行えました。
##クラウドIDEではチーム開発が困難
チームで開発する時に複数人で同じプロジェクトを編集すると、デグレが起こる可能性があったため
本番コードに直接さわれるクラウドIDEは利用せず、Monaca Localkit によるローカル開発を行っています。
##アプリによってはプレビュー機能が使えない
表示確認が簡単なWEBのプレビュー機能ですが、Cordova API やクロスドメインの Ajax リクエストを
使ったアプリだと動かなくなることがあったため、普段は Monaca デバッカーを使用していました。
##バージョン管理の連携機能がGitHubしかない
私のプロジェクトでは、BacklogのGitリポジトリを使っていたため連携ができませんでした。
しかたがないので、普段は Monaca Localkit を使ってローカル環境でGitでの管理と開発を行い
Monaca CLI を使ってクラウド先のプロジェクトと同期をとるようなことを行っています。
##バックエンドサービスのPUSH通知機能の回数が少ない
Goldプラン(月額5000円)でも月5万件、Platinumプラン(月額8000円)でも月10万件と少ないです。
ニフティmBaaSなら月200万回まで無料で使えるので、個人的にはこちらがおすすめです。
##標準で提供されない機能もCordovaプラグインで拡張できる
サードパーティ製のプラグインがたくさん公開されているので、それらを使うことで
簡単に機能を拡張することができます。(Goldプラン以上)
JavaやObjectiveCの知識があれば、自作のプラグインも作れます。
##外部プラグインを使いはじめるとメンテナンスが大変になる
世の中そんな甘くはないです。サードパーティ製のプラグインを使っていると、
MonacaのCrodovaバージョンを上げた際に動かなくなったり、ビルド失敗で苦労しました。
安易に公式以外のプラグインに飛びつくと、保守作業で痛い目にあいます。
##ビルド作業とアプリの配布に手間がかかる
リリースビルドを複数人に配布してQA作業を行っていると、報告→修正→配布のサイクルが
頻発するため、通常の作業手順だとビルドと配布に多くの手間と作業時間が発生していましたが、
この問題については DeployGate と Jenkins を組み合わせたCI環境を構築したことで大幅改善されました。
#総括
- 今後はCordova自体の理解も深める必要がある
- Cordovaプラグインを作れるようになると自由度が広がる
- 結局はネイティブAPIを使うため Java と ObjectiveC の学習は必要