CI is an eternal topic in software engineering, it is still evolving for mobile. With an introduction to Docker, and a full-fledged Docker image for Android, this presentation will guide you through all facts about using Docker for Android CI - benefits, limitations, pitfalls, tweaks, and performance. Follow me, you can build your own Acme CI at zero cost. Last but not least, there are some other tips about how Docker could help your mobile engineering.
8. Where the problem comes
Infer - A tool to detect bugs in Java and ... code.
Infer (http://fbinfer.com/) by Facebook, Inc.
Update Android SDK in Docker container
☠ AUFS
9. Dockerfile Best Practices
" Single responsibility
○ use compose for orchestration
" Minimize the number of layers
○ layer = intermediate image, supports caching
" Size matters, use what you have
○ Install & un- by separated steps will ⇧ image size
" Readability
11. Solution for SDK update
Mount SDK volume in container
minimal by Bakunetsu Kaito from the Noun Project, spring by Free Fair & Healthy from the Noun Project, Save by Rflor from the Noun Project, Share by Matteo Della Chiesa from the Noun Project
12. NFS
✅ In one place
❓ Performance
No concurrent writing
24. Gradle distributions mirror server
" From: gradle/wrapper/gradle-wrapper.properties
" To: ~/.gradle/wrapper/dists
" SSL certificate - needs to be trusted by Java keystore
" /etc/hosts
25. And better?
Gradle caches
○ Don’t waste time downloading dependencies
○ ~/.gradle/caches/
Compiling (https://xkcd.com/303/) by xkcd
26. Reveal machine-dependent problem
" Encoding problem
○ expected:<Hall[��]chen> but was:<Hall[ö]chen>
" Hard coded Timezone in test
○ expected:2099-12-31T00:00:00.0000+0200
but was: 2099-12-31T00:00:00.0000+0000
" File & Path
○ File#listFiles() -> File[] (sort order depends on OS)
27. What else for mobile
" Integration Test
○ Prod / Test server
■ unreliable network
■ complex setup
○ Docker
■ out of the box for mobile dev
" Something else
○ Serverless ( Kotlin, Swift ) - reuse 📱 code
28. Hiring
" 👍 Offices in Hamburg, Berlin, Barcelona and etc.
" 👍 Visa sponsor, offer ✈ 🏠
○ Android Developers
○ iOS Developers
○ SDET
○ Backend / Frontend / Data / * Engineers
https://de.mytaxi.com/jobs