android

From Prefab House to Lego House

Before joining my current employer I have worked for an app agency and one thing I have noticed is that we were building every app entirely new from scratch even if we were building a similar app for the same customer with similar UI. We hadn’t reusable components. In this blog post I want to share some thoughts and lessons learned while building such reusable components.

Continue...

Presenters don't need lifecycle events

I have been asked several times why Presenters in Mosby (MVP library) don’t have lifecycle callback methods like onCreate(Bundle), onResume() etc. Also the awesome guys over at SoundCloud have published a library called LightCycle that helps break logic out of Activity or Fragments into smaller containers bound to the parents Activity’s or Fragment’s lifecycle.

Continue...

Model-View-Intent on Android

As developers we should always think outside the box. A month ago Artem Zinnatullin and I have discussed some architectural trends on android and on other platforms, like .NET and javascript, in his Podcast The Context. A few days later Christina Lee gave an awesome lightning talk Redux-ing UI Bugs during square’s The Journey of Android Engineers event.

Continue...

Let Mosby Flow - An alternative to Fragments

The usage of Fragments in Android apps is highly controversial. While some developers love them, others hate them. In this blog post I will give you a short introduction of how to use Mosby 3.0 to build MVP base screens and square’s Flow library as navigation stack replacement. Preface: Usually I use Fragments in my apps and 99% of the time they work well.

Continue...

AdapterCommands

Last week I was honored to be guest at Artem Zinnatullin’s podcast The Context where we talked about software architecture on android. In this episode I have highlighted how important a presentation model in MVP is by giving an example how to deal with RecyclerView Adapters dataset changes. Afterwards people asked me how exactly do I apply animated dataset changes and why a presentation model is helpful in this case.

Continue...

Refactoring Plaid App - A reactive MVP Approach (Part 2)

This is the second part of how we could refactor the Plaid app open sourced by Nick Butcher. In this part we are going to enhance the MVP architecture described in the first part to become truly reactive. Preface: I started the refactoring with the strong belief that I can refactor the whole app.

Continue...

Refactoring Plaid App - A reactive MVP Approach (Part 1)

Nick Butcher has open sourced on github an awesome app called Plaid. The app is pretty cool and has an outstanding UI / UX. Whenever source code of such awesome apps are available developers start to copy code and best practice tips from it. So I did the same and decided to dive into the code of Plaid.

Continue...

FragmentArgs 3.0

I finally found some time last weekend to work on FragmentArgs and to release a new major version 3.0. Here is an overview of new features and bug fixes. Migration The good news first: FragmentArgs 3.0 is completely backward compatible to all previous versions (down to 1.0). So basically you have to do nothing.

Continue...

Debug Overlay

Lately I was looking for a way to display some app internal information to an external staff that is not a developer. I haven’t found a library that fit my needs. Hence I have written my own tiny library called DebugOverlay to do this job. Usually we as developers would log app internal things by using logcat Log.

Continue...