The hoops you have to jump through, to fail at the end

Now this is as much an issue as rant as the amount of problems this library raises is insane, so please bear with me:

Some the issues I encountered when using it:

  • an old version react-native-gesture-handler that is unable to resolve module react-native/Libraries/Renderer/shims/ReactNativeBridgeEventPlugin, forcing me to fiddle with the peerDeps to fix it
  • a react-native-linear-gradient error that forces me to upgrade most of my deps and more importantly react-native, even though this could break the rest of the project (as a rule of thumb, I do not risk upgrading it once I’ve started a project with a specific version, unless I absolutely have to)
  • cannot read property 'shape' which can only be fixed by installing additional deps prop-types create-react-class and fiddling with node_modules/react/index.js
  • And finally the font rendering that has been broken for as long as I can remember, can be fixed by downloading Rubik fonts from google and overwriting those in the build folder

And all this while keeping in mind that you have to redo all those steps every time you update, add a dep, or clone the project anew, which is a huge waste of time.

And finally comes the time to build the app: You’re thinking “Oof! That took the entire day, but hey, at least the app looks beautiful” and lo and behold, the released apk is completely broken and crashes at startup, possibly because of proguard, but so far I haven’t been able to pinpoint the exact cause.

Is this the way Shoutem has to gently steer us towards expo? Because if that’s the case I believe you could simply add at the top of the readme: “Does NOT work outside of expo; use at your own risk” then we’d know not to waste our time

I’ve been following Shoutem for a long time now, and been meaning to use it ever since, but the ridiculous amount of issues that it brings with him just don’t make it worth it, at this point something like Native-base or KittenUI, although less beautiful in my opinion, are way better as they come without the headache and the hours of debugging

Please do not take offence at this issue: I understand fully that this is one of the drawbacks of open-source projects and that the contributors are in no way obligated to fix these issues, but I believe a bare minimum of explanation about what this lib can and can’t do, and what to expect of it in different environments would go a long way.

tl;dr: Shoutem hardly works outside of expo, please update the readme to clarify this point.

Thank you.

2 thoughts on “The hoops you have to jump through, to fail at the end

  1. @Unforgiven-wanda you are absolutely spot on. Too many OS projects make claims which are not even true just to increase their popularity. And the fact that most of us in the community have the mentality of “it is just an OS project so you can’t expect the contributors to maintain it properly” has led to the community not holding contributors accountable to what they claim their project does.

    I have nothing against releasing half assed OS projects as long as this is clearly stated in the readme, such that developers who are actively spending time on selecting an OS project to add to their development stack can look elsewhere.

    p.s. I am glad I noticed this issue before going through the same hoops to try to get it to work with the latest version of react and react-native.

  2. We appreciate the criticism.

    The Shoutem UI toolkit was made as a love child of our main product, the Shoutem App Builder and the Extension Architecture. We updated it to RN 0.50.3 with version 0.22.0 which is now available.

    Not TL;DR:
    Shoutem’s main product, the Shoutem App Builder is based on React Native, for this purpose, the devs behind it put in time and care into making a UI toolkit to allow them to more efficiently create gorgeous apps.

    Unfortunately, as the App Builder advanced later into it’s lifespan, it absorbed more and more developer time, leaving little to no time for the developers behind the UI toolkit to dedicate to maintenance, fixes and improvements.

    We’ve now revitalized our efforts to bring the UI toolkit back up to snuff. A result of that is immediately visible from the version 0.22.0 update which makes it operational with React Native 0.50.3.

    The next thing I will personally look to do is cleaning up the documentation. Introducing undocumented components to it, improving existing component code snippets as well as fixing any inaccuracies that may exist.

    Again, we appreciate the criticism.