Technical Works

ASC Technical support site

*

ハイブリッドアプリの開発について(1)

      2014/12/24

現在、ASCでもハイブリッドアプリ開発としてGeneXusを推進していますが、日々スマートフォン(スマホ)はハード性能・OS、搭載機能は発展し続けています、これらの新機能をいち早く実装したアプリ開発や、ハイブリッドの原理を理解してより良いGeneXusアプリを開発する為の基礎技術として皆様が技術向上できれば幸いです。

今後の予定

  1. HTML5ハイブリッドとは。
  2. ハイブリッドアプリの開発環境構築。
  3. Cordovaプラグインを利用した開発。
  4. ハイブリッドアプリのサンプルテスト。
  5. モバイル特有の問題。

1.HTML5ハイブリッドとは。

日本でのスマートフォンの契約数は今年3月で約5,800万件もあり、まだまだ増加傾向です。OSはSymbianOS、Tizen、WindowsPhone、FirefoxOSなどがあり、中でもiOSとAndroidが圧倒的シェアを確保しています。アプリはGooglePlayStoreで100万本、AppStoreで90万本登録されています。このことからプログラム開発者から見れば個人ユーザーの最大市場になり、開発者のモチベーションの原動力になっています。

では、この2大OSの開発言語はAndroidはJavaで、iOSの場合はObjective-Cです。この違いをマルチプラットホームと呼び、この違いの中で開発者は次の要求(課題)をかかえています。

  • iOSとAndroidは全く違うマルチプラットホームである
  • 開発者はどちらのマルチプラットホームからもアプリを出したい(市場が2倍になる)
  • 既存のアプリを移植すると費用や期間が2倍ほどかかる

これらの課題の解決方法としてハイブリッドアプリが登場しました。このハイプリッドアプリも2種類あります。

  • 特定の開発言語で開発し、各OSの標準開発言語に変換してネイティブアプリとして配布する(GeneXus-EV2がこれに該当する)
  • 内部的にはWebとして開発し、利用者から見ればネイテブアプリの様に見えるHTML5ハイプリッドアプリ(端末のブラウザからURLをいれるWebアプリとは異なる)

スマホ(スマフォでは無く検索キーワードとして日本では定着しています)で利用できるアプリケーションはつぎのようになります。

monaca-4-638

ネイティブアプリの特徴
  • AppStore、GooglePlayStoreで配布できる
  • 端末の機能・パフォーマンスを最大限に引き出すことができる
  • ユーザは端末のホーム画面から起動できる
ネイティブアプリの欠点
  • (前に述べた開発者の課題と同じ)
  • プラットフォームやOSのバージョンによって搭載されている機能に違いがある
Webアプリの特徴
  • 常に最新の状態である
  • Webの標準技術(HTML、CSS、Javascript)を用いることができる
  • クロスプラットフォーム性がある
  • 開発速度が速い・開発費が安い
Webアプリの欠点
  • ブラウザを経由しないとアプリを起動できない
  • ブラウザやブラウザのバージョンによって搭載されている機能に違いがある
  • 端末の機能を利用できないものがある。
  • ソース(HTML、CSS、Javascript)がユーザから安易にみることができる。
HTML5ハイプリッドアプリ(ここではHTML5)の特徴
  • ネイティブアプリと同様にストアからインストールできる
  • クロスプラットフォーム性がある
  • ネイティブの機能を呼び出すことができる
  • Web技術のノウハウや資産を利用できる
  • 最新(HTML5)のブラウザ環境が利用できる
  • 開発環境は無料である(ツールはオープンソースとしてインターネット上で公開されている)
HTML5ハイプリッドアプリの欠点
  • 開発環境を開発者で組み合わせて構築しなければならない
  • 開発者が最新機能の搭載可否をロジックで対応する必要がある
  • ネイティブアプリに比べて遅い(スクリプト解析とネイティブ機能とのインターフェース)
  • 配布するにはそれぞれのSDKを利用しなければならない
  • ソースは配布ファイル(apk形式、jpa形式)から取出す事が出来るので、工夫が必要
ハイプリッドアプリ(ネイテブ変換方式)の欠点
  • 現在、すべてツールは有料の為コストがかかる
  • ハイブリッドアプリの開発方法を新たに習得しなければならない
  • 開発ツールのバージョンアップは端末機能のリリースに大きな遅れがある

筆者は上記の特徴から、次の理由でHTML5ハイプリッドアプリ開発を選択しました。

  • 最新Web技術(WebRTC機能)を必要とした
  • Web技術(HTML、CSS、Javascript)はWeb開発者なら誰でも知っている
  • 開発ツールがオープンソースの為、開発環境OS(Windows、Linux、Unix)が多く、尚かつ無料である
  • これらの理由からアプリ開発期間が短縮される

なお、この環境を提供する無料ツール(MONACA-アシアル社)が有り、筆者も最初はこのツールで開発していたがあるとき内部で使用しているCordovaをバージョンアップ(2.9→3.5)し、テストツールがLOGINでクラッシュするようになりデバッグ出来なくなりました、現在(2014年10月)でも解決していない為、このツールを選択肢から抹消しました。(このことから会社で発表する場合のアプリのクラッシュは無料であっても会社の信頼は著しく低下します。またバージョンアップは慎重なテストを重ねてからリリースしましょう)

参考(用語)
ブラウザ:

インターネットを介してWebページを閲覧するアプリ(内部的にはIEを除いてWebKitを使用し、独立したアプリとして機能するようにしたもの)。主なブラウザはInternetExplorer(IE)、Safari、GoogleChrome、Firefoxがあります。またOS標準ブラウザ(先に述べたブラウザとは異なるもの)もあり、バージョン違いも含めると多数のものが存在します。

HTML5:

HTMLの5回目に当たる大幅な改定版である。現在、2014年までの正式勧告を目指して策定が行われている。
改訂の主要目的のひとつとして人間にも読解可能でコンピューターやディバイス(ウェブブラウザ、構文解析器など)にも矛盾せず読解されるとともに最新のマルチメディアをサポートする言語に向上することである。

「HTML5」『フリー百科事典 ウィキペディア日本語版』より。
最終更新 2014年8月7日 (木) 10:14 UTC
http://ja.wikipedia.org/wiki/HTML5

HTML5はまだ勧告を策定中のこともあり、現在提供されているブラウザは勧告を先取りをしている為、新機能の提供はベンダー、バージョンによってまちまちである。

WebView:

AndroidとiOSにはWebViewと呼ばれるクラスが用意されています。OSの機能としてWebKitを呼び出す仕組みをいいます。

WebKit:

WebKit(ウェブキット)は、アップルが中心となって開発されているオープンソースのHTMLレンダリングエンジン群の総称である。HTML、CSS、JavaScript、SVG、MathMLなどを解釈する。WebKitは、元々アップルのMacOSXに搭載されるSafariのレンダリングエンジンとして開発された。現在はその他の多くのプラットフォームに移植されている。

「WebKit」『フリー百科事典 ウィキペディア日本語版』より。
最終更新 2014年10月21日 (火) 14:26 UTC
http://ja.wikipedia.org/wiki/WebKit

*JavascriptとJavaは名前と文法の一部は似ていますが、全然別なものである。

PhoneGap (Cordova):

PhoneGapは、Adobe社により公開されている、スマートフォン向けハイブリッドアプリケーション制作のためのフレームワークです。
オープンソースとして公開されており、オープンソースの名前はCordova(コルドバ)となっています。
HTML+Javascriptの技術を使って、iPhone/Androidのネイティブアプリケーションを開発する手法を一般的に「ハイブリッドアプリケーション」と呼びます。つまり、PhoneGapを使えばObjective-CやJavaを書かずに、Webアプリケーションの技術を用いて、ネイティブアプリケーションを作ることが可能なのです。

PhoneGap Fanより。
http://phonegap-fan.com/about/

このことは、ほぼHTML5の勧告の最終形を実装し、iPhone/Androidにまだ実装されていない機能もCordovaプラグインとして提供し、共通したスペックで実現できる(ただし装置的な機能で装置が無い場合はエラー検知される)
PhoneGap(Cordiva)はいくつかあるハイブリッドアプリケーション制作フレームワークの内でもっとも知名度がある。

IDE:

IDEとはソフトウェアの統合開発環境をいい、プロジェクト管理、バージョン管理、ソースエジッター、ビルド、デバッグ補助等の機能をもち、いろいろな開発言語用にカスタマイズできる。

Eclipse(エクリプス)は、IBMによって開発された統合開発環境 (IDE) の一つ。高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対応する。Eclipse自体はJavaで記述されている。

「Eclipse (統合開発環境)」『フリー百科事典 ウィキペディア日本語版』より。
最終更新 2014年10月21日 (火) 06:57 UTC
http://ja.wikipedia.org/wiki/Eclipse_(%E7%B5%B1%E5%90%88%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83)

アプリケーションを開発する場合はAndroidはAndroidSDK、iOS用はXcodeも必要になる。

 - HTML5

Loading Facebook Comments ...

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


画像で表示される認証コードを入力して下さい。

CAPTCHA


  関連記事

gmaptest
ハイブリッドアプリの開発について(3)

Cordovaプラグインを利用した開発 前回までの説明でスマホ(Android、 …

gmaptest
ハイブリッドアプリの開発について(4)

AndroidのCordovaを使用したネイティブアプリ開発について第3回を終え …

monaca-4-638
ハイブリッドアプリの開発について(5)

前回までで、アプリケーション開発は可能になりました。今回は完成したハイブリッドア …

monaca-4-638
ハイブリッドアプリの開発について(2)

ハイブリッドアプリの開発環境構築 ハイブリッドアプリ開発とは、HTML5を中心と …