SlideShare a Scribd company logo
Android Makers
1
Talks
● Offline UX
● Window
● Pull Requests
● Styles and Themes
● Puzzlers
● Navigation Component
● Koin
● UI Tests with Kotlin DSL
2
Offline UX
11
3
Offline UX
11
4
● Offline by default
● Online is the icing on the cake
Window
12
5
Window
12
6
Debug layout on device
View Zeplin-like measures
Pull Requests
13
7
Pull Requests
13
8
● Draft
● Template
Styles and themes
14
9
Styles and themes
14
View
Style
Default style
Theme
Text Appearance
10
Puzzlers
15
11
Lifecycle
15
12
Et si, dans le onCreate, on fait un finish() ?
Fragments lifecycle
15
13
Fragments lifecycle
Locale resolution
15
14
Default is always english
Locale resolution
Navigation Component
16
15
Navigation component
16
16
● Navigation Graph
● Pass data during navigation
● Manage animations
● Manage deeplinking
● Manage back-stack
Koin
17
17
Koin
17
18
simple DSL : module, single, factory, get
Modules declaration
utilisation: KoinComponent, get, inject
Koin class
UI Tests
Kotlin DSL
18
19
UI Tests with kotlin DSL
18
20
@RunWith(AndroidJUnit4::class)
class PaymentScreenTest {
@JvmField @Rule val runner =
ActivityTestRule<PaymentActivity>(
PaymentActivity::class.java, true, false
)
@Test fun test() {
// setup
stubFor(get(…)).willReturn(
aResponse()
.withStatus(200)
.withHeader("Content-Type", "application/json")
.withBody(…)
)
val activity = runner.launchActivity(
PaymentScreenFactory(appContext).makeLaunchIntent()
)
val list = activity.findViewById(R.id.breakdown)
IdlingRegistry.getInstance()
.register(RecyclerViewScrollingIdlingResource(list))
// run
onView(R.id.pay_now_button).click()
// verify
val container = isDescendantOfA(withId(R.id.confirmation))
onView(allOf(container, withId(R.id.destination)))
.check(matches(withText("Paris")))
val price = appResources.getString(R.string.price_format,
50.7)
onView(allOf(container, withId(R.id.total_price)))
.check(matches(withText(price)))
}
}
class PaymentScreenTest {
@Test fun test() = gwen {
given {
server stubs { get(…) with json(…) }
user launches { paymentScreen() }
}
whenever {
user selects { payNow() }
}
then {
user sees {
confirmation {
destination = "Paris"
totalPrice = 50.7
}
}
}
}
}
APPSTUD
Questions
21

More Related Content

ODP
Up Up and Above HTML 5
PDF
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
PPTX
Typescript language
PDF
Mobile Controls for IBM Lotus Domino XPages on OpenNTF
PDF
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
PDF
Leveraging Android's Linux Heritage at ELC-E 2011
PDF
Leveraging Android's Linux Heritage at Android Open 2011
PDF
Leveraging Android's Linux Heritage
Up Up and Above HTML 5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
Typescript language
Mobile Controls for IBM Lotus Domino XPages on OpenNTF
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at Android Open 2011
Leveraging Android's Linux Heritage

Similar to Android makers (20)

PDF
Necessitas - Qt on Android - from FSCONS 2011
PDF
Javantura v4 - Android App Development in 2017 - Matej Vidaković
PDF
Introduction to React Native
PDF
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
PDF
SFD 2014: Multiplatform App Development with Migeran
PDF
Android Hacks, Variants, Tricks and Resources ESC SV 2012
PDF
Blender presentation at SIGGRAPH 2013
PDF
Mobile development - MELI apps
PDF
Clean architecture: Android
PDF
DocDokuPLM presentation - OW2Con 2015 Community Award winner
PDF
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
PPTX
Engineering Frontends
PDF
Leveraging Android's Linux Heritage at AnDevCon3
PDF
Android app to the challenge
PPTX
Developing Hybrid Applications with IONIC
PDF
Griffon for the Enterprise
PDF
Cincom Smalltalk Update
PDF
The Chromium/Wayland project (Web Engines Hackfest 2017)
PPTX
Making Cross-Platform apps with Xamarin
PDF
BeagleBoard Workshop ESC Boston 2011
Necessitas - Qt on Android - from FSCONS 2011
Javantura v4 - Android App Development in 2017 - Matej Vidaković
Introduction to React Native
Montreal.rb 2022-10-05 - Glimmer DSL for SWT - Ruby Desktop Development GUI ...
SFD 2014: Multiplatform App Development with Migeran
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Blender presentation at SIGGRAPH 2013
Mobile development - MELI apps
Clean architecture: Android
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
Engineering Frontends
Leveraging Android's Linux Heritage at AnDevCon3
Android app to the challenge
Developing Hybrid Applications with IONIC
Griffon for the Enterprise
Cincom Smalltalk Update
The Chromium/Wayland project (Web Engines Hackfest 2017)
Making Cross-Platform apps with Xamarin
BeagleBoard Workshop ESC Boston 2011
Ad

More from Appstud (20)

PDF
Appstalk techniques photos
PDF
Internet Of Things
PDF
KaRma Sutra
PPTX
Applications of Artificial Intelligence
PDF
Quand les croyances impactent notre bonheur
PPTX
La collapsologie : l’effondrement de la civilisation thermo-industrielle
PDF
Apple WorldWide Developers Conference 2019
PPTX
L'utilisation du digital par l'agent de Police Municipale
PDF
Notre cerveau entre rêve et réalité
PDF
Presentation gamification
PDF
Infographie appstud.png
PPTX
Tests et KPI(s) - quoi, pourquoi, comment ?
PPTX
Go programming language
PPTX
Idées VS échecs
PPTX
Blockchain
PDF
Présentation Flutter
PPTX
La programmation neuro-linguistique
PPTX
Le futur de l'acquisition sur mobile
PDF
Intelligence Artificielle - La technique et l'éthique
PDF
API Web Moderne avec GRPC
Appstalk techniques photos
Internet Of Things
KaRma Sutra
Applications of Artificial Intelligence
Quand les croyances impactent notre bonheur
La collapsologie : l’effondrement de la civilisation thermo-industrielle
Apple WorldWide Developers Conference 2019
L'utilisation du digital par l'agent de Police Municipale
Notre cerveau entre rêve et réalité
Presentation gamification
Infographie appstud.png
Tests et KPI(s) - quoi, pourquoi, comment ?
Go programming language
Idées VS échecs
Blockchain
Présentation Flutter
La programmation neuro-linguistique
Le futur de l'acquisition sur mobile
Intelligence Artificielle - La technique et l'éthique
API Web Moderne avec GRPC
Ad

Android makers