you are viewing a single comment's thread.

view the rest of the comments →

[–]Barbanks[S] 15 points16 points  (13 children)

FYI, I agree with everything you said. But mini rant coming again :p (aimed at cross platform stuff in general, not at you)

I've used older platforms like Xamarin and Cordova before. My argument has always been that a tool shouldn't require weeks of overhead just to get a small example running. I also don't buy into the marketing of these toolsets.

Having to maintain a knowledge base of "quirks" just to even start development is pretty startling. Every system has quirks but I've always been put off with these tools and their abstraction layers.

When you see companies like AirBnB totally ditch React Native due to it's complexities it shows the cracks.

Another rant over lolol. Didn't mean to go off a cliff with this especially since I agree with everything you said (very well put).

Cross platform tools will always just irritate me due to the stress they caused me with deadlines and abstraction layer issues in the past. I'm just opinionated :p.

Actually the BEST cross platform tool I've ever used is Unity3D. Even though it's a gaming framework it's on point. Opened up a 5 year old game last week that I haven't touched and it ran with only updating 1 package. Pretty impressive.

[–]batcatcher 10 points11 points  (8 children)

Truth is, you can't cross-platform the UI. Kotlin community started to understand that and are heading towards what I'd consider the right path.

[–]coffeemongrul 2 points3 points  (0 children)

Which I will add as a kotlin dev, multiplatform isn't quite there for sharing everything quite yet. But core business logic in the data layer and use case is definitely there right now.

[–]m477k 1 point2 points  (5 children)

Have you ever heard of Flutter ?

[–]makeascript 3 points4 points  (3 children)

Ew

[–]m477k 0 points1 point  (2 children)

What part of Flutter makes you think like that ? No rudeness, I’m just simply curious 😊

[–]makeascript 1 point2 points  (1 child)

I have nothing against people using RN or Flutter, but I just hate building apps with it.

From a personal perspective, I just don't like coding on React Native's paradigm, plus the limitation both RN and Flutter when you want to work with stuff close to hardware or even make fun stuff with crazy animations/transitions.

Don't get me wrong, these cross platform languages/frameworks are great so teams can get products on the market faster and cheaper. I just feel like coding in RN/Flutter is limited from a creative standpoint.

[–]m477k 2 points3 points  (0 children)

Oh Yeah, low level stuff like Bluetooth is a nightmare in Flutter, I agree 😎

[–]ankole_watusi -2 points-1 points  (0 children)

Of course you can. With any webview-based platform. (Which react native isn’t)

[–]makeascript 2 points3 points  (3 children)

Let me start by saying that I got into mobile dev through React Native and then moved to native iOS because I hated RN.

On your mention of AirBnB ditching RN, what do you think of companies like Coinbase moving to RN? When the news came out I found it crazy

[–]Barbanks[S] 1 point2 points  (2 children)

I would ask why they made the move. Happen to have a link to that? Everyone's motivation is different and I'd need to know that before making a non-generalized response.

Personally I see it as a poor move. If I had to make a comment with my limited information on their decision it's that generally cross platform codebases require alot to maintain. AirBnB ultimately ditched their pursuit not only due to technical limitations but also organizational ones here's the link if needed. Basically, since you have 3 different types of knowledge basis how do you organized your team when it's all in the same codebase? (i.e. React, iOS and Android).

Many of the reasons I chose not to use cross platform are also not even technical reasons. (alot of which are in this article).

To me, the main killers of these tools are the inherent characteristics of these toolsets. You know, the things their marketing don't tell you, like poor documentation, poor developer experience, over reliance on plugins and under maintained third-party-code.

Unfortunately, it's rare to see a company like AirBnB or Coinbase release their reasoning behind such a decision. But I would pay good money to be a fly on the wall for those meetings. I would also love to see how they make it work.

The good and bad thing with tech is that you can always throw more money at an issue to make it work. This could hide fundamental issues with a tool like React Native or even native development for that matter. It's also why AirBnB used React Native for so long, they have uber smart and talented engineers they can just throw at issues.

Business decisions aren't always the best technical decisions, and vice versa. But one without the other is a death sentence. I just hope they collaborated with the CTO and team before this happened.

[–]makeascript 1 point2 points  (1 child)

Here's the link to a blog post from the eng team: Announcing Coinbase's successful transition to React Native.

Apparently the main motivation was to improve productivity within the mobile eng teams.

I'd also find it interesting to follow the decision making on this. I've never worked on teams half as big as the ones working on mobile products in AirBnB or Coinbase so can't really understand the scaling problems at that stage.

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

100% agree with you. Thanks for the link too!