Joe currently works as a Senior Android Developer for Major League Baseball Advanced Media, the tech and media arm of MLB (http://www.forbes.com/sites/maurybrown/2014/07/07/the-biggest-media-company-youve-never-heard-of/#4664bcd1dd4e). While there, he recently helped rebuild the official app of the NHL. He previously has worked for Vertigo Software, Bodybuilding.com, and HP in Boise.
This session takes you from ground zero on Android development and gives you an easy introduction to the basic components you need to build an Android application. The session does assume some development experience and glosses over some non-Android basics like installing Java and your IDE. But otherwise it does not assume any Android-specific knowledge. By the time you're done you will be able to create a screen, populate it with static and dynamic data, take user input, transition between screens, modify elements at runtime, etc. The app we build will not be very useful in and of itself, but will give you all the tools needed to take the next step. Code is available here. Slides are available here.
Android projects can get big, fast. And all too often the controller classes explode with all kinds of logic because there just doesn't seem to be another place to put all that code. Activities and fragments grow to huge proportions. I've recently been exposed to some very good examples of Android development using the MVP pattern instead of the MVC pattern and the results have been phenomenal. MVP (with the addition of Interactors and Gateways, in this case) provides a lot of benefits for Android, including the ability to keep your activities and fragments incredibly lean, effectively dividing logic and responsibilities between well-defined layers, keeping the app robust and flexible. But most of all, this division takes a platform that is notoriously difficult to test without resorting to instrumentation and flips that upside-down. It now becomes not only possible, but very easy to cover most of your application with unit tests. There are a lot of different favorite architectures out there, and I won't pretend to tell you that my way is the best way. But it has been great for me and has delivered a lot of benefits. Sample code is available here. Slides available here