今日のIT環境は非常に多様です。私たちはさまざまなプラットフォーム、デバイスタイプ、フォームファクター、オペレーティングシステム、およびプログラミング言語に直面しています。非常に興味深い概要は、visionmobile.comのState of the Developer Nation Q1 2016 Report<\/A>で提供されています。この環境では、すべてのユーザー向けに独自のアプリを完全に提供することはもはや実現不可能です。利用可能性を高めれば高めるほど、コストが増加するか、より多くの妥協が必要になります。<\/P>モバイルネイティブアプリの最適な利用可能性を達成するには、現在主流のモバイルプラットフォームであるiOS、Android、およびWindows Phone向けに少なくとも3回!開発する必要があります。これは高価です。開発コストを節約するために、開発者は対象プラットフォームを減らすことができますが、その結果、利用者も減少します。<\/P>この例からも明らかなように、アプリの計画段階で、低い開発コストで複数のプラットフォーム上でできるだけ高い利用可能性を実現するためのコンセプトを策定すべきです。ここでクロスプラットフォーム開発というテーマに入ります。これは今日の開発者が直面する最も重要な課題の一つです。<\/P>クロスプラットフォーム開発とは、アプリのコードを一度だけ開発し、それを複数の通常は互換性のないプラットフォームで展開することを意味します。また、クロスプラットフォーム開発は常に、目標とするターゲット層、開発労力、ユーザー体験(UI\/UX)、機能性との間で妥協点を見つけることでもあります。<\/P> <\/P><\/A><\/P> <\/P>図に示されているように、プラットフォーム横断的なプログラミングにはそれぞれ利点と欠点があるさまざまなアプローチがあります。良い方法の一つはWebアプリとして提供することです。コードは一度だけ書かれ、Webサーバー上でホストされます。Webアプリはほぼすべての最新デバイスのブラウザ上で動作します。JavaScript/HTML5を使って非常に強力でパフォーマンスの高いアプリケーションが作成可能です。ただし常時オンラインが必要であり、技術的な制限としてブラウザ自体が多くのデバイスセンサーやアドレス帳、ローカルストレージ全体へのアクセスを許可していません。例えば、大量データのオフライン利用を伴うフィールドサービス用アプリは実現できません。<\/P>これに対してネイティブアプリは各プラットフォーム専用に設計されており、そのためハードウェアの全能力やUIコンポーネント、ストレージおよびデバイス機能へアクセスできます。これはフィールドサービス向けオフライン機能付きモバイルアプリには適したアプローチです。この「特化」のためにネイティブアプリのクロスプラットフォーム開発はQt\/QML<\/A>、Microsoft UWP<\/A>やXamarin<\/A>など特別なツールなしには困難です。各プラットフォーム固有SDKで開発されたコードは後からクロスプラットフォーム対応にはできませんので事前によく検討すべきです。<\/P>ハイブリッドアプリは両者の中間的な方法です。PhoneGap<\/A>やTitanium Appcelerator<\/A>などのフレームワークを使うことでJavaScriptコードを各種プラットフォーム向けネイティブアプリにコンパイルし、ブラウザの制限を克服できます。ハイブリッドアプリは見た目や操作感はWebアプリですが、多くのデバイスリソースへアクセス可能です。<\/P>Esriテクノロジーを使ったGeo-Appsの開発もこの問題から免れることはできません。このブログのパート2<\/A><\/SPAN>ではArcGIS開発者向けクロスプラットフォーム開発のソリューションとツールについて説明します。<\/P><\/BODY><\/HTML>
モバイルネイティブアプリの最適な利用可能性を達成するには、現在主流のモバイルプラットフォームであるiOS、Android、およびWindows Phone向けに少なくとも3回!開発する必要があります。これは高価です。開発コストを節約するために、開発者は対象プラットフォームを減らすことができますが、その結果、利用者も減少します。<\/P>
この例からも明らかなように、アプリの計画段階で、低い開発コストで複数のプラットフォーム上でできるだけ高い利用可能性を実現するためのコンセプトを策定すべきです。ここでクロスプラットフォーム開発というテーマに入ります。これは今日の開発者が直面する最も重要な課題の一つです。<\/P>
クロスプラットフォーム開発とは、アプリのコードを一度だけ開発し、それを複数の通常は互換性のないプラットフォームで展開することを意味します。また、クロスプラットフォーム開発は常に、目標とするターゲット層、開発労力、ユーザー体験(UI\/UX)、機能性との間で妥協点を見つけることでもあります。<\/P>
<\/P>
図に示されているように、プラットフォーム横断的なプログラミングにはそれぞれ利点と欠点があるさまざまなアプローチがあります。良い方法の一つはWebアプリとして提供することです。コードは一度だけ書かれ、Webサーバー上でホストされます。Webアプリはほぼすべての最新デバイスのブラウザ上で動作します。JavaScript/HTML5を使って非常に強力でパフォーマンスの高いアプリケーションが作成可能です。ただし常時オンラインが必要であり、技術的な制限としてブラウザ自体が多くのデバイスセンサーやアドレス帳、ローカルストレージ全体へのアクセスを許可していません。例えば、大量データのオフライン利用を伴うフィールドサービス用アプリは実現できません。<\/P>
これに対してネイティブアプリは各プラットフォーム専用に設計されており、そのためハードウェアの全能力やUIコンポーネント、ストレージおよびデバイス機能へアクセスできます。これはフィールドサービス向けオフライン機能付きモバイルアプリには適したアプローチです。この「特化」のためにネイティブアプリのクロスプラットフォーム開発は
ハイブリッドアプリは両者の中間的な方法です。
Esriテクノロジーを使ったGeo-Appsの開発もこの問題から免れることはできません。このブログの
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.