👉 Check the related demo project of our architecture in this GitHub repository 🚀
When you try to build a modern & scalable multi-modules application on Android, navigation is a problem that we all had to confront. For example on our BackMarket app, we currently have 80 modules and it still growing. The navigation between all those modules has been a major issue we had to resolve quickly.
At first, in order to navigate through a feature module, we tried multiple approaches:
When you’re developing an Android app, it’s sometimes necessary to exactly debugging what’s going on behind the scenes, especially for network requests (HTTP & HTTPS).
Some powerful debugging tools already exist and they do amazing work, like Stetho, Retrofit’s Interceptors, or Android Studio Network Profiler. Also, they can be added/configured to your project pretty easily 👌.
When you build an Android app, user experience is something that really matters. However, animations & transitions can really be a pain to implement in Android.
In this article, I will share with you my feelings about the implementation of this animation between two screens, called in Material Design a “Hierarchical transition” :
Today, Google seems to finally give us a pretty clear direction of how we should start to design our Android apps.
In a few words: multi-modules & MVVM.
The purpose of this article is not to present in detail each concept (MVVM, Coroutines, LiveData, etc…), but rather to share with you an overview of what could be a robust and scalable architecture in Android.
Disclaimers: This will be a long journey…✈️
Those last days, I really wanted to create an application around the Android Paging Library, especially with Retrofit. Pagination is a feature quite famous in our world, but not so easy to implement.
So I decided to build a showcase app that will fetch developers from Github, with pagination, depending on the user’s search. I also chose to use those libs :
You can download the final debug APK directly on Github.
However, the first release was using Dagger2 for dependency injection on the Android app: Not a very Kotlin way for this project…
So I decided to migrate it to Koin, a pragmatic lightweight dependency injection framework written in pure Kotlin and get a feel for what Koin is all about.
I started adding the Koin dependency like below :
After a long android freelance contract, and because I had some free days, I decided to dedicate myself into a full project entirely written in Kotlin, just to know how far I could go with this excellent language.
To concretize this full project, I chose to create a platform that helps developers find out the perfect jobs, selected and approved by other expert developers.
And because I’m currently looking for a remote position, this idea seemed pretty appropriate… 😅
Simplicity is the soul of efficiency — Austin Freeman
Let me give you some context. I have this side project, CookMinute, a French app helping people to eat better, which I started just after my MSD 4 years ago.
A lot of things have changed for Android developers since this dark and painful age.
This side project is being used by more and more people (40K today) from month to month, so I decided 5 months ago to entirely refactoring it, mainly because this project had those problems :
UX/UI is one of the things I really love through my work. Actually, when you think about it, your users really don’t care about your code and how you’ve designed it : they only judge what they can see.
First of all, you will have to choose an icon you want to animate. For this post, I decided to download this icon from Material.io in SVG format :
As an Android developer, this year was really exciting and full of good news if creating robust and maintainable apps matters to you. The Architecture Components was really a game changer !
In this post, I will show you how to proper Unit Testing a simple existing Android app: RetroKotlin.
RetroKotlin, obviously written in Kotlin, is really simple: when MainActivity starts, a RxJava2 stream inside a ViewModel (UserViewModel) will fetch Jake Wharton’s Github data (represented by User model) before showing it through the screen, thanks to LiveData.
Android Software Engineer @backmarket 📱🏡 💚