モバイル開発とは、スマートフォンやスマートウォッチ、タブレットなどのモバイルデバイス向けのソフトウェアを作成するためのプロセスや手順のことです。
現代のコンピューティングでは、過去数十年間使われてきたデスクトップや、さらにはノートパソコンさえ使われなくなってきました。 今日では、ほとんどのコンピューティングはモバイルデバイスで行われており、インターネットトラフィックの半分以上は、スマートフォンやタブレットなどのワイヤレスデバイスからのものです。
コンピューターが「据え置き型」から「モバイル型」へと移行するにつれ、モバイルデバイスで効果的に機能するソフトウェアの需要が高まっています。 ただしこれは、単にモバイルアプリケーションを作成すればよいということではありません。組織に必要なのは、モバイルデバイスで「使用」できるだけでなく、モバイル特有の機能を最大限に活用できるアプリケーションを設計する能力です。
このようなニーズに効果的に対応するために、モバイル開発に重心を移す企業が増えています。
モバイルデバイスでアプリケーションを実行するには、有効な「オペレーティングシステム」(OS) が必要です。 OS は、コンピューターのハードウェアと、その上で動作するプログラムとの間の連携を促進する、いわば仲介役です。 OS は、コンピューター上で実行されるソフトウェアプロセスが適切なリソースにアクセスし、意図した通りに機能するようにします。
モバイル開発プラットフォームとは、基本的には、モバイルアプリケーションを構築、テスト、展開するために設計された OS のことです。 過去を振り返ると、有望なモバイル開発プラットフォームは数多く存在していましたが、現在では市場シェアは二大勢力であるAndroid と iOS が大部分を占めています。
Android は最大のモバイル開発プラットフォームであり、市場シェアの約 80% を占めています。 これは、Android がオープンソースの OS であり、さまざまなメーカーのさまざまな端末に、異なるバージョンの Android OS を搭載できるからです。 Google が提供する Android は Linux をベースにしており、誰でも Android OS に対応したハードウェアを作ることができます。 Android のアプリケーション開発も同様で、開発者は Android デバイス用のアプリケーションを自由に作成することができます。 これにより、アプリケーションの柔軟性が高まり、参入障壁が非常に低くなります。
Google は、「Android Studio」など、Android モバイルアプリケーションを開発するためのネイティブツールを提供しています。 また、Android OS はオープンソースであるため、サードパーティプロバイダーが独自の Android 開発ツールを作成することも可能で、実際に作成されています。 さらに、Google が広範な開発者向けガイドラインを提供しているため、ハードウェアのタイプが異なってもアプリケーションの外観や機能が損なわれないように開発することができます。 ただし、Android デバイスの種類は実質的に無数にあるため、新しいアプリケーションがあらゆる状況において、あらゆる種類のハードウェアで効果的に機能することを保証する方法はありません。
iOS は市場シェアの約 18% しか占めていませんが、二大プラットフォームのうちおそらく iOS の方が支配的です。 iOS は Apple が所有し、管理しています。Apple は、iPhone や iPad といったテクノロジーの登場によってモバイルコンピューティングを主流にした企業として、最も大きな役割を果たしています。
iOS はオープンソースではないため、Android ほど多くのデバイスに対応していません。iOS は Apple 製品のみで動作します。 同様に、iOS 用のアプリケーションを構築するには、開発者は OS X (標準の Mac オペレーティングシステム) を実行する Mac コンピューターを使用する必要があります。
Apple はモバイル開発用のネイティブツールやライブラリも提供しており、開発者には Apple の「Swift」プログラミング言語を使用することを推奨しています。
iOS 開発におけるハードウェアとソフトウェアの両面は Apple が厳しく管理しているため、iOS のパフォーマンスは通常、非常に反応が良く安定した使いやすいものです。 また、Apple は iOS アプリケーションの動作を自社のハードウェア上でのみ許可しているため、デバイスの断片化の心配もありません。 一方で、ガイドラインが厳しいということは、完全にカスタマイズされたアプリケーションを作成することがより困難であることを意味します。新しい iOS アプリケーションは、App Store に提出してレビューと承認を受ける必要があります。
その他の現役モバイル開発プラットフォームが占めるシェアは残りの 2% です。 Windows や Blackberry などの開発プラットフォームもありますが、ほとんどのモバイル開発者は、Android、iOS、またはその 2 つの組み合わせに注力しています。
モバイル開発にはいくつかのアプローチがあります。 ここでは、その中でも代表的な 3 つのアプローチについて詳しくご紹介します。
最も直接的で手っ取り早いモバイル開発方法は、OS ベンダーが提供するツールやプラットフォームを利用することでしょう。 これらのツールは、使いやすさを重視して設計されており、モバイル OS 上での開発用に、迅速なデバッグや最適な機能を実現するためのサンプルやツール、フレームワークなどのリソースが提供されています。
しかし、ネイティブ開発ツールにはデメリットもあります。 ネイティブ開発ツールは、それぞれの OS での開発を前提としているため、使用するプログラミング言語が異なります。 つまり、Android や iOS の開発ツールを使ってコーディングするには、自分の好きな言語ではなく、そのツールで使用される言語に精通している必要があるのです。 同様に、1 つのアプリを両方の OS に対応させるためには、2 つの異なるプロセスやベストプラクティスを用いて、2 回のコーディングを行う必要があります。
しかし、1 つの OS 用のアプリを作成することしか関心のない人にとっては、ネイティブ開発が最も早くてシンプルなソリューションかもしれません。
長所
- 最適化されたパフォーマンス
デバイスの機能を最大限に活用することで、ネイティブ開発されたアプリケーションは、より適切で安定した機能を発揮するようになります。 - ユーザビリティの向上
ネイティブアプリは、特定のデバイスで動作するように作られています。 そのため、デバイス固有の機能を活用して、より良いユーザーエクスペリエンスを提供することができます。 - シングルプラットフォームでのコーディング
複数の OS で動作するのではなく、シングルプラットフォームで動作するように設計されているため、ネイティブアプリの開発は比較的容易です。
短所
- 求められる専門性
特定 OS 向けのネイティブアプリを開発するには、対象となるデバイス向けのコーディングに特化した知識を持つ開発者が必要です。 - 複数の開発作業
ネイティブアプリはそれぞれの OS に合わせて開発する必要があるため、複数のプラットフォームに対応するアプリを作るには、複数の開発作業が必要となり、それに伴いコストと時間も増加します。
クロスプラットフォーム (「ハイブリッド」とも呼ばれる) 開発フレームワークは、開発者が両方の主要な OS で最適に機能する効果的なモバイルアプリケーションを作成できるように設計されています。 開発者が一度コードを書けば、サポートされているすべてのプラットフォーム上で動作するようになるということが理想的です。 多くのクロスプラットフォームフレームワークは、どちらか一方の OS を優先する傾向があり、開発者はもう一方の OS 用にアプリのバージョンを調整しなければなりません。
多くの場合、クロスプラットフォームフレームワークは「抽象化」されており、ネイティブのライブラリやフレームワークを使用しているため、開発者はこれらの要素について基本的な知識を持っている必要があります。 また、Web ベースの HTML コンポーネントとネイティブコンポーネントを組み込んだハイブリッドなアプローチをとるものもあります。
ほとんどのクロスプラットフォームソリューションは、特定のプログラミング言語をサポートしているため、多くの開発者は、自分がすでに慣れ親しんでいるプログラミング言語に基づいて選択することになります。
長所
- 開発期間の短縮
クロスプラットフォームアプリを構築すると、1 つのコードセットだけで複数の OS 上で機能するため、開発サイクルを短縮することができます。 - 開発のしやすさ
ハイブリッドアプリの開発者は 1 つの技術を習得するだけでよいので、参入障壁が低く、開発プロセスが簡素化されます。 - より多くのユーザー
クロスプラットフォームアプリは、両方の主要なアプリストアで入手できるように設計されているため、開発者は Android と iOS の両方のユーザーにリーチすることができます。
短所
- ユーザビリティの低下
両方の主要な OS で動作するように作られたアプリは、通常、それぞれのプラットフォームに固有の機能を十分に活用することができません。 そのため、使い勝手が悪くなったり、ネイティブ開発のアプリに比べて動作が遅くなったりすることがあります。 - 新機能のロールアウトが遅い
ネイティブの新機能が導入されると、クロスプラットフォームの開発者は、開発フレームワークにこれらの機能との互換性が実装されるのを待たなければなりません。 - カスタマイズが困難
アプリがネイティブ開発されていない場合、アプリのカスタマイズは非常に難しくなり、クロスプラットフォームのフレームワークを使って完全にカスタマイズすることはできない場合があります。 - パフォーマンスの問題
特定の OS 向けに作られていないアプリは、通信やパフォーマンスの問題が発生する可能性があります。
近年着実に人気が高まっている第三の選択肢は、モバイル開発に「モバイル Web アプリ」を利用する方法です。 これは、標準的な Web ブラウザからアクセスする Web アプリケーションを構築し、それをモバイルデバイスでの使用に最適化するというものです。
このアプローチは手抜きのように見えるかもしれませんが、実際には、モバイル Web アプリをネイティブアプリケーションと同様に効果的で機能的、かつ洗練されたものにすることができます。 事実、特定のモバイル OS 上のネイティブアプリケーションのように動作するモバイル Web アプリを開発するためのフレームワークが数多く提供されています。 モバイル Web アプリを実行する際、カメラへのアクセス、電話番号のダイヤル、位置情報の取得など、モバイルデバイスの機能を組み込むこともできます。
長所
- メンテナンスの簡素化
モバイル Web アプリは、Web サイトの標準的なプログラミング言語とルールを使用して、Web サイトと同様に簡単に構築して更新できます。 - 開発期間の短縮
Web アプリ開発では単一のコードを使用するため、開発プロセスの高速化と簡素化が可能です。 また、主要なアプリストアでの承認を必要としないため、より迅速なリリースが可能です。 - コスト削減
コーディングの簡素化と開発サイクルの短縮により、開発コストを削減できます。 - 最適なアクセシビリティ
Web アプリは、Web サイトと同様の機能を持ち、標準的な Web ブラウザでアクセスできます。
短所
- インターネットへの依存性
Web アプリは、標準的な Web ブラウザを介してインターネット上でアクセスされるため、機能するためにはオンライン接続が必要です。 Wi-Fi やモバイルデータ通信にアクセスできない場合、ユーザーはアプリにアクセスすることができません。 - 機能へのアクセス制限
Web アプリは、デバイスや OS 固有の機能にアクセスできないため、機能が制限される可能性があります。 - アプリストアに関連付けられていない
Web アプリは、アプリストアでは入手できないため、人目につかない可能性があります。
開発者によってアプローチの仕方や方法論は異なりますが、アプリ開発プロセスは一般的に次の 6 つのステップで構成されています。
開発チームは、他の部門やステークホルダーと協力して、候補となるアプリの要件を確立する必要があります。 これには、アプリが必要とする機能や性能、対象となるユーザーや解決すべき具体的な問題などが含まれます。
アプリのアイデアが固まったら、次はアプリのユーザーインターフェイス (UI) と「ユーザーエクスペリエンス」(UX) を設計します。
開発段階では、実際にコーディングを行います。 開発チームは定められたガイドラインに沿ってアプリをプログラミングします。 適切な機能性を確保するために、予備テストを行います。
アプリの完成が近づくと、より詳細なテストを行う必要があります。 このテスト段階では、アプリが機能するかどうか、不具合がないかだけでなく、全体的な品質やユーザーエクスペリエンスも考慮します。
最終的なテストが完了し、定めた基準を満たしたアプリは、いよいよ公開されることになります。
マーケティングは、厳密に言えばアプリ開発の一部ではありませんが、開発チームの努力を無駄にしないために役立ちます。 適切なマーケティング戦略は、ユーザーにアプリの存在とその機能を知ってもらうために不可欠です。 同時に、マーケティングによって得られた貴重なフィードバックは、開発者が今後のサポートを通じてアプリの改善に役立てることができます。
ほぼすべてのモバイルアプリケーションの成功は、その使いやすさにかかっています。 UI は、アプリケーションの見た目と、ユーザーがどのように操作するかを決定します。 したがって、効果的な UI を作るためには、次のような要素が必要です。
情報アーキテクチャを組み立てる際、開発者はアプリの機能を特定するとともに、インターフェイスの構成を詳述します。
ワイヤーフレームは、完成したアプリの基本的な外観を視覚的に表現したものです。 これには、さまざまな要素のサイズや、レイアウト上でのそれらの関係性などが含まれます。
スタイルガイドは、全体的なデザインの一貫性を保証するために、アプリについての関連する詳細を規定する参考資料です。
モックアップは、ワイヤーフレームやスタイルガイドを基に、アプリの流れを静的に視覚表現したものです。
プロトタイプは、これまでのすべての構成要素を採用したり削除したりして、実際に動作するようにしたアプリケーションの必要最小限のバージョンです。 プロトタイプによって、開発者は完成前にアプリケーションがどのように機能するかを動的に見て確認できます。 これにより、開発者は UI や UX の問題点を特定し、完成した製品がユーザーの期待に応え、さらにはそれを超える可能性を高めることができます。
信頼性の高い強力なアプリの構築は、コネクテッド化が進む今日のビジネス世界で競争力を維持するために必要なことです。 IT 管理ソリューションのリーダーである ServiceNow は、アプリ開発ソリューションを提供し、魅力的で効果的なアプリケーションを構想、開発、リリース、維持するための高度なツールやリソースを、あらゆる組織が容易に利用できるようにしています。
ServiceNow モバイルスタジオは、大勢の開発者やコードに関する深い知識を必要とせずに、企業がカスタマイズされたモバイルアプリケーションを構築するために必要なすべての機能を提供しています。 すぐに利用可能なテンプレート、ドラッグアンドドロップ機能、使いやすいブランディングオプションを使用することで、モバイルスタジオではボタンを押すだけで簡単にアプリを開発できます。 さらに、ServiceNow モバイルアプリビルダーの設定ツールは、アプリ作成における統合、可視性、ガイダンスを強化します。