I successfully finished an eight week course “Programming Mobile Applications for Android Handheld Systems” provided by Coursera. It was quite an educational experience. The course consisted of the following subjects.
- Week #1: The Android Platform and Development Environment.
- Week #2: The Activity Class and Lifecycle
- Week #3: The Intent Class, Permissions, The Fragment Class
- Week #4: User Interface Classes
- Week #5: User Notifications, The BroadcastReceiver Class, Threads, AsyncTask & Handlers, Alarms, Networking
- Week #6: Graphics & Animation, Multi-touch & Gestures, MultiMedia
- Week #7: Sensors, Location & Maps
- Week #8: DataManagement, The ContentProvider Class, The Service Class
Each week I had to complete a lecture part (watching/listening) and a quiz. I also had to finish a programming assignment which covered the subjects of that particular week, run tests provided by Coursera and upload the filtered log output. Week one through four were quite doable. Week 5 through 8 separated the men from the boys as the content became more complex and the workload intensified.
Though I really appreciated the setup, I missed one essential thing. Testing. The aforementioned tests were the only – sort of implicit – lesson about testing. But not going in on testing in all its shapes and forms in Android was quite an omission. Nevertheless, I think this course was helpful. I not only learned about Android and programming, I also learned which behaviors need to be programmed and therefore explicitly tested. For example, I run an app and have my phone in portrait mode. I then turn my phone 90 degrees in order to get it in landscape mode. This behavior can be programmed in two ways and both have their (dis)advantages!
Here’s my 97% score certificate.
- XML-XSD validation tool
- Enjoying (non-)functional test automation