限られた予算内でのスマートフォンアプリ開発において、アプリネイティブ+Web技術を利用した「ハイブリッド型」の開発をお勧めしています。

このページで説明する「ハイブリッド型」とは、「スマートフォンネイティブ言語」での開発と「Webシステム開発技術」を併せたスマートフォンアプリ開発手法です。このページではこの開発方法の説明をいたします。「ハイブリッド型」開発には様々な手法があります。その中の一つの手法です。

 限られた予算とスケジュールの中で、最高のアプリを開発するための一つの手法として知っていただければと思います。

ネイティブ開発

主な開発環境・言語

iOS : Xcode + Swift Objective-C
Android : Android Studio + Java

iOS または Android の開発元(Apple社、Google社)が提供するアプリ開発キット(SDK)を用いて、アプリ開発を行います。

メリット

OS、スマートフォンの最新技術を最高のスペックで動作させることが可能。
音声、動画、AI、画面のUI/UXなど、思い通りの動作・デザインをプログラミングすることが可能。

デメリット

iOSとAndroidを個別に開発する=コスト2倍
OSのバージョンアップやアプリ開発キットの変更、デバイスのアップデート(画面サイズの変更や古い機能の削除など)で使えなくなる機能(命令)が発生しすることがあり、その都度改修とストアへの配信申請を行う必要が発生。
アプリ開発者がWebエンジニアより少なく、人件費が高コスト化しやすい。

Webシステム(としてすべて、または一部を)開発

主な開発環境・言語

iOS、Android 問わず: HTML + CSS 、Internet Expolorer、Safari、Google Chromeなどのブラウザで動作

スマホアプリでは、SafariとGoogleChromeをターゲットとして開発を行うことが多い。特別な開発環境は不要。

メリット

iOSとAndroid向けの画面を1つの開発でまかなうことが出来るため、大幅なコスト削減可能。
開発エンジニアが多く、開発者コストがネイティブ開発より抑えることができることが多い。
ブラウザの仕様に準拠することにより、OSの違いや画面サイズの違いを気にせず開発できる。
改修時、Web開発した画面であればWebサーバーの修正のみで完了するため、修正時間が早く、アプリの配信最新性が不要

デメリット

高度な機能を使った開発ができない場合がある(例:音声、動画、カメラ、Bluetooth、GPS、AI、アクションゲームのような複雑な処理など)
Webサーバーを介するため、ネットが無い状態では利用出来ない
ネイティブ開発と異なり、Webサーバーを介するため、ネットの通信が必要で画面の遷移などがネイティブに比べると遅かったり、スムースではない場合が発生する。

SIAでは、スマートフォン「アプリ開発」において、ハイブリッド型の開発をお勧めしています。

ここで説明する「ハイブリッド型開発」とはWebシステム開発技術と、スマートフォンネイティブ言語での開発を併せた開発手法です。このページではこの開発方法の説明をいたします。

Web+ネイティブ=ハイブリッドアプリ

私たちがご依頼いただくアプリ開発プロジェクトの多くで、この手法を取り入れています。

基本的には「アプリ」を開発しますが、その画面の中身をWebシステムとして開発し表示します。OSネイティブの機能が必要であれば、その部分のみネイティブで開発します。ユーザーからは特に気にならないことが多いです。皆様がご利用されているアプリも同開発方法のアプリが多々あります。

ちなみに、スマホのホーム画面に「アプリ」のようにWEBサイトを置く方法があります。ブラウザで「ブックマーク」を行い、ホーム画面に設置する方法です。コレを行うと、一般的なWEBサイトのアイコンがホーム画面に表示され、簡単にアクセスすることができますが、これはアプリでは無く「ブックーマーク」が設定されたものです。

このブックマークの手法では、「プッシュ通知・カメラ」などのネイティブを利用する機能は利用が制限(出来ないことが多々となる)されますし、「ストアからアプリをダウンロード」というインストール方法では無くなります。

「ストアからアプリをダウンロード」というよく見るインストール方法を実現するためには「アプリ開発」としてアプリを制作する必要があります。

アプリをより多くの人に知っていただくために、「アプリ」を開発しストアに申請されることをお勧めします。

Web+ネイティブ=ハイブリッドアプリ開発

主な開発環境・言語

上述の ネイティブ開発、Webシステム開発の通り。

設計段階で、Webにするべき機能・画面と、ネイティブが必要な機能とを洗い出し、開発を行います。

メリット

OS、スマートフォンの最新技術を利用したい一部の機能はネイティブ開発を行うため、最高のスペックで動作させることが可能。
必要な場面・機能で、音声、動画、AI、画面のUI/UXなど、思い通りの動作・デザインをプログラミングすることが可能。
オフラインでも利用したい機能をネイティブで作ることによりオフライン動作も可能。オンラインで利用すべき機能はWebで開発。
iOSとAndroid向けの「多くの共通画面」をWebとして1つの開発でまかなうことが出来るため、大幅なコスト削減可能。
<くの機能をWeb化することにより、開発者コストがネイティブ開発より抑えることができる。
ブラウザの仕様に準拠することにより、OSの違いや画面サイズの違いを気にせず開発できる。
改修時、Web開発した画面であればWebサーバーの修正のみで完了するため、修正時間が早く、アプリの配信最新性が不要

デメリット

ネイティブ開発と異なり、Webサーバーを介するため、ネットの通信が必要で画面の遷移などがネイティブに比べると遅かったり、スムースではない場合が発生する。
すべての機能において、最高の動作、思い通りの動作になりにくい場合がある。(高度な機能やUIを予定する場合)

 

Accessibility Toolbar