question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

How production ready is Fabulous?

See original GitHub issue

I really like the Elm(ish) programming model. I’d love to try out Fabulous for a Xamarin app we currently have in production; it would likely simplify things quite a bit over the current architecture (which is a kind of homegrown, half-Elmish, MVVM/Redux-like hybrid).

But how production ready is Fabulous? I can live with a reasonable amount of breaking API changes, but I am concerned about a couple of other points:

  1. Correct behaviour and general runtime stability. I don’t want our customers experiencing Fabulous-related bugs that only crop up far into or at the other side of a rewrite - or even worse, for only certain end-user devices in certain contexts (such as #343, which I realize is not Fabulous’ fault).

  2. Performance. I’m not creating games or running a stopwatch at 100 FPS, but I must be able to depend on Fabulous (with necessary optimizations, e.g. dependsOn) handling any human typing speed. For example (intersecting with the point above concerning correct behaviour), a good while ago I started the discussion at https://github.com/elmish/Elmish.WPF/issues/40, where I attempted to explain a problem relating to feedback loops due to e.g. Entry.TextChanged being fired both from user input and programmatic changes. This caused a feedback loop if the Elmish update loop was “too slow”. The behaviour was not too hard to provoke on a hardware-accelerated emulator, and was what prompted me to go for the hybrid MVVM architecture I mentioned (where I use view models for Entry.Text updates).

  3. Any other known issues, drawbacks, caveats, or battle stories that might be good to know about.

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:5 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
cmeerencommented, Apr 7, 2019

I made a separate issue #383 for the navigation slowdowns because I couldn’t find any existing issue for it.

With that out of the way, I think my questions here are answered: While I love the Elmish architecture and would like nothing more than for Fabulous to be the most, well, fabulous choice for app development, the navigation slowdowns alone are a no-go for us. Combined with a few other notable bugs (#158, #304), the conclusion for my part is that Fabulous is not yet mature enough to be a safe choice for production apps (low “employer/client acceptance factor”, so to speak).

YMMV, feel free to disagree. Thanks for hearing me out and responding to my concerns!

0reactions
cmeerencommented, Apr 7, 2019

The slowness is noticeable when going from one page to another (to which you never navigated before). On iOS, it’s instantaneous. On Android, you can see up to half a second of wait (still previous screen) after you triggered the navigation before the new page appears.

Thanks. I tried the ElmishContacts app and see what you mean.

  • ~Do you know if the slowness is device-dependent? On my device it’s not a deal-breaker, but if it’s significantly worse on slower devices, that’d be good to know.~
  • ~Do you know what causes it? Is it something that can be fixed, or is it fundamental to the way Elmish works?~

Update: See new issue #383

Read more comments on GitHub >

github_iconTop Results From Across the Web

What is the answer for "do you think this code is production ...
At an interview, the expected answer is typically “no, it is not production ready” and that is where you talk about the need...
Read more >
What does it mean when code is 'production ready'?
“Production ready” means that the author of the code believes it is ready to run in a production environment. There's no single set...
Read more >
Building Production Ready Applications | by Scott Kuhl - Medium
Building Production Ready Applications ... Lighthouse — A great tool for checking performance, best practices, accessibility, and SEO.
Read more >
Production-Ready vs Feature-Complete: What's the Difference?
Production -ready and feature-complete are terms frequently used in software development, but they have drastically different meanings.
Read more >
Tips For Building Production Ready Applications
I guess we all are. Here's an extensive list I compiled to provide you tips on how to build your application the right...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found