When you’re starting out with Android development, and even as an expert, you will hear about a lot of different architecture patterns. Anything from:

  • Model-View-Controller
  • Model-View-Presenter
  • Model-View-ViewModel
  • Model-View-Intent

It can be extremely hard to know which one to pick, what their differences are, and why they matter. I will tell you that even with my three years of Android experience at the point of writing this, I have trouble answering the first two questions. I can, however, explain why these architecture patterns matter - and it boils down to the idea of separation of concerns.

Continue Reading ...

MVVM? Retrofit? RxJava? Data binding? Architecture components? LiveData? Kotlin?

Right now, these buzzwords are heard all over the Android community. Every podcast/blog/conference talk is referencing one of these. Which can be very intimidating to new developers. Which one should I learn first? Do I need all of them? What are these things even used for?

The purpose of this series is to break all of that down, and show that none of these buzzwords are truly that scary. We’ll go over an application I’ve published called CashCaretaker which is a simple finance tracker with all data stored locally on the device. It uses all of the buzzwords I mentioned further up, and we can go through them step by step.

You can checkout a simple gif of the project here:

Continue Reading ...

When Android released version 6.0 Marshmallow (yes, a little outdated at this point), a whole slew of new developer APIs came with it. One that I’ve personally enjoyed as a consumer is fingerprint authentication. I skimmed over the official docs, and even through their Fingerprint Dialog Sample but had a difficult time following what was going on.

Eventually, though, I was able to recreate the flow. This post is going to be a step by step guide to integrating your own fingerprint dialog in your Android application.

Continue Reading ...

After two years of blogging on this site, posting various tutorials and Android discussions I felt were relevant, I’m now looking to share that experience with others. Blogging has been an invaluable experience for me, as I learn just as much as I get to teach when I’m thoroughly researching and writing a post. There’s no reason for me to keep this opportunity to myself, though.

Continue Reading ...

Third party libraries are a huge part of mobile app development. Popular tools like Retrofit, RxJava, Picasso, and many others prevent Android developers from reinventing the wheel everytime we need to do something over the network, asynchronously, or loading images.

However, developing and publishing these libraries can be intimidating to many people. I think this occurs for a number of reasons - worry about keeping up with maintenance, being outshined, or sometimes thinking no one would use your code. I have many thoughts on those ideas, but will save them for another blog post. In this one, we’ll just go over a step by step guide to creating and publishing a library to JCenter.

Continue Reading ...