Giving Android development a try
It may seem a bit strange that I talk about Android. After all I am a web developer and I have been actively promoting Web for mobile development. But after a course I have been taking, I wanted to share some thoughts.
Mobile development some time ago
Back in 2007 the first iPhone was released. By then, I started developing mobile applications for PDAs using Windows CE and Windows Mobile. And also Windows Applications for POS with touch screen. Mobile browsers were quite rudimentary and native development provided many more possibilities, with proper database support (SQL Server Mobile) and access to hardware (i.e. barcode reader).
Since then I moved towards web development. And as browsers become more powerful, I was convinced web was the answer to deliver a proper experience to a myriad of smartphones, device capabilities and operating systems. Native development was following its own way, and I mostly read about it through avid discussions around web vs native, that still arise from time to time. And I think each case is different, and one should make informed decisions about which technologies use in every specific project. For instance, I still think mockups can be quickly built and iterated on using web, and there are situations where we can take the most out of both technologies through hybrid apps.
Android
I must admit I really liked this course. It was only a week, but it was quite extensive and covered the main topics to get a background about how to build an app. And by using certain approaches and fallbacks you can provide a good experience to old Android devices, without penalising modern devices.
It is true that some things involve many steps, and the code for implementing basic features looks sometimes too much. However, I think that when a framework exposes a super simple API, it is usually easy to implement the most basic points, but rather difficult to customise or go more into depth, quickly having to dismiss the simplistic API and deal with internals.
I think Android has a proper balance and it is fairly easy to isolate and reuse components once you are familiar with them.
I have some pet project on mind with which I want to dig more into Android development, now that I have touched the basics. It feels great to have gone back a bit and learnt again a new development environment, and it has helped me to know more about another important player in mobile development.