ちょっと話題の記事

スマホアプリの受託開発ならネイティブで行うべき4つの理由

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!おおはしりきたけです。今日はスマホアプリの受託開発について書いてみたいと思います。

はじめに

前提条件として、スマホアプリでの受託開発に限ります。お客様がハイブリッドアプリで依頼される場合や、自社サービスの場合は、自社で技術の判断ができますので、ネイティブでもハイブリッドでもWebでも自由な技術の選択で良いと思います。クラスメソッドでは、AWSやHTML5などが目立っていますが、iOS、Androidなどスマホアプリの受託開発もやっております。そういった中で、「マルチデバイスのハイブリッドアプリで」という要望もあったりしますが、2013年4月現在のクラスメソッドでは、原則ネイティブでの開発を勧めています。その理由を以下に記載させていいただきます。

1.かゆいところに手が届かない

ss-osX-ui_icons

「ハイブリッドアプリならネイティブアプリ同等のアプリができる!」なんて言葉よく聞きますよね。でもあくまでネイティブ風です。

結局はWebの技術なので、ネイティブと完全に同等にはならないんですね。お客様がWebアプリとしてハイブリッドアプリを認識しているのであれば大丈夫だと思いますが、大抵はネイティブの代用としてのハイブリッドアプリだと思います。細かいところにこだわった瞬間にネイティブ同等のことなんてできないのです。

2.パフォーマンスがでない

ss-osX-ui_icons

「ハイブリッドアプリでiOSもAndroidも開発できる!」なんて言葉よく聞きますよね。もちろんできます。ただし、速度を気にしなければ。

確かに開発できます。でもHTML5だけで普通に作ったらパフォーマンス出せないんですよね。結局パフォーマンスを出そうと思ったらCSSアニメーションやネイティブで実装したりなどしないと行けないですし、それでもネイティブと同様のパフォーマンスというのは出ないです。また、過去の端末では馬力低いので、パフォーマンスに期待はできません。お客様がパフォーマンスにこだわるのであれば、現時点ではネイティブしかないかなと思います。

3.職人が必要

ss-osX-ui_icons

「Webのスキルで実装できるので、学習コスト低いです!」なんて言葉よく聞きますよね。もちろんWebのスキルでアプリ開発できます。Webアプリで良ければ。

確かにWebのスキル使えます。でも結局職人レベルの人が必要ですよ。ボタンイベントなんて、普通にclickイベントで書いたら驚くほど遅延発生しますし、iOS、Androidでそれぞれチューニングしないといけないですし。ネイティブでプラグイン実装などもしないといけなかったりしますし。結局Webの技術といってもスマホアプリ作成に特化した技術を持っている必要があります。

4.ワンソースだけど。。。

ss-osX-ui_icons

「ハイブリッドアプリでワンソース!マルチユース!」なんて言葉よく聞きますよね。ワンソースで書くことはできますよ、書くことは。

確かにワンソースであるかもしれません、でも結果的にその中にはiOS、Androidにようにチューニングされたコードが点在してしまいます。ワンソースでも結果的にソースコードが膨大になってしまい結局分けて書いたほうが品質も良かったんじゃないだろうか?と思うこともあります。

まとめ

Webアプリ⇒ハイブリッドアプリで良ければ、ハイブリッドアプリを選択するのは問題ないと思います。しかし、ネイティブアプリ⇒ハイブリッドアプリの場合、上記の理由により現時点ではネイティブで作った方が良いのではというのが私の考えです。

  • 割り切れるならハイブリッドで良い
  • 過去の端末も対象にするとパフォーマンスは出ない
  • パフォーマンスや細かいところにこだわるならネイティブしかない(今は)
  • 職人がいればコストは抑えられる

現時点ではという感じでしょうか。ただ、今後さらに端末の性能も上がって、各種フレームワークも洗練されることによりハイブリッドアプリは増えていくと思います。Web業界では、IE6がなかなか見切れず問題になっていたりしますが、スマホもOSのバージョンが増えてきて過去のOSバージョンをいつ見切るか、これが重要になってくると思います。