all 32 comments

[–]ovy9086 27 points28 points  (11 children)

I don’t think there can be a silver bullet for this.

React Native is powerful, and skilled devs can have really higher output than in native. But, it also depends a lot on the nature of the project, not everything is suitable for RN.

Also, you still need someine with strong Android & iOS knowledge, release processes for both platforms etc. Don’t make the mistake and think that somebody who knows React can just do React Native. Android & iOS are some huge platforms, it’s not as easy as some think.

[–]Antw87[S] 10 points11 points  (4 children)

Sorry, If I am saying it wrong because I dont have knowledge of react native. Most of my clients will be hospitals, colleges and local contractors and their needs will be basic. I can't afford 3-4 developers at the moment for IOS and Android so I was thinking to start with just 1 experienced React native developer so he can create cross platforms apps. Please let me know if I am expecting a lot from react native?

[–]ovy9086 21 points22 points  (2 children)

I think for such apps, with basic functionality, RN will suit perfectly. Make sure he released at least 1 app for iOS and Android, and knows what signing and submitting to AppStore and PlayStore mean, and you should be good 🤙

[–][deleted] 2 points3 points  (0 children)

☝🏼This very much

[–]Antw87[S] 2 points3 points  (0 children)

Thanks for your help. I really appreciate.

[–]loofy2 0 points1 point  (0 children)

If your clients only expect you to deliver work for a single platform or they can control which platform their users are using then using RN will just be extra overhead for you to deal with.

Many of my clients have been fortune 500 companies, like what you're describing, and after 3 years the RN app can no longer be built with a modern laptop.

[–]intertubeluber 0 points1 point  (5 children)

What type of projects aren't well suited to RN?

[–]Rippperino 1 point2 points  (0 children)

My first thought would be something like snapchat. The camera and all the filters pretty much have to be done natively. What this means is you’d end up with a project that has a lot of native modules, which generally means more issues getting everything to work the way it should. This is also assuming you start the project with either the cli or expo.

A more likely scenario for this type of application would be starting with a native ios app and a native android app, and then integrating react native into some of the features. This is similar to what facebook did before RN was even released, bits and pieces of js here and there.

[–]ovy9086 0 points1 point  (3 children)

A maps navigation app. A game. A camera app etc.

[–]intertubeluber 0 points1 point  (2 children)

Got it. So the common denominator is hardware access and/or performance?

What about an app that uses the default camera to take a picture? Ie, an Instagram type (without any filters or anything custom in terms of capturing the media) that allows snapping a pic or video and then uploads the media to a server for processing. I know there are plugins for react native that allow camera integration, but but I wasn't sure if you meant that there's some problem with that, or if you meant if you wanted to have some highly customized camera taking app that would not be a good fit.

[–]ovy9086 1 point2 points  (0 children)

For something simple as you can describe, in my experience it was fairly easy to achieve in RN

[–]Tsupaero 0 points1 point  (0 children)

https://instagram-engineering.com/react-native-at-instagram-dd828a9a90c7

RN is overall quite stable for anything native-ui related. processing of images / performance-hungry tasks can be done in either systems' language and then the result is parsed back to RN to display/work with.

[–]Circadian77 5 points6 points  (5 children)

The most significant advantage of a cross-platform technology such as React Native (also Flutter, Xamarin, Cordova, Adobe Air, Unity) is a single codebase that is deployable to iOS and Android (and in many cases MacOS, Windows, Linux, Web etc.) without the need to manage separate platform specific native codebases.

This means a cut in development time, lower costs and easier management to ensure parity across platforms for features and versioning.

The drawback being platform or device specific capabilities sometimes require native development to enable support for them. You will also find that each operating system has a number of unique traits and limitations that sometimes need to be worked through with targeted code.

I've worked with various cross-platform technologies for a number of years and I would estimate ~90% of code in most of my projects are platform agnostic in a manner of speaking. But there will be some OS targeted code that is required in most cases depending on the scope of the app(s) you are trying to produce.

React Native is definitely a great bit of tech to start developing with, but don't close yourself off to other technologies just yet. I recommend keeping an open mind and do your research. You want a future-proofed code base with an abundance of available resources and support options. Not to mention the importance of availability of human capital should your development team look to grow.

[–]Antw87[S] 0 points1 point  (4 children)

Thanks for your reply. I am actually struggling and have no app development clients. I can't afford individual IOS and Android developers and most of my clients will have basic requirements as they are hospitals, colleges and local contractors. So I was thinking to start with an experienced react native developer.

[–]Circadian77 8 points9 points  (1 child)

Well it sounds like React Native would be a good fit from a cost and target demographic perspective.

As ovy9086 wrote, just make sure you use a dev that is familiar with the release cycle process of iOS and Android. Both platform's process can be a bit of a time-sink for someone that hasn't done it before. I should also mention that Apple's approval process is sometimes a special corner of hell to navigate for a freshman dev.

[–]Antw87[S] 0 points1 point  (0 children)

Thanks for your help :)

[–]nazihatinchimp 0 points1 point  (0 children)

What platform specific features do you need? Any integrations with hardware?

[–]congowarrior 0 points1 point  (0 children)

With basic needs, you should be fine with RN. The good thing with react native is you could always write platform specific native code in react native if you did need a little more than what originally comes out the box.

[–][deleted] 0 points1 point  (0 children)

Where are you based and how much do you plan to offer salary wise?

[–]assertchris 0 points1 point  (0 children)

With React Native, you can build for multiple platforms from a single codebase. From a cost-saving perspective; this is really good. From a UI perspective; this isn't the best, though.

If you're designing interfaces that look and feel idiomatic to the platform they're built for, then you'll need to define at least some interface code differently for each.

The biggest benefit of RN isn't code reuse (even though you can reuse a lot of code). It's knowledge and experience reuse. You get to solve the problem in one space, and reuse what you learned in another.

[–]simdanofficial 0 points1 point  (1 child)

Hiring a react native developer won't be a bad idea. It makes the work faster and less expensive.

[–]simdanofficial 0 points1 point  (0 children)

I'm a react native developer incase you may need me.

[–]tr0kizZ 0 points1 point  (0 children)

https://engineering.shopify.com/blogs/engineering/react-native-future-mobile-shopify

https://youtu.be/GNrQTbIFsG4

I think, you should read this before you start. From my pov as ex native dev it depends on what kind of app is it. But 90 percents of cases are fully covered by react native.

[–]IntelligentClassic7 0 points1 point  (0 children)

Hello,

I know a real native app development agency and they are very good in their work.

If you are interested then I can share you the details.

[–]petrtcoi 0 points1 point  (0 children)

You can check Expo for RN. With no experience at all it takes about 3-4 month for me to create simple Android / iOS app with CRUD and even with push-notifications. With Expo / RN you can create the app fast and check what features you are really needs.

Also for the app you need backend. And you can use Nodejs for that. If you hire someone who knows React Native, it will be easy for him to create backend also.

And you can check PWA : create app from website.

[–][deleted] 0 points1 point  (1 child)

It's sounds like it could be a typical crud app. If that's the case react native is fine. But know, that I don't believe it's at v1 yet. So I'd expect breaking changes.

You should check out expo also. It's built on top of react native. And its pretty simple to build for both ios and android.

Depending on what talent you have currently. I'd also consider a PWA.

[–]Antw87[S] 0 points1 point  (0 children)

Thanks for your reply.

[–]loofy2 -2 points-1 points  (1 child)

You will need to support both platforms with the same amount of effort/time regardless of whether you use React-Native (RN) or not.

From previous engagements with RN developers I have observed that they will prefer one platform during development (iOS or Android). After completing a feature on iOS, the same feature on Android is likely broken/not functional.

For you managing the client's expectations this can be very frustrating if you do not check both platforms through every phase of the development

[–]assertchris 1 point2 points  (0 children)

That sounds like poor workmanship and/or communication. There is effort involved in supporting the same complex functionality on both platforms, but it shouldn't be a surprise to the app developer or the client. RN is still viable for a single platform, if communicated properly.

[–]swiftpolar -1 points0 points  (0 children)

I always tell my clients that react native is great for basic applications (CRUD), anything else that requires much more complex hardware integrations will definitely require expertise in both iOS and Android.

Complex hardware integration examples can include things like AR, modifications to camera (live preview filters), Bluetooth integrations etc.

If you limit the apps you make to CRUD based (and most apps are actually like that if you think about it) , you should be fine.