Being from a non-CS background, Android was the first thing I learned when I started to learn how to code. At that time, I was not familiar with Java either.
Learning Android for the first time
I remember learning Java first and then proceeding with Android development. I learned from the book Learn Java for Android Development by Jeff Friesen.
This is a good book that taught me a lot of basics related to Java and Computer Science. After that, I started to learn from the Android developers’ website, which was very thorough and up-to-date.
Revisiting Android
It had been a long time for me since I had worked on an Android project, so recently I decided to check out the advancements that have been made in the recent years. I used to read on the different new ways that emerged to develop Android apps, like React Native, Cordova, Kotlin, etc.
This time I decided to go for a certified specialization by Coursera: Android App Development Specialization. It turned out to be a great idea for me, since I got to learn about Android from the basics. My former knowledge was shallow and the courses cleared a lot of questions I had related to the topic. I am sharing some things that I learned while going through the specialization.
Things I learned
Basics
- Intents
- Activities
- Lifecycle methods
- Concurrency in Android
- Broadcast receivers
Architecture
- The Android linux kernel
- RAM management in Android
- Anonymous shared memory (cashmem)
- Hardware Abstraction Layer (HAL)
- Android runtime execution environment
- Java libraries included in Android
- Core Android libraries
- The Native Development Kit (NDK)
- Services
- Content resolvers
- Inter-process communication (IPC)
Conclusion
Overall, it turned out to be a good idea to do the specialization. I wanted to work on some Android projects, but had forgotten most of the things. The specialization turned out to be very helpful.
One of the projects that I will be working on in the future is: Idea Tracker Plus, an Android application for tracking your ideas.