SlideShare uma empresa Scribd logo
1 de 59
Multi-Versioning Android Apps
Droidcon Paris 2013
Kenichi Kambara (@korodroid)
June 18, 2013
l Kenichi Kambara (Twitter @korodroid)
l iplatform.org(http://www.iplatform.org/) (Personal)
l NTT Software Corporation (Official)
2
l Activity(iplatform.org as Personal)    
9 10
Who am I?
- My Android Apps on Google Play (20+ Apps)
l Activity(NTT Software as Official)    
- Technical Support for Developing
3
l Kenichi Kambara (Twitter @korodroid)
l iplatform.org(http://www.iplatform.org/) (Personal)
l NTT Software Corporation (Official)
Who am I?
l Activity(iplatform.org as Personal)    
9 10
“Sekai Phone”
lGoogle Developer Day 2011 Tokyo Keynote Demo
lMulti Screen UX Competition 2013 Excellence Awards
lMobile World Congress 2013 Exhibition
4
l Kenichi Kambara (Twitter @korodroid)
l iplatform.org(http://www.iplatform.org/) (Personal)
l NTT Software Corporation (Official)
Who am I?
l Activity(iplatform.org as Personal)    
New Sekai Phone
Available Today!!!
*Special Thanks: Kenichi Takahashi
lImproved UI / UX
lImproved Usability
lMultiVersions & Devices
5
Agenda
•Introduction (+ Sekai Phone)
•Background
•Application Development Tips
Q. How to support Multiple Screens?
Q. How to support Multiple Versions?
6
2.x 3.x 4.x
My session topics
Some tips on developing Apps
for multi versions and multi devices.
Handsets Tablets
7
Introduction
(Sekai Phone)
8
What is “Sekai Phone”?
Chinese
Japanese
French
Italian
○
English German
○ ○
○
○
Real time translation phone services
(Supports Android 2.x/3.x/4.x & multi devices)
Publish Date: Jan, 2010, over 20+ ver.up
9
Use Case (1)
Phone mode
(Auto translating to receiver’s native language)
French Japanese
9
Use Case (1)
Phone mode
(Auto translating to receiver’s native language)
Bonjour!
French Japanese
9
Use Case (1)
Phone mode
(Auto translating to receiver’s native language)
Konnichiwa!Bonjour!
French Japanese
9
Use Case (1)
Phone mode
(Auto translating to receiver’s native language)
Konnichiwa!
Arigatou!
Bonjour!
French Japanese
9
Use Case (1)
Phone mode
(Auto translating to receiver’s native language)
Konnichiwa!
Merci! Arigatou!
Bonjour!
French Japanese
10
App Demos (1.Phone mode)
N/A
11
FrenchEnglish
Use Case (2)
Talk mode
(Auto translating on the spot)
12
App Demos (2.Talk mode)
13
App Screenshots on Android 2.x/3.x/4.x
2.x
3.x
4.x
Handsets Tablets
14
Background
15
Current Android Devices
2.x
3.x
4.x
Handsets
(Almost all)
Tablets
(All)
Handsets
& Tablets
16
PlatformVersions?
This data by Google on Feb 1, 2013
17
PlatformVersions?
In my App:
Main Target: Android 2.2+ (2.2,2.3,3.x,4.x)
This data by Google on June 3, 2013
ICS
JB
Eclair
Froyo
Gingerbread
Honeycomb
18
Screen Sizes & Densities?
This data by Google on June 3, 2013
Normal
Small
Xlarge
Large
hdpi
xhdpi
ldpi
mdpi
xxhdpi
tvdpi
19
Screen Sizes & Densities?
In my App:
My Target: (normal,large,xlarge)x(mdpi,hdpi,xhdpi,xxhdpi)
This data by Google on June 3, 2013
20
Application Development Tips
21
l How to support Multiple Screens
Support multi versions and multi devices?
1.Designing User Interface
2.Using APIs
l How to support Multiple Versions
22
1. Designing User Interface
[Some Approaches]
Handsets Tablet (‘’7) Tablet (‘’10)
23
[UI]1st Approach
Using layout-small/normal/large/xlarge
l Supports Android 1.6+
l Some Problem
Screen Size
Classification
24
[UI]Introduction of 2nd Approach
Remarking “dp(Density-Independent pixel)”
Handsets
Typically, Width & Height ≥ 600dp
Tablet (‘’7)
25
[UI]Introduction of 2nd Approach
Using “dp(Density-Independent pixel)”
Handsets Tablet (‘’7)
Typically, Width & Height ≥ 600dp
layout/
main.xml
layout-sw600dp/
main.xml
26
[UI]2nd Approach
Using sw<N>dp,w<N>dp,h<N>dp
l Recommended by Google
l Supports only Android 3.2+
layout/
main.xml
Handsets Tablet (‘’7) Tablet (‘’10)
layout-sw600dp/
main.xml
layout-sw720dp/
main.xml
27
[UI]3rd Approach
Combination of 1st and 2nd
l Supports Android 1.6
l Supports many devices (compared to 1st or 2nd)
l Any Problem?
l res/layout-sw600dp/main.xml <- 3.2+ tablets
l res/layout-xlarge/main.xml <- 3.0/3.1 tablets
l res/layout/main.xml <- The others (Handsets)
28
[UI]3rd Approach
It looks good but…
l res/layout-sw600dp/main.xml <- 3.2+ tablets
l res/layout-xlarge/main.xml <- 3.0/3.1 tablets
l res/layout/main.xml <- The others (Handsets)
• Needs to put the same file for tablets.
(Maintenance headache…)
29
[UI]3rd Approach
It looks good but…
if ([Size is xlarge] or [width & height is at least 600dp])
// codes for tablets
}else{
// codes for others
}
• Complicated Java codes
(Development is complicated…)
30
The better Approach
31
[UI]4th Approach
Based on 3rd , plus some tips
l main_1pane.xml <- Handsets
l main_2panes.xml <- Tablets
layout
Put minimum requirement
layout files
32
[UI]4th Approach
l main_1pane.xml
l main_2panes.xml
layout
l layout_main.xml
values
l layout_main.xml
values-sw600dp
l layout_main.xml
values-xlarge
// for Tablets
<resources>
<item name "main_layout" type="layout">
@layout/main_2panes
</item>
<bool name="has2panes">
true
</bool>
</resources>
33
[UI]4th Approach
// for Tablets
<resources>
<item name "main_layout" type="layout">
@layout/main_2panes
</item>
<bool name="has2panes">
true
</bool>
</resources>
boolean hasTwoPanes =getResources().
getBoolean(R.bool.has2panes);
if (hasTwoPanes)
…
• Simple Java codes
34
Another Approach
35
[UI]Flexible Layout
• Same Layout
for Handsets & Tablets
Handsets Tablets
No-Using Fragment
36
Additional Tips
<resources>
<dimen name="titleSize">24sp</dimen>
</resources>
<resources>
<dimen name="titleSize">12sp</dimen>
</resources>
37
[UI]Customize font size for different screen
• Applying appropriate font size
Handsets Tablet (‘’7)
Hello
Hello
android:textSize=”@dimen/titleSize”
Layout XML
values/
dimens.xml
values-sw600dp/
dimens.xml
38
2.Using APIs?
[Some Points]
Android
2.x
Android
3.x
Android
4.x
39
[API]Fragment
2.x 3.x 4.x
Without
Support Library
With
Support Library
Using Support Library?
40
[API]Fragment
Comparing Using with No-Using
With
Support Library
Without
Support Library
Class
•android.support.v4.Fragment
•android.support.v4.FragmentActivity
…
•android.app.Fragment
•android.app.Activity
…
Method
•getSupportFragmentManager()
(FragmentActivity)
…
•getFragmentManager()
(Activity)
…
41
[API]Options Menu vs Action Bar
Action Bar is good…
2.x 3.x 4.x
Options Menu
Action Bar
2.x 3.x
4.x
42
[API]Supporting Daydream
Daydream is attractive, but 4.2 API
Your App
• 4.2+ devices can run Daydream
Older devices can run normally
except Daydream
XXClass
extends
DreamService
Android
Manifest.xml
add
modify
43
[API]Multi-Versioning
Development?, Management?, APK Size?
Single APK Multiple APK
In my App:
Developed by Single APK
2.x
3.x
4.x
2.x
3.x
4.x
44
[API]Multi-Versioning
How to use the newest API on Single APK
Well known approachReflection
One of design patterns
•SuppressLint("NewApi")
•@TargetApi(n)
Configuring Lint
Lazy Loading
45
[API]Multi-Versioning
Code Examples of “Configuring Lint”
	 @SuppressLint("NewApi")
	 private void setActionBarStyle() {
	 	 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
	 	 	 ActionBar actionBar = this.getActionBar();
	 	 actionBar.setDisplayHomeAsUpEnabled(true);
	 	 }else{
	 	 	 ...
	 	 }
	 }
	 @TargetApi(11)
	 private void setActionBarStyle() {
	 	 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
	 	 	 ActionBar actionBar = this.getActionBar();
	 	 actionBar.setDisplayHomeAsUpEnabled(true);
	 	 }else{
	 	 	 ...
	 	 }
	 }
Almost Compatible
46
[API]Multi-Versioning
Code Examples of “Lazy loading”
public	
 abstract	
 class	
 NotificationUtilAbstract	
 {
	
 	
 public	
 static	
 NotificationUtilAbstract	
 newInstance()	
 {
	
 	
 	
 	
 NotificationUtilAbstract	
 instance	
 =	
 null;
	
 	
 	
 if	
 (Integer.parseInt(Build.VERSION.SDK)>=	
 16)	
 {
	
 	
 	
 	
 	
 	
 instance	
 =	
 new	
 NotificationUtilJB();
	
 	
 	
 }	
 else	
 {
	
 	
 	
 	
 	
 	
 instance	
 =	
 new	
 NotificationUtilDefault();
	
 	
 	
 }
	
 	
 	
 return	
 instance;
	
 	
 	
 }
	
 	
 	
 public	
 abstract	
 void	
 showCaller;
}
1st step
47
[API]Multi-Versioning
public	
 class	
 NotificationUtilJB
extends	
 NotificationUtilAbstract{
@Override
public	
 void	
 showCaller(){
	
 	
 	
 	
 	
 	
 //	
 Code	
 by	
 Jelly	
 Bean	
 (API	
 16)
	
 	
 	
 }
}
public	
 class	
 NotificationUtilDefault
extends	
 NotificationUtilAbstract{
@Override
public	
 void	
 showCaller(){
	
 	
 	
 	
 	
 	
 //	
 Code	
 by	
 Old	
 API
	
 	
 	
 }
}
Compatible
2nd step
48
[API]Multi-Versioning
How to use the newest API on Single APK
Well known approachReflection
In my App:
Compatibility with Lazy loading & Configuring Lint
One of design patterns
•SuppressLint("NewApi")
•@TargetApi(11)
Configuring Lint
Lazy Loading
49
Appendix
1. Use “wrap_content”/“match_parent”,”sp”/”dp”
 
2. Supply alternative drawables / Use 9-patch
3. Using or No-Using Fragment
4. Use “Dimension (dimens.xml)”
5. Consider either “1 apk” or “multiple apk”
50
References
•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
Android Developers Site
Thank you!
•Facebook:http://fb.com/kanbara.kenichi
•Google+:+Kenichi Kambara
•LinkedIn:http://www.linkedin.com/in/korodroid
•Twitter:@korodroid
52
Appendix.
Android Fundamentals
53
Activity?
Handset Tablet
Activity A Activity B Activity A
54
Fragment?
Handset Tablet
Activity A Activity B Activity A
FragmentYFragment X Fragment X FragmentY
55
Menu?
Options Menu
(2.x)
Action Bar
(3.0+)
Old Sekai Phone Screenshots

Mais conteúdo relacionado

Destaque

O que são documentos históricos
O que são documentos históricosO que são documentos históricos
O que são documentos históricosAndréia Rodrigues
 
Marketing e Gestão Hoteleira
Marketing e Gestão HoteleiraMarketing e Gestão Hoteleira
Marketing e Gestão Hoteleirath2
 
El Concepto Lean Aplicado a La Logistica
El Concepto Lean Aplicado a La LogisticaEl Concepto Lean Aplicado a La Logistica
El Concepto Lean Aplicado a La LogisticaExpoLosAndesLogistica
 
Cómo sacar el máximo provecho de tu proveedor de hosting
 Cómo sacar el máximo provecho de tu proveedor de hosting Cómo sacar el máximo provecho de tu proveedor de hosting
Cómo sacar el máximo provecho de tu proveedor de hostingJose Ramón Padrón García
 
Podcast Presentation for WordCamp.
Podcast Presentation for WordCamp.Podcast Presentation for WordCamp.
Podcast Presentation for WordCamp.Gary Leland
 
The Woo Whisperer - Eternal Sunshine of the Spotless E-commerce Store
The Woo Whisperer - Eternal Sunshine of the Spotless E-commerce StoreThe Woo Whisperer - Eternal Sunshine of the Spotless E-commerce Store
The Woo Whisperer - Eternal Sunshine of the Spotless E-commerce StoreNiklas Högefjord
 
Working with WordPress as a Team
Working with WordPress as a TeamWorking with WordPress as a Team
Working with WordPress as a TeamNatanael Sinisalo
 
BEGIS präsentiert EDIB®
BEGIS präsentiert EDIB®BEGIS präsentiert EDIB®
BEGIS präsentiert EDIB®Thomas Eggert
 

Destaque (8)

O que são documentos históricos
O que são documentos históricosO que são documentos históricos
O que são documentos históricos
 
Marketing e Gestão Hoteleira
Marketing e Gestão HoteleiraMarketing e Gestão Hoteleira
Marketing e Gestão Hoteleira
 
El Concepto Lean Aplicado a La Logistica
El Concepto Lean Aplicado a La LogisticaEl Concepto Lean Aplicado a La Logistica
El Concepto Lean Aplicado a La Logistica
 
Cómo sacar el máximo provecho de tu proveedor de hosting
 Cómo sacar el máximo provecho de tu proveedor de hosting Cómo sacar el máximo provecho de tu proveedor de hosting
Cómo sacar el máximo provecho de tu proveedor de hosting
 
Podcast Presentation for WordCamp.
Podcast Presentation for WordCamp.Podcast Presentation for WordCamp.
Podcast Presentation for WordCamp.
 
The Woo Whisperer - Eternal Sunshine of the Spotless E-commerce Store
The Woo Whisperer - Eternal Sunshine of the Spotless E-commerce StoreThe Woo Whisperer - Eternal Sunshine of the Spotless E-commerce Store
The Woo Whisperer - Eternal Sunshine of the Spotless E-commerce Store
 
Working with WordPress as a Team
Working with WordPress as a TeamWorking with WordPress as a Team
Working with WordPress as a Team
 
BEGIS präsentiert EDIB®
BEGIS präsentiert EDIB®BEGIS präsentiert EDIB®
BEGIS präsentiert EDIB®
 

Semelhante a [Droidcon Paris 2013]Multi-Versioning Android Tips

A Noob’S Guide To Android Application Development
A Noob’S Guide To Android Application DevelopmentA Noob’S Guide To Android Application Development
A Noob’S Guide To Android Application DevelopmentZi Yong Chua
 
android_project
android_projectandroid_project
android_projectAdit Ghosh
 
Android task manager project presentation
Android task manager project presentationAndroid task manager project presentation
Android task manager project presentationAkhilesh Jaiswal
 
[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...BeMyApp
 
Programming objects with android
Programming objects with androidProgramming objects with android
Programming objects with androidfirenze-gtug
 
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live foreverPGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live foreverPGDay.Amsterdam
 
The Glass Class - Tutorial 3 - Android and GDK
The Glass Class - Tutorial 3 - Android and GDKThe Glass Class - Tutorial 3 - Android and GDK
The Glass Class - Tutorial 3 - Android and GDKGun Lee
 
Dori waldman android _course_2
Dori waldman android _course_2Dori waldman android _course_2
Dori waldman android _course_2Dori Waldman
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspectiveGunjan Kumar
 
From Legacy to Hexagonal (An Unexpected Android Journey)
From Legacy to Hexagonal (An Unexpected Android Journey)From Legacy to Hexagonal (An Unexpected Android Journey)
From Legacy to Hexagonal (An Unexpected Android Journey)Jose Manuel Pereira Garcia
 
Android best training-in-mumbai
Android best training-in-mumbaiAndroid best training-in-mumbai
Android best training-in-mumbaivibrantuser
 
Profiling Android Applications
Profiling Android ApplicationsProfiling Android Applications
Profiling Android Applicationshubx
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011sullis
 
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDKEric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDKGuardSquare
 
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...Droidcon Berlin
 

Semelhante a [Droidcon Paris 2013]Multi-Versioning Android Tips (20)

A Noob’S Guide To Android Application Development
A Noob’S Guide To Android Application DevelopmentA Noob’S Guide To Android Application Development
A Noob’S Guide To Android Application Development
 
android_project
android_projectandroid_project
android_project
 
Android
AndroidAndroid
Android
 
Android task manager project presentation
Android task manager project presentationAndroid task manager project presentation
Android task manager project presentation
 
[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...
 
Programming objects with android
Programming objects with androidProgramming objects with android
Programming objects with android
 
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live foreverPGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
 
The Glass Class - Tutorial 3 - Android and GDK
The Glass Class - Tutorial 3 - Android and GDKThe Glass Class - Tutorial 3 - Android and GDK
The Glass Class - Tutorial 3 - Android and GDK
 
Dori waldman android _course_2
Dori waldman android _course_2Dori waldman android _course_2
Dori waldman android _course_2
 
MOTOROLA XOOM Meet-up March 1st
MOTOROLA XOOM Meet-up March 1stMOTOROLA XOOM Meet-up March 1st
MOTOROLA XOOM Meet-up March 1st
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspective
 
From Legacy to Hexagonal (An Unexpected Android Journey)
From Legacy to Hexagonal (An Unexpected Android Journey)From Legacy to Hexagonal (An Unexpected Android Journey)
From Legacy to Hexagonal (An Unexpected Android Journey)
 
Android best training-in-mumbai
Android best training-in-mumbaiAndroid best training-in-mumbai
Android best training-in-mumbai
 
Profiling Android Applications
Profiling Android ApplicationsProfiling Android Applications
Profiling Android Applications
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
 
Android
AndroidAndroid
Android
 
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDKEric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
 
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
 
Android
AndroidAndroid
Android
 
How to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDKHow to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDK
 

Mais de Kenichi Kambara

Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)Kenichi Kambara
 
Hello Flutter”の次におさえたい Flutterのポイント その5
Hello Flutter”の次におさえたい Flutterのポイント その5Hello Flutter”の次におさえたい Flutterのポイント その5
Hello Flutter”の次におさえたい Flutterのポイント その5Kenichi Kambara
 
[ABC2018Spring]Flutterアプリ開発入門
[ABC2018Spring]Flutterアプリ開発入門[ABC2018Spring]Flutterアプリ開発入門
[ABC2018Spring]Flutterアプリ開発入門Kenichi Kambara
 
“Hello Flutter”の次におさえたい Flutterのポイント その4
“Hello Flutter”の次におさえたい Flutterのポイント その4“Hello Flutter”の次におさえたい Flutterのポイント その4
“Hello Flutter”の次におさえたい Flutterのポイント その4Kenichi Kambara
 
[Google I/O 2018 Highlights] Sandbox
[Google I/O 2018 Highlights] Sandbox[Google I/O 2018 Highlights] Sandbox
[Google I/O 2018 Highlights] SandboxKenichi Kambara
 
[Google I/O 2018 Highlights] Flutter / WearOS
[Google I/O 2018 Highlights] Flutter / WearOS[Google I/O 2018 Highlights] Flutter / WearOS
[Google I/O 2018 Highlights] Flutter / WearOSKenichi Kambara
 
"Hello Flutter"の次におさえたいFlutterのポイントその3
"Hello Flutter"の次におさえたいFlutterのポイントその3"Hello Flutter"の次におさえたいFlutterのポイントその3
"Hello Flutter"の次におさえたいFlutterのポイントその3Kenichi Kambara
 
Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2Kenichi Kambara
 
I/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物TipsI/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物TipsKenichi Kambara
 
Hello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイントHello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイントKenichi Kambara
 
Developing Android Apps for Google Assistant
Developing Android Apps for Google AssistantDeveloping Android Apps for Google Assistant
Developing Android Apps for Google AssistantKenichi Kambara
 
Google Assistant対応アプリ開発3つのポイント
Google Assistant対応アプリ開発3つのポイントGoogle Assistant対応アプリ開発3つのポイント
Google Assistant対応アプリ開発3つのポイントKenichi Kambara
 
10分で作るGoogle Assistant対応アプリ
10分で作るGoogle Assistant対応アプリ10分で作るGoogle Assistant対応アプリ
10分で作るGoogle Assistant対応アプリKenichi Kambara
 
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所Kenichi Kambara
 
Android O (Picture In Picture)入門+実装例
Android O (Picture In Picture)入門+実装例Android O (Picture In Picture)入門+実装例
Android O (Picture In Picture)入門+実装例Kenichi Kambara
 
AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例Kenichi Kambara
 
Publishing Android Wear 2.0 Apps
Publishing Android Wear 2.0 AppsPublishing Android Wear 2.0 Apps
Publishing Android Wear 2.0 AppsKenichi Kambara
 
Android Studio 2.3 New Features
Android Studio 2.3 New FeaturesAndroid Studio 2.3 New Features
Android Studio 2.3 New FeaturesKenichi Kambara
 
Android 7.0 Nougat マルチウィンドウ解説+α
Android 7.0 Nougat マルチウィンドウ解説+αAndroid 7.0 Nougat マルチウィンドウ解説+α
Android 7.0 Nougat マルチウィンドウ解説+αKenichi Kambara
 

Mais de Kenichi Kambara (20)

Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
 
Hello Flutter”の次におさえたい Flutterのポイント その5
Hello Flutter”の次におさえたい Flutterのポイント その5Hello Flutter”の次におさえたい Flutterのポイント その5
Hello Flutter”の次におさえたい Flutterのポイント その5
 
[ABC2018Spring]Flutterアプリ開発入門
[ABC2018Spring]Flutterアプリ開発入門[ABC2018Spring]Flutterアプリ開発入門
[ABC2018Spring]Flutterアプリ開発入門
 
“Hello Flutter”の次におさえたい Flutterのポイント その4
“Hello Flutter”の次におさえたい Flutterのポイント その4“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] Sandbox
[Google I/O 2018 Highlights] Sandbox
 
[Google I/O 2018 Highlights] Flutter / WearOS
[Google I/O 2018 Highlights] Flutter / WearOS[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のポイントその3
"Hello Flutter"の次におさえたいFlutterのポイントその3
 
Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2
 
I/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物TipsI/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物Tips
 
Hello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイントHello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイント
 
Developing Android Apps for Google Assistant
Developing Android Apps for Google AssistantDeveloping Android Apps for Google Assistant
Developing Android Apps for Google Assistant
 
Google Assistant対応アプリ開発3つのポイント
Google Assistant対応アプリ開発3つのポイントGoogle Assistant対応アプリ開発3つのポイント
Google Assistant対応アプリ開発3つのポイント
 
10分で作るGoogle Assistant対応アプリ
10分で作るGoogle Assistant対応アプリ10分で作るGoogle Assistant対応アプリ
10分で作るGoogle Assistant対応アプリ
 
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
 
Android O (Picture In Picture)入門+実装例
Android O (Picture In Picture)入門+実装例Android O (Picture In Picture)入門+実装例
Android O (Picture In Picture)入門+実装例
 
AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例
 
Android O (Beta) Topics
Android O (Beta) TopicsAndroid O (Beta) Topics
Android O (Beta) Topics
 
Publishing Android Wear 2.0 Apps
Publishing Android Wear 2.0 AppsPublishing Android Wear 2.0 Apps
Publishing Android Wear 2.0 Apps
 
Android Studio 2.3 New Features
Android Studio 2.3 New FeaturesAndroid Studio 2.3 New Features
Android Studio 2.3 New Features
 
Android 7.0 Nougat マルチウィンドウ解説+α
Android 7.0 Nougat マルチウィンドウ解説+αAndroid 7.0 Nougat マルチウィンドウ解説+α
Android 7.0 Nougat マルチウィンドウ解説+α
 

Último

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

[Droidcon Paris 2013]Multi-Versioning Android Tips