SlideShare a Scribd company logo
Androidアプリケーション開発
中級研修改訂版
後編
Copyright © 2016, NTT Software Corporation.
2
本スライドは、NTTソフトウェア社内技術者育成研修(ソフト道場研修)テキストです。
※ 実際の研修では演習を実施しますが、本テキストには演習に関する内容は含まれていません。
【著作権・免責事項】
• 本セミナーコースの内容、本資料のすべての著作権は、NTTソフトウェア株式会社に帰属します。
• 無断での本資料の複写、複製、再利用、転載、転用を禁じます。
• 本資料と演習等で利用するすべての教材は、NTTソフトウェア株式会社からの保証なしに提供されます。
• 本書に記載されている会社名および製品名は、一般に各社の商標または登録商標です。
Copyright © 2016, NTT Software Corporation.
3
ロケーション
Copyright © 2016, NTT Software Corporation.
4
■端末の位置情報取得が可能
 方式1:GPSによる位置情報取得
 方式2:ネットワーク(WiFi/3G)による情報取得
【ロケーション】概要
緯度・経度を取得可能
方式2に影響
設定アプリ内の
「位置情報」メニュー
位置情報取得方式
=プロバイダ
方式1に影響
方式1 + 方式2
Copyright © 2016, NTT Software Corporation.
5
【ロケーション】位置情報取得の流れ
概要 実装
1 ロケーションマネージャの取得 LocationManager manager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
2 位置情報取得リスナの登録 manager.requestLocationUpdates(LocationManager.GP
S_PROVIDER, 0, 0, this);
3 位置情報取得リスナの解除 manager.removeUpdates(this);
■リスナ登録により、位置情報の定期更新開始
■リスナ解除により、同定期更新停止
コールバック契機 実装
a 位置情報を取得した時 public void onLocationChanged(Location location)
b 位置情報の状態が更新された時 public void onStatusChanged(String provider, int status,
Bundle extras)
c プロバイダが有効になった時 public void onProviderEnabled(String provider)
d プロバイダが無効になった時 public void onProviderDisabled(String provider)
■位置情報取得等のイベントでコールバック発生
Copyright © 2016, NTT Software Corporation.
6
演習(12)
~ロケーションの利用~
Copyright © 2016, NTT Software Corporation.
7
■位置情報取得のプロバイダ比較
【ロケーション】位置情報取得の方式比較
方式1:GPS
(LocationManager.GPS_PROVIDER)
方式2:ネットワーク(WiFi/3G)
(LocationManager.
NETWORK_PROVIDER)
特徴 GPSを用いて位置情報を特定する。 通信ネットワークの情報を用いて位置情報を
特定する。
長所 正確な位置情報を取得できる。 短時間で位置情報を取得できる。
短所 位置情報取得に時間がかかる。
建物の中では取得できない場合がある。
取得できる位置情報の誤差が大きい。
注意点 以下のpermissionを追加する必要がある。
android.permission.android.permission.A
CCESS_FINE_LOCATION
以下のpermissionを追加する必要がある。
android.permission.android.permission.
ACCESS_COARSE_LOCATION
※より詳細な情報は、Google公式Webサイトを参照のこと。
http://developer.android.com/guide/topics/location/strategies.html
※ただし、プロバイダとして、方式1、2の両方を用いる場合は、
ACCESS_FINE_LOCATIONのみを指定で良い。
Copyright © 2016, NTT Software Corporation.
8
 GPSやネットワーク情報を用いた位置情報取得可能
(複数方式があるので、シーン毎での使い分け)
 LocationManager.GPS_PROVIDER
 LocationManager.NETWORK_PROVIDER
 位置情報取得には、パーミッション設定が必須
 位置情報取得のバッテリー消費は大きいので、
適切な取得間隔/アプリ終了後の取得停止等の
工夫が必要
 バッテリー消費や取得間隔を設定可能な高機能APIとして、
「GooglePlayServices」を利用することが推奨されている
【ロケーション】まとめ
Copyright © 2016, NTT Software Corporation.
9
タブレット向け開発
Copyright © 2016, NTT Software Corporation.
バージョン別に対象デバイスが異なる
主にスマホ
向け
す
【タブレット】OSバージョン毎の位置付け
2.x
4.x以降
3.x
タブレット
向け
スマホ・タブレット
の共存
Copyright © 2016, NTT Software Corporation.
各端末の特徴の違いを理解することが必要
スマホ タブレット
 画面サイズ小(~5inch)
 ハンドセット向けUI
 Android 2.x / 4.x
 画面サイズ大(7~10inch)
 タブレット向けUI
 Android 3.x / 4.x(※)
※初代Galaxy Tab(2.2)はタブレットに分類されるが、本研修では、例外として除外する。
【タブレット】端末の多様化
Copyright © 2016, NTT Software Corporation.
画面の大きさ/表示可能な情報量
複数Pane表示
基本的に1Pane
【タブレット】おさえるべき特徴①
スマホ タブレット
Copyright © 2016, NTT Software Corporation.
メニューの振る舞い
常時表示されているメニュー
【タブレット】おさえるべき特徴②
Copyright © 2016, NTT Software Corporation.
【タブレット】スマホ・タブレットアプリの典型的な違い
スマホ タブレット
Copyright © 2016, NTT Software Corporation.
2pane化して
無駄なく表示
①2pane化して
スペースの有効活用
②メニュー
の常時表示
【タブレット】タブレット向けアプリ開発のポイント
特に重要な2点
Copyright © 2016, NTT Software Corporation.
【タブレット】タブレット向けアプリ開発のポイント
①複数Paneをどうやって実現するか?
・キーワード:
②常時表示されるメニューはどうやって作る?
・キーワード:
Fragment(フラグメント)
Action Bar(アクションバー)
Copyright © 2016, NTT Software Corporation.
マルチPaneの構成にかかせないもの
【Fragment】概要
Activityという箱の中に、
Fragmentという複数の
小箱を入れるイメージ
※Fragment=Android3.0
から追加されたクラス
Fragment A Fragment B
Activity
Copyright © 2016, NTT Software Corporation.
具体的には、どんなXML?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment android:name="jp.co.ntts.android.sample.MainFragment"
android:id="@+id/wordListFragment" android:layout_weight="1"
android:layout_width="0dp" android:layout_height="match_parent" />
<fragment android:name="jp.co.ntts.android.sample.DetailFragment"
android:id="@+id/wordFragment" android:layout_weight="2"
android:layout_width="0dp" android:layout_height="match_parent" />
</LinearLayout>
Fragment A(左側)
【Fragment】レイアウト定義例
Fragment B(右側)
Copyright © 2016, NTT Software Corporation.
具体的に、FragmentはどんなJavaソース?
/**
* 詳細情報を表示するフラグメントです。
*/
public class DetailFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// LayoutInflater.inflate(int, ViewGroup, boolean)
// を使って、レイアウトXMLで定義したビューを実体化してreturnする。
// レイアウトXMLファイル名は「detail.xml」
return inflater.inflate(R.layout.detail, container, false);
}
}
【Fragment】Javaソース例
Fragmentクラスを
継承する
FragmentへUIを
ひもづける
UIを持つFragmentの場合
→onCreateVierwの戻り値で、
Fragmentに割り当てるViewを返却する
Copyright © 2016, NTT Software Corporation.
『Fragment』=Activityを分割するための機構
 1Activityを複数Fragmentに分けて開発可能
(今回は、2pane⇒2Fragmentで実現)
 FragmentはActivityにひもづいて動作
 FragmentにもActivity同様ライフサイクルあり
 FragmentもActivity同様にStackを保持可能
(Activityにひもづくバックスタック領域で管理)
 スマホとタブレット向けのソースコードを共通化
するときにも有効
【Fragment】まとめ
Copyright © 2016, NTT Software Corporation.
右上に常時表示されるメニュー
【ActionBar】概要
Action Bar
(3.0以降)
Copyright © 2016, NTT Software Corporation.
Action Barのエリア
【ActionBar】構成①
ベースメニュー
(常時表示される)
オーバーフローメニュー
(タップにより表示される)
Copyright © 2016, NTT Software Corporation.
Action Bar1つの構成
アイコン テキスト
【ActionBar】構成②
Copyright © 2016, NTT Software Corporation.
XMLファイルで定義可能
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id=“@+id/item_add” android:title=“@string/add”
android:icon="@drawable/icon_menu_add"
android:showAsAction="ifRoom|withText" />
<item android:id=“@+id/item_delete” android:title="@string/delete"
android:icon="@drawable/icon_menu_delete”
android:showAsAction="ifRoom|withText" />
<item android:id=“@+id/item_mail” android:title="@string/mail"
android:icon="@drawable/icon_menu_mail“
android:showAsAction="never" />
</menu>
■android:showAsAction=“表示パラメータ”
・ifRoom:スペースがあれば、Action Barにアイコンを表示
・withText:テキストを表示
・always :必ずAction Barに表示(使わない方が良い)
・never :必ずオーバーフローメニューとして表示
追加
削除
メール送信
メニュー定義XML
【ActionBar】メニュー定義例
res¥menuフォルダ
に格納する
Copyright © 2016, NTT Software Corporation.
25
演習(13)
~タブレット向けアプリの開発~
Copyright © 2016, NTT Software Corporation.
26
Android最新機能
※本ファイルからは削除しております。ご了承ください。
<省略スライドに含まれる内容例>
・Lollipop: マテリアルデザイン、Smart Lockなど
・Marshimallow: 新パーミッションモデル、指紋認証など
・N:マルチウィンドウ、VRモードなど
Copyright © 2016, NTT Software Corporation.
27
Google Maps
Copyright © 2016, NTT Software Corporation.
28
■GoogleMaps連携を比較的容易に実現可能
 MapFragmentという専用フラグメントを画面に配置するイメージ
 拡大縮小/スクロールに関する面倒な実装は不要
【GoogleMaps】概要(1/2)
拡大縮小可能
タッチ操作で
スクロール可能
Copyright © 2016, NTT Software Corporation.
29
■GoogleMaps上にマーカーを描画
 地点(緯度経度)で描画位置を指定
 マーカーの色や描画アイコンの変更が可能
 吹き出しに表示するテキストも指定可能
【GoogleMaps】概要(2/2)
デフォルトのマーカーと吹き出しの例 独自アイコンと吹き出しの例
Copyright © 2016, NTT Software Corporation.
30
【GoogleMaps】地図表示に必要な作業(概要)
■地図表示には、実装以外に3つの設定が必要。
• パーミッション
• Google Play Servicesバージョン番号
• API Key
keytoolコマンド
(by JavaSE)
デバッグ
証明書
フィンガー
プリント
API Key
発行サイト
Android
Manifest
API
Key
①API Keyの取得
②Google Play Serviceライブラリの利用設定
③AndroidManifest.xmlへの各種設定
Copyright © 2016, NTT Software Corporation.
31
概要 詳細
1 証明書の
フィンガープリント
取得(※)
• デバッグ証明書のありか(Windows 7の場合)
C:¥Users¥%USERNAME%¥.android¥debug.keystore
• 証明書のフィンガープリントの表示
> keytool -list -keystore debug.keystore
• 「SHA1」の値をメモしておく。
(例) SHA1:
BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:XX:YY:ZZ
2 API Keyの発行 • WebブラウザでGoogle Developers Consoleにアクセスする。
https://console.developers.google.com/
• [プロジェクトを作成]ボタンを押し、規約に同意し、プロジェクトを作成する。
• 当該プロジェクト詳細の[APIと認証]>[API]から
[Google Maps Android API]のリンクを辿り、
表示されるダイアログで[APIを有効にする]ボタンを押す。
• [APIと認証]>[認証情報]から
[認証情報を追加]>[APIキー]>[Android key]の順にボタンを押す。
• 「SHA1フィンガープリント」と、「アプリのパッケージ名」を入力し、
[作成]ボタンを押すとAPI Keyが表示される。
■地図表示には、API Keyの発行手続きが必要
【GoogleMaps】API Key発行手順(1/5)
※Google Play配布を行う場合、リリース証明書を用いてフィンガープリントを生成すること。
Copyright © 2016, NTT Software Corporation.
32
【GoogleMaps】API Key発行手順(2/5)
Copyright © 2016, NTT Software Corporation.
33
【GoogleMaps】API Key発行手順(3/5)
Copyright © 2016, NTT Software Corporation.
34
【GoogleMaps】API Key発行手順(4/5)
Copyright © 2016, NTT Software Corporation.
35
【GoogleMaps】API Key発行手順(5/5)
Copyright © 2016, NTT Software Corporation.
36
【GoogleMaps】ライブラリ利用設定
 ビルドにはGoogle Play Serviceライブラリが必要
 SDKマネージャーからダウンロード
[Extras]→[Google Play services]
Copyright © 2016, NTT Software Corporation.
37
【GoogleMaps】Android Studioを使った雛形作成
 プロジェクト新規作成時のActivity選択画面で
[Google Maps Activity]
を選択するだけで、ほとんどの設定は完了する。
① 【自動設定済】 (app/build.gradle)
Google Play servicesライブラリを依存ライブラリに追加
② 【自動設定済】 (app/src/main/AndroidManifest.xml)
パーミッション宣言
③ 【自動設定済】 (app/src/main/AndroidManifest.xml)
Google Play servicesバージョン番号の宣言
④ 【手動設定が必要】 (app/src/debug/res/values/google_maps_api.xml)
デバッグ証明書向けのAPIキー
⑤ 【手動設定が必要】 (app/src/release/res/values/google_maps_api.xml)
リリース証明書向けのAPIキー
Copyright © 2016, NTT Software Corporation.
【GoogleMaps】APIキーの設定
 取得したAPIキーを、以下のファイルに書く
 デバッグ証明書向け
app/src/debug/res/values/google_maps_api.xml
 リリース証明書向け
app/src/release/res/values/google_maps_api.xml
<resources>
<!--
TODO: Before you run your application, you need a Google Maps API key.
....
Once you have your key (it starts with "AIza"), replace the "google_maps_key"
string in this file.
-->
<string name="google_maps_key" translatable="false" templateMergeStrategy="preserve">
YOUR_KEY_HERE
</string>
</resources>
この部分を実際のAPIキーに置き換える
Copyright © 2016, NTT Software Corporation.
演習(14)
~地図アプリの実装例~
※Maps APIは、Androidのオプション扱いのため、
実行するには、Google APIを含むAVDの作成が必要
Copyright © 2016, NTT Software Corporation.
 GoogleMaps連携により、比較的容易に地図連携可能
以下の機能について、面倒な実装不要
 拡大縮小
 スクロール
 GoogleMaps連携にはいくつかの準備が必要
 動作確認用の実機の用意
現状エミュレータでの動作確認はできていない
 APIキーの取得(デバッグ版/リリース版)
 Google Play Serviceライブラリ利用準備
 AndroidManifest.xmlへの設定追加
【GoogleMaps】まとめ
Copyright © 2016, NTT Software Corporation.
総合演習
Copyright © 2016, NTT Software Corporation.
•Google Play方式
•Webサーバ方式
Androidアプリ配信
Copyright © 2016, NTT Software Corporation.
Androidアプリ配布方式
 (1)Google Play※で公開(3rd-Partyマーケット含む)
 アカウント作成後、マーケットにアプリをアップロード
 アプリが誰にでも見える状態となる点に注意
 課金の仕組みがあり、有料アプリが公開可能
 (2)自前Webサーバで公開
 Webサーバを構築し、その中でアプリ配布
 アプリ配布対象を制限するには、Webサーバ側で適切な対処を実施
 端末側で設定変更の必要あり
開発したアプリを配布するには、
2つの方式がある
※Google Playは、以前、Android Marketという名前で運用されていた。
Copyright © 2016, NTT Software Corporation.
Androidアプリ配信の流れ
ソース
ファイル
(Java)
Google Playサーバ
クラス
ファイル
(class)
Dalvik実行
ファイル
(dex)
Android SDK
コンパイル バイナリ変換
画像 音声 XML
リソース
パッケージング
リソース
製造元
証明書
署名済み
パッケージ
(apk)
署名
Android端末
署名済み
パッケージ
①Google Play方式 ②Webサーバ方式
アップロード アップロード
ダウンロード 任意サーバ
アプリ説明&配布用
HTML
アプリ説明&配布用
ページ
アプリ説明 署名済み
パッケージ
アプリケーション
パッケージ
(apk)
Copyright © 2016, NTT Software Corporation.
45
①Google Play方式(サービス概要)
全世界のアプリを
利用可能
アプリ名による検索
ユーザ評価(5段階)
レビュー閲覧/投稿が可能
開発者がAndroid向けアプリを
登録/公開できるGoogle運営のサービス
アプリ説明画像
Copyright © 2016, NTT Software Corporation.
①Google Play方式(公式Web版)
Google PlayはWeb版も存在する
PCからアプリを選択して端末にインストール可能
アプリ名による検索
Webでインストール指示す
ると端末に自動インストー
ル
Copyright © 2016, NTT Software Corporation.
①Google Play方式(アプリ登録条件)
Google Playにアプリを登録するには
事前に開発者アカウントの取得が必要
(1)開発者アカウントの登録費用(初期費用$25)
→必要なのは、初期費用のみ(年間費用は発生しない)。
→アプリを何本登録する場合でも、$25のみ
(2)Googleアカウント
→ (3)の手続きを行うために必要
(3)Googleチェックアウトに対応した決済手段(クレジットカード)
→初期費用の支払いに必要
無料アプリを登録するために必要なもの
Copyright © 2016, NTT Software Corporation.
①Google Play方式(アプリ登録フロー)
アプリに署名後、Webブラウザ経由で
Google Playにアクセスし、アップロード
Google Playサーバ
製造元
証明書
署名済み
パッケージ
(apk)
署名
Android端末
署名済み
パッケージ
アップロード
ダウンロード
アプリ説明
アプリケーション
パッケージ
(apk)
アップロード後、 Google Playのダウン
ロード画面に数時間後に反映
Google Playからの配布には、署名必須
証明書は、自己署名でOK(CA証明書は不要)
Copyright © 2016, NTT Software Corporation.
②Webサーバ方式(アプリ登録フロー)
アプリに署名後、インターネット上の
任意Webサーバにアップロード
製造元
証明書
署名済み
パッケージ
(apk)
署名
Android端末
アップロード
ダウンロード
任意サーバ
アプリ説明&配布用
HTML
アプリ説明&配布用
ページ
署名済み
パッケージ
アプリケーション
パッケージ
(apk)
Google Play方式と同じ
■○○アプリ
ダウンロード
→hoge.apk
ダウンロードサイト
apkファイルへのリンク
Copyright © 2016, NTT Software Corporation.
50
②Webサーバ方式(注意点)
アプリをダウンロードさせるには、
端末の設定変更が必要
•設定を変更しない場合は、
アプリのダウンロードが不可
•設定を変更しない状態で、
アプリをダウンロードしようと
した場合、「設定変更が必要」の警告
ダイアログ表示
Copyright © 2016, NTT Software Corporation.
おわり
お疲れ様でした。
https://www.ntts.co.jp/products/soft_dojyo/index.html

More Related Content

What's hot

ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
Koji Hasegawa
 
Androidアプリケーション開発入門
Androidアプリケーション開発入門Androidアプリケーション開発入門
Androidアプリケーション開発入門
OESF Education
 
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
Nozomi Ito
 
Androidタブレットアプリケーション開発入門
Androidタブレットアプリケーション開発入門Androidタブレットアプリケーション開発入門
Androidタブレットアプリケーション開発入門
OESF Education
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
UnityTechnologiesJapan002
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料Masatoshi Itoh
 
Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)masanori kataoka
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
Shuji Watanabe
 
Unity(再)入門
Unity(再)入門Unity(再)入門
Unity(再)入門
Takayoshi Tanaka
 
モックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-Cモックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-C
Shoichi Matsuda
 
20181102_テスト管理を語る夕べ
20181102_テスト管理を語る夕べ20181102_テスト管理を語る夕べ
20181102_テスト管理を語る夕べ
Kazuhiro Suzuki
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
 
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるにはGUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
Nozomi Ito
 
Androidアプリケーション応用 WebAPI開発
Androidアプリケーション応用 WebAPI開発Androidアプリケーション応用 WebAPI開発
Androidアプリケーション応用 WebAPI開発
OESF Education
 
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
Shingo Tamaki
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編
OESF Education
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
SEGADevTech
 
ギアと開発とわたし_AAA2015
ギアと開発とわたし_AAA2015ギアと開発とわたし_AAA2015
ギアと開発とわたし_AAA2015
Kazuhiro Suzuki
 
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
Yu Nobuoka
 
テスト自動化のこれまでとこれから
テスト自動化のこれまでとこれからテスト自動化のこれまでとこれから
テスト自動化のこれまでとこれから
Keizo Tatsumi
 

What's hot (20)

ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
 
Androidアプリケーション開発入門
Androidアプリケーション開発入門Androidアプリケーション開発入門
Androidアプリケーション開発入門
 
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
 
Androidタブレットアプリケーション開発入門
Androidタブレットアプリケーション開発入門Androidタブレットアプリケーション開発入門
Androidタブレットアプリケーション開発入門
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
 
Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
Unity(再)入門
Unity(再)入門Unity(再)入門
Unity(再)入門
 
モックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-Cモックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-C
 
20181102_テスト管理を語る夕べ
20181102_テスト管理を語る夕べ20181102_テスト管理を語る夕べ
20181102_テスト管理を語る夕べ
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
 
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるにはGUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
 
Androidアプリケーション応用 WebAPI開発
Androidアプリケーション応用 WebAPI開発Androidアプリケーション応用 WebAPI開発
Androidアプリケーション応用 WebAPI開発
 
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
ギアと開発とわたし_AAA2015
ギアと開発とわたし_AAA2015ギアと開発とわたし_AAA2015
ギアと開発とわたし_AAA2015
 
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
 
テスト自動化のこれまでとこれから
テスト自動化のこれまでとこれからテスト自動化のこれまでとこれから
テスト自動化のこれまでとこれから
 

Viewers also liked

OpenStack入門 2016/06/10
OpenStack入門 2016/06/10OpenStack入門 2016/06/10
OpenStack入門 2016/06/10
株式会社 NTTテクノクロス
 
第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化
Koji Hasegawa
 
JUnitテストを1日やってみた
JUnitテストを1日やってみたJUnitテストを1日やってみた
JUnitテストを1日やってみたMima Yuki
 
ILSVRC2015 手法のメモ
ILSVRC2015 手法のメモILSVRC2015 手法のメモ
ILSVRC2015 手法のメモ
Hirokatsu Kataoka
 
20160913 cookpad ios_jp
20160913 cookpad ios_jp20160913 cookpad ios_jp
20160913 cookpad ios_jp
Kazuaki Matsuo
 
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
Masaki Nakagawa
 
概説 テスト分析
概説 テスト分析概説 テスト分析
概説 テスト分析
崇 山﨑
 
テストプラットフォームサービスの舞台裏
テストプラットフォームサービスの舞台裏テストプラットフォームサービスの舞台裏
テストプラットフォームサービスの舞台裏Yuto Tachibana
 
OpenStack入門 2016/06/27
OpenStack入門 2016/06/27OpenStack入門 2016/06/27
OpenStack入門 2016/06/27
株式会社 NTTテクノクロス
 
TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築
Hirokatsu Kataoka
 
Govt
GovtGovt
Márkaépítés a fogyasztói kontroll korában 2.0
Márkaépítés a fogyasztói kontroll korában 2.0Márkaépítés a fogyasztói kontroll korában 2.0
Márkaépítés a fogyasztói kontroll korában 2.0
Isobar Budapest
 
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy thake   introducing alm to share point development implementations (ap...Jeremy thake   introducing alm to share point development implementations (ap...
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy Thake
 
X math new pattern exam in Telangana for 2014- 15
X math new pattern exam in Telangana for 2014- 15X math new pattern exam in Telangana for 2014- 15
X math new pattern exam in Telangana for 2014- 15
Datha Prasada Rao Vanam
 
CloudSurance - We backup web application data
CloudSurance - We backup web application dataCloudSurance - We backup web application data
CloudSurance - We backup web application data
Sam Bowen
 
Conto+termico ordingroma 4_6+feb+2015 (2)
Conto+termico ordingroma 4_6+feb+2015 (2)Conto+termico ordingroma 4_6+feb+2015 (2)
Conto+termico ordingroma 4_6+feb+2015 (2)
Gestore dei Servizi Energetici
 
anybuild/Hosting casual #1
anybuild/Hosting casual #1anybuild/Hosting casual #1
anybuild/Hosting casual #1Ryo Kuroda
 
Revolution R Enterprise - 100% R and More Webinar Presentation
Revolution R Enterprise - 100% R and More Webinar PresentationRevolution R Enterprise - 100% R and More Webinar Presentation
Revolution R Enterprise - 100% R and More Webinar Presentation
Revolution Analytics
 

Viewers also liked (20)

OpenStack入門 2016/06/10
OpenStack入門 2016/06/10OpenStack入門 2016/06/10
OpenStack入門 2016/06/10
 
第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化第3回Ques ここからはじめる!Androidアプリのテスト自動化
第3回Ques ここからはじめる!Androidアプリのテスト自動化
 
JUnitテストを1日やってみた
JUnitテストを1日やってみたJUnitテストを1日やってみた
JUnitテストを1日やってみた
 
ILSVRC2015 手法のメモ
ILSVRC2015 手法のメモILSVRC2015 手法のメモ
ILSVRC2015 手法のメモ
 
20160913 cookpad ios_jp
20160913 cookpad ios_jp20160913 cookpad ios_jp
20160913 cookpad ios_jp
 
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
 
概説 テスト分析
概説 テスト分析概説 テスト分析
概説 テスト分析
 
テストプラットフォームサービスの舞台裏
テストプラットフォームサービスの舞台裏テストプラットフォームサービスの舞台裏
テストプラットフォームサービスの舞台裏
 
OpenStack入門 2016/06/27
OpenStack入門 2016/06/27OpenStack入門 2016/06/27
OpenStack入門 2016/06/27
 
TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築TensorFlowによるCNNアーキテクチャ構築
TensorFlowによるCNNアーキテクチャ構築
 
Govt
GovtGovt
Govt
 
Márkaépítés a fogyasztói kontroll korában 2.0
Márkaépítés a fogyasztói kontroll korában 2.0Márkaépítés a fogyasztói kontroll korában 2.0
Márkaépítés a fogyasztói kontroll korában 2.0
 
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy thake   introducing alm to share point development implementations (ap...Jeremy thake   introducing alm to share point development implementations (ap...
Jeremy thake introducing alm to share point development implementations (ap...
 
X math new pattern exam in Telangana for 2014- 15
X math new pattern exam in Telangana for 2014- 15X math new pattern exam in Telangana for 2014- 15
X math new pattern exam in Telangana for 2014- 15
 
CloudSurance - We backup web application data
CloudSurance - We backup web application dataCloudSurance - We backup web application data
CloudSurance - We backup web application data
 
Conto+termico ordingroma 4_6+feb+2015 (2)
Conto+termico ordingroma 4_6+feb+2015 (2)Conto+termico ordingroma 4_6+feb+2015 (2)
Conto+termico ordingroma 4_6+feb+2015 (2)
 
EL BOSQUE ENCANTADO
EL BOSQUE ENCANTADOEL BOSQUE ENCANTADO
EL BOSQUE ENCANTADO
 
anybuild/Hosting casual #1
anybuild/Hosting casual #1anybuild/Hosting casual #1
anybuild/Hosting casual #1
 
driver
driverdriver
driver
 
Revolution R Enterprise - 100% R and More Webinar Presentation
Revolution R Enterprise - 100% R and More Webinar PresentationRevolution R Enterprise - 100% R and More Webinar Presentation
Revolution R Enterprise - 100% R and More Webinar Presentation
 

Similar to Androidアプリケーション開発中級研修 後編

Using the Fragments(Android)
Using the Fragments(Android)Using the Fragments(Android)
Using the Fragments(Android)
Teruaki Kinoshita
 
ぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS Appsぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS Apps
EnsekiTT
 
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer Kunimasa Noda
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
 
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
Tetsuya Shiraishi
 
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
cm_saito
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Shinya Nakajima
 
1.29.user,user,user
1.29.user,user,user1.29.user,user,user
1.29.user,user,user
Tonny Xu
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara
 
Apps for Web Platform
Apps for Web PlatformApps for Web Platform
Apps for Web Platform
dynamis
 
はじめてのAndroid開発
はじめてのAndroid開発はじめてのAndroid開発
はじめてのAndroid開発
Katsumi Honda
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
Yuki Higuchi
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium MobileNaoya Ito
 
第一回Android training4desinger
第一回Android training4desinger第一回Android training4desinger
第一回Android training4desinger
Kengo Suzuki
 
20141018 selenium appium_cookpad
20141018 selenium appium_cookpad20141018 selenium appium_cookpad
20141018 selenium appium_cookpad
Kazuaki Matsuo
 
楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発Tomonori Ohba
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
Yoichiro Sakurai
 
20120118 titanium
20120118 titanium20120118 titanium
20120118 titanium
Hiroshi Oyamada
 

Similar to Androidアプリケーション開発中級研修 後編 (20)

Using the Fragments(Android)
Using the Fragments(Android)Using the Fragments(Android)
Using the Fragments(Android)
 
ぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS Appsぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS Apps
 
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
 
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
 
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
 
1.29.user,user,user
1.29.user,user,user1.29.user,user,user
1.29.user,user,user
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
AndroidでDIxAOP
AndroidでDIxAOPAndroidでDIxAOP
AndroidでDIxAOP
 
Apps for Web Platform
Apps for Web PlatformApps for Web Platform
Apps for Web Platform
 
はじめてのAndroid開発
はじめてのAndroid開発はじめてのAndroid開発
はじめてのAndroid開発
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
 
第一回Android training4desinger
第一回Android training4desinger第一回Android training4desinger
第一回Android training4desinger
 
20141018 selenium appium_cookpad
20141018 selenium appium_cookpad20141018 selenium appium_cookpad
20141018 selenium appium_cookpad
 
楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
 
20120118 titanium
20120118 titanium20120118 titanium
20120118 titanium
 

More from 株式会社 NTTテクノクロス

ブロックチェーン活用事例
ブロックチェーン活用事例ブロックチェーン活用事例
ブロックチェーン活用事例
株式会社 NTTテクノクロス
 
Open stack界でのコンテナの現状
Open stack界でのコンテナの現状Open stack界でのコンテナの現状
Open stack界でのコンテナの現状
株式会社 NTTテクノクロス
 
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
株式会社 NTTテクノクロス
 
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
株式会社 NTTテクノクロス
 
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
株式会社 NTTテクノクロス
 
WebRTC研修
WebRTC研修WebRTC研修

More from 株式会社 NTTテクノクロス (6)

ブロックチェーン活用事例
ブロックチェーン活用事例ブロックチェーン活用事例
ブロックチェーン活用事例
 
Open stack界でのコンテナの現状
Open stack界でのコンテナの現状Open stack界でのコンテナの現状
Open stack界でのコンテナの現状
 
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
 
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
 
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
 
WebRTC研修
WebRTC研修WebRTC研修
WebRTC研修
 

Recently uploaded

CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (8)

CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

Androidアプリケーション開発中級研修 後編

  • 2. Copyright © 2016, NTT Software Corporation. 2 本スライドは、NTTソフトウェア社内技術者育成研修(ソフト道場研修)テキストです。 ※ 実際の研修では演習を実施しますが、本テキストには演習に関する内容は含まれていません。 【著作権・免責事項】 • 本セミナーコースの内容、本資料のすべての著作権は、NTTソフトウェア株式会社に帰属します。 • 無断での本資料の複写、複製、再利用、転載、転用を禁じます。 • 本資料と演習等で利用するすべての教材は、NTTソフトウェア株式会社からの保証なしに提供されます。 • 本書に記載されている会社名および製品名は、一般に各社の商標または登録商標です。
  • 3. Copyright © 2016, NTT Software Corporation. 3 ロケーション
  • 4. Copyright © 2016, NTT Software Corporation. 4 ■端末の位置情報取得が可能  方式1:GPSによる位置情報取得  方式2:ネットワーク(WiFi/3G)による情報取得 【ロケーション】概要 緯度・経度を取得可能 方式2に影響 設定アプリ内の 「位置情報」メニュー 位置情報取得方式 =プロバイダ 方式1に影響 方式1 + 方式2
  • 5. Copyright © 2016, NTT Software Corporation. 5 【ロケーション】位置情報取得の流れ 概要 実装 1 ロケーションマネージャの取得 LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 2 位置情報取得リスナの登録 manager.requestLocationUpdates(LocationManager.GP S_PROVIDER, 0, 0, this); 3 位置情報取得リスナの解除 manager.removeUpdates(this); ■リスナ登録により、位置情報の定期更新開始 ■リスナ解除により、同定期更新停止 コールバック契機 実装 a 位置情報を取得した時 public void onLocationChanged(Location location) b 位置情報の状態が更新された時 public void onStatusChanged(String provider, int status, Bundle extras) c プロバイダが有効になった時 public void onProviderEnabled(String provider) d プロバイダが無効になった時 public void onProviderDisabled(String provider) ■位置情報取得等のイベントでコールバック発生
  • 6. Copyright © 2016, NTT Software Corporation. 6 演習(12) ~ロケーションの利用~
  • 7. Copyright © 2016, NTT Software Corporation. 7 ■位置情報取得のプロバイダ比較 【ロケーション】位置情報取得の方式比較 方式1:GPS (LocationManager.GPS_PROVIDER) 方式2:ネットワーク(WiFi/3G) (LocationManager. NETWORK_PROVIDER) 特徴 GPSを用いて位置情報を特定する。 通信ネットワークの情報を用いて位置情報を 特定する。 長所 正確な位置情報を取得できる。 短時間で位置情報を取得できる。 短所 位置情報取得に時間がかかる。 建物の中では取得できない場合がある。 取得できる位置情報の誤差が大きい。 注意点 以下のpermissionを追加する必要がある。 android.permission.android.permission.A CCESS_FINE_LOCATION 以下のpermissionを追加する必要がある。 android.permission.android.permission. ACCESS_COARSE_LOCATION ※より詳細な情報は、Google公式Webサイトを参照のこと。 http://developer.android.com/guide/topics/location/strategies.html ※ただし、プロバイダとして、方式1、2の両方を用いる場合は、 ACCESS_FINE_LOCATIONのみを指定で良い。
  • 8. Copyright © 2016, NTT Software Corporation. 8  GPSやネットワーク情報を用いた位置情報取得可能 (複数方式があるので、シーン毎での使い分け)  LocationManager.GPS_PROVIDER  LocationManager.NETWORK_PROVIDER  位置情報取得には、パーミッション設定が必須  位置情報取得のバッテリー消費は大きいので、 適切な取得間隔/アプリ終了後の取得停止等の 工夫が必要  バッテリー消費や取得間隔を設定可能な高機能APIとして、 「GooglePlayServices」を利用することが推奨されている 【ロケーション】まとめ
  • 9. Copyright © 2016, NTT Software Corporation. 9 タブレット向け開発
  • 10. Copyright © 2016, NTT Software Corporation. バージョン別に対象デバイスが異なる 主にスマホ 向け す 【タブレット】OSバージョン毎の位置付け 2.x 4.x以降 3.x タブレット 向け スマホ・タブレット の共存
  • 11. Copyright © 2016, NTT Software Corporation. 各端末の特徴の違いを理解することが必要 スマホ タブレット  画面サイズ小(~5inch)  ハンドセット向けUI  Android 2.x / 4.x  画面サイズ大(7~10inch)  タブレット向けUI  Android 3.x / 4.x(※) ※初代Galaxy Tab(2.2)はタブレットに分類されるが、本研修では、例外として除外する。 【タブレット】端末の多様化
  • 12. Copyright © 2016, NTT Software Corporation. 画面の大きさ/表示可能な情報量 複数Pane表示 基本的に1Pane 【タブレット】おさえるべき特徴① スマホ タブレット
  • 13. Copyright © 2016, NTT Software Corporation. メニューの振る舞い 常時表示されているメニュー 【タブレット】おさえるべき特徴②
  • 14. Copyright © 2016, NTT Software Corporation. 【タブレット】スマホ・タブレットアプリの典型的な違い スマホ タブレット
  • 15. Copyright © 2016, NTT Software Corporation. 2pane化して 無駄なく表示 ①2pane化して スペースの有効活用 ②メニュー の常時表示 【タブレット】タブレット向けアプリ開発のポイント 特に重要な2点
  • 16. Copyright © 2016, NTT Software Corporation. 【タブレット】タブレット向けアプリ開発のポイント ①複数Paneをどうやって実現するか? ・キーワード: ②常時表示されるメニューはどうやって作る? ・キーワード: Fragment(フラグメント) Action Bar(アクションバー)
  • 17. Copyright © 2016, NTT Software Corporation. マルチPaneの構成にかかせないもの 【Fragment】概要 Activityという箱の中に、 Fragmentという複数の 小箱を入れるイメージ ※Fragment=Android3.0 から追加されたクラス Fragment A Fragment B Activity
  • 18. Copyright © 2016, NTT Software Corporation. 具体的には、どんなXML? <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:name="jp.co.ntts.android.sample.MainFragment" android:id="@+id/wordListFragment" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" /> <fragment android:name="jp.co.ntts.android.sample.DetailFragment" android:id="@+id/wordFragment" android:layout_weight="2" android:layout_width="0dp" android:layout_height="match_parent" /> </LinearLayout> Fragment A(左側) 【Fragment】レイアウト定義例 Fragment B(右側)
  • 19. Copyright © 2016, NTT Software Corporation. 具体的に、FragmentはどんなJavaソース? /** * 詳細情報を表示するフラグメントです。 */ public class DetailFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // LayoutInflater.inflate(int, ViewGroup, boolean) // を使って、レイアウトXMLで定義したビューを実体化してreturnする。 // レイアウトXMLファイル名は「detail.xml」 return inflater.inflate(R.layout.detail, container, false); } } 【Fragment】Javaソース例 Fragmentクラスを 継承する FragmentへUIを ひもづける UIを持つFragmentの場合 →onCreateVierwの戻り値で、 Fragmentに割り当てるViewを返却する
  • 20. Copyright © 2016, NTT Software Corporation. 『Fragment』=Activityを分割するための機構  1Activityを複数Fragmentに分けて開発可能 (今回は、2pane⇒2Fragmentで実現)  FragmentはActivityにひもづいて動作  FragmentにもActivity同様ライフサイクルあり  FragmentもActivity同様にStackを保持可能 (Activityにひもづくバックスタック領域で管理)  スマホとタブレット向けのソースコードを共通化 するときにも有効 【Fragment】まとめ
  • 21. Copyright © 2016, NTT Software Corporation. 右上に常時表示されるメニュー 【ActionBar】概要 Action Bar (3.0以降)
  • 22. Copyright © 2016, NTT Software Corporation. Action Barのエリア 【ActionBar】構成① ベースメニュー (常時表示される) オーバーフローメニュー (タップにより表示される)
  • 23. Copyright © 2016, NTT Software Corporation. Action Bar1つの構成 アイコン テキスト 【ActionBar】構成②
  • 24. Copyright © 2016, NTT Software Corporation. XMLファイルで定義可能 <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id=“@+id/item_add” android:title=“@string/add” android:icon="@drawable/icon_menu_add" android:showAsAction="ifRoom|withText" /> <item android:id=“@+id/item_delete” android:title="@string/delete" android:icon="@drawable/icon_menu_delete” android:showAsAction="ifRoom|withText" /> <item android:id=“@+id/item_mail” android:title="@string/mail" android:icon="@drawable/icon_menu_mail“ android:showAsAction="never" /> </menu> ■android:showAsAction=“表示パラメータ” ・ifRoom:スペースがあれば、Action Barにアイコンを表示 ・withText:テキストを表示 ・always :必ずAction Barに表示(使わない方が良い) ・never :必ずオーバーフローメニューとして表示 追加 削除 メール送信 メニュー定義XML 【ActionBar】メニュー定義例 res¥menuフォルダ に格納する
  • 25. Copyright © 2016, NTT Software Corporation. 25 演習(13) ~タブレット向けアプリの開発~
  • 26. Copyright © 2016, NTT Software Corporation. 26 Android最新機能 ※本ファイルからは削除しております。ご了承ください。 <省略スライドに含まれる内容例> ・Lollipop: マテリアルデザイン、Smart Lockなど ・Marshimallow: 新パーミッションモデル、指紋認証など ・N:マルチウィンドウ、VRモードなど
  • 27. Copyright © 2016, NTT Software Corporation. 27 Google Maps
  • 28. Copyright © 2016, NTT Software Corporation. 28 ■GoogleMaps連携を比較的容易に実現可能  MapFragmentという専用フラグメントを画面に配置するイメージ  拡大縮小/スクロールに関する面倒な実装は不要 【GoogleMaps】概要(1/2) 拡大縮小可能 タッチ操作で スクロール可能
  • 29. Copyright © 2016, NTT Software Corporation. 29 ■GoogleMaps上にマーカーを描画  地点(緯度経度)で描画位置を指定  マーカーの色や描画アイコンの変更が可能  吹き出しに表示するテキストも指定可能 【GoogleMaps】概要(2/2) デフォルトのマーカーと吹き出しの例 独自アイコンと吹き出しの例
  • 30. Copyright © 2016, NTT Software Corporation. 30 【GoogleMaps】地図表示に必要な作業(概要) ■地図表示には、実装以外に3つの設定が必要。 • パーミッション • Google Play Servicesバージョン番号 • API Key keytoolコマンド (by JavaSE) デバッグ 証明書 フィンガー プリント API Key 発行サイト Android Manifest API Key ①API Keyの取得 ②Google Play Serviceライブラリの利用設定 ③AndroidManifest.xmlへの各種設定
  • 31. Copyright © 2016, NTT Software Corporation. 31 概要 詳細 1 証明書の フィンガープリント 取得(※) • デバッグ証明書のありか(Windows 7の場合) C:¥Users¥%USERNAME%¥.android¥debug.keystore • 証明書のフィンガープリントの表示 > keytool -list -keystore debug.keystore • 「SHA1」の値をメモしておく。 (例) SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:XX:YY:ZZ 2 API Keyの発行 • WebブラウザでGoogle Developers Consoleにアクセスする。 https://console.developers.google.com/ • [プロジェクトを作成]ボタンを押し、規約に同意し、プロジェクトを作成する。 • 当該プロジェクト詳細の[APIと認証]>[API]から [Google Maps Android API]のリンクを辿り、 表示されるダイアログで[APIを有効にする]ボタンを押す。 • [APIと認証]>[認証情報]から [認証情報を追加]>[APIキー]>[Android key]の順にボタンを押す。 • 「SHA1フィンガープリント」と、「アプリのパッケージ名」を入力し、 [作成]ボタンを押すとAPI Keyが表示される。 ■地図表示には、API Keyの発行手続きが必要 【GoogleMaps】API Key発行手順(1/5) ※Google Play配布を行う場合、リリース証明書を用いてフィンガープリントを生成すること。
  • 32. Copyright © 2016, NTT Software Corporation. 32 【GoogleMaps】API Key発行手順(2/5)
  • 33. Copyright © 2016, NTT Software Corporation. 33 【GoogleMaps】API Key発行手順(3/5)
  • 34. Copyright © 2016, NTT Software Corporation. 34 【GoogleMaps】API Key発行手順(4/5)
  • 35. Copyright © 2016, NTT Software Corporation. 35 【GoogleMaps】API Key発行手順(5/5)
  • 36. Copyright © 2016, NTT Software Corporation. 36 【GoogleMaps】ライブラリ利用設定  ビルドにはGoogle Play Serviceライブラリが必要  SDKマネージャーからダウンロード [Extras]→[Google Play services]
  • 37. Copyright © 2016, NTT Software Corporation. 37 【GoogleMaps】Android Studioを使った雛形作成  プロジェクト新規作成時のActivity選択画面で [Google Maps Activity] を選択するだけで、ほとんどの設定は完了する。 ① 【自動設定済】 (app/build.gradle) Google Play servicesライブラリを依存ライブラリに追加 ② 【自動設定済】 (app/src/main/AndroidManifest.xml) パーミッション宣言 ③ 【自動設定済】 (app/src/main/AndroidManifest.xml) Google Play servicesバージョン番号の宣言 ④ 【手動設定が必要】 (app/src/debug/res/values/google_maps_api.xml) デバッグ証明書向けのAPIキー ⑤ 【手動設定が必要】 (app/src/release/res/values/google_maps_api.xml) リリース証明書向けのAPIキー
  • 38. Copyright © 2016, NTT Software Corporation. 【GoogleMaps】APIキーの設定  取得したAPIキーを、以下のファイルに書く  デバッグ証明書向け app/src/debug/res/values/google_maps_api.xml  リリース証明書向け app/src/release/res/values/google_maps_api.xml <resources> <!-- TODO: Before you run your application, you need a Google Maps API key. .... Once you have your key (it starts with "AIza"), replace the "google_maps_key" string in this file. --> <string name="google_maps_key" translatable="false" templateMergeStrategy="preserve"> YOUR_KEY_HERE </string> </resources> この部分を実際のAPIキーに置き換える
  • 39. Copyright © 2016, NTT Software Corporation. 演習(14) ~地図アプリの実装例~ ※Maps APIは、Androidのオプション扱いのため、 実行するには、Google APIを含むAVDの作成が必要
  • 40. Copyright © 2016, NTT Software Corporation.  GoogleMaps連携により、比較的容易に地図連携可能 以下の機能について、面倒な実装不要  拡大縮小  スクロール  GoogleMaps連携にはいくつかの準備が必要  動作確認用の実機の用意 現状エミュレータでの動作確認はできていない  APIキーの取得(デバッグ版/リリース版)  Google Play Serviceライブラリ利用準備  AndroidManifest.xmlへの設定追加 【GoogleMaps】まとめ
  • 41. Copyright © 2016, NTT Software Corporation. 総合演習
  • 42. Copyright © 2016, NTT Software Corporation. •Google Play方式 •Webサーバ方式 Androidアプリ配信
  • 43. Copyright © 2016, NTT Software Corporation. Androidアプリ配布方式  (1)Google Play※で公開(3rd-Partyマーケット含む)  アカウント作成後、マーケットにアプリをアップロード  アプリが誰にでも見える状態となる点に注意  課金の仕組みがあり、有料アプリが公開可能  (2)自前Webサーバで公開  Webサーバを構築し、その中でアプリ配布  アプリ配布対象を制限するには、Webサーバ側で適切な対処を実施  端末側で設定変更の必要あり 開発したアプリを配布するには、 2つの方式がある ※Google Playは、以前、Android Marketという名前で運用されていた。
  • 44. Copyright © 2016, NTT Software Corporation. Androidアプリ配信の流れ ソース ファイル (Java) Google Playサーバ クラス ファイル (class) Dalvik実行 ファイル (dex) Android SDK コンパイル バイナリ変換 画像 音声 XML リソース パッケージング リソース 製造元 証明書 署名済み パッケージ (apk) 署名 Android端末 署名済み パッケージ ①Google Play方式 ②Webサーバ方式 アップロード アップロード ダウンロード 任意サーバ アプリ説明&配布用 HTML アプリ説明&配布用 ページ アプリ説明 署名済み パッケージ アプリケーション パッケージ (apk)
  • 45. Copyright © 2016, NTT Software Corporation. 45 ①Google Play方式(サービス概要) 全世界のアプリを 利用可能 アプリ名による検索 ユーザ評価(5段階) レビュー閲覧/投稿が可能 開発者がAndroid向けアプリを 登録/公開できるGoogle運営のサービス アプリ説明画像
  • 46. Copyright © 2016, NTT Software Corporation. ①Google Play方式(公式Web版) Google PlayはWeb版も存在する PCからアプリを選択して端末にインストール可能 アプリ名による検索 Webでインストール指示す ると端末に自動インストー ル
  • 47. Copyright © 2016, NTT Software Corporation. ①Google Play方式(アプリ登録条件) Google Playにアプリを登録するには 事前に開発者アカウントの取得が必要 (1)開発者アカウントの登録費用(初期費用$25) →必要なのは、初期費用のみ(年間費用は発生しない)。 →アプリを何本登録する場合でも、$25のみ (2)Googleアカウント → (3)の手続きを行うために必要 (3)Googleチェックアウトに対応した決済手段(クレジットカード) →初期費用の支払いに必要 無料アプリを登録するために必要なもの
  • 48. Copyright © 2016, NTT Software Corporation. ①Google Play方式(アプリ登録フロー) アプリに署名後、Webブラウザ経由で Google Playにアクセスし、アップロード Google Playサーバ 製造元 証明書 署名済み パッケージ (apk) 署名 Android端末 署名済み パッケージ アップロード ダウンロード アプリ説明 アプリケーション パッケージ (apk) アップロード後、 Google Playのダウン ロード画面に数時間後に反映 Google Playからの配布には、署名必須 証明書は、自己署名でOK(CA証明書は不要)
  • 49. Copyright © 2016, NTT Software Corporation. ②Webサーバ方式(アプリ登録フロー) アプリに署名後、インターネット上の 任意Webサーバにアップロード 製造元 証明書 署名済み パッケージ (apk) 署名 Android端末 アップロード ダウンロード 任意サーバ アプリ説明&配布用 HTML アプリ説明&配布用 ページ 署名済み パッケージ アプリケーション パッケージ (apk) Google Play方式と同じ ■○○アプリ ダウンロード →hoge.apk ダウンロードサイト apkファイルへのリンク
  • 50. Copyright © 2016, NTT Software Corporation. 50 ②Webサーバ方式(注意点) アプリをダウンロードさせるには、 端末の設定変更が必要 •設定を変更しない場合は、 アプリのダウンロードが不可 •設定を変更しない状態で、 アプリをダウンロードしようと した場合、「設定変更が必要」の警告 ダイアログ表示
  • 51. Copyright © 2016, NTT Software Corporation. おわり お疲れ様でした。