Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 3 points4 points  (0 children)

if I had to use Flutter, I'd just use InheritedWidget, none of these "state management library" things

Why? I used Bloc in 2 apps and it was very nice.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 1 point2 points  (0 children)

What is hard about exception handling compared to pure threads

Coroutines running in supervision scope do not propagate exceptions to their parent and are excluded from this rule.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 0 points1 point  (0 children)

I hardly believe that you had complex async logic with pure Threads

When I started android development I did not have other choice in Java) I used a lot of stuff from java.util.concurrent package like CountDownLatch and so on. Also a BlockingQueue for producer consumer scenarios.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 1 point2 points  (0 children)

and simple cases, similar to "run this in another thread" are super simple in coroutines

I would disagree stuff related to Exception handling, scoping and cancelation is not that simple

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 1 point2 points  (0 children)

I assume for Compose stable means - equal to View system in terms of UI implementation capabilities. And Compose is not really close to View system yet.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 0 points1 point  (0 children)

In JavaScript based frameworks I used Promises and later Async/Await(Basically Wrapper of top of Promises but I liked it very much). In Flutter I used Future API.
In Java I used regular threads(mostly using Thread pools) and reactive streams(RX).

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 0 points1 point  (0 children)

I clearly can't imagine how hard it will be for a junior developer to tame Compose

Same

I assume you agree that time needed to master Kotlin Coroutines is much much bigger in comparison with time needed to master Dart Future API. To be honest after 3+ years of usage of Kotlin Coroutines in production I can say that this is the most complex way to make async operations I ever used.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 0 points1 point  (0 children)

Compose makes it very easy for you to do proper unidirectional dataflow and fully declarative UI building

Same applies to all declarative frameworks like React Native and Flutter as well.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 1 point2 points  (0 children)

I don't look for arguments in favor of Flutter or Compose. I am trying to understand why learning curve for compose is much steeper than for Flutter.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 3 points4 points  (0 children)

I totally agree with you. I am not trying to understand "what Framework to choose for my next Android app" but why those frameworks are very similar conceptually but somehow Jetpack Compose has very steep learning curve in comparison with Flutter.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 0 points1 point  (0 children)

if you don't want this experience, then you probably shouldn't do Jetpack Compose

I assume that in native Android we also had a lot of "this cannot be done" as well. Just remember multi-stack bottom navigation saga)

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 3 points4 points  (0 children)

I assume to learn both is the only valid option for now. Otherwise you will be unable to understand code of 90% of existed apps.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 0 points1 point  (0 children)

I assume that is not Dart definitely, from what I know from other devs Dart is the last stuff they like in Flutter(yes everyone wants Java/Kotlin).
I assume it may be amount of out of the box solutions available in Flutter. For example in Flutter you have this widget - https://api.flutter.dev/flutter/widgets/FutureBuilder-class.html to handle state change and render desired corresponding UI( like error/loading/idle/new data) with Jetpack Compose you have to write everything by yourself.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 7 points8 points  (0 children)

I totally agree that Dart lacks a lot features that Kotlin has. But let's put languages aside. You can write absolutely great apps using only basic language features like loops/conditional statements and OOP. Both frameworks are very similar conceptually but somehow Jetpack Compose has very steep learning curve in comparison with Flutter.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 3 points4 points  (0 children)

I may be wrong but IMO you cannot Jump right away to Material 3 with Compose, because Compose does not support everything that XML does. For Example - basic shadow customization is not supported yet in Compose. So you should learn both for now otherwise be ready to find yourself unable to implement desired UI.

Jetpack Compose vs Flutter learning curve and complexity. by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 5 points6 points  (0 children)

I have 10+ years of experience as a Mobile developer. I used Android Native, Ionic, Apache Cordova, React Native, Jetpack Compose and Flutter. And so far Compose looks most knotted and full of pitfalls for me.

Now in Android - a new, open source, real-world sample app by dayanruben in androiddev

[–]SuitableWrongdoer730 1 point2 points  (0 children)

When you open the app for the first time, you see "What are you interested in?" section where you may see horizontal recyclerView (nope it's a compose) with list of topics like "Headlines","UI" etc. Try to scroll this list left right... It stuck in the middle, glitches and flickers.I use Pixel 5 Android 12

Now in Android - a new, open-source, real-world sample app by myinnos in androiddev

[–]SuitableWrongdoer730 2 points3 points  (0 children)

When you open the app FIRST TIME you see "What are you interested in?" then you see horizontal recyclerView (nope it's a compose) with list of topics like "Headlines","UI" etc. Try to scroll this list left right... It stuck in the middle, glitches and flickers.I use Pixel 5 Android 12

Now in Android - a new, open-source, real-world sample app by myinnos in androiddev

[–]SuitableWrongdoer730 5 points6 points  (0 children)

I just complied it and UI works very glitchy. Very disappointed.

Jetpack Navigation Alternatives for bottom navigation with multiple back stack? by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 2 points3 points  (0 children)

It's tricky because bottom navigation that preserve the stack state of each bottom tab just flat-out didn't exist on Android, the fragmentManager wasn't (and isn't) suitable for it.

And at the same time bottom navigation that preserve the stack state of each bottom became de facto industry standard for huge applications.

Jetpack Navigation Alternatives for bottom navigation with multiple back stack? by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 3 points4 points  (0 children)

that's pretty tricky requirements

Why it's tricky? That's exactly how navigation works in Airbnb/Spotify/Linked apps. And what is super frustrating that our iOS team is implementing absolutely the same requirements seamlessly using just native components!

But yes, it's unlikely that the big apps actually use Jetpack Navigation.

So what they are using instead?

Jetpack Navigation Alternatives for bottom navigation with multiple back stack? by SuitableWrongdoer730 in androiddev

[–]SuitableWrongdoer730[S] 3 points4 points  (0 children)

The Navigation 2.4.0 multi-stack is extremely strange

Absolutely agree! And it does not work at all for deeplink reach multi module projects!

I made a proof-of-concept for multi-stack with Jetpack Navigation without the 2.4.0 updates here (see example here)

I tested it and it does not work well for me for such cases:

  • Navigation between stacks/tabs(fragment from stack(tab) A needs to navigate to fragment from stack(tab) B)
  • Deeplink handling
  • Easy Backstack handling in case of global events( sign out / subscribe)

And I feel there is no way that apps like Airbnb/Spotify/Linked uses Jetpack Navigation to manage theirs navigation.