Live data from Hacker News

Building all of our new mobile apps using React Native

engineering.shopify.com

171–180 of 588 posts

Re: Building all of our new mobile apps using React Native

#171
post #86
post #10

Arguably the biggest concern with React Native is that it is controlled by a single entity, Facebook, and that they are not one of the leading mobile platforms who from a business perspective have strong incentives to ensure the future of their respective app eco systems. Facebook's incentives with React Native are somewhat unclear. This is a big, yet often unspoken, reason companies are vary of depending on React Na…

It is no longer the case that Facebook is the only major contributor to React Native. Facebook and Microsoft now just started formalising their collaboration on the project with monthly(ish) meetings[0]. Other large companies like Twitter are using React Native Web (different than ReactJS) for their main progressive web app[1]. Other large companies using React Native are: - JD.com - Skype - Uber - Tesla - Discord Yo…

Microsoft should be on that list as well.

Re: Building all of our new mobile apps using React Native

#173
post #171
post #86

Earlier quoted context omitted.

It is no longer the case that Facebook is the only major contributor to React Native. Facebook and Microsoft now just started formalising their collaboration on the project with monthly(ish) meetings[0]. Other large companies like Twitter are using React Native Web (different than ReactJS) for their main progressive web app[1]. Other large companies using React Native are: - JD.com - Skype - Uber - Tesla - Discord Yo…

Microsoft should be on that list as well.

I missed it off as I mentioned them in the paragraph above. They seem to be investing more and more into React Native with support for Windows and using it in Office.

Re: Building all of our new mobile apps using React Native

#174

Shopify is right to use React Native. I build an app with React Native Web and we produce Android/iOS/web from the same code base with 3 developers. No, it's not perfect. Yes, JS can be awkward and confusing. Yes, a truly native app built by expert platform-specific developers would be better. But I'm able to ship this product with less than half the team size I would need for native development. JavaScript developer…

> JS can be awkward and confusing. > JavaScript developers are cheap to hire There’s your problem. Go hire JS devs that know what they’re doing.

Hiring good devs doesn't make JS less stupid, you have to recur to third party stuff like lodash and https://github.com/inspect-js to keep it tolerable.

Re: Building all of our new mobile apps using React Native

#175

Shopify is right to use React Native. I build an app with React Native Web and we produce Android/iOS/web from the same code base with 3 developers. No, it's not perfect. Yes, JS can be awkward and confusing. Yes, a truly native app built by expert platform-specific developers would be better. But I'm able to ship this product with less than half the team size I would need for native development. JavaScript developer…

>Pragmatically, most apps are so bad that if your Android app has an iOS look-and-feel nobody seems to care.

Yes, but I not so sure if it works the other way round.

Re: Building all of our new mobile apps using React Native

#176
post #130

Earlier quoted context omitted.

You say that like writing plugins is hard or undesirable.

That's what I don't understand when people criticize frameworks like React Native... "I didn't like that I had to build 15% of the app in native code, so I ditched RN and now have to write 100% of the app in native code, but twice and in two different languages"?

React Native isn't the only abstraction out there. You could use Flutter, Ionic or similar.

Or do they have the same issue?

Re: Building all of our new mobile apps using React Native

#177

I don't understand why so many large companies use platform abstractions. At a certain size you're big enough to have an iOS team that develops natively in Swift/ObjC and an Android team developing natively in Kotlin or Java. Developing directly for the platform, with expertise in that platform, is a proven long term bet. Screwing around with platform abstractions seems much riskier. The situation is a lot different…

Headcount is the biggest expense in almost all companies. Larger companies also have larger and more complex apps, so while a small company may have a small iOS development team, large companies have massive iOS development teams. Massive team * number of platforms = serious money. You also get into all kinds of platform and feature parity issues. "Why can't we do X on Android but only on iOS?", "Well because they're…

But developer headcount doesn't scale to the size of the installed base. Whether you have hundred-thousand users or a million users, you don't need a larger development team. Once you have a reasonable-sized team that can make the app, you don't need any more developers, no matter how successful your app is.

Having different teams for different platforms might result in a slightly larger headcount my point is that risk isn't worth that meager benefit if you can afford it. You're still going to need platform-specific knowledge, and then the abstraction knowledge, and you're still deploying to multiple platforms!

You also don't need to let the technology choices drive the team structure. You can share a huge number of resources between iOS and Android including planning, management, assets, etc. Sure you're building two different apps but you don't need to keep those teams in different cities.

Re: Building all of our new mobile apps using React Native

#178
post #111

Earlier quoted context omitted.

Yes. The common denominator isn't as low as one might expect. I'd guess at least 90% of all apps could be easily done with React-Native.

Sure. But what if the entire world doesn’t want to learn JavaScript? What if you don’t already know HTML, CSS, and JS? RN makes ZERO sense at that point. As a C developer, man, Flutter looks pretty damn logical!

If it makes more sense, then go for it.

With all of these platform abstractions you just need to understand the trade-offs they're making.

Re: Building all of our new mobile apps using React Native

#179

I thought the cool thing to do was declare React Native dead for your org, not the new hotness?!? I try to re-evaluate my opinion of the mobile ecosystem monthly, and would love to know how people agree / disagree with my rankings: 1. Just make a web page 2. Native iOS & Android 3. Flutter 4. Some ordering of remaining cross-platform tools depending on requirements. (React Native, Vue Native, Xamarin, Ionic, Titanium…

I have a different order:

1. Just make a web page (specially since many apps are just pretty CRUD ones)

1.1 For certain devices WebGL/WebAssembly can eventually also be an option

2. Native iOS & Android

3. Native iOS & Android with server side driven code for the business logic (maybe even UI layouts)

4. Native iOS & Android for the views with C++ for business logic

5. Your point .4 regarding cross-platform tools

I don't have high hopes for Flutter, with Chrome and Android teams also pushing for their own solutions, and its dependency on Dart.

Re: Building all of our new mobile apps using React Native

#180
post #56

Honestly I think the future of mobile will just be... mobile websites. What's missing until regular websites have parity with mobile apps in functionality? - Accelerometer and all sensor support (some of these are already supported on various browsers on various OSes) - Background support - Bluetooth - WiFi - Better notifications - etc. Sure there will always be a need for native, but 99% of apps don't need any of th…

> What's missing until regular websites have parity with mobile apps in functionality? Performance. But we're beginning to approach performance parity - not by the web becoming an faster, mind you, but by apps becoming slower. It used to be only cheap/poor-quality apps that felt like glorified web pages, but now even many high-profile apps are just parts of a web stack embedded into an app.

Agreed. Map performance especially on native is night and day -- 60fps smooth scrolling even with React Native, vs choppy shitiness on the web.
Post reply on HN