It has been a long time since I develop anything for mobile screens. My native mobile development story started around 2009 with Android 1.5 and since then I move onto different platforms including iOS to Blackberry (yes blackberry). I stop developing for mobile phones around when Android 4.x came out. I had my personal reasons to not continue developing but some of the high-level ones are
- inconsistencies around device types and APIs
- backward compatibility mess
- lack of stable development tools
I stopped actively developing anything but still followed most of the news and changes. Since I have time lately I decide to give it a shot to see if anything above changed or at least is it still fun to do mobile development like when I started. This is post is all about catching up on the Android side.
IDE, SDK, Emulator, Phone
These four prerequisites are still required in order to start developing but it is much more fluid right now. Android Studio come prepackaged with
Android SDK (I think it is the latest one) and you don’t have to deal with setting up SDK or connecting it with IDE, adding plugin etc.
I must say
emulator is much faster and usable and with the new
Apply Changes option change-test cycle is really easy.
Since there is not much defacto book on Android and it is really hard to keep content of the book updated with ever changing Android SDK best way to consult is Android developer page (https://developer.android.com/training/index.html)
[Update] I read
Big Nerd Ranch book Android Programming before and from release date it looks like it is up to date with latest Android version so if you are interested in books you can check that one.
I have minor issiues with phone and Android Studio bridge but fixed it with downloading driver from manufacturer site, still much better than editing files with manufacturer codes.
ViewGroup, View, XML
As you may expect Android development still going around xml viewgroups/views and java code but I must say Android Studio is making this so much easier. We still have
ViewGroups (layouts) and
Views (widgets) and
XML for designing UIs.
ConstraintLayout is new for me but it looks like
RelativeLayout but much more powerful and have lots of option to place your views according to
ConstraintLayout is new ViewGroup and designed for adaptive UIs and tries to make ViewGroup tree more flat so that rendering will be quick. It looks a lot like RelativeLayout but much more adaptive one depending on the constraints and other elements.
Rendering times for the changes on design view is much faster even though multiple changes takes places still you can see the results in a fairly efficient way. Project structure starts to get messy when you app reach to significant size but new project structure makes it really easy to navigate with IntelliJ great search shortcuts.
And finally when you add new
Activity class it will be added to
AndroidManifest automatically. This probably will save hundred or thousands because of
why is this chrashing and then you realize you forgot to add new activity to manifest bugs are now gone.
Around 2010-2011 there are good books about Android but as we reach to 2014 most of them become outdated. Even though there are not good quality books out there I must say Android docs doing a really great job.