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

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Último (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

[Droidcon Paris 2013]Multi-Versioning Android Tips