SlideShare a Scribd company logo
Developer survival
in a multi-screen world
Danny Preussler
Groupon
dpreussler@groupon.com @PreusslerBerlin
45 17Millions
downloads
Millions
active users
+
So you want to go multiscreen?
So you want to go multiscreen?
• Phone (already lots of screen sizes)
• Tablet
• TV
• Wearables
• Car
• eReader
• Netbooks
The multi-apks Zombie
•Product view: different apps
•Developer view: all the same
•Remember tablet apps?
That approach failed
Zombie pilot statue by Gage Skidmore, CC by 2.0; flickr.com/photos/gageskidmore/8800037473
One apk to rule them all!
OneRingtorulethemallbyidreamlikecrazy,flickr.com/photos/purple-lover/13583362554
The Library-Zombie
• Remember the jar-hell?
• Unneeded Overhead
• Versioning problem
• Prevents continuous
refactoring
Zombie statue by PROGage Skidmore, flickr.com/photos/gageskidmore/7283588922
App logic
Multi-Screen-World
• Just another entry point
TV
Phone
Tablet
Remember? The shiny new world of
Honeycomb
• Fragments to the rescue?
Remember? The shiny new world of
Honeycomb
• Left-detail complex to implement
• UX was bad
• multi columns discouraged since Material FAILED
Fragments still important
building block
Let‘s talk layouts
•Remember the buckets?
Small, medium, large
 Deprecated
since 2.3!
 It‘s the new
iOS way ;)
Fire Buckets by Steve Greer; flickr.com/photos/steviegreer/2919157836/
• Don‘t think sizes think sizes and resolutions!
• ..the amount of space your layout needs:
• Available screen width/height
• Smallest width
• TV not so different, has own bucket
combine them!
Dos and Don‘ts
DONT
•...Design for fix screens
•Do: Define space to grow and move
DONT
•...code it!
•DO: use dimen and integer xml files instead of
checking for orientation
public boolean isPortrait() {
return configuration.orientation ==
Configuration.ORIENTATION_PORTRAIT;
}
DONT
• Bye bye activity cast pattern
• Has tight coupling even for interfaces = bad
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
this.parent = (NiceInterface)activity;
}
DO
•Remember Android basics:
Every activity stands on it‘s own!
•DONT estimate outside states!
DO: Dependencies goes into one direction
https://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
DO: Dependencies goes into one direction
• clean architecture, dependencies in one direction
App logic
TV
Phone
Tablet
DONT
•...Have logic in your fragments or activities
•Extract!
•Build components!
DONT
•...create objects
•Inject!
DONT
•...repeat yourself
•Replace all findViewById,
setClicklistener..
with butterknife or similar!
DO:
@Inject(R.layout.about_fragment)
public class AboutFragment {
@Inject DeviceInfo deviceInfo;
@Inject Configuration configuration;
@Bind(R.id.about_text) TextView aboutView;
@OnClick(R.id.close)
public void onClose() {...
}
DONT
•... Keep states
•State = complexity
DO
•Each state a fragment even loading
DONT
• ...put code for specific screen sizes
in multiscreen Activity/fragment
• DO: keep it clean, Separation
DONT
• ...do something like:
TabletActivity extends PhoneActivity
• Tends to be flaky
• Extract base classes
TabletActivity extends BaseActivity
PhoneActivity extends BaseActivity
• BUT....
DONT
•...do base activities!
•Inheritence is tightest coupling possible
•Get‘s messy, lots of layers
•breaks for TV
•Remember Composition over Inheritence
DONT
• ...Hardcode navigation in activities and fragments
• DO: abstract it!
public class PromotionsTileFragment extends Fragment {
DashboardInteractor interactor;
...
public void onNextButton() {
interactor.moveToNextScreen();
}
}
DONT
• ...Write code like if(isTablet())
• Do: Try code-kata: program without if
• Do: Move to XML as much as possible
DO
• Inject dependencies
• Put the bad „if“ as early as possible:
@Provides
DashboardInteractor provideStatInteractor() {
if (isTabletLayout()) {
return new DashboardTabletInteractor();
} else {
return new DashboardPhoneInteractor();
}
}
public class PromotionsTileFragment extends Fragment {
@Inject DashboardInteractor interactor;
...
}
DO
• Move all device specific code into components or custom views
• Example: tablet specific toolbar setup code should go into a
TabletToolbar
• ALWAYS have one activities with
• different layouts
• single layout with differences in other xml values
• different injected components
• Careful: differnet styles need to break this rule, avoid!
DO
•Use for fragments
and activities
• Viewholder
= opposite of binding‘s
viewmodel
public class CardViewHolder {
@InjectView(R.id.card_border) View
borderView;
@InjectView(R.id.ok) ImageButton okButton;
view holder outside of lists
DONT
• ... Repeat yourself
• also valid for XML
Include/merge layouts
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
style="@style/Match">
<include layout="@layout/fullscreen_progress"/>
</RelativeLayout>
DONT
• ... Repeat yourself
• also valid for XML
Use styles
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
style="@style/Match">
<include layout="@layout/fullscreen_progress"/>
</RelativeLayout>
DONT
• ...Do only the common denominator
• Remember iOS vs android push notifications
Common denominator apps did not have quick
actions = really bad UX
DONT
• ...Do only the common denominator
• Use WearableExtender for example more quick
actions
DO
•ViewBinding
•Move UI logic to XML
DO
• DO: Develop against smaller sizes
• Use watch size in preview
• Use phone for tablet views
• Think squared
DO
• Try the new PercentageLayout,
it helps on multiscreen
DO
•Write unit tests!
Crossroads:SuccessorFailurebyChrisPotter;CCb2.0flickr.com/photos/86530412@N02/8226451812/
THANK YOU
Danny Preussler
@preusslerberlin
dpreussler@groupon.com

More Related Content

Viewers also liked

Multiscreen HTML5 and Responsive HTML55
Multiscreen HTML5 and Responsive HTML55Multiscreen HTML5 and Responsive HTML55
Multiscreen HTML5 and Responsive HTML55
WvanWeelden
 
Social Media: Fans and followers are an end, not a means
Social Media: Fans and followers are an end, not a meansSocial Media: Fans and followers are an end, not a means
Social Media: Fans and followers are an end, not a meansKantar
 
Responsive Design - Ideal Solution For Managing Search In A Multiscreen World
Responsive Design - Ideal Solution For Managing Search In A Multiscreen WorldResponsive Design - Ideal Solution For Managing Search In A Multiscreen World
Responsive Design - Ideal Solution For Managing Search In A Multiscreen World
Trighton Interactive, LLC
 
DigiPharm - Multiscreen Healthcare: Doctors, Pharma and Patients use of Mobile
DigiPharm - Multiscreen Healthcare: Doctors, Pharma and Patients use of Mobile DigiPharm - Multiscreen Healthcare: Doctors, Pharma and Patients use of Mobile
DigiPharm - Multiscreen Healthcare: Doctors, Pharma and Patients use of Mobile
Sam Walmsley
 
15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)
15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)
15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)
Danny Preussler
 

Viewers also liked (6)

Multiscreen HTML5 and Responsive HTML55
Multiscreen HTML5 and Responsive HTML55Multiscreen HTML5 and Responsive HTML55
Multiscreen HTML5 and Responsive HTML55
 
Social Media: Fans and followers are an end, not a means
Social Media: Fans and followers are an end, not a meansSocial Media: Fans and followers are an end, not a means
Social Media: Fans and followers are an end, not a means
 
Responsive Design - Ideal Solution For Managing Search In A Multiscreen World
Responsive Design - Ideal Solution For Managing Search In A Multiscreen WorldResponsive Design - Ideal Solution For Managing Search In A Multiscreen World
Responsive Design - Ideal Solution For Managing Search In A Multiscreen World
 
DigiPharm - Multiscreen Healthcare: Doctors, Pharma and Patients use of Mobile
DigiPharm - Multiscreen Healthcare: Doctors, Pharma and Patients use of Mobile DigiPharm - Multiscreen Healthcare: Doctors, Pharma and Patients use of Mobile
DigiPharm - Multiscreen Healthcare: Doctors, Pharma and Patients use of Mobile
 
15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)
15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)
15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)
 
Efficient Android Threading
Efficient Android ThreadingEfficient Android Threading
Efficient Android Threading
 

Similar to (Android) Developer Survival in Multiscreen World, MobCon Sofia 2016

Angular 2 and NativeScript
Angular 2 and NativeScriptAngular 2 and NativeScript
Angular 2 and NativeScript
Jen Looper
 
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
DevClub_lv
 
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be Lazy
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be LazyInfinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be Lazy
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be Lazy
Infinum
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev tools
Shaka Huang
 
Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013
Diego Freniche Brito
 
The Gist of React Native
The Gist of React NativeThe Gist of React Native
The Gist of React Native
Darren Cruse
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014
Jason Kneen
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Bala Subra
 
Mixed reality for Windows 10
Mixed reality for Windows 10Mixed reality for Windows 10
Mixed reality for Windows 10
Jiri Danihelka
 
IOS Storyboards
IOS StoryboardsIOS Storyboards
IOS Storyboards
Muhammad Nabeel Arif
 
Debot android debugging library
Debot android debugging libraryDebot android debugging library
Debot android debugging library
Tomoaki Imai
 
How to make a game app.pptx
How to make a game app.pptxHow to make a game app.pptx
How to make a game app.pptx
DeveloperStudentClub9
 
Ignite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and FirebaseIgnite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and Firebase
Jen Looper
 
Android design patterns
Android design patternsAndroid design patterns
Android design patterns
Platty Soft
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Getting started with Verold and Three.js
Getting started with Verold and Three.jsGetting started with Verold and Three.js
Getting started with Verold and Three.jsVerold
 
Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?
Chris Saez
 
OOP, API Design and MVP
OOP, API Design and MVPOOP, API Design and MVP
OOP, API Design and MVP
Harshith Keni
 

Similar to (Android) Developer Survival in Multiscreen World, MobCon Sofia 2016 (20)

Soc research
Soc researchSoc research
Soc research
 
Angular 2 and NativeScript
Angular 2 and NativeScriptAngular 2 and NativeScript
Angular 2 and NativeScript
 
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
 
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be Lazy
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be LazyInfinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be Lazy
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be Lazy
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev tools
 
Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013
 
The Gist of React Native
The Gist of React NativeThe Gist of React Native
The Gist of React Native
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
 
Mixed reality for Windows 10
Mixed reality for Windows 10Mixed reality for Windows 10
Mixed reality for Windows 10
 
IOS Storyboards
IOS StoryboardsIOS Storyboards
IOS Storyboards
 
Debot android debugging library
Debot android debugging libraryDebot android debugging library
Debot android debugging library
 
How to make a game app.pptx
How to make a game app.pptxHow to make a game app.pptx
How to make a game app.pptx
 
Ignite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and FirebaseIgnite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and Firebase
 
Android design patterns
Android design patternsAndroid design patterns
Android design patterns
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Getting started with Verold and Three.js
Getting started with Verold and Three.jsGetting started with Verold and Three.js
Getting started with Verold and Three.js
 
Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?
 
OOP, API Design and MVP
OOP, API Design and MVPOOP, API Design and MVP
OOP, API Design and MVP
 

More from Danny Preussler

We aint got no time - Droidcon Nairobi
We aint got no time - Droidcon NairobiWe aint got no time - Droidcon Nairobi
We aint got no time - Droidcon Nairobi
Danny Preussler
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
Danny Preussler
 
TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)
Danny Preussler
 
TDD on Android (Øredev 2018)
TDD on Android (Øredev 2018)TDD on Android (Øredev 2018)
TDD on Android (Øredev 2018)
Danny Preussler
 
Junit5: the next gen of testing, don't stay behind
Junit5: the next gen of testing, don't stay behindJunit5: the next gen of testing, don't stay behind
Junit5: the next gen of testing, don't stay behind
Danny Preussler
 
Demystifying dependency Injection: Dagger and Toothpick
Demystifying dependency Injection: Dagger and ToothpickDemystifying dependency Injection: Dagger and Toothpick
Demystifying dependency Injection: Dagger and Toothpick
Danny Preussler
 
Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016
Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016
Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016
Danny Preussler
 
Unit testing without Robolectric, Droidcon Berlin 2016
Unit testing without Robolectric, Droidcon Berlin 2016Unit testing without Robolectric, Droidcon Berlin 2016
Unit testing without Robolectric, Droidcon Berlin 2016
Danny Preussler
 
Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)
Danny Preussler
 
Clean code on Android (Droidcon Dubai 2015)
Clean code on Android (Droidcon Dubai 2015)Clean code on Android (Droidcon Dubai 2015)
Clean code on Android (Droidcon Dubai 2015)
Danny Preussler
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzles
Danny Preussler
 
Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)
Danny Preussler
 

More from Danny Preussler (12)

We aint got no time - Droidcon Nairobi
We aint got no time - Droidcon NairobiWe aint got no time - Droidcon Nairobi
We aint got no time - Droidcon Nairobi
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
 
TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)TDD on android. Why and How? (Coding Serbia 2019)
TDD on android. Why and How? (Coding Serbia 2019)
 
TDD on Android (Øredev 2018)
TDD on Android (Øredev 2018)TDD on Android (Øredev 2018)
TDD on Android (Øredev 2018)
 
Junit5: the next gen of testing, don't stay behind
Junit5: the next gen of testing, don't stay behindJunit5: the next gen of testing, don't stay behind
Junit5: the next gen of testing, don't stay behind
 
Demystifying dependency Injection: Dagger and Toothpick
Demystifying dependency Injection: Dagger and ToothpickDemystifying dependency Injection: Dagger and Toothpick
Demystifying dependency Injection: Dagger and Toothpick
 
Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016
Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016
Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016
 
Unit testing without Robolectric, Droidcon Berlin 2016
Unit testing without Robolectric, Droidcon Berlin 2016Unit testing without Robolectric, Droidcon Berlin 2016
Unit testing without Robolectric, Droidcon Berlin 2016
 
Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)
 
Clean code on Android (Droidcon Dubai 2015)
Clean code on Android (Droidcon Dubai 2015)Clean code on Android (Droidcon Dubai 2015)
Clean code on Android (Droidcon Dubai 2015)
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzles
 
Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)
 

Recently uploaded

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 

(Android) Developer Survival in Multiscreen World, MobCon Sofia 2016

Editor's Notes

  1. We know mobile I I work for merchant facing tools
  2. I am user of all those, IamWatch, GoogleTV, Google Glass Api/platform advocates tell you where Designers tell you how look like YOU have to implement
  3. Smart homes
  4. Copy & paste kills! Give your users one source of truth
  5. Give your users one source of truth
  6. Keep in mind for architecture
  7. Lets go back to first idea of „multiscreen“
  8. Lets check teh UI approach first
  9. How many did android in gingerbread? How many are using this? first days said xlarge is tablet
  10. Smallest Width (does not change on rotation), All about layout folders
  11. One direction to grow at least! Collapse iOS uis
  12. Ist not only about layouts, its all your values
  13. Will not work on long fragment chains example of fragment stack
  14. Works well with the entry point philosophy
  15. Keep even for rx!
  16. How can that be achieved...
  17. Tablet should not have phone code
  18. WearableActivity LeanBackActivity
  19. No startactivity, no fragment transaction
  20. ALWAYS have one activity and then different layouts with different fragments/views ONLY excuse would be a flow activity only used on one OR different styles, which should be avoided
  21. Can then be reused even on different Activities/Fragments Encapsulates views, decouples views from fragments
  22. Crossroads: Success or Failure by Chris Potter; CC b 2.0 flickr.com/photos/86530412@N02/8226451812/