商用Androidアプリ開発 株式会社チェリービット $ Copyright 2012, CherryBit Co.,Ltd., All rights reserved 目次 開発工程 ◦ ◦ ◦ ◦ ◦ ◦ ◦ システム設計 機能仕様 インタフェース仕様 データベース仕様 画面仕様・画面遷移 実装 デバッグ・テスト 公開 ◦ ◦ ◦ ◦ ◦ 無料公開 有料公開 アプリ内課金 月額課金 広告連携 保守 技術Tips その他のTips Copyright 2012, CherryBit Co.,Ltd., All rights reserved 開発工程 ヒアリング マーケティ ング 企画書 作成 シス テム 設計 機能設計 実装 要求仕様まと め ・インタフェース仕様 ・データベース仕様 ・画面仕様/画面遷移 Copyright 2012, CherryBit Co.,Ltd., All rights reserved テス ト リリース システム設計 企画書に記載の機能を実現するためのシステムの全体構成を決 める ◦ Webサービスの選定 ◦ 端末側のコア技術の選定 Bluetooth、センサー、GPS、ネットワーク、NFCなど マネタイズに使用する技術 ◦ 広告、アプリ内課金、月額課金、有料化など 独自サーバの場合は別途サーバ仕様 ◦ レンタルサーバ? 自社サーバ? ◦ ◦ ◦ ◦ ◦ ◦ 無料:GoogleAppEngune、AmazonWebSservice(EC2/S3) 有料:さくら OS:Windows? Linux?・・・ アプリケーションサーバ:Tomcat? Apache? JBoss?・・・ DB:MySQL? PostgreSQL?・・・ 言語:Java? PHP?・・・ Copyright 2012, CherryBit Co.,Ltd., All rights reserved システム設計(例) クーポン管理サーバー AWS+MySQL採用 CPC広告配信 AdMob ②位置情報(GPS) クーポン情報 支払い情報 顧客情報 ①お店探し アプリ起動 クーポン適用/支払 ⑤クーポン表示 ⑥クーポン保存(SQLite) どのユーザーがどのサービスに 出したクーポンで来店して、い くら分の購入につながったのか を測定・分析 Copyright 2012, CherryBit Co.,Ltd., All rights reserved 機能仕様書 フォーマットはなんでもよい ◦ WordやPowerPointなどで作成 要求機能 システム構成図 システムを構成する各モジュールにおける 詳細な機能記載 ◦ インタフェース仕様 ◦ データベース仕様 ◦ 画面仕様・画面遷移 Copyright 2012, CherryBit Co.,Ltd., All rights reserved インタフェース仕様 Webサービスはサーバを利用してデータをやり取 りする際のプロトコル、形式、データフォーマッ トなどのインタフェースを決める HTTP通信(GET or POST) ◦ REST(主流), SOAP, XML-RPCなど ◦ やりとりするデータのフォーマット JSON(主流) XML Socket通信 ◦ アクセス先のサーバとのインターフェース整合 ◦ IPアドレス、ポート番号 ◦ やりとりするデータのフォーマット Copyright 2012, CherryBit Co.,Ltd., All rights reserved XMLとは Extensible Markup Language データの開始と終了をタグで囲んで、意味づけを行うフォーマット タグは入れ子にできるので階層構造を表現することはできるが、循 環構造はそのままでは表現できないため、属性で指定することにな る 広く使われており文字コードも指定することが可能 タグ及びその中に属性があるため、冗長で可読性が悪いのが欠点 Androidではjavax.xml.parsersパッケージの DocumentBuilderと DocumentBuilderFactoryクラスを利用して解析する <?xml version="1.0" encoding="UTF-8"?> <statuses type="array"> <status> <created_at>Thu Oct 21 19:13:18 +000 <id>28052969836</id> <user> <id>20536157</id> <name>A Googler</name> ・・・・ Copyright 2009, Open Embedded Software Foundation, All rights reserved JSONとは JavaScript Object Notation 元々はJavaScriptでのオブジェクトの記述方法であったが、そのま まデータフォーマットの仕様とした 非常にシンプルで分かりやすい 文字コードは基本的にUTF-8のみ 機能が限定的(「数値」「文字列」「真偽値(true、false)」「配 列」「オブジェクト」「null」)であり表せるデータが限られるこ とと、循環したデータは扱えないが欠点 Androidではorg.json パッケージの JSONObject と JSONArray クラスを利用して解析する [ { "created_at": "Thu Oct 21 19:13:18 +0000 2010", "id": 28052969836, "user": { "id": 20536157, “name”: “A Googler”,・・・ データベース仕様 アプリケーション内にデータを永続化する場合は 保存するデータの保存形式などを決める ◦ SQLite データベース名、テーブル名、カラム、データ型 ◦ ファイル出力 ファイル名 出力先フォルダ データ形式 ◦ SharedPreference SharedPreference名 セキュリティモード(通常はMODE_PRIVATE) キーとバリュー(boolean、float、int、long、String) Copyright 2012, CherryBit Co.,Ltd., All rights reserved 例:SQLiteテーブル仕様 データベース名:RSS_DATA テーブル名:RSS_FEED 列名 型 データの説明 _id INTEGER GUID TEXT RSSフィードに割り当てられる識別子 TITLE TEXT タイトル PUBLISH_DATE TEXT 配信日時 DESCRIPTION TEXT 詳細内容 LINK TEXT リンク SENDER_NAME TEXT 配信元の名前 プライマリキー オートインクリメント ■SQLiteについて http://www.sqlite.org/ http://ja.wikipedia.org/wiki/SQLite ■SQLiteDatabaseに関する詳細はAndroid Developersのリファレンスを参照 http://developer.android.com/intl/ja/reference/android/database/sqlite/SQLiteDatabase.html Copyright 2012, CherryBit Co.,Ltd., All rights reserved 例:画面仕様書 Copyright 2012, CherryBit Co.,Ltd., All rights reserved 例:画面遷移表 プロジェクト 資料名 アプリ名 画面遷移図 作成日 メイン画面 android HOME 一覧画面 H/K[Home] 詳細画面 H/K[Home] H/K[Home] Memuアイコン H/K[Back] H/K[Back] [RssReader] 登録データあり 一覧表示 登録データなし H/K[Menu] H/K[Back] OK H/K[Home] H/K[Back] H/K[Home] RSS取得 H/K[Back] H/K[Home] 状態遷移 以降の応答判定前に 一覧、詳細画面への遷移は可能。 (※非同期処理とする。) 通信完了 ※アクティブ画面の上部に Copyright 2012, CherryBit Co.,Ltd., All rights reserved 通知メッセージを表示。 一覧表示 更新日 H/K[Back] タイトル 更新者 実装 チームでの共同開発 ◦ 実装箇所の役割分担を決める ◦ 構成管理ツールを使用してプロジェクト管理 コンフリクト、マージ漏れの防止 コードの共有でチーム内レビュー バージョン管理 コードの保守 Copyright 2012, CherryBit Co.,Ltd., All rights reserved 主な構成管理ツール 主な特徴 SVN Git Mercurial 最新バージョン 1.7.7 1.8.0 http://subversion. http://git-scm.com/ apache.org/ 2.3.2 http://mercurial.selenic.com/ 集中型/分散型 集中型 分散型 分散型 代表的な採用 プロジェクト 多数 Linuxカーネル、Ruby on Rails、 Android、Perl 5など OpenJDK、Mozilla、 OpenSolaris、NetBeans など Windows対応 ○ △ ○ GUIツール Mac GUIツール Windows GUIツール Linux SCPlugin svnX TortoiseSVN、 RapidSVN SourceTree Murky、MacHG、MacMercual Msysgit+TortoiseGit、 git-gui、gitk、qgit TortoiseHG、Hgtk qgit、git-gui、gitk Hgtk、hgct Eclipse サポート 無料 リポジトリ RapidSVN Subversive http://www.eclipse .org/subversive/ EGIT Subclipse http://www.eclipse.org/egit/ http://subclipse.tig ris.org/ Github(非公開の場合は有料) 多数 Bitbacket(無料で公開/非公開が可能) GoogleCode(すべて公開) Copyright 2012, CherryBit Co.,Ltd., All rights reserved MercurialEclipes http://javaforge.com/project/H GE Bitbucket、Assembla、 ProjectKenai、FreeHg.org Gitの基礎知識 はじめての人はまずはここで勉強してください。 ◦ 「サルでもわかるGit入門」 http://www.backlog.jp/git-guide/intro/intro1_1.html Copyright 2012, CherryBit Co.,Ltd., All rights reserved Gitの主なコマンド コマンド 説明 リポジトリの作成およびメンテナンスに利用するコマンド: git init リポジトリを作成する git clone 既存のリポジトリの複製を作る 作業ツリーやブランチを操作・管理するコマンド: git status 変更が加えられたファイルを表示する git diff ファイルに加えられた変更点をdiff形式で表示する git add コミットするファイルを指定する git commit 変更点をコミットする git log コミットログを閲覧する git reset 直前のコミットを取り消す git revert 作業ツリーを指定したコミット時点の状態にまで戻す git branch ブランチ情報の表示およびブランチの作成 git checkout ブランチの切り替え git show-branch ブランチの作成/変更/マージ履歴を表示 git merge ローカルブランチのマージを行う git tag コミットにタグを付ける ほかのリポジトリとの連携を行うコマンド: git pull ほかのリポジトリの変更点をローカルリポジトリにマージする git push 公開リポジトリに自分のリポジトリの内容を送信する Copyright 2012, CherryBit Co.,Ltd., All rights reserved BitBucketの使用方法 公式 https://bitbucket.org/ 日本語による解説 http://www.atlassian.com/ja/software/bitbucket/overview 新規アカウント作成 ① https://bitbucket.org/ にアクセス ② 「Sign Up, Free」ボタン押下 ③ アカウント取得 ユーザー名、メールアドレス、パスワードなどを入力 「Confirm your email address」メールが届くので承認する Copyright 2012, CherryBit Co.,Ltd., All rights reserved BitBucketの使用方法 リポジトリの作成方法 ① ログイン後メニューの[Repositories] - [Create Repository]を選択 ② リポジトリ名等、必要な情報を入力 このとき Access level「This is a private repository」 にチェックを入れれば非公開リポジトリとなる ③ https://[アカウント名]@bitbucket.org/[アカウント名]/[リポジトリ名] でアクセス ④ リポジトリメニューのメニューの[Invite]ボタンで、共同作業者を追加できる Copyright 2012, CherryBit Co.,Ltd., All rights reserved デバッグ・テスト 低メモリ環境での動作(メモリリーク) 画面の縦→横 着信イベントによるsuspend→resume 電波条件 要件定義 Androidならでは! MonkeyRunner 受け入れテスト 仕様検討 システムテスト ユースケース 非機能要件 (異常系) Activity遷移 基本設計 結合テスト HTTP通信 ビジネスロジック 詳細設計 ユニットテスト 正常系 異常系 Android Junit 結合項目で確認したいチェック項目 端末 ◦ インストール先の違いによって動作しない処理がないか ◦ SDカードのマウント・アンマウントで異常な処理が発生しないか ◦ カメラなどのハードウェアを利用する場合に正常に動作しない端末はないか ◦ ストレージ容量が不足しているときに動作するか ◦ バッテリーの消費が多くないか 操作 ◦ 画面を回転させても問題が発生しないか ◦ ハードウェアキー操作による想定外の挙動はないか ◦ IMEアプリによって入力の動作に差異はないか ◦ Activityの破棄によって問題が発生しないか レイアウト・デザイン ◦ 各画面解像度で正常に表示されるか ◦ 設定変更によるレイアウトの崩れはないか ネットワーク ◦ ネットワークの違いによる挙動の差異はないか ◦ 圏外などのネットワークの瞬断によって問題が発生しないか リリース ◦ デバッグ版アプリになっていないか ◦ アップデートは正常に行えるか ◦ 対象端末は想定通りになっているか Copyright 2012, CherryBit Co.,Ltd., All rights reserved テストツール Eclipseのデバッガ機能を用いてブレークポイントによるス テップごとの処理の解析 JUnitを用いて作成したプログラムが、意図した挙動をする のかを確認するテストコードを作成、自動実行 ユーザー画面操作、ライフサイクルイベント(onCreate等)の発行な どが可能 DDMSを用いたログやメモリ、スレッドのプロファイリング Monkey ◦ エミュレータインスタンスやデバイスで動作するコマン ドラインツール ◦ クリックやタッチなどのユーザーの操作イベントやシステ ムのイベントをランダムに発生させてシステム内に送信 ◦ ストレステストの一種として使用可能 monkeyrunner ツール ◦ API から特定のコマンドやイベントを送信することにより、 ワークステーションからデバイスやエミュレータを制御す ることを可能にする MATによるメモリリークの発見 MAT(Eclipse Memory Analyzar)はEclipse用メモリダンプ解析用 Pluginツール DDMSのメモリトラッキング機能よりも、よりメモリリークの発生箇所 を限定することを可能にする DDMSで取得したHPROFファイル(メモリdump)をMATで解析 HPROFファイルをDalvik フォーマットから J2SE HPROF フォーマッ トに変換する必要 ◦ Android SDKのhprof-conv ツールを使用 ◦ hprof-conv dump.hprof converted-dump.hprof MATのHistogram Viewを用いて解析 ◦ インスタンスの数でソートされたクラスリスト ◦ すべてのインスタンスで利用しているメモリの総合計(表層ヒー プ:shallow heap) ◦ 他のオブジェクトへの参照をもっているオブジェクトを含めたすべ てのインスタンスで生きているメモリの総合計(保持ヒープ: retained heap) ◦ 参照しているオブジェクトを深くまで掘っていける その他テストのTips 「Jenkins」 ◦ CI(継続的インテグレーション)ツール ◦ Androidでは「monkeyrunner」「JUnit」 「robotium」などのテスト自動化ツールを Jenkinsに組み込んでテストする 「Scirocco」 ◦ AndroidUIテストの自動化ツール ◦ Apacheライセンス ◦ 日本語版チュートリアルあり Copyright 2012, CherryBit Co.,Ltd., All rights reserved 公開 広告モデル、宣伝モデル型アプリの場合 ◦ GooglePlayで無料アプリとして公開 ◦ GooglePlayで有料アプリとして公開 ◦ 店頭や、自社のHPなどから直接apkをダウンロード URLやQRコードがダウンロード先への導線 ◦ NFCでタッチでダウンロード 情報システム(業務専用)端末モデルの場合 ◦ GooglePlayへは公開せずに自社サイトからapkをダ ウンロード URLやQRコードなどがダウンロード先への導線 ◦ 従来のパッケージソフトの販売方法 ライセンス料を徴収してプロダクトコードを配布など ◦ インストール済みの端末を配る/販売 Copyright 2012, CherryBit Co.,Ltd., All rights reserved GooglePlayへの公開方法 公開するアプリケーションには自己署名が必要 ◦ 一般的な電子署名とは異なる ◦ 署名に必要なキーストアをJDKのツールで作成する ◦ 作成したキーストアを用いてアプリに署名 Eclipseで上記の署名処理が可能 ◦ アプリケーションプロジェクトを選択して右クリック 26 署名付きapkファイルの作成 C:¥work¥release¥my.keystore Location: 生成したkeystoreの配置場所 Password: 暗号化キーとなるパスワード Alias: 生成するkeystoreの名前 Password: 暗号化キーとなるパスワード Validity: keystoreの有効期間(年) 署名付きファイルの作成 署名つきAPKファイル Destination APK file: 生成した署名つきAPKファイルの配置場所 28 GooglePlayへの開発者登録 GooglePlayの登録サイト https://accounts.google.com/ServiceLogin?service=androiddeveloper& passive=true&nui=1&continue=https://play.google.com/apps/publish& followup=https://play.google.com/apps/publish • Googleアカウントが必要 • ディベロッパープロフィール 作成 • GoogleCheckOutで$25をク レジットカードで支払う • 販売/配布契約書に同意する アプリの新規登録 新規アプリの公開 アプリケーション情報登録 Title アプリケーションのタイトル Description アプリケーションの概要(300字程度) Application Type ApplicationまたはGame Category カテゴリ(Communication、Finance、Socialなど) Price 値段(有料アプリにする場合) Copy Protection Onにした場合、携帯端末以外へのコピーが禁止される Locations アプリケーションを配布する地域 ※他にも必要な設定項目が あるので必要に応じて設定 する GooglePlay公開手続き完了 サイトやGooglePlayアプリで自分が登録し たアプリが表示されるか確認すること Copyright 2012, CherryBit Co.,Ltd., All rights reserved GooglePlayを用いずに配布する方法 アプリケーションファイルを直接配布する <配布例> 自前のサーバにアプリケーションファイルを配置 ホームページでファイルを配布する QRコード作成サイトでQRコードを作成 印刷・メールでの送付 NFC WriterなどでNFCタグを作成し配布 CD、USBメモリ等でファイルを配布する LAN環境等のネットワーク上でファイルを配布する 33 QRコード作成/NFCの活用 QRコード作成サイト(無料) ◦ http://www.cman.jp/QRcode/ NFC WriterなどでNFCタグを作成 ◦ NFCの書き込み方法 NFC端末を使用 NFC Writeアプリをインストールする NFC Writerを使用 ハードウェアとソフトを購入してPCにて書き込み ◦ NFCタグの購入方法 Orange Tagsなどから購入 http://www.orangetags.co.jp/nfcreaderwriter.html Copyright 2012, CherryBit Co.,Ltd., All rights reserved 野良アプリのインストール方法 ① Android端末でアプリケーションファイルをダウンロードして インストールする方法 ◦ 手順 1. Android端末のブラウザでアプリケーションファイルをダウン ロードする 2. ダウンロード完了後、ダウンロード履歴からアプリケーション ファイルをクリックする 3. インストール確認画面から”Install”を押す ファイルをク リックする ダウンロード ファイルをク リックする Installボタ ンをクリッ クする 手順1 手順2 手順3 35 野良アプリのインストール方法 ② パソコンとAndroid端末をUSB接続し、インストールコマンドを 使用してインストールする ◦ 手順 1. 2. パソコンとAndroid端末をUSBケーブルで接続する コマンドプロンプトを起動し、adb install コマンドを実行す る >adb install アプリケーションファイル名(.apk) ■コマンドプロンプトの入力( C:¥Simeji3.0.6.apk )をUSB経由でインストール C:¥>adb install C:¥Simeji3.0.6.apk // ・・・ 手順1 596 KB/s (1413225 bytes in 2.312s) pkg: /data/local/tmp/Simeji3.0.6.apk Success 36 GooglePlayへの公開方法(有料) DeveloperConsole https://play.google.com/apps/publish/ の「プロ フィールの編集」にて販売アカウントを登録する ◦ 連絡先、公開連絡先、財務情報、規約の同意など 一度無料で登録したものは有料には変更できない 既存の登録済のアプリ 新規登録のアプリ 有料の場合は価格を設定する Copyright 2012, CherryBit Co.,Ltd., All rights reserved アプリ内課金について In-app Billing公式 http://developer.android.com/guide/google/play/billing/index.html ◦ 決済はGoogle Playが代行してくれる ◦ 決済方法はGoogle Playでアプリを購入する方法と同じでユーザーフ レンドリー ◦ 決済手数料はアプリ販売と同じ30% Copyright 2012, CherryBit Co.,Ltd., All rights reserved アプリ内課金のやり方 Android SDK Manager 「Google Market Billing package」コンポーネントをダウンロード サンプルのアプリ内課金の実装方法を自分のアプリへ流用する Copyright 2012, CherryBit Co.,Ltd., All rights reserved アプリ内課金実装キーワード Android Interface Definition Language(AIDL) ◦ GooglePlayアプリのサービスとやりとりを行うため JSON セキュリティを考慮した実装 ◦ GET_PURCHASE_INFORMATIONリクエストと RESTORE_TRANSACTIONSリクエストで一回限りの数値情報(ナ ンス)をJSONに埋めて送る ◦ 受け取り側でナンスの検証をする ◦ 開発者アカウントの秘密鍵を使用 アカウントのプロファイルページで、このキーペアの公開鍵確認可能 Google Playライセンスで使用する公開鍵と同じ Copyright 2012, CherryBit Co.,Ltd., All rights reserved アプリ内課金登録 Developer Consoleでの設定 プロダクトID、タイトル、説 明、価格、公開/非公開など In-app Products Add In-app Products Publish Copyright 2012, CherryBit Co.,Ltd., All rights reserved 月額課金(アプリ内購読)について In-app Subscriptions公式 http://developer.android.com/guide/google/play/billing/billing_subscrip tions.html 購読期間は1カ月と1年 月次、年次ともに最低99円に設定 Android SDK Manager 「Google Market Billing package」コンポーネントをダウンロード アプリの実装としては、アプリ内課金を導入する方法とほぼ同じ サンプルのアプリ内購読の実装方法を自分のアプリへ流用する Copyright 2012, CherryBit Co.,Ltd., All rights reserved アプリ内購読登録 Developer Consoleでの設定 Subscription プロダクトID、タイトル、 説明、価格、購読期限など Add Subscription Publish Copyright 2012, CherryBit Co.,Ltd., All rights reserved 保守 Developer Consoleの見方 ◦ ダウンロード情報 ◦ 統計情報 アプリの使用状況 ◦ ◦ ◦ ◦ 評価とレビュー バグレポート 有料アプリの売り上げ その他 Copyright 2012, CherryBit Co.,Ltd., All rights reserved ダウンロード情報と統計情報 45 評価とレビュー Copyright 2012, CherryBit Co.,Ltd., All rights reserved バグレポート 47 アプリの登録情報 Copyright 2012, CherryBit Co.,Ltd., All rights reserved 有料アプリの売り上げ Developer Consoleのユーザアカウント追加 Copyright 2012, CherryBit Co.,Ltd., All rights reserved 広告連携 例)AdMob ◦ https://jp.admob.com/login/ ◦ アカウント登録(AdMobアカウント or Google アカウント) ◦ アプリに AdMob SDK をインストールして、掲載する広告の種類や場所を指定 ◦ 収益の情報は、AdMob 管理画面のレポート機能 必須 ◦ 広告を掲載するモバイル アプリ。 ◦ アプリに組み込む最新の Google AdMob SDK。 ◦ 収益の振り込みに使用する銀行口座 広告の設置方法は下記参照 https://developers.google.com/mobile-adssdk/docs/android/fundamentals?hl=ja ◦ GoogleAdMobAds.JARを外部ライブラリとして組み込む Copyright 2012, CherryBit Co.,Ltd., All rights reserved アプリケーション情報登録 Copyright 2012, CherryBit Co.,Ltd., All rights reserved AdMob 管理画面 Copyright 2012, CherryBit Co.,Ltd., All rights reserved 技術Tips Copyright 2012, CherryBit Co.,Ltd., All rights reserved NFC • NFC(Near Field Communication)とは、NXPセミコンダクター ズ社とソニーが開発した13.56MHz帯の近距離無線通信規格で、 RFID技術の次世代標準規格 • AndroidでNFCタグの読み書きを行うアプリを作成する場合はNFC APIを使用する(2.3以降) • 標準NFC規格のハードウェアが対応していること 13.56MHz帯を使用する 全てのICカード規格 ICテレフォンカード、 たばこカードのほか、 欧州では広く普及 Suica、Edy、PASMO、 ICOCAなど 日本国内で広く普及 グローバル標準ではない 住民基本台帳カード、 社員証、学生証など 物流、小売などのIC タグ http://www.nfc-world.com/about/index.html ※ FeliCa™ はソニーの登録商標 ※MIFARE®はNXPセミコンダクターズの登録商標 Copyright 2012, CherryBit Co.,Ltd., All rights reserved NFC 「カードエミュレーション」モード ◦ SuicaやFeliCaのようなパッシブな非接触ICカードのフリをして、NFCデバイスへ情 報を渡す ◦ Android 4.0のリファレンスでも未サポート 「リーダー/ライター」モード ◦ ポスターなどに仕込まれたICタグのようなパッシブなNFCタグの情報を、Android スマートフォンが読み書きする 「PtoP」モード ◦ Androidスマートフォン同士、およびAndroidスマートフォンとNFC内蔵デバイスな どで双方向通信をする 「Android Beam」は、 PtoPモードを活用して Androidスマートフォン間 で情報やファイルを共有す る仕組み(Android4.0以降 でサポート) http://itpro.nikkeibp.co.j p/article/COLUMN/2012 0720/410435/?ST=andr oid-dev&P=1 Copyright 2012, CherryBit Co.,Ltd., All rights reserved GCM Push型実装 = Push Notification ◦ サービス提供者が望むタイミングでメッセージを送り届ける GCM(Google Cloud Messaging for Android)により実現可能 ◦ 2012年6月26日よりC2DMは非推奨 ◦ Android2.2以上 ◦ Android SDK Manager から「Google Cloud Messaging for Android Library」をDL(gcm.jar) ◦ project IDとAuthorization keyを作成する(「Google API Console」 https://code.google.com/apis/console/ にて取得) ■Google Cloud Messaging for Android(公式)のGetting started参照 http://developer.android.com/guide/google/gcm/index.html Copyright 2012, CherryBit Co.,Ltd., All rights reserved Wi-Fi Wi-Fiによる屋内位置情報 ◦ GPSでは屋内位置情報が取れない ◦ フィンランド発のスタートアップで、Wifiベースのロケーション 技術を提供する「Walkbase」 ◦ Android用のライブラリが配布されているのでアプリに組み込む ◦ アプリの開発にはサインアップが必要、APIへの50000アクセス までは無料 ◦ 地図座標ではなく、例えば西新宿グランドタワー17Fにいると いった場所の情報が提供される Wi-Fiダイレクト ◦ 近くのAndroid搭載端末のWi-Fiを発見して、Wi-Fi経由で直接接 続し端末間で通信するための機能 ◦ Android4.0以降、機能を実装している機器のみ有効 ◦ android.net.wifi.p2p パッケージを使用 Copyright 2012, CherryBit Co.,Ltd., All rights reserved AR Augmented Reality マーカー型のARライブラリ ◦ NyARToolKit for Android ◦ http://sourceforge.jp/projects/nyartoolkitand/releases/ ◦ AndAR - Android Augmented Reality ◦ http://code.google.com/p/andar/ 画像認識を用いるのでマーカーレス型AR ◦ OpenCV ◦ http://opencv.jp/ ■「モバイルARアプリ開発“超”入門」@IT http://www.atmarkit.co.jp/fsmart/index/armobile.html Copyright 2012, CherryBit Co.,Ltd., All rights reserved 対応センサー一覧 android.hardware.Sensorパッケージ SensorクラスとSensorManagerクラスを使用 定数 概要 Sensor.TYPE_ACCELEROMETER 加速度センサ Sensor.TYPE_MAGNETIC_FIELD 磁界(磁気)センサ Sensor.TYPE_ORIENTATION 方位センサ Sensor.TYPE_GYROSCOPE ジャイロセンサ Sensor.TYPE_LIGHT 輝度(照度)センサ Sensor.TYPE_PRESSURE 圧力センサ Sensor.TYPE_TEMPERATURE 温度センサ Sensor.TYPE_PROXIMITY 近接センサ Copyright 2012, CherryBit Co.,Ltd., All rights reserved 屋内測位を可能にする工夫 屋内即位技術 の例 Wi-Fi AP IMES 超音波 可視光 センサ統合 &自律航法 概要 メリット 屋内に設置された複数の 無線LANアクセスポイン 無線LANアクセスポイントは既に 設置されている商業施設も多く、 トのビーコン情報を基に、 機器設置のハードルが低い 位置を計測 GPSと同じ電波形式で IMES送信機の位置情報が AndroidのGPSチップが対応すれ ば、屋外・屋内を問わずシームレ 送信され、それを基に端 スに現在位置を取得できる 末の位置を計測 人が感じられない超音波 Androidのマイクが超音波を補足 を発信し、それを基に位 すれば、自動的に位置情報が得ら れる 置を計測 LED電灯などを人が感じ られない速度で点滅させ 電灯はどのような施設にもあるた め設置がしやすく、目で見て分か て位置情報を発信し、そ るため、到達範囲を限定しやすい れを基に位置を計測 何らかの手段で出発点の 位置を確定した後、加速 Android端末のセンサのみで現在 度センサやジャイロセン 位置が計算でき、追加で機器を設 サなどを組み合わせて現 置する必要がない 在位置を計算 デメリット 屋内にはノイズ発生源が多く、電波の 周りこみや反射・吸収も起きやすいた め、ピンポイントの精度が得にくい Android側の対応が必要であり、IMES 送信機も設置しなければならない 超音波を発する装置を設置しなければ ならない 発信源を撮影する必要があるため、外 から見える場所にカメラを付けなけれ ばならない 誤差が蓄積してしまうため、他の手段 によるピンポイントな位置補正の併用 が必要 Copyright 2012, CherryBit Co.,Ltd., All rights reserved その他のTips Copyright 2012, CherryBit Co.,Ltd., All rights reserved CPC広告モデルで成功するコツ 広告をはっきり表示 ユーザの導線に広告を置く 広告位置を繰り返しテスト Copyright 2012, CherryBit Co.,Ltd., All rights reserved GooglePlayからの自然流入を増やすコツ アプリアイコンの見た目 ◦ 黒・モノトーン系のアイコンでは低調 ◦ 赤・黄色・緑・青の原色系アイコン、奇抜なデ ザインのアイコンでは好調 ◦ タイトルスプラッシュでも差が出る ◦ GooglePlayに掲載するスクリーンキャプチャが ちゃんとアプリの内容がわかる迫力のあるもの でも効果がある Copyright 2012, CherryBit Co.,Ltd., All rights reserved Google Playでの失敗パターン 起動時にログイン、会員登録があるアプリ アプリサイズは大きい(50MB以上もある 場合はWiFi環境でしかDLできない) リリース直後、バグだらけでまともに動か ない 外部SDカードに保存できない 対応OSのバージョンが2.x系が非対応 Developer Consoleのレビューを放置 Copyright 2012, CherryBit Co.,Ltd., All rights reserved 研修にあたって Copyright 2012, CherryBit Co.,Ltd., All rights reserved サンプルコードについて サンプルコードはGoogle Codeで公開されていますので各自必要で あればダウンロードしてお試しください。 http://code.google.com/p/aomoroid-sample-project/downloads/list 各サンプルの説明はリストのアイテムをクリックすると確認でき ます。 Copyright 2012, CherryBit Co.,Ltd., All rights reserved MLの参加と使用について 次回の集合研修までの間の技術的質問、情報共有、およびサポートは GoogleGroupsで行います。このグループには本研修の参加者以外は閲 覧、登録できないようにしますのでまずは、今後ご使用されるGoogle アカウントを以下のフォームに登録してください。 http://goo.gl/c6T0X 登録終了後、各自自分のGoogleアカウントでグループに参加依頼をし てください。こちらでアカウントが研修参加者であると確認が取れまし たら参加を承認いたします。 グループ名「2012年度Androidアプリ事業化研修」 https://groups.google.com/d/forum/aomoroid2012 [email protected] 質問の際、以下のいずれかであるかを明記お願いします。 ①アイディア抽出・ビジネスモデルに関すること ②Androidの技術に関すること Copyright 2012, CherryBit Co.,Ltd., All rights reserved
© Copyright 2024 ExpyDoc