Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Android Dev Summit 2018
Search
Zhanibek Marshal
November 30, 2018
Programming
54
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Android Dev Summit 2018
Review of Android Dev Summit 2018, which held on 7-8 November.
Zhanibek Marshal
November 30, 2018
More Decks by Zhanibek Marshal
See All by Zhanibek Marshal
Maestro: Reliable E2E testing made easy
johnmars
0
11
Maestro - UI testing framework
johnmars
1
360
Design System Driven Android Development: A Guide to Automation Tools
johnmars
1
160
Jetpack Compose Navigation
johnmars
1
170
Как в 21 году стать Android разработчиком
johnmars
0
110
По чесноку о бизнесе или зачем нам нужен domain layer
johnmars
0
150
Google I/O 19 - Extended at Kolesa Group
johnmars
0
74
Улучшаем жизнь Android разработчика с Kotlin Coroutines и ViewModel
johnmars
1
190
Новый уровень модульной разработки - Mon Repo
johnmars
0
57
Other Decks in Programming
See All in Programming
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
2
660
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
220
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
190
AIで効率化できた業務・日常
ochtum
0
120
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
120
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
880
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
690
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
150
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
320
YesSQL, Process and Tooling at Scale
rocio
174
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
Ruling the World: When Life Gets Gamed
codingconduct
0
250
Paper Plane
katiecoart
PRO
1
51k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
580
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
Building Applications with DynamoDB
mza
96
7.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
New Earth Scene 8
popppiees
3
2.3k
Transcript
Android Dev Summit Janibek Marshal 7-8 November 2018
Istanbul → New York → San Francisco
42 hours of flight. 8 sessions + 1 mini talk.
Over 1000 Android Developers.
Keynote History and Future of Android Development
Celebrating 10 years of Android
Get your app ready for foldable phones
To Machine Learning First Shifting from Mobile First
Smartphones are getting Smarter with ML
Android is Everywhere
Safety and Wellbeing
Android Developer Experience Architect Code Reach
Security
None
80% of top 1,000 apps use new Android Jetpack libraries
*we also
Android Slices
Jetpack: Navigation
Build Speed What’s affecting build speed overall: • Expanding code
bases • Custom plug-ins • Annotation processors • New languages • Number of modules
USB 3 enhances deployment Especially on Android P
Chromebook With Android Studio
Android App Bundle • Reducing size of application • Have
to store release key on Google Play • Enables new cool features Kolesa 45.7%
None
None
Dynamic Feature Module • Install and Uninstall features on demand
• Defer install in the background BASE Kaspi Shop Retush etc
Application updates
Application updates
Instant App Is deprecated Replaced by Google Play Instant
Google Play Instant • Limit raised to 10MB • URL
is optional • Supported automatically with Android App Bundle
Responsible for: 1. Installing modules on demand 2. Managing modules
Single Activity
What’s Activity? How the Android Framework starts your UI and
controls its window positioning
Sharing data within an Activity
Make navigation great again What challenges appear when we have
multiple destinations? Update global UI as the current destination changes Navigating between destinations
None
Then why Fragment Once we enter to activity, system don't
care how you handle flow Fragment is easier to create graph
Navigation Testing Rule #1 Don’t test at destination level Extract
business logic out of your destination Write tests against a ViewModel Fragment Scenario
Don’t contort your App architecture Do what’s right for your
app
Lint Use it on Android Studio and with gradle Lint
option → base line = shows only new warnings Very useful tool to check your code
Android X testing ActivityScenario FragmentScenario getTargetContext - under testing getContext
- instrumentation WTF?! Merged as getApplicationContext()
User flow Reactivating user is important as users are updating
their phones every 2 years Use "smart Lock for password" And “Autofill”
Fun with LiveData
Map: X → Y SwitchMap: X → LiveData<Y> Transformation Mediator
LiveData - Add Source - Compute Result
You can group folders in cache I order to free
up together Use content uri instead of file uri - as file requires permission Discover with MediaStore class Storing Why it’s really hard to get simple image from gallery and camera
No sessions about Flutter
Nothing new, just reviewing Android Suspenders (Coroutines)
Sessions about View and Style Thanks to Chiu-Ki Chan
@chiuki
@chiuki
@chiuki
Android development in Google
Android development at Google 100+ Android App ~2B Lines of
code 20K Builds per day 27M Test runs per day
Developer workflow Changes get reviewed by peers Development at head
(Mono Repo) Testing is a requirement Large CI system 1 2 3 4
None
Project Nitrogen Instrumentation test на Android framework очень сложные Design
for any build system Build cross platform Build with extensibility in mind Single configuration
Nightmare to maintain
Unified solution
Running tests at scale with Nitrogen
None
None
Fireside chat And many more sessions