Posts for: #Android

Refactor to UseCases

Refactor to UseCases

I was surprised how much utilizing the UseCase pattern in my last Android app helped with the development. It naturally created a clear structure, created boundaries, and accidentally extracted the app domain. Maybe it will work for you too.

[Read more]

Android Presentation Patterns: MVI

Android Presentation Patterns: MVI

MVI isn’t a single ready-to-implement pattern; it’s more of a spectrum. This post delves into its diverse range, from basic MVVM patterns to intricate Redux-like state management, emphasizing the importance of grasping its principles for effective implementation tailored to specific project needs.

[Read more]

Android Presentation Patterns: MVC

Android Presentation Patterns: MVC

Explore the early days of Android with the Model-View-Controller (MVC) pattern. Discover its challenges, like tight connections and testing troubles, through a simple example. While acknowledging its history, the article introduces modern alternatives like Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), and Redux, explaining why they’re better choices for today’s Android app setup.

[Read more]

Android service binding fix for API 30

Android service binding fix for API 30

Android 11 (API 30) changes the way of using external app services. Using compileSdk 30 and above, without additional Manifest entry the bindService() method will always return False, even if with compileSdk 29 the app will work perfectly. I want to share solution of this problem after WAY TOO LONG time I spent on searching it…

[Read more]

Remote Logger

Remote Logger

While working on a project, I couldn’t use Android’s ‘Development Options’ - I couldn’t access the logs. If only you could send Logcat logs, e.g. via WebSocket, and then catch them on your computer… I did not find such a tool, so I wrote one and described the process in this post.

[Read more]