DEV Community

A New Kind of Android Fragmentation

Thierry on October 29, 2019

It has been about 5 years since I have been able to spend a dedicated chunk of time working solely on Android development. One of our competitors s...
Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard • Edited

AndroidX or Support Libraries

This sucks a lot.

I will launch a project in the coming week in the hope to make the transition easier.

Architecture components: MVVM, MVI, MVP, MVP or MVC?

Avoid any recommendations from Google and do whatever makes sense in your particular context.

Java Callbacks, Android RX observables and/or Kotlin Coroutines

Use callbacks, that's the universal idiom and they can be converted to coroutines in a few lines.

Java or Kotlin

Kotlin for me, but I am biased since I learned Java with Android, which makes it look extra bad.

I wonder why Google has this wait and see attitude instead of just ensuring that there is 1 best way to do all of these things...

I am not surprised, whenever they recommended one way to do things, they choosed the worst option: multiple activities, fragments, loaders, async tasks, ....

Collapse
 
tschellenbach profile image
Thierry

Yeah, will probably do something like this to make it work well for everyone:
github.com/square/retrofit/tree/ma...

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard

I am curious about your thoughts on the AndroidX vs Support libraries mess and how it affects you as a library author.

Collapse
 
dector profile image
Denys M.

If you look at iOS development though there is much less fragmentation.

Well, sure. Because:

a) Apple has closed eco-system and there are only few iOS devices you need to support as a developer.
b) Apple is pushing developers to use new tools all the time (ask your iOS developers about breaking changes in XCode and Swift) :).

I think Google is moving towards making Kotlin main language for Android development (they still support Java developers because it's a reasonable business-decision for now).

If you look at the stats Kotlin still seems much smaller for new apps than Java:

Technically, if (when) one's app use OkHttp 4 - it's already have dependency on Kotlin stdlib (luckily it's very tiny, almost invisible if R8/Proguard is your friend).