A Pitfall on Android’s Shared Preferences


Recently, I got a strange bug report on one of our Android app. User’s favorite items are “removed” every time the app get killed. This issue really frustrated me since it took me a whole day without any clue on what’s going on. The favorites work well as expected until the app restarts, they’re gone — or in my phone, only one arbitrary favorite item left. Let’s see how I fixed it.

Continue reading

Introduction to Android MVP Pattern


MVP or Model-View-Presenter is a pattern that was derived from MVC. It’s now gaining importance in growing Android development since it has many advantages against the basic pattern.

So what’s MVP? It’s a Android development pattern that allows separate the presentation layer from the logic, so we can make this presentation layer more usable by various fragments that has same behavior.

So what does that mean? Continue reading

Model View Controller Concept



MVC is one of the most used patterns that used by web developers to develop their web. Not only because it’s easy to understand, it’s easy to implement once it’s fundamental component is created.

The concept was made to separate bussiness logic and view logic to avoid confusion between these components.


Model is everything that is related to bussiness logic layer such as data and the rules that manages data.


View presents data to user. The key concept of view is template. Provided with many sets of data, view can presents data to user with purpose to make user understand these data.
Continue reading

Android Developing Tips: Using RecyclerView as Adapter-based View


As android engineer, we must already used ListView a lot if we want to show multiple items that has same template.

But there are some problems that can’t be solved by only using ListView:
1. Normally, we can only handle whole item click.
2. It’s hard to use different layout in ListView item without using ViewHolder pattern.
3. It’s become harder to handle some action within the item layout because of reason 1.

But that’s the reason why RecyclerView comes.
Continue reading