質問: 私はこれまで、個人でiOSのアプリの開発をやっており、いくつか、リリースをしております。 ただ、Androidの開発経験がなく、かつ、ユーザーからの反応の中に、Android版がほしいという要望があります。 要望に答えられないまま、いつもモヤモヤした気持ちを抱いております。 ※Androidの勉強をしたいという気持ちもありますが、仮に勉強しても、iOSとAndroid両方を一人でやるということを考えるとちょっと、非現実的かなと思ってます。人を雇うほど稼げているわけでもないので、当面は一人です。 そのため、次の開発からはガワネイティブ(WebView)で開発すれば解決するかなと考えております。 ガワネイティブなので、地図やカメラ等のiOS、Android独自の機能も使える?といった記事も見ましたため、すごくいいのではないかと思ってます。 調べている中でよくデメリットとして挙げられていたのは**動作速度の問題**でした。 ただ、学習コストが低い等のメリットなどもあるため、今後はこちらにシフトしようかと思ってます。 上記を踏まえて、ガワネイティブで今後、開発、保守をしていく中で、皆様のご意見、ご経験をお伺いしたく存じます。 ガワネイティブは便利ですが、実際は・・・といったことも多いように思えます。 次開発するアプリの方向性はまだ漠然としてますが、これまで開発していた機能などをざっと列挙します ・GoogleMapで位置情報を表示させる ・カメラで写真をとる ・プッシュ通知を送る ・Instagramとまでは行きませんが、写真メインのアプリ アプリでユーザー数100万人獲得することを当面の目標(勿論それ以上のユーザー)としているため、それに耐えうるのかどうかという観点も含めて頂けると幸いです。 特に気になる点は**Webビューで開発していると、iOSでは上手く描画されているが、Androidでは描画されてないといったことやバージョン毎で苦しめられるといった点です。**
回答: AndroidアプリでWebViewを使うのであれば『アプリの対象バージョン』を決める際に注意した方が良いです。 AndroidのOSごとに下記のような違いがあります。 * Android4.3まではAndroid独自ブラウザベースのWebView * Android4.4からはChromiumベースのWebView * Android5.0からはWebViewがOSから切り離され、Google Playストア経由でのアップデートが可能となったため、各通信キャリアのOSアップデート対応を待つ必要がなくなった まずは利用を考えているHTML5 APIが対応しているかどうか検証してみてはいかがでしょうか? おっしゃる通り、Androidではバージョン毎に描画に問題があったり、JavaScriptの処理がうまく動かなかったりということがよく発生します。 この対応方法として、CROSSWALKを利用することも考えられます。 ※Android4.0以降を対象とした場合に利用できます。 これはアプリにWebブラウザを丸ごと組み込むようなものなので、アプリのサイズが大きくなるデメリットがあります。 また、ユーザがOSバージョンアップしたり、Google Playストア経由でWebViewをアップデートしたとしてもアプリは影響を受けません。 ただ、CROSSWALKを使えばレンダリング速度が必ず速いと言うわけではありません。 参考までに私が以前検証した結果を共有させて頂きます。 個人的にはフルネイティブで開発したとしても、OSごとの対応はたいてい必要になるので、 WebViewを使ったハイブリッドアプリを開発することで工数を削減するのはアリだと思います。 少しでも参考になれば幸いです。