Adding react-native-windows support for an existing React Native project - react-native

We have an ongoing React Native mobile development project targeting Android and iOS. Now a requirement has come to use the app under Windows environment. There is not much information on the web we could found on this.
If we can get some insight on the complexity, pitfalls and challenges in adding windows platform for an already existing React Native project, that will be immensely helpful.
We are using Hermes and we understand the support is still experimental
Realm support is not clear. Realm has support for UWP but is it in a stage where we can use in production level?
How much support is available under windows for other 3rd party libraries
How much code will be able to share between platforms. Will we have to write lot of native level code?
Would react-native-web be more safe bet, if that is an acceptable option for our customer
So far we went through the documents available on web such as
https://learn.microsoft.com/en-us/windows/dev-environment/javascript/react-native-for-windows
https://microsoft.github.io/react-native-windows/docs/hermes
https://github.com/realm/realm-js/issues/432
https://www.mongodb.com/docs/realm/sdk/dotnet/#std-label-dotnet_supported-platforms
However, have to provide a time estimate and cost benefit analysis before actually implementing it. Thats why we would like to get some insigth from someone who has already done it.

Related

Should I use react-native for the web to only build a web app

My employer would like me to build an application using React-Native for the web. He only wants a web app. The project is for a client who may want a mobile app down the road. It seems like the best use case is to build both at the same time. Since we are not doing that I suggested we just use React but he is pretty committed to RN for the web, which I am totally willing to do. Are there any reasons not to build just for the web, complications? If we are not going to use it, the client would need a sound list of reasons why, so, if anyone has suggestions, reasons I could list would be helpful. Or, if it is a fine idea, helpful suggestions to keep in mind moving forward. Pretty general I know but I appreciate it. Thanks!
One factor to consider would be how far in future would the client want a mobile app. If it is more than a couple of years away then you might have to spend considerable time upgrading libraries (including react-native) and addressing the deprecated APIs when you start building the app in future. In this case it might be easier to simply start with a fresh react-native project with latest library versions instead of spending time upgrading and fixing an older code.
The tradeoff of spending time upgrading libraries vs porting UI components to mobile environment will also depend on your app design and complexity and how well your code is structured.
Another factor to consider would be community and open source libraries available for react native web. According to my understanding, react native for web is relatively new platform and there might not be as many libraries to support your design needs as of today. Maybe your team can do a little research and figure out if there are well maintained libraries available for your design needs and how much time would you have to spend designing components from scratch.
Lastly, regardless of whether or not you design your web app now using react-native web, you will still have to spend significant time testing the mobile app later when the client needs one. Building a web app using react-native does not eliminate the need to thoroughly test a mobile app the app on a mobile platform.

How can I monitoring errors in React Native?

I'm trying to get errors from my React Native app, just now the app it's in production so I need a free way to get the users errors to fix it and know what happened. I am using React Native with Expo.
Abstract / Answer
Generally speaking, Expo offers great error detection for debugging purposes when running it in local development mode. But since you weren't specific, I'm going to assume you meant production not development. Your best bet would be using Sentry. If you would have asked me before then I would have suggested building your own module based on native events and report back using Firebase or something similar. But since Sentry is now well integrated into Expo, then your best bet is using it. It's a great platform with many features, it's definitely worth it.

Augmented Reality in React-Native

It is a question to professional developers at react-native. My react-native application needs augmented reality in it to develop complex games. I tried using viro-react, if you know this package. Developers of viro-react gave up on the package:
Not supported on IOS anymore
Documentation for some components is missing or poor
Are here people who is successfully using AR in their apps? Can you please tell me how you are doing it (different package or native components)? If it is native components, can you please tell me in a nut shell how to use native components with AR?
Thank you
Viro is actually a company that no longer exists, so don't hold your breath waiting for them. You can try using this example that works on both Android and iOS if you really want to use viro.
From my experience, there is no great solution to building AR apps in react native. You can also build the AR part of your app in Unity and import it into your app using this package.

Migrate from Titanium to React native

I have been working in an enterprise app created with titanium SDK, specifically with Alloy, we have been facing that the community and tooling of titanium are quite a few, we are feeling all the time that we are stuck with this technology, so our team have seen in some blogs that they used to talk about titanium SDK that they have been migrated their complete projects to RN, but there is not any manual to do it, so I'm looking for a general recipe o at least a road map to make the migration and have a better idea about the implications.
Thank you so much.

Main differences between Appcelerator Titanium and React native

Both frameworks are (hybrid) mobile app frameworks which try to access the native UI components with the JavaScript API provided by the different platforms like iOS and Android. They don't use any HTML and CSS for the UI design like e.g. Ionic do and they are not wrapper frameworks but actually a kind of cross-compiler frameworks. That's what i found out. BUT I didn't get the actual differences between these two frameworks. Why should i prefer one of these? Are they doing exactly the same job?
best regards, Tom
I know this is quite old, but I'll give my answer for the benefit of anyone else arriving here.
Full disclosure, I worked for Appcelerator from 2012-2019.
In short, they're both quite similar.
You write a specific flavor of JavaScript that includes custom objects
Your JavaScript code gets compressed, minified, etc. so it becomes the input to an interpreter that gets shipped with your app
When your app runs, it launches the interpreter which starts executing your code
At this point, JavaScript is being run in "native land", so the interpreter can act as a bridge between your JavaScript code and the native SDK
The result is a native app with access to features of the underlying platform
A "native app" shouldn't simply be defined as an app that runs natively, because that would make a PhoneGap app a native app.
A "native app" should be defined as an app that runs and behaves natively. That means, an app that abides by the native OS' ui/ux guidelines.
MAIN DIFFERENCES?
I'd have to say that the main difference is its internal design. Appcelerator started in 2007, when "mobile" was very young.
React Native was launched in 2015.
In 2015 mobile was already in full swing, and mobile OS' were pretty mature, so I infer that React Native's design benefits from all lessons learned by Appcelerator (and others).
As for which one is better, I'd say React, because Titanium is now dead.