Live data from Hacker News

Building all of our new mobile apps using React Native

engineering.shopify.com

261–270 of 588 posts

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

#261

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…

> they don't need to know any objc/swift/java/kotlin to build the product.

I have a hard time believing this, and I've been making apps on both platforms for >10 years. And I love react-native. My latest day job is basically forking popular react-native packages, often rewriting them in Swift, fixing numerous bugs, and adding features specific for our company.

And all this experience has taught me that in no way can you expect anything but the most basic, ugly CRUD app from a JS dev. I have tried many times to assign "just" the cross-platform code to a javascript person and it never works.

What do you do when there are native build errors? Xcode needs to be upgraded, or parts of your RN modules are deprecated? Gradle files need to be actively maintained. There are features and UI behaviors that are difficult to grok without some background on the individual platforms (e.g., push-notifications). There's also combinations of packages that can break your app- "react-native-sound" and "react-native-audio", the sound and microphone packages respectively, modify the same singleton on iOS. Adjusting settings in one breaks the behavior in the other! How could a JS dev possibly hope to solve something like that?

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

#263
post #172

I guess I'm old, but I can't believe that many people shop on their phones. You have limited screen space and your ability to input data efficiently is limited. It just seems like a really poor medium for researching a purchase. Guess I'm a dinosaur.

Many online marketplace give discount when you purchase via their mobile apps. Kinda make sense as they can harvest a lot more data from installed app (compared to web) and spam push notifications daily to drive up sales, so they push hard to make people shop from their mobile apps instead of desktop web store.

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

#264

Earlier quoted context omitted.

Instagram.

Instagram has very limited parts of the application written in RN, like 'Edit Profile'. [1] The vast majority of the app is implemented natively. [1] https://instagram-engineering.com/react-native-at-instagram-...

That article is 3 years old, but it mentions "Photos Of view", "Post Promote", "Save Posts", "Checkpoints", "Comment Moderation", "Lead Gen Ads", "Push Notification Settings", and "SMS Captcha Checkpoint". At any rate, I'm curious to see how this has evolved over the past 3 years and I remain impressed with their seamless integration of RN and native.

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

#265

Earlier quoted context omitted.

That really just says it all doesn't it? It's basically an admission that the use of cross-platform frameworks is worse for customers/users, but they're going to ignore that to optimize for their own software engineering org.

All this says to me is that they wanted to limit their risk exposure by doing an experiment on Android while maintaining native on iOS. Why is that hard to comprehend? Their move to RN this year should underscore the success of that experiment.

The thing is, you can rephrase:

> by doing an experiment on Android while maintaining native on iOS

as:

> by throwing their Android users under the bus

It may be a cynical take but it's not an invalid one to take when the thrust of the rest of the paragraph comes down to "the native app's performance is so good, we couldn't dream of changing it".

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

#266

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…

> with 3 developers

There is a fairly large chasm between a small team and a Shopify, AirBnB, or Udacity. These companies have dozens-if-not-hundreds of developers piling on complexity.

These companies don't necessarily feel the pain of building on somebody else's sand on day 1 or day 100, but on day 1000. This is what AirBnB and Udacity ultimately discovered.

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

#267
post #230
post #209

Earlier quoted context omitted.

Right, but it doesn't really optimize for their engineering team either since the only reason to use something like React Native is the ability to do both platforms at once.

Is that not a tremendous optimization for the team? It probably cuts the team size in half (or, seen another way, doubles its size for free), and it unifies of a lot of the mobile and web stacks behind similar languages and tools, which in turn would allow some unification in the hiring and recruiting pipelines.

It's an optimization they aren't using, React Native is only being used for Android.

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

#268

Earlier quoted context omitted.

All this says to me is that they wanted to limit their risk exposure by doing an experiment on Android while maintaining native on iOS. Why is that hard to comprehend? Their move to RN this year should underscore the success of that experiment.

The thing is, you can rephrase: > by doing an experiment on Android while maintaining native on iOS as: > by throwing their Android users under the bus It may be a cynical take but it's not an invalid one to take when the thrust of the rest of the paragraph comes down to "the native app's performance is so good, we couldn't dream of changing it".

I don't know if you read the article or not but the title is very clearly: "React Native is the Future of Mobile at Shopify". So the Android experiment was successful.

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

#269

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…

I'm sure Shopify has way more than 3 developers working on their mobile apps.

They can certainly afford to have separate teams doing web, iOS and Android development and optimize for each environment.

Post reply on HN