Experiences with NativeScript vs React Native? (vs PWA?)

Experiences with NativeScript vs React Native? (vs PWA?)
0

Hey guys, Just a general question. I will have to build a mobile app for my company and just wanted to hear/learn from others based on their own experiences.

I know React Native sounds like a solid bet, but I can also see NativeScript is really also a very decent choice. Plus you can write an app with Vue/Angular and vanilla JS.

Has anyone used one or other and if so, what was it like? What did you like/dislike? How was the learning curve? Does your app perform well / are there noticable issues?

Also, I know PWA’s are gaining tons of momentum too. Is this a seriously viable option to build a PWA instead of a mobile app altogether?

Any experience/tips/advice/knowledge welcome :slight_smile:

Also is the FCC curriculum going to cover React Native at some stage?

Thanks in advance, and I look forward to the discussion !

Can’t comment on Nativescript, but I have worked with both PWAs and React Native apps. Personally, I think PWAs are the way to go in a lot of cases. Definitely easier to work with if your team has a web development skillset.

React Native outside of expo can be a huge headache. The actual programming is fun but dealing with compilation issues, app publishing and versioning, etc can be super annoying. If you go down the React Native route I would highly recommend staying on Expo.

I work with an app that was made close to a year ago in React Native, and it feels like a really old app sometimes since things change so fast in React Native land. We constantly have to deal with issues surrounding older versions not working with certain packages or not building in ios or android. Sometimes I feel like all it takes is a gust of wind to cause it to stop building.

Thanks for the awesome insights.

I would love to explore the PWA route more so I can leverage my web skills and move faster. Plus the added benefit of browser APIs and no need to publish to apps stores / test for different devices or learn their own APIs.

In terms of PWA… I hear Safari / iOs is lagging behind in terms of support. In your opinion is this a big issue?

I’d love to hear more about your PWA experience! Is it possible to just save the site to the homepage and then it looks and feels like an app?

Thanks again for your help!

You can still install them like a regular app through safari, but the process is a little more involved for the user. On the ones I’ve worked with, we weren’t too concerned about having users install so just let them use it in their browsers. If you’d like users to install, Ive heard one approach you can take is to manually check if the device is iOS and safari and have a pop-up with installation instructions. Still requires some additional user action though, more than Android where a native pop-up will ask you if you want to install

Cool, yeah I suppose just using feature detection to handle various browser support issues would be the way to go. I like the idea of a PWA in terms of being able to move fast and not be restricted by the app store’s red tape.

I just wonder though if users really care whether an app is “native” and if there is a perceived value in having it been downloaded from the app store vs. browsing on a mobile browser.

When building / working on your PWA’s what stack did you use? Was there much of a learning curve to implement the PWA specific settings/functionality?

Thanks!

PWAs are the easiest to develop by long way. But there are serious caveats about features (it is dependent on them being available on the web platform).
Probably the most serious is that iOS doesn’t allow state to be saved between sessions. Discoverability is much, much lower (though that may be irrelevant, entirely depends on use case). IMO not mature enough for much serious at the minute, but it’s completely dependent on use case.

A [well built] native app is going to feel better to use than a PWA as things stand, no question. Critically, power consumption is generally large relative to native apps – as an fairly extreme example, this forum is a very basic PWA, and it ticks my battery down on average about 1% every couple of minutes or so even if I kill everything else (Android, Pixel 2, & I assume it’s the networking causing it). It’s not even close to as easy or viable to optimise these things in a PWA as it is a native app.

An authority saying “this is kosher” is currently important.

Yep, spot on my experience as well. One thing I would say as well is yes, Expo is quite nice, but it’s shininess hides quite a lot of stuff. It makes RN development into a magic black box, and I’ve found the Expo platform has a tendency towards memory leaks while it’s running in development that chew through system resources (YMMV)

Thanks so much for the great insights! It really helps me understand more.

So that being said, there are obvious drawbacks to PWA’s - but again it would depend on use case and I have read up a bit more, there does seem to be solutions to the issues you mentioned, and more.

So next steps for me is to try build a PWA and a native app - I’m thinking a Nuxt PWA and a Vue-Nativescript app :smiley:

@JackEdwardLyons How do you develop PWA without frameworks like angular? just curious…

I’ve never built a PWA so I wouldn’t know, but I’m sure it’s entirely possible - and theres surely tutorials out there to get started.

1 Like

You need to serve the app over HTTPS, include a manifest file (here is a manifest generator: https://app-manifest.firebaseapp.com/ ), and include a service worker script (which is the thing that makes it a PWA). Note the service worker doesn’t have to do anything, it just has to be present. That’s all that is needed to be a PWA.

1 Like

Thanks for the heads @DanCouper… I’ll cross that bridge when I get there :slightly_smiling_face:. Also, I bookmarked your response.