HTML5/JavaScriptで作る Androidアプリ開発seminar 講師:酒徳峰章(クジラ飛行机) HTML5/JSで作るAndroid開発セミナー アジェンダ • (1) Androidについて – Android開発の選択肢紹介 • (2) HTML5/JavaScriptでAndroidアプリを作ることについて – メリット・デメリットと使いどころ紹介 • (3) アプリ制作の流れ – プロジェクトの作り方から実行まで • (4) サンプルの制作 • (5) まとめ~今後のAndroidアプリについて このセミナーの目標 (1) ANDROIDアプリの作り方を覚える (2) 家に帰ってすぐ1つ作ることができる (3) 明日、作ったアプリを友達に自慢 講師について • 酒徳 峰章 (クジラ飛行机) – 経歴:不動産関連会社、Webサービス制作 会社などを経て、独立。くじらはんど代表。 – 代表:日本語プログラミング言語「なでしこ」、 テキスト音楽「サクラ」などのユニークなソフ トを開発。日本語でかけるWIKI「KonaWiki」 – 年に2,3冊ずつ、プログラミングやもの作り の楽しさを伝える目的で技術書を執筆して いる。 – 受賞歴 • • • • 2001年 オンラインソフト大賞入賞 2004年 未踏スーパークリエイター認定 2010年 OSS貢献者賞 受賞 ソフト企画 「くじらはんど」 http://kujirahand.com 最近書いた本 話題のスマートフォン、Androidについて Androidの開発環境について紹介 ANDROIDや開発環境について はじめに… Androidについて質問 • Androidについて質問 – Android携帯やタブレットを使っている方は? – iPhoneやiPadを使っている方は? – iPhone/iPadとAndroidを両方持っている方? – 次に携帯を買うなら、Android携帯を買うという方 は? ちなみに・・・ • 優秀な、Androidのエミュレータがあるので、 Androidの実機が無くても開発可能 • Androidを持って無い方も、家に帰ったらぜひ、 試してみてください!! はじめに… Androidについて質問 • 技術スキルについて質問 – 既にAndroidで開発をしたことがある方は? – Java/C言語/PHPなどプログラミング経験がある 方? – HTML/JavaScript/CSSが一通り使える方は? Androidについて • Googleが中心となって開発 しているスマートフォンやタ ブレットPC向けのプラット フォーム • Linuxをベースとしたモバイ ル用オープンソースのオペ レーティングシステム(OS) • 2009年7月の「HT-03A (HTC/docomo)」を皮切りに、 現在では各キャリアから 様々なAndroid端末が発売 されている Android端末 →docomo HT-03A • 2009年5月:記念すべき日本の第一号端末 • Android1.5 (後に1.6に) • 傾きセンサー/GPS/動画再生 など基本的な機能を備える • とは言え・・・ – 電池パック×2個とおまけあり • スマートフォンは電池持ちが悪い? – タッチの精度が… Android端末 →docomo Xperia (SO-01B) • • • • 2010年1月発売 日本にAndroidを普及させた立役者 かなり売れた Android 1.6→2.1→2.2 – Android OS、現在の 主流は、2.2/2.3だが、 契約は2年縛り Android端末 →au IS01 • au初のAndroid機。 • Android1.6 • 意外と評判が良かった? この後、auが Androidに力を 入れるきっかけに。 Android端末 → au IS03 • 大々的にTVでCMが流れた • Android 2.1 (のちに 2.2 にアップデート) • これ以降の 日本製端末は ワンセグや お財布ケータイを 搭載 Androidタブレット端末も… • Android 3.0を搭載したタブレット端末が、今後 多数発売される • Sony Tablet/MOTOROLA XOOM/Samsung Galaxy TAB… Android特有の問題も • iPhone/iPadと違ってさまざまな端末がある • 開発者は多様性の問題に対処する必要があ る – 画面サイズ(標準の画面の向き) – 機種依存の機能 – ハードウェアの差異(特にセンサー類の) – Android OSバージョンの問題 • OS 1.5/1.6の端末もまだ残っている、フルFlash対応は 2.2以降に対応 2011年 スマートフォン世界シェア予測 Android iOS(iPhone) Blackberry Other Android iOS(iPhone) Blackberry Other 39.5% 15.7% 14.9% 29.9% 自作Androidアプリの配布方法 苦労して作ったアプリどのようにして使ってもらえるか • (1) Android Market – 手軽に世界中に配信できる一番推奨する方法 • (2) 独自のWebサイトで配信 – 各携帯キャリアもこの方法でもアプリを配信 – 世界中ではなく、特定の人だけが使うアプリも配信可 能(例えば社内ツールなど) • (3) SDカードで配布 – イベントなどで特定の人の配布可能 Android Marketで世界に配信すること • OSが無料というだけではな い!! • Android Marketを使って、 世界中にアプリを配信でき る! – 個人でも世界と対等に戦える – アプリのインストールが簡単 – Apple App Storeよりも手続き が簡易、審査も最低限 Android Marketは課金可能なため Marketを備えないAndroid端末もある。 どのようにしてAndroidの開発ができるのか? ANDROID開発の選択肢 Java + Eclipse → 標準開発環境 • Androidの標準開発スタイル • JavaとAndroid SDKを利用して開発 • Javaを使うので、当然、Javaの知識 が必要となる • 開発環境はすべて無料 Adobe Flash/Flexを使った開発 • Adobe Flash や Flash Builderといった ツールを利用して開発する • Android 2.2以降に対応 • 初回起動の際、AIRランタイムのイン ストールを求められる • Flashを使ってAndroidアプリが作れる のが魅力、既存のFlashコンテンツも少 しの修正で動く。 • 開発環境は有償 Mono for Androidを使った開発 • Microsoft .NETを利用した開 発環境 • C#やF#を使ってAndroid開発 が可能 • 開発環境は有償 HTML5+JavaScriptを使った開発 • HTML5やJavaScriptを使って、Androidア プリを開発可能 • オープンソースの実装がいくつか存在 する(PhoneGap/Titanium/jsWaffle) • HTML5で開発するので、プログラマーで なくても、デザイナーや日曜プログラマ でも参戦可能。 • 開発環境はすべて無料 (Titaniumは一部有償) このセミナーの中心話題となるHTML5/JS + Android の開発について HTML5/JAVASCRIPT+ANDROID HTML5/JSでAndroid開発するメリット • Web技術 (HTML/CSS/JavaScript)である – 学習コストが低いこと(既に慣れ親しんでる) – 情報量が多い/開発手法が確立されている – 支援ツール(HTMLエディタ)や JavaScriptライブラリなどが豊富 HTML5/JSでAndroid開発するメリット • 開発効率が良いこと – Javaよりも簡単、敷居が低い – 開発効率が良い • コンパイル作業が不要 • Webブラウザで動作確認できる – 画面レイアウトも柔軟 (CSS3が使える) HTML5/JSでAndroid開発するデメリット • Javaよりも動作速度が遅い – 端末の実行速度は日進月歩。気にする程ではない – しかし、画面を頻繁に書き換えるアクションゲーム、複雑 な科学計算(たとえば、リアルタイムに音声合成を行う楽 器アプリ)などは苦しい • 最新の Android API に未対応の可能性もある – どうしても必要なら、拡張プラグインで拡張可能だが、拡 張プラグインの作成には、Javaの知識が必要 HTML5/JavaScriptで開発する方法 • (1) Webアプリ • Webブラウザからアプリにアクセスして使う • (2) ハイブリッドアプリ • HTML5/JavaScriptで作り、Androidのネイティブアプリに 変換する。 (jsWaffle や PhoneGap といったツールを使う) 開発環境別の特徴 ※開発環境のできること、できないことを見極める必要がある 開発環境別の特徴 ※開発環境のできること、できないことを見極める必要がある HTML5 / JavaScript でハイブリッド開発 • ここでは、HTML5/JavaScriptを、Androidのアプリに変換する ことができるツール「jsWaffle」を紹介 http://d.aoikujira.com/jsWaffle/ jsWaffle のメリット • HTML5 と Android APIの組み合わせなので自由度が高い jsWaffleで使える機能 • ストレージ機能 – • データベース機能 – • ファイルやデータのダウンロードや、Web APIへアクセス 画面描画の機能 – • 傾きセンサー、GPS、画面タッチ ネットワーク機能 – • カメラ/ビデオ/音声の、撮影や再生 各種センサーの機能 – • Androidに搭載されているSQLiteデータベース マルチメディア機能 – • SDカードや端末内部のメモリへのアクセス HTML5/CSS3の描画機能を利用可能 他のアプリとの連携機能 – Androidの機能で、メールソフトやバーコードスキャナーアプリと連携 jsWaffle でどんなアプリが作れるのか? JSWAFFLEで作られたアプリ紹介 ガジェットなど • ストップウォッチ • 「StopWatch-シンプル」(Android Market登録済み) ガジェットなど • 時計、電卓などのガジェットなど • 画像を差し替えれば、いろいろなバージョンが! 辞書やデータベース • データベースやローカルストレージの利用 • 「最小英和辞典」(4万語:6MB辞書) (Android Market登録済み) ゲームなど • パズル、クイズ、落ちモノ系などサクサク動く DEMO 10分の休憩 HTML5/JavaScript+ Android で開発を行うための準備 開発環境の準備 準備する開発ツール • HTML5/JS for Android 開発に必要なツール – Aptana Studio2 (or Eclipse) • http://www.aptana.com/products/studio2 – Android SDK Tools (+ ADTプラグイン) • http://developer.android.com/sdk/index.html – jsWaffle for Android • http://d.aoikujira.com/jsWaffle/ • いずれも、Windows/Mac OS X/Linux で動作 無料(オープンソース) インストールの手順 • 1.Android SDK Tools をインストール – セットアップを実行すると最新のSDKがインストールされる • 2.Aptana をインストール – AptanaにADTプラグインを導入 – Android SDKのパスを設定 • 3.jsWaffleをインストール • 3つのツールをインストールすることになるので 若干面倒に感じるものの、手順自体は単純。 • より詳しい手順は、右のURLを参照。 http://goo.gl/whSEH インストールで分かりづらい部分 • • • • • ソフトをインストールして終わりではない Aptanaをインストールしてから ADTプラグインのインストール Android SDKをAptanaに設定するところ エミュレータ – 画面サイズやOSを指定して作成する必要 • Android端末のUSBドライバのインストール jsWaffleを使ってAndroidアプリを作る時のワークフローを確認 ANDROIDアプリ制作の流れ (1) jsWaffleでプロジェクトを作成 • jsWaffleを使って、Androidプロジェクトを作成する。 プロジェクトの名前、パッケージ名、出力先を指定するだけ。 (2)Aptanaでプロジェクトを読み込む (2-1) メニューから Android Project を選択 (2-2)既存ソースから作成 [Create project from existing source]をチェックし、 Locationに手順(1)で作ったプロジェクトパスを指定する (3) index.html を書き換える • • Aptanaの「/assets/www」フォルダに、メインファイルのindex.html がある これが、アプリケーションのメインファイルとなるので、自由に書き換えて作る (4) 実行する • ツールバーにある[Debug]ボタンをクリック (5) index.html を編集する • • • Aptanaの「/assets/www」フォルダに、メインファイルのindex.html がある このとき、wwwフォルダに、他のHTMLファイルや画像、MP3、CSS/JSなどを配置すれば、 リンクしたり、表示したり、再生したりすることが可能 開発の手順を実際に! • 手順確認 • Index.htmlを書き換えて実行 • 画像を配置してみる HTML5で作ったページがそのままアプリになるだけでも魅力ですが、 Androidの独自機能を加えたり、使い勝手を向上させたりして 実際にアプリを作る過程を解説 |||| サンプルアプリの製作 サンプル~「動く絵本」制作 端末を振ると、音楽が流れる! ★完成品は、以下からダウンロード可能★ http://goo.gl/6aIAx (1) jsWaffleでプロジェクトを作成 • (1) jsWaffleを使って、Androidプロジェクトを作成する。 • (2) Aptana でプロジェクトを読み込む。 -[File > New > Android Project] -Create project from existing source (2) 絵本のHTMLを作る • プロジェクトの/assets/wwwフォルダのindex.html がメインファイルとなるので編集する (3) HTMLの編集について • • このとき、HTMLが得意なら、Aptanaで直接タグを編集することもできる ただのHTMLなので、Adobe DreamweaverなどのWebページ編集ソフトでHTMLを 作成することも可能。 DreamweaverでHTMLを編集しているところ (3-2) 絵本4枚ページを作成する もちろん、HTML ですから Web ブラウザで動作確認できます! (4) 実機をつないで実行! • [Debug As > Android Application]を実行! 開発の手順を実際に! • プロジェクト作成 • WebブラウザでプレビューしながらHTMLを作 成 • DreamWeaverなどのツールで編集してみる • デバッグしてみる (5) Android固有の機能を追加 • HTMLのヘッダに以下のJavaScriptを追加 <script type="text/javascript" src="jsWaffle.js"></script> • 端末を振ったらサウンドを再生するJSコード var player; droid.watchShake(function(){ if (player == null) { player = droid.playSound( "file:///android_asset/www/res/beet.ogg", true); } }); “droid.”から始まるメソッドは? • Android固有の機能を定義したもの • Aptana には、JavaScript の補完機能がある • “dorid.”と入力すると続きが出るので選ぶだけ 各種センサーやストレージ操作のための メソッドが利用可能。 機能の記述例1 • 端末を振ったら何かをするコード droid.watchShake(function(){ // ここに振ったときの処理を記述 }); • 端末を振ったら表示ページを移動する場合 droid.watchShake(function(){ // ここに振ったときの処理を記述 location.href = “index.html”; }); 機能の記述例2 • サウンドファイルを再生するコード droid.playSound(“file:///android_asset/www/ファイル名”, 繰り返し指定); • ボタンクリックでサウンド再生する場合 <button onclick=“play()”>再生</button> <script> function play() { droid.playSound(“file:///android_asset/www/test.mp3”,false); } </script> (6) Android固有の機能を追加2 • Android Menu にサウンドの再生を登録する droid.setMenuItem(0, true, "BGM", "ic_menu_play_clip", function(){ if (player == null) { player = droid.playSound( "file:///android_asset/www/res/beet.ogg", true); } else { player.stop(); player = nulll; } }); (7) 地図の起動ボタンを書く • droid.startIntent()コマンドで、ほかのAndroid アプリを起動できる。例えば、「geo:緯度,経 度」でマップアプリで地図を表示可能!! <p> <button onclick="droid.startIntent('geo:35.658883,139.745407')"> 東京タワーを見る </button> </p> • 散歩アプリに地図表示リンクを追加 コードを実際に見てみよう! • シェイクで音楽再生 • Androidメニューの作成 • マップ起動ボタン jsWaffleについての資料 • (1) jsWaffleのマニュアル – jsWaffleのWebサイトのAPIリファレンス • (2) 生成したAndroidプロジェクトに、 「/assets/www/jsWaffle.sdoc」というファイル • (3) 書籍「 HTML5/JavaScriptで作るAndroidアプリ 開発ガイドブック」毎日コミュニケーション刊 テンプレートデモを活用しよう! • jsWaffleには、まだまだた くさん機能がある • デフォルトテンプレートを 見ることで、様々な機能が 紹介されている。 – 実現方法のソースコードを 見ることも出来る。 HTML5/JavaScriptで作るAndroidアプリ開発について まとめ Androidアプリの製作は HTML5/JSで簡単になる • jsWaffle などのフレームワークを使うと、Java の知識がなくても、Androidアプリが作れる HTML5/JS の表現力で Javaアプリを超えられる Androidアプリを作ろう! • これからまだまだAndroidが増える • 2011年3月時点のアプリの数 – iPhone の AppStore 33万本 – Android Market 20万本 – AppStoreに比べAndroid Marketは参入が容易であることを考 えると、単純に、まだまだ少なく今後、大幅に増えるはず vs アプリはアイデア勝負の時代に!! • 既にいろいろなアプリがあるが、アイデア次 第でまだまだヒットのチャンスがたくさん • 特に、Webの技術(HTML5/JavaScript)でアプリ を作るのは… – 技術習得のロス時間がない – HTML(あるいはHTMLエディタ)さえ知っていれば 作れる – HTML 5/JavaScriptは、 Javaアプリよりも、表現力 があり、柔軟性が高い このセミナーの目標・・・覚えていますか? (1) ANDROIDアプリの作り方を覚える (2) 家に帰ってすぐ1つ作ることができる (3) 明日、作ったアプリを友達に自慢 参考書籍 終わり。お疲れ様でした!
© Copyright 2024 ExpyDoc