ios と android の両方で動く アプリを作る方法 ·...
TRANSCRIPT
メンバー紹介
望月
憲志 [ワークノアート]
片岡
正文 [鈴与システムテクノロジー]
三浦
由姫子
[ティージェイエス]
黒木
宏明 [SBS情報システム]
グループB
iOSとAndroidの両方で動くアプリを作る方法 2
目次
1.経緯
2.調査方法
3.クロスプラットフォームについて
(1)
WEBアプリ
(2)
PhoneGap
(3)
Titanium
Mobile
4.考察
5.今後の課題
グループB
iOSとAndroidの両方で動くアプリを作る方法 3
1.経緯
• スマートデバイス毎に専用の開発環境が必要
• 複数デバイスのアプリを開発する場合、開発環境・言語が異なる
ため、費用、期間など開発にかかるコストが倍増。
• 1つのソースで複数デバイスのアプリを開発できる方法
⇒
クロスプラットフォーム開発クロスプラットフォーム開発
グループB
iOSとAndroidの両方で動くアプリを作る方法 4
OS 開発環境 開発言語
iOS Mac Xcode Objective-C
Android Mac/Windows Eclipse等 Java
WindosPhone Windows VisualStudio .NET
2.調査方法
• クロスプラットフォームの種類
<WEBアプリ>
HTML
+ CSS
+ Javascript
…
(1)
<非WEBアプリ>
PhoneGap
…
(2)
Titanium
Mobile
…
(3)
• 各クロスプラットフォーム上で、サンプルアプリを開発し、
iOSとAndroid端末での動作検証を行う。
iOS
…
iPhone5、iPad2
Android
…
東芝
Regza
• 開発のしやすさ、実機での動作について調査する。
グループB
iOSとAndroidの両方で動くアプリを作る方法 5
2.調査方法
• サンプルアプリ
「ひたすらめも」「ひたすらめも」仕様
(1) 指でなぞってメモを書くアプリ
(2) 線の太さや色を選択可能
(3) ページをめくってメモを
追加したり、削除が可能
(4) 書いたメモを保存、呼び出して
表示することが可能
(5) カメラで撮影した画像を背景と
して読み込む
グループB
iOSとAndroidの両方で動くアプリを作る方法 6
3-1.WEBアプリ
グループB
iOSとAndroidの両方で動くアプリを作る方法
• 概要
HTML、CSS、Javascriptで構成
HTML
マークアップ言語。画面項目を規定
CSS
文書の整形やレイアウトを構築
Javascript
ボタンクリック等動的効果
• 各スマートデバイスのブラウザ上で動作。WEBサーバ上の
ファイルを参照するため、サーバに接続されていることが前提。
• 数多くの
Javascriptライブラリが公開されている。
7
3-1.WEBアプリ
•• 「ひたすらめも」「ひたすらめも」実装
HTML5
Canvas機能により描画を実現。
• ライブラリを使用しコーディングを極力減らした。
• PCのマウスイベントとスマートデバイスのタッチイベントの
両方を記述することで両方の環境で動作可能。
• スマートデバイス固有機能を実装できない。
グループB
iOSとAndroidの両方で動くアプリを作る方法 8
3-2.Phonegap
• 概要
Adebe社製オープンソース
開発環境
Eclipse/Xcode
開発言語
HTML+CSS+Javascript
• 対応デバイス
iOS, Android、BlackBerry等多数
• WEBアプリをそのまま組み込んでアプリ化することが可能。
グループB
iOSとAndroidの両方で動くアプリを作る方法 9
3-2.Phonegap
•• 「ひたすらめも」「ひたすらめも」実装
WEBアプリで作成したものをWWW配下にコピーしビルドする
だけでアプリ化される。
• カメラ機能は
標準API(Javascript)で追加コーディング。
• WebViewのブラウザ機能によりアプリ化を実現。
• WEBアプリとPhoneGapアプリにおいて、
描画、ボタン押下等のタッチイベントのレスポンス差は
ほとんど見られなかった。
グループB
iOSとAndroidの両方で動くアプリを作る方法 11
3-3.Titanium
Mobile
• 概要
Appcelerator社製オープンソース
開発環境
Titanium
Studio
開発言語
Javascript
• 対応デバイス
iOS,
Android, Blackberry,
MobileWeb
• サンプルアプリ
KitchenSink
…
各種コントロール、機能検証用
ABC’sWriter
…
お絵かきアプリ、追加モジュール
グループB
iOSとAndroidの両方で動くアプリを作る方法 12
3-3.Titanium
Mobile
•• 「ひたすらめも」「ひたすらめも」実装Javascript
で
全ての機能と画面レイアウトを実装。
コード補完、リアルタイムエラー表示によりコーディングは比較的容易。
• 標準APIに描画機能がないため、追加モジュール「Ti.Paint」をプロジェクトに組み込んでビルド。
• 純正UIを使用した場合、iOSとAndroidで表示が異なる。(デバイス毎の標準の規約に従う)
• 他のプラットフォームとレスポンスの差はなく、iOSとAndroidの差が同様に見受けられた。
グループB
iOSとAndroidの両方で動くアプリを作る方法 14
4.考察
• 開発環境、アプリについて
グループB
iOSとAndroidの両方で動くアプリを作る方法 15
開発環境 開発アプリ
Web ライブラリが充実。Web標準化により開発要員の確
保は容易。
デバイス固有機能は実装不可。WEBサーバへの接続が必須。
PhoneGap 既存Web資産をコピーするだけ
でアプリ化可能。開発資産・要員を流用可能。
デバイス固有機能を実装可。
WebViewを経由するためレスポ
ンスが得られないケースがある。
Titanium Mobile 画面レイアウトもJavascriptで
実装。Web資産はそのまま使用
できない。
デバイス固有機能を実装可。標準API及び既存追加モジュール
に機能が無ければ、各デバイス
のネイティブ言語で自作が必要。
5.今後の課題
• ネイティブとクロスプラットフォームの比較
• それぞれの利点を生かした開発
⇒
ハイブリッド開発ハイブリッド開発
グループB
iOSとAndroidの両方で動くアプリを作る方法 16
開発環境 開発アプリ
ネイティブ 各デバイスで必要な環境、スキ
ルが異なる。特にiOS開発言語
objective-Cの要員確保は難しい。
デバイスで可能な全てのことが
実装可能。レスポンスも問題無
し。
クロスプラットフォーム
HTML,CSS,Javascriptを中心と
した技術のため、要員確保が容
易。開発環境も整備されている。
APIの範囲で実装可能。
WebViewを使用した場合はレス
ポンスが得られないケースがあ
る。