Live data from Hacker News

Building all of our new mobile apps using React Native

engineering.shopify.com

421–430 of 588 posts

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

#421
post #379

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…

> Honestly I think the future of mobile will just be... mobile websites. Indeed. A lot of people still think that native is superior than web but the problem is that most websites are bloated pieces of crap. If anyone doubts this check the Missive email client on iOS which was even featured by Apple on the AppStore and runs on Cordova: https://medium.com/missive-app/our-dirty-little-secret-cross... (sorry for the Med…

I didn’t have to go any further than the login and signup screens to see that it doesn’t feel native.

- No transitions between screens, just jumps

- Tapping field brings up keyboard, then whole screen jumps up about 30 pixels instead of smoothly animating

- Scrolling while there’s a blinking cursor has cursor detach from field until you lift your finger

- Doesn’t respect dark mode

- Doesn’t respect dynamic type consistently (text size)

- Other weird little display artifacts

Not saying it’s terrible, but it’s a good example of why native is still the way to go if you can afford it. It’s just a better user experience.

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

#422

Earlier quoted context omitted.

> Apple gear is no longer as comparatively expensive as it used to be It still is if one can't afford it. Apple could provide macOS and iOS VirtualBox images for developers to build and test their apps. > why complicate their business model to give themselves more work for less money. Because that's the right thing to do when you shut out indie developers using expensive equipment and annual developer fees. Developer…

If you can’t afford $900 for a Mac Mini and a 1 year developer license and can’t sell anyone on letting you borrow the money, is it really a great idea that would stand out among the million of apps out there? Also, you don’t have to buy a Mac. You could always pay Mac Mini Colo $80 a month and develop remotely.

There are places where people make less than $80/mo, but they still have dreams and awesome ideas, and to deny them the opportunity to start programming and share their work because they can't afford to pay up is apalling.

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

#423

Earlier quoted context omitted.

> Apple gear is no longer as comparatively expensive as it used to be It still is if one can't afford it. Apple could provide macOS and iOS VirtualBox images for developers to build and test their apps. > why complicate their business model to give themselves more work for less money. Because that's the right thing to do when you shut out indie developers using expensive equipment and annual developer fees. Developer…

If you can’t afford $900 for a Mac Mini and a 1 year developer license and can’t sell anyone on letting you borrow the money, is it really a great idea that would stand out among the million of apps out there? Also, you don’t have to buy a Mac. You could always pay Mac Mini Colo $80 a month and develop remotely.

> You could always pay Mac Mini Colo $80 a month and develop remotely.

In my country, one of the electronics stores has this thing where you pay about 35 USD per month, each month for 24 months, to have a MacBook Air in your possession, but which you don't own. So I guess in a way it is sort of rent/leasing. But the nice thing is that after the 24 months are up, you will be able to exchange it for a new model.

It's sort of like how mobile carriers do with mobile phones also sometimes. Except in this case of the MacBook Air that you are paying to have in your possession, there is no additional subscription to anything (unlike with the cellphones that mobile carriers charge you in a similar way for, but where in addition to paying for the phone you also need a to pay for subscription to a carrier plan).

I looked at the deal, considered it, and took it. My reasoning went that, over the span of 2 years battery life will probably degrade to the point that I want to replace the laptop after that. (Battery life was one of the major reasons I was looking to replace my previous laptop in the first place). And for the amount of money that you'd sell a two year old laptop, it will probably have lost about as much in value as what I am paying these guys to rent/lease the thing. (Obviously not quite the same, since they are making money from this deal. But close enough.)

So I went ahead and took the deal. They tried to sell me on insurance for it too. Guess that is one way for them to make a bit extra on the deal. I am generally careful with my stuff and I do have some home insurance plan already that should cover at least a bit of it if I do end up accidentally damaging the laptop.

I was very happy with that decision and continue to be so. It might not be for everyone, but for me it was a very suitable deal.

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

#424

Earlier quoted context omitted.

If you can’t afford $900 for a Mac Mini and a 1 year developer license and can’t sell anyone on letting you borrow the money, is it really a great idea that would stand out among the million of apps out there? Also, you don’t have to buy a Mac. You could always pay Mac Mini Colo $80 a month and develop remotely.

There are places where people make less than $80/mo, but they still have dreams and awesome ideas, and to deny them the opportunity to start programming and share their work because they can't afford to pay up is apalling.

A quick Google search shows you can buy a perfectly usable 2014 refurbished Mac Mini for $300 and you would still need at least one iPhone to test on.

How much would a PC cost that could hypothetically run MscOS in a VM well enough to run XCode?

Is it also “appalling” that if I had a great idea for a PS4 game I would have to pay at least $2500 if Sony would even let me buy one?

https://www.polygon.com/2013/7/24/4553842/so-how-much-does-i...

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

#425

Earlier quoted context omitted.

Not OP, but I've tried all of the big SPA frameworks (not specifically react native though) and I decided to use flutter for a non-trivial side project and I don't ever want to touch the big SPA frameworks ever again. Flutter is also fast, pretty lightweight, and good on battery. It feels native on iOS and Android. I have little Android development experience (side project years ago) and no iOS experience. It's easy…

I'm considering using Flutter (instead of Ionic which Ive been using for mobile up till now). In terms of Node breaking when switch platforms - are you syncing the node_modules folder between machines somehow? Don't do that. Doing "npm install" will sometimes install binaries specific to a platform that won't work across them. Put node_modules in your.gitignore, and sync between machines using version control rather…

If you use "npm ci" instead of "npm install" there's even less chance of breakage.

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

#426

Earlier quoted context omitted.

Ten years ago Facebook fought this battle and lost. [1] [2] [3] [1]: https://www.facebook.com/notes/facebook-engineering/using-ht... "Using HTML5 Today" [2]: https://appleinsider.com/articles/12/09/11/facebook_admits_h... "Facebook admits HTML5 not competitive with Cocoa Touch" [3]: https://techcrunch.com/2012/12/13/facebook-android-faster/ "Facebook Speeds Up Android App By Ditching HTML5 And Rebuilding It Natively…

Ten years ago, Facebook tried with HTML5 -- and 10 years before that Java tried with Swing and then JavaFX. There has always been this push for a "write once, run anywhere" application development platform - long before it was the mantra of Java in the late 90's, or QT a bit later, or React today. The truth is that the platforms change faster than the cross-platform tools. Swing lost out not because it was horrible t…

Did you ever heard of WeChat? The Facebook quivalent of China, which is on its own an operating system serving many miniapps. What's interesting about it it lets other apps access qr scanning and the WeChat wallet for payment.

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

#427

Earlier quoted context omitted.

Oh duh. And it sounds like iOS doesn't support that for PWAs yet?

Correct, many websites say that such support is "coming soon" but I've been hearing that for years now.

Sometimes I wonder if Apple wouldn't support web apps at all if they could get away with it. A fully functioning PWA could essentially sidestep the app store for a huge class of applications. The incentives really just aren't aligned.

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

#428

Earlier quoted context omitted.

> Apple gear is no longer as comparatively expensive as it used to be It still is if one can't afford it. Apple could provide macOS and iOS VirtualBox images for developers to build and test their apps. > why complicate their business model to give themselves more work for less money. Because that's the right thing to do when you shut out indie developers using expensive equipment and annual developer fees. Developer…

If you can’t afford $900 for a Mac Mini and a 1 year developer license and can’t sell anyone on letting you borrow the money, is it really a great idea that would stand out among the million of apps out there? Also, you don’t have to buy a Mac. You could always pay Mac Mini Colo $80 a month and develop remotely.

There are places in the world where developer labour (especially if the developer is trying to work for himself) is far cheaper than the 900$ capital investment of what essentially is 500-600$ worth of hardware with a shiny aluminum case. Don't forget that not everywhere in the world developers have to choose between several jobs that pay tens to hundreds of thousands of dollars a year.

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

#429

Earlier quoted context omitted.

Look at your most used apps - none of them are "responsive pages". That should tell you something. Folks who have tried responsive pages haven't done that well. I am curious - what is the most popular responsive webpage on iphone would people say? I'd like to check out the current leader in this space.

I haven't tried it on iOS, but Twitter's web app is quite good on Android/Firefox and Android/Chrome. Not quite as good as native, and prone to developing lag if I don't occasionally restart the browser. But surprisingly good. They talk about the process of building it here: https://blog.twitter.com/engineering/en_us/topics/open-sourc...

I use the web app on iOS. Feature parity is 100% for me because I don't use push notifications at app on Twitter. The performance is a little worse (mostly touch targeting is not as good) but once you get used to it it is not noticeable. This is an acceptable tradeoff to me because it allows me to block almost all promoted tweets with Safari content blockers. I also think the Twitter native app may do devious things that are less likely to be permitted by Safari.

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

#430
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.

This overstates the gains by a lot.

1) Each platform still requires a good amount of special attention.

2) The React Native project introduces breaking changes far more frequently than the underlying platforms

3) Being an abstraction layer, eventually something will break, and you’ll still need someone who understands cryptic linker errors and platform specific quirks.

There are cases where it definitely makes sense, but the hidden costs need to be accounted for.

Post reply on HN