Submit Search
Upload
[ABC2012S]Android2x/3x/4x対応アプリ開発Tips
•
9 likes
•
1,538 views
Kenichi Kambara
Follow
ABC 2012 Spring セッション資料
Read less
Read more
Technology
Report
Share
Report
Share
1 of 36
Recommended
[コデアル][Programming24]Androidアプリ勉強会01
[コデアル][Programming24]Androidアプリ勉強会01
codeal
Programming24 第2回androidアプリ勉強会
Programming24 第2回androidアプリ勉強会
codeal
Programming24 第3回Androidアプリ勉強会
Programming24 第3回Androidアプリ勉強会
codeal
Mapping wild species in Jabal Samhan Nature Reserve, Oman.
Mapping wild species in Jabal Samhan Nature Reserve, Oman.
Edmundo Garron
Lucía Urresti
Lucía Urresti
Lucia Urresti
Irena Sendler
Irena Sendler
Victorino Redondo Fidalgo
AgresióN [1]
AgresióN [1]
guest7260f3
28.04.11
28.04.11
பெரியார் திராவிடர் கழகம்
Recommended
[コデアル][Programming24]Androidアプリ勉強会01
[コデアル][Programming24]Androidアプリ勉強会01
codeal
Programming24 第2回androidアプリ勉強会
Programming24 第2回androidアプリ勉強会
codeal
Programming24 第3回Androidアプリ勉強会
Programming24 第3回Androidアプリ勉強会
codeal
Mapping wild species in Jabal Samhan Nature Reserve, Oman.
Mapping wild species in Jabal Samhan Nature Reserve, Oman.
Edmundo Garron
Lucía Urresti
Lucía Urresti
Lucia Urresti
Irena Sendler
Irena Sendler
Victorino Redondo Fidalgo
AgresióN [1]
AgresióN [1]
guest7260f3
28.04.11
28.04.11
பெரியார் திராவிடர் கழகம்
Presentacion montajes definitiva1
Presentacion montajes definitiva1
Luis S.
Boletin febrero
Boletin febrero
brozha
Hola
Hola
nanobohle
Designing fresh experiences
Designing fresh experiences
Mona Patel
Manual de uso e.m. fre power point video converter
Manual de uso e.m. fre power point video converter
elmerurla
Rennie Sven Flores Humareda. tarea4 L/M
Rennie Sven Flores Humareda. tarea4 L/M
sven3101
sisqual team dimensioning_PT_web
sisqual team dimensioning_PT_web
Diana Costa (丁仙娜)
Juncos comunicacion-01
Juncos comunicacion-01
Nidia Muñiz Pereira
Exposición de skype
Exposición de skype
Maria Antonieta Ugueto
Movimientos literarios
Movimientos literarios
rixard_17
DocCity online platform UX design case study
DocCity online platform UX design case study
Lana Shauchenka
Grandes juegos
Grandes juegos
Fanny Mongelli
Plastica comic
Plastica comic
AlbaFigueresPuig
20131004 - Css - Basic & Styling by 懿鋆
20131004 - Css - Basic & Styling by 懿鋆
LearningTech
Творчий проект з трудового навчання Корабель «ПОБЕДА»
Творчий проект з трудового навчання Корабель «ПОБЕДА»
Школа №7 Миргород
Parque Natural do Montesinho
Parque Natural do Montesinho
Pedro Peixoto
Violencia, medios y publicidad
Violencia, medios y publicidad
Webmistress Paraguay
Desigualdad de género
Desigualdad de género
gmartineznieto
Email expressions he136
Email expressions he136
Majorick
Aspectos da costa - Lúcia Jorge - 2010
Aspectos da costa - Lúcia Jorge - 2010
Alexandra Tenente
Android multiscreen
Android multiscreen
Kazuaki Ueda
Androidのライブ壁紙について
Androidのライブ壁紙について
yoropan
More Related Content
Viewers also liked
Presentacion montajes definitiva1
Presentacion montajes definitiva1
Luis S.
Boletin febrero
Boletin febrero
brozha
Hola
Hola
nanobohle
Designing fresh experiences
Designing fresh experiences
Mona Patel
Manual de uso e.m. fre power point video converter
Manual de uso e.m. fre power point video converter
elmerurla
Rennie Sven Flores Humareda. tarea4 L/M
Rennie Sven Flores Humareda. tarea4 L/M
sven3101
sisqual team dimensioning_PT_web
sisqual team dimensioning_PT_web
Diana Costa (丁仙娜)
Juncos comunicacion-01
Juncos comunicacion-01
Nidia Muñiz Pereira
Exposición de skype
Exposición de skype
Maria Antonieta Ugueto
Movimientos literarios
Movimientos literarios
rixard_17
DocCity online platform UX design case study
DocCity online platform UX design case study
Lana Shauchenka
Grandes juegos
Grandes juegos
Fanny Mongelli
Plastica comic
Plastica comic
AlbaFigueresPuig
20131004 - Css - Basic & Styling by 懿鋆
20131004 - Css - Basic & Styling by 懿鋆
LearningTech
Творчий проект з трудового навчання Корабель «ПОБЕДА»
Творчий проект з трудового навчання Корабель «ПОБЕДА»
Школа №7 Миргород
Parque Natural do Montesinho
Parque Natural do Montesinho
Pedro Peixoto
Violencia, medios y publicidad
Violencia, medios y publicidad
Webmistress Paraguay
Desigualdad de género
Desigualdad de género
gmartineznieto
Email expressions he136
Email expressions he136
Majorick
Aspectos da costa - Lúcia Jorge - 2010
Aspectos da costa - Lúcia Jorge - 2010
Alexandra Tenente
Viewers also liked
(20)
Presentacion montajes definitiva1
Presentacion montajes definitiva1
Boletin febrero
Boletin febrero
Hola
Hola
Designing fresh experiences
Designing fresh experiences
Manual de uso e.m. fre power point video converter
Manual de uso e.m. fre power point video converter
Rennie Sven Flores Humareda. tarea4 L/M
Rennie Sven Flores Humareda. tarea4 L/M
sisqual team dimensioning_PT_web
sisqual team dimensioning_PT_web
Juncos comunicacion-01
Juncos comunicacion-01
Exposición de skype
Exposición de skype
Movimientos literarios
Movimientos literarios
DocCity online platform UX design case study
DocCity online platform UX design case study
Grandes juegos
Grandes juegos
Plastica comic
Plastica comic
20131004 - Css - Basic & Styling by 懿鋆
20131004 - Css - Basic & Styling by 懿鋆
Творчий проект з трудового навчання Корабель «ПОБЕДА»
Творчий проект з трудового навчання Корабель «ПОБЕДА»
Parque Natural do Montesinho
Parque Natural do Montesinho
Violencia, medios y publicidad
Violencia, medios y publicidad
Desigualdad de género
Desigualdad de género
Email expressions he136
Email expressions he136
Aspectos da costa - Lúcia Jorge - 2010
Aspectos da costa - Lúcia Jorge - 2010
Similar to [ABC2012S]Android2x/3x/4x対応アプリ開発Tips
Android multiscreen
Android multiscreen
Kazuaki Ueda
Androidのライブ壁紙について
Androidのライブ壁紙について
yoropan
Pf部2012年1月勉強会.androidsola
Pf部2012年1月勉強会.androidsola
android sola
マルチスクリーン対応と最近のアプリの傾向
マルチスクリーン対応と最近のアプリの傾向
Yuki Anzai
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
インフラジスティックス・ジャパン株式会社
Metroスタイルで花開くか?XAMLベースのUIフレームワーク
Metroスタイルで花開くか?XAMLベースのUIフレームワーク
Yuya Yamaki
Zabbix2.0.3の新機能と変更点
Zabbix2.0.3の新機能と変更点
真乙 九龍
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
leverages_event
AndroidでDIxAOP
AndroidでDIxAOP
nfc research
AndroidのUI設計で押さえておきたいポイント
AndroidのUI設計で押さえておきたいポイント
Takayuki Inoue
スマ研第2回レポート
スマ研第2回レポート
Shinpei Niiyama
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
youten (ようてん)
PF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsola
android sola
Developers Summit 2013【14-E-3】Windows 8デザインガイド
Developers Summit 2013【14-E-3】Windows 8デザインガイド
Yuya Yamaki
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
Yuki Higuchi
Androidレイアウトのスタンダードアプローチ
Androidレイアウトのスタンダードアプローチ
Takao Sumitomo
スマートフォンブラウザ不具合特集
スマートフォンブラウザ不具合特集
Hiroaki Wakamatsu
第6回中心会議 XAMLで学ぶ レイアウトスキル 0923
第6回中心会議 XAMLで学ぶ レイアウトスキル 0923
Hub DotnetDeveloper
HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発
h_kishi
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
Developers Summit
Similar to [ABC2012S]Android2x/3x/4x対応アプリ開発Tips
(20)
Android multiscreen
Android multiscreen
Androidのライブ壁紙について
Androidのライブ壁紙について
Pf部2012年1月勉強会.androidsola
Pf部2012年1月勉強会.androidsola
マルチスクリーン対応と最近のアプリの傾向
マルチスクリーン対応と最近のアプリの傾向
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
Metroスタイルで花開くか?XAMLベースのUIフレームワーク
Metroスタイルで花開くか?XAMLベースのUIフレームワーク
Zabbix2.0.3の新機能と変更点
Zabbix2.0.3の新機能と変更点
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
AndroidでDIxAOP
AndroidでDIxAOP
AndroidのUI設計で押さえておきたいポイント
AndroidのUI設計で押さえておきたいポイント
スマ研第2回レポート
スマ研第2回レポート
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
PF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsola
Developers Summit 2013【14-E-3】Windows 8デザインガイド
Developers Summit 2013【14-E-3】Windows 8デザインガイド
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
Androidレイアウトのスタンダードアプローチ
Androidレイアウトのスタンダードアプローチ
スマートフォンブラウザ不具合特集
スマートフォンブラウザ不具合特集
第6回中心会議 XAMLで学ぶ レイアウトスキル 0923
第6回中心会議 XAMLで学ぶ レイアウトスキル 0923
HTML5@iPhoneゲーム開発
HTML5@iPhoneゲーム開発
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
More from Kenichi Kambara
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Kenichi Kambara
Hello Flutter”の次におさえたい Flutterのポイント その5
Hello Flutter”の次におさえたい Flutterのポイント その5
Kenichi Kambara
[ABC2018Spring]Flutterアプリ開発入門
[ABC2018Spring]Flutterアプリ開発入門
Kenichi Kambara
“Hello Flutter”の次におさえたい Flutterのポイント その4
“Hello Flutter”の次におさえたい Flutterのポイント その4
Kenichi Kambara
[Google I/O 2018 Highlights] Sandbox
[Google I/O 2018 Highlights] Sandbox
Kenichi Kambara
[Google I/O 2018 Highlights] Flutter / WearOS
[Google I/O 2018 Highlights] Flutter / WearOS
Kenichi Kambara
"Hello Flutter"の次におさえたいFlutterのポイントその3
"Hello Flutter"の次におさえたいFlutterのポイントその3
Kenichi Kambara
Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2
Kenichi Kambara
I/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物Tips
Kenichi Kambara
Hello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイント
Kenichi Kambara
Developing Android Apps for Google Assistant
Developing Android Apps for Google Assistant
Kenichi Kambara
Google Assistant対応アプリ開発3つのポイント
Google Assistant対応アプリ開発3つのポイント
Kenichi Kambara
10分で作るGoogle Assistant対応アプリ
10分で作るGoogle Assistant対応アプリ
Kenichi Kambara
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
Kenichi Kambara
Android O (Picture In Picture)入門+実装例
Android O (Picture In Picture)入門+実装例
Kenichi Kambara
AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例
Kenichi Kambara
Android O (Beta) Topics
Android O (Beta) Topics
Kenichi Kambara
Publishing Android Wear 2.0 Apps
Publishing Android Wear 2.0 Apps
Kenichi Kambara
Android Studio 2.3 New Features
Android Studio 2.3 New Features
Kenichi Kambara
Android 7.0 Nougat マルチウィンドウ解説+α
Android 7.0 Nougat マルチウィンドウ解説+α
Kenichi Kambara
More from Kenichi Kambara
(20)
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Hello Flutter”の次におさえたい Flutterのポイント その5
Hello Flutter”の次におさえたい Flutterのポイント その5
[ABC2018Spring]Flutterアプリ開発入門
[ABC2018Spring]Flutterアプリ開発入門
“Hello Flutter”の次におさえたい Flutterのポイント その4
“Hello Flutter”の次におさえたい Flutterのポイント その4
[Google I/O 2018 Highlights] Sandbox
[Google I/O 2018 Highlights] Sandbox
[Google I/O 2018 Highlights] Flutter / WearOS
[Google I/O 2018 Highlights] Flutter / WearOS
"Hello Flutter"の次におさえたいFlutterのポイントその3
"Hello Flutter"の次におさえたいFlutterのポイントその3
Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2
I/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物Tips
Hello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイント
Developing Android Apps for Google Assistant
Developing Android Apps for Google Assistant
Google Assistant対応アプリ開発3つのポイント
Google Assistant対応アプリ開発3つのポイント
10分で作るGoogle Assistant対応アプリ
10分で作るGoogle Assistant対応アプリ
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
Android O (Picture In Picture)入門+実装例
Android O (Picture In Picture)入門+実装例
AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例
Android O (Beta) Topics
Android O (Beta) Topics
Publishing Android Wear 2.0 Apps
Publishing Android Wear 2.0 Apps
Android Studio 2.3 New Features
Android Studio 2.3 New Features
Android 7.0 Nougat マルチウィンドウ解説+α
Android 7.0 Nougat マルチウィンドウ解説+α
Recently uploaded
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(7)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
[ABC2012S]Android2x/3x/4x対応アプリ開発Tips
1.
Android 2.x/3.x/4.x対応
アプリ開発Tips 2012.3.24 @korodroid(神原 健一)
2.
自己紹介 ■氏名:神原 健一(@korodroid) ■活動:iplatform.org(http://www.iplatform.org/) ■所属:NTTソフトウェア株式会社 ■主な活動(iplatform.org@プライベート) ■Google
Play向けアプリ開発(現在18本) 9 10 ■Google Developer Day 2011 Tokyo 基調講演デモ ■Android Developer Lab Tokyo 2011 follow-up 5位入賞 ■i*deal Competition 2010 ファイナリスト 2
3.
本日のアジェンダ •本発表の題材とするアプリ •背景 •関連キーワードの復習 •開発時に特に考慮すべき点
3
4.
本発表の題材とするアプリ 【セカイフォン】
4
5.
セカイフォンとは? 6ヶ国語に対応した翻訳電話 (2010/01初版開発以降、20回以上のver.up.)
英語 ドイツ語 ○ ○ 日本語 ○ イタリア語 ○ フランス語 ○ 中国語 5
6.
利用シーン① 通話モード【相手の母国語に自動変換】
英語 日本語 Hello! こんにちは 6
7.
利用シーン② 1人通話モード【会話をその場で変換】
英語 日本語 7
8.
アプリ画面例(Android 2.x) 縦画面
横画面 8
9.
アプリ画面例(Android 3.x) 縦画面
横画面 9
10.
アプリ画面例(Android 4.x) 縦画面
横画面 10
11.
背景
11
12.
背景
アプリ開発のターゲットは? ➡フル対応する場合、現時点では基本的に2.x/3.x/4.x フォン+ ハンドセット 主にハンドセット タブレット +タブレット 2.x タブレット 4.x 3.x 12
13.
背景 セカイフォンの2.x/3.x/4.x・マルチデバイス対応時に
気付いた点をお話します(1apkで実現)。 2.x 3.x 4.x 13
14.
関連キーワードの復習
14
15.
Fragmentとは?
マルチPaneの画面構成時などに 役立つもの ハンドセットの1例 タブレットの1例 15
16.
Fragmentとは?
マルチPaneの画面構成時などに 役立つもの Fragment A Fragment B ハンドセットの1例 タブレットの1例 16
17.
OptionMenuおよびActionBarとは?
「設定」「ヘルプ」など、同画面で 実行したい処理をまとめたもの 2.x 3.x以降 Option Menu Action Bar 17
18.
開発時に特に考慮すべき点 1.UI(最適なレイアウト) 2.API(利用可能なAPI)
18
19.
UI-実現方式① layout-small/normal/large/xlargeによる分離 ○ 1.6以降であれば、利用可能。 × 7”タブレットと5”ハンドセットが同じlargeに分類 される場合あり。別レイアウトにしたい時に問題に。 × 3.0以前で適切なグループ分けされない場合あり。
19
20.
UI-実現方式②
sw<N>dp,w<N>dp,h<N>dpの利用 概要 補足 (a)layout-sw600dp 縦横ともに600dp以上 画面方向に非依存 (b)layout-w720dp 横が720dp以上 画面方向に依存 (c)layout-h480dp 縦が480dp以上 画面方向に依存 (a)false (a)false (a)true 400dp (b)true 960dp (b)false 720dp (b)true (c)false (c)true (c)true 960dp 1280dp 400dp 20
21.
UI-実現方式②
sw<N>dp,w<N>dp,h<N>dpの利用 概要 補足 (a)layout-sw600dp 縦横ともに600dp以上 画面方向に非依存 (b)layout-w720dp 実行する画面特性に応じて、適用される 横が720dp以上 画面方向に依存 (c)layout-h480dp レイアウトを変更することが可能。 縦が480dp以上 画面方向に依存 (a)false (a)false (a)true 400dp (b)true 960dp (b)false 720dp (b)true (c)false (c)true (c)true 960dp 1280dp 400dp 21
22.
UI-実現方式② (A)ハンドセットとタブレットの分離例 •res/layout/main.xml •res/layout-sw600dp/main.xml (B)ハンドセットとタブレット2種類の分離
•res/layout/main.xml •res/layout-sw600dp/main.xml •res/layout-sw720dp/main.xml (C)タブレット横長とそれ以外の分離例 •res/layout/main.xml •res/layout-w600dp/main.xml 22
23.
UI-実現方式②
sw<N>dp,w<N>dp,h<N>dpの利用 概要 補足 (a)layout-sw600dp 縦横ともに600dp以上 画面方向に非依存 (b)layout-w720dp 横が720dp以上 画面方向に依存 (c)layout-h480dp 縦が480dp以上 画面方向に依存 ○Developerサイトで推奨されている。 × 3.2以降でしか利用できない。 ※画面方向によって、dpが変わるケースがあるので 注意(GN:縦長360x592(dp)、横長598x360(dp)) 23
24.
UI-実現方式③
①・②の併用方式 •layout/main.xml←以下2ヶ以外の場合 •layout-sw600dp/main.xml←3.2以降タブレット •layout-xlarge/main.xml←主に3.0/3.1タブレット ○1.6以降であれば利用可能。 ○ 前述方式より精度を向上可能。v11等併用もあり。 △ 同じレイアウトの場合も、同じファイルを複数配置。 △ Javaソース側のロジックも複雑に。 24
25.
UI-実現方式④ 方式③ベースでLayout Aliases活用
<resources> <item name="main_layout" type="layout"> @layout/main_onepane</item> <bool name="has_two_panes">false</bool> </resources> ○ 1pane、2paneなどレイアウトを 必要なパターン数のみ準備 25
26.
UI-実現方式④
方式③ベースでLayout Aliases活用 ■values-xxxフォルダに格納するファイル <resources> <item name="main_layout" type="layout"> @layout/main_onepane</item> <bool name="has_two_panes">false</bool> </resources> ■Java側でのマルチPane判定 ○ 判定ロジックはシンプル ○ Resources res = getResources(); boolean hasTwoPanes = res.getBoolean(R.bool.has_two_panes); 26
27.
API(Fragment) Support
Packageにより2.xでも利用可能 2.x 3.x 4.x Support Packageなし ○ ○ Support Packageあり ○ ○ ○ •Fragmentベースの実装をしておくことで、再利用性の向上。 •Support Packageの利用有無により実装が変わるので注意。 •変更例1)android.app.Fragment->android.support.v4.Fragment •変更例2)Activity->FragmentActivity •など幾つかの変更が必要。 27
28.
API(OptionMenu/ActionBar) AndroidManifestの内容で振る舞い変化
2.x 3.x minSdk=なし&targetSdk=なし ○ (NG1) minSdk=8&targetSdk=8 ○ △(NG2) minSdk=8&targetSdk=11 ○ ○ 8:Android2.2, 11:Android3.0 NG2 NG1 28
29.
API(OptionMenu/ActionBar) AndroidManifestの内容で振る舞い変化
2.x 4.x minSdk=なし&targetSdk=なし ○ (NG3) minSdk=8&targetSdk=8 ○ △(NG4) minSdk=8&targetSdk=11 ○ △/○ 8:Android2.2, 11:Android3.0 ハンドセットでの ActionBarを NG3 NG4 どう評価するか次第 29
30.
API(OptionMenu/ActionBar) AndroidManifestの内容で振る舞い変化
2.x 3.x 4.x minSdk=なし&targetSdk=なし ○ minSdk=8&targetSdk=8 ○ △ △ minSdk=8&targetSdk=11 ○ ○ △/○ 8:Android2.2, 11:Android3.0 4.x 2.x 3.x 30
31.
API(OptionMenu/ActionBar)
AndroidManifestの内容で振る舞い変化 2.x 3.x 4.x minSdk=なし&targetSdk=なし ○ minSdk=8&targetSdk=8 ○ △ △ minSdk=8&targetSdk=11 ○ ○ △/○ • JavaソースやXMLが一緒でもManifestで挙動変化 (上記はあくまで設定の1例(正解はCaseByCase))。 ➡オフィシャルBlogに、関連記事あり。 •ICSではSplit ActionBar(画面下部にActionBar表示)も 利用可能。採用可否を合わせて検討。 31
32.
API(OptionMenu/ActionBar)
OptionMenuとActionBarの共存 2.x 3.x 4.x OptionMenu ○ ○ ○ ActionBar ○ ○ •2.xでActionBar使えない(Support Packageでも) ➡ActionBarはあきらめてOptionMenuにする or 自前で実装する等(ActionBarCompatが参考に) •操作性の観点だと、個人的にはActionBarがおすすめ。 •AndroidManifest以外に、Styleによる影響もあり! 32
33.
その他のTips 1.wrap_content/fill_parent(match_parent) のみで画面を構成する。 ➡具体的なサイズを指定する場合は、dp、sp活用を。 2.(必要に応じて)画面解像度別の画像を準備する。 ➡Android側に制御を任せることも可能だが、拡大縮小 に伴い、表示が汚くなる場合がある。 3.Fragmentをうまく使う。 ➡色々な画面でFragmentを再利用できるようにする。 ➡ActivityとFragmentの結合度縮小。再利用性向上。 ➡Fragment→Fragment呼出し非推奨。コールバックIF。
33
34.
その他のTips 4.ディメンションを活用する。 ➡画面の大きさ別にパーツサイズを切り替えたい場合 •values/dimens.xml←以下2ヶ以外の場合
•values-sw600dp/dimens.xml←3.2以降タブレット •values-xlarge/dimens.xml←主に3.0/3.1タブレット <resources> <dimen name="label_width">160dip</dimen> <dimen name="label_height">32dip</dimen> </resources> 5.1apk or マルチapkの方針を判断する。 ➡開発や保守工数に影響があるため、要検討。 34
35.
参考文献
Android公式Developer向けサイト •Supporting Tablets and Handsets http://developer.android.com/guide/practices/tablets-and-handsets.html •Supporting Multiple Screens http://developer.android.com/guide/practices/screens_support.html •Supporting Different Screen Sizes http://developer.android.com/training/multiscreen/screensizes.html 35
36.
おわりに ご清聴ありがとうございました。
36
Editor's Notes
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n