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.
MVVM architecture promotes a clean separation of concerns, making it easier to develop and maintain complex Android applications. By adhering to the key principles and components of MVVM, developers can create scalable, testable, and maintainable apps that provide a seamless user experience.
Uncover the journey of evolution from MVC to MVP, tackling challenges through the integration of a Presenter and well-defined contracts. Despite the advantages MVP offers, it necessitates addressing common concerns such as boilerplate code and potential intricacies for more straightforward UIs.
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.
Embrace the power of Continuous Integration and Deployment (CI/CD) in software development. Automate tests, streamline workflows, and boost collaboration with user-friendly services like CircleCI, Bitrise, GitLab, and GitHub Actions. Level up your development process today!
I went to a meetup in my city last week and a guy I just met there popped a question after a while of conversation: with my experience, would I go for mobile software development again or pick a different area?
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...
The Command pattern wraps the request into a specific object that has all the information necessary to perform its task. You can think of it as the next stage of refactoring, where at first we extract the code to a separate method, and then to a separate object, taking the arguments needed to execute the request in the constructor.
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.