# Reflecting on Android application development

DevFeed: [Reflecting on Android application development](<https://devfeed.tech/articles/reflecting-on-android-application-development-26003.md>)

Original publisher: [Read original article](<https://medium.com/@nhaarman/reflecting-on-android-application-development-49c397c7957c?source=rss-fceb7a60a849------2>)

Author: Niek Haarman

Published: 2018-08-22T19:35:54Z

Content type: article

Language: en

Sources: [Stories by Niek Haarman on Medium](<https://devfeed.tech/sources/stories-by-niek-haarman-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Development](<https://devfeed.tech/topics/development.md>), [Application Development](<https://devfeed.tech/topics/application-development.md>), [navigation](<https://devfeed.tech/topics/navigation.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [application-development](<https://devfeed.tech/tags/application-development.md>), [development](<https://devfeed.tech/tags/development.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [process](<https://devfeed.tech/tags/process.md>)

## AI overview

A reflective overview of Android application development, tracing how early platform constraints shaped application states, lifecycles, Activities, navigation, multitasking, and process-death handling. It also discusses Fragments and the rise of single-Activity approaches.

## Source excerpt

In this article I want to go back to the Android system as of Android 1.0, and look at the reasons that make Android app development what it is today and why certain decisions were made. Back in 2008, mobile devices were not the almighty powerful devices with 4GB of RAM and octo-core processors we have in our pockets today. Instead, storage was limited, memory was scarce and the network was slow. Despite of all this, users were able to switch between multiple applications on their phones, 'talk' to other applications to request data, and you might have guessed it, even take phone calls! The launcher app in Android 1.1 I will be reflecting on the fundamentals of developing applications for Android, looking at application states, lifecycles, monolith activities and modern approaches. TL;DR Dealing with process deaths is important; Lifecycles are useful, not difficult; Dealing with Fragments is hard; Single-Activity approaches are rising; The back stack is hard. In-app navigation A typical Android application has more than one screen to present to the user. A messaging app for example could start with a screen that shows a list of message threads. By clicking a specific thread, the application navigates to a new screen that shows the thread and allows the user to send messages. From here, the user might even be able to go to a screen that shows the details of the contact he is messaging with. To return to the first screen, the user can simply press the back button a couple of times. In the beginning of Android app development, this was typically done by defining an Activity for each screen in the application. The OS starts the 'main' Activity when the app is launched, and by navigating through the application Activities are pushed and popped off a stack, which is where the name 'back stack' comes from. Additionally, developers can use flags when starting Activities to manipulate the stack. Multitasking and process deaths Multitasking in Android meant that you could swi