ITごはん

ITを活用したい人、ITで何か作りたい人、そんなITでごはんを食べる人のためのブログ

発注する前に知りたいハイブリッドアプリ5つの盲点

はじめにハイブリッドアプリとネイティブアプリの違い

エンジニアの興味以上に、発注サイドでは、 ハイブリッドアプリに対する関心は強いなと最近感じています。

まず、簡単にハイブリッドアプリとネイティブアプリの違いから、

ネイティブアプリ
- アプリ開発の標準的な開発方法
- 開発言語は、iOSであれば、Objective-CやSwift、AndroidであればJavaが使用される

ハイブリッドアプリ(HTML+CSS+JavaScript)

- iOS/Androidを1つのプログラムから同時に開発できるので、短期開発・工数(費用)削減ができる
- 開発言語は、HTML+CSS+JavaScriptというWebサイト作成で一般的に使用される言語(MonacaやCordova)や、
JavaScriptのみ(Titanium)やRuby(Xamarin)などで作成される。
 また、ゲーム用ではC++などで開発できる(Cocos2d-x)や、C#などで開発できる(Unity)もあります。

みたいな感じです。

発注サイドからすると、 ハイブリッドアプリは 「安くて、iOS/Android両方のアプリを同時に作れるのって、お得じゃん」 みたいな感じになります。

そんなわけで、アプリ開発を考える経営者・担当者からは、 ハイブリッドアプリで行こう!と決めてかかって開発の相談に来られる方も多いです。

ですが、そうはお問屋が卸さない理由があります。 この点を勘違いして、発注サイド・開発サイドで咬み合わない、 なんてことがよく有りますので、 ハイブリッドアプリの盲点を見ていきましょう。

1.レスポンスが遅い

一般にハイブリッドアプリは、ネイテイブアプリより、操作の反応(レスポンス)が遅いです。 ですので、普通のアプリの感覚で、スワイプなどのヌルヌルの動きを再現したいという場合に、 それが難しい場合があります。

ただ、この問題には各ハイブリッドアプリ技術側も対策を練っていて、 うまくコントロールできれば、 おおよそネイティブアプリと違いが分からないレベルの開発も十分可能です。

2.OS別の作業(コード)は発生する

ハイブリッドアプリは、1つのプログラムから、2つのアプリ(iOS/Android)を作成するものですが、 実際はプログラムの一部について、iOS用の専用のプログラム、Android用の専用のプログラムを 作成する必要がある場合があります。 特にスマートフォン独自の機能、すなわちカメラやGPSや加速度センサー、また外部Webサービスなどと 連携するような場合は、OS別のコードを書き分ける必要が出てくることが多いです。

3.テスト工数やリリース作業は半分にならない

実際にアプリやシステム開発一般として、想定した通りの動きになっているかという動作の確認(テスト)の 作業量(工数)は大きなものがあります。 一般にエンジニアはプログラムを書く人、みたいなイメージがありますが、正確にはプログラムを書いて、 テストするというのを繰り返しています。

ですから、ハイブリッドアプリになったとしても、 テストは実際に動かす環境で、動作させてみないと正しくテストできませんから、 iOSAndroidそれぞれで、同じプログラムをテストすることになります。

なので、プログラムは1本だけど、テストは2本分はやらなければなりません。

また、iOSではAppStoreで、AndroidではGoogle Playでダウンロードできるように、 リリース作業もそれぞれ行わなければいけません。

これも完成したアプリをアップロードしておわりというわけではなく、 アプリの説明文の文字数や、紹介で使うスクリーンショットはそれぞれサイズなどに 違いがありますから、これもまとめて1本分というわけにはいきません。 (この申請には証明書の作成など技術的な作業も含まれます)

4.Web系エンジニアなら作成できるわけではない

ハイブリッドアプリでは、主にWeb系エンジニアが 得意とする開発言語で作成されます。 そのため、Webサービスの開発が得意な会社であれば、 開発を任せられるというかというと、それも違います。

やはり、アプリの世界は、アプリのプログラミングの基本的なルールや 上記で説明した申請作業まわりの アプリ独自の作業が沢山ありますので、注意して下さい。

やはり、ハイブリッドアプリの開発実績がある会社に依頼するのがベストです。

5.技術が安定していない、技術動向がすぐ変わる

ハイブリッドアプリの開発手法というのは、 ネイティブアプリの開発手法と違って、まだまだ未成熟です。 また、技術の栄枯盛衰も早いです。

そのハイブリッドアプリの仕組み(フレームワーク)が、 がらっと変わってしまい、 以前作成したアプリの拡張や修正が、 思うように行かないケースもリスクとして考慮しておいて下さい。

それでも、ハイブリッドアプリはお勧めです

最後になんにやらハイブリッドアプリをディスったような内容になってしまいました。

誤解して頂きたくないのは、ハイブリッドアプリには魅力があります、

短期開発・工数削減にはやはり効果がありますので、 マーケットの反応を見ながら、対応したいといった場合は、 ハイブリッドアプリで素早くリリースして、 うまく成功したら、ネイティブアプリに切り替えるというのも有りですし、

シンプルな構成のアプリや、あまり派手なアニメーションが必要ない、 ビジネス向けのアプリでは、かなり活躍できると思います。

ただ、ハイブリッドアプリはバラ色だという認識で、 開発を進めると痛い目をみてしまいます。 ここで挙げた盲点をしっかり抑えて、 ハイブリッドアプリなのか、ネイティブアプリなのか、を選択してもらえればと思います。