Zygote
Learning path · You build Android apps

App Developer Foundations

You already write apps. This is the why behind the APIs: why components exist, what the lifecycle really does, where the main thread goes, and how to structure an app that survives.

pages
15
estimated
162 min
0%

0 of 15 pages read

162 minutes in total.

Start with “The four components” →
  1. The four components

    An Android app has no main(). It has four kinds of entry point that the system can start on its own — and that fact explains most of the platform's design.

    11 minbeginnerapp-components
  2. The Activity lifecycle

    Seven callbacks, two ways to die, and one Bundle. The Activity lifecycle is a contract about what the system may do to your screen while you are not looking.

    11 minintermediateapp-components
  3. Activities, tasks and the back stack

    A task is a stack of activities the user thinks of as one thing. Launch modes and flags are the rules for putting activities into tasks — and every one of them is a trade-off about Back.

    11 minintermediateapp-components
  4. Intents and filters

    An Intent is either a named component or a question about capabilities. The difference between those two forms is the difference between a phone call and a noticeboard.

    11 minbeginnerapp-components
  5. The main thread

    Every app process has one thread that does everything the user can see. Blocking it is not slow code — it is an unresponsive app, by definition.

    11 minbeginnerthreading
  6. Looper, Handler, MessageQueue

    Three classes that have not changed in fifteen years: a thread-local loop, a priority queue ordered by due time, and the native epoll wait that lets an idle app consume nothing.

    11 minnerdthreading
  7. Coroutines on Android

    A coroutine is not a thread. It is a state machine the compiler generates, dispatched onto a thread. That distinction explains cancellation, structured concurrency, and why suspension is cheap.

    11 minintermediatethreading
  8. The View system

    A View is a rectangle that measures itself, lays out its children and records drawing commands. The whole UI of Android before Compose is that one idea, applied recursively.

    11 minbeginnerui
  9. How Compose works

    Compose is a compiler plugin, a positional memory table and a snapshot system. Once you can see those three, recomposition stops being magic and becomes predictable.

    11 minnerdui
  10. UI state and events

    A screen has exactly one state object and two directions of data. Getting that shape right removes most of the bugs that look like lifecycle problems.

    11 minintermediateapp-architecture
  11. Data and domain layers

    A repository is a policy, not a wrapper. It decides which source of truth wins, when to cache, and what a failure means — and that decision is why the data layer exists at all.

    11 minintermediateapp-architecture
  12. Platform or library?

    Two phones on the same Android version can run your app differently, because half the API you call is compiled into your APK and half is provided by the device.

    11 minintermediatejetpack
  13. Choosing the right API

    Coroutine, WorkManager, foreground service, AlarmManager, JobScheduler: five answers to five different questions. The first question is not which API is best — it is how long the work must survive.

    11 minintermediatebackground-work
  14. The install flow

    Installing is a transaction with a signature check, a data directory, a dexopt pass and a broadcast. It is also one of the platform's most security-sensitive paths — and the rules for who may install what keep tightening.

    10 minintermediatepackages
  15. The builder track

    Eight app projects and seven nerd guides, each tied to a concept page. What you build, what you learn, and how to get set up so the rest of the track works.

    9 minbeginnerbuilder