How to manage multi-language React Native apps? - react-native

I work for a small Startup and we ran into an issue. We already launched our React Native app in multiple countries and for those countries we use the same repository.. Currently we are using multiple main branches such as main-cz, main-en ... but this setup doesn't really work anymore since the team is growing and this setup leads many errors.. Originally we wanted the different countries into one repository because most of the code is shared but we realised that we have different setups now in different countries but still not that different to manage multiple repositories. How do you guys manage a multi language react native app on Github? If you have any experience how to manage apps/workflow properly please let me know.
We would like to create an easily manageable multi-lang react-native workflow

In order to manage multi-language you can use this package react-native-localization. It is easy to install and easy to use. You can find more information at the link.

Related

Single code base multiple platform builds - a feature matrix

I have project that will have multiple clients: web, Android, iOS and probably a desktop version too.
As I see a few technologies that claim to help me with this like Flutter, React Native, Native Script, Xamarin(?) and others, I do not know which ones might fit (and of course I do not want to study all of them only to find, in the end, that something I wanted is missing).
[As I do not want this to be tagged as a "opinion-based" question I selected a few specific questions that should give an objective information on each technology someone might mention - more or less similar to a feature matrix]
Here are a few questions that a technology / framework should pass in order to be a good pick
Can I write a single code and then have builds for separate platforms? Or to what degree can I do that? Does it look decent (native) enough on a specific platform?
What additional installations do I need in order to obtain a build for a platform? (Ex: Do I need to install Expo Client for React Native in order to be able to run the app on device?)
How easy is to access the native API in case I need it? (Run it in background, battery level, screen brightness, services, file system access, etc.)
Can I write also server side code with it? To what degree? (Ex: Can I put Dart on server side?)
What is the level of support from industry and dev community on it? (Is it backed more by a company or community?)
Please mention any other platform that I might not mentioned and you have experience and can fulfill the requirements.

Is React Native good for cross-platform Machine Learning apps built with TensorFlow.js?

With the release of tfjs-react-native and the ample support for the platform, is React Native stable and reliable enough for a startup to go all-in on to build cross-platform Machine Learning apps?
Note: We are building a Health-Tech app that uses dietary and physiological data to recommend exercise plans and meal options for optimal health. The most resource-intensive task the app would likely perform is to use open-pose like models to improve exercise posture.
From AirBnB's blog, they moved away from React Native because they had to maintain 3 different codebases as they had started with native development. We are just about starting and have experience with React but are open to considering others like Flutter.
I think you're asking two different questions, you can use tensorflow-js in any js framework. If you want my opinion: go with React, there's simply more documentation on using tensorflow with React, and you already have experience with it. Just don't start developing three different codebases, that's not a matter of React/TF vs Flutter/TF, it's a matter of organisation.

What software would you recommend for making a simple list-creating app for iOS and Android?

So, my aunt wants me to make an app to help people create lists and be more organized. It would also have pre-made lists and tips that occasionally appear. We both want it to be for iOS and Android. Does anyone have recommendations for what software I could use to create something like that? One other thing to note: I can't use XCode because I'm not a mac user. Thank you for your input.
This question depends a lot in preference and personal opinion...
Unity is my personal favorite tool to deploy in multiple platforms and even if its a game engine I have used it for simple user interface aplications with very little effort and bug count... the withdrawals are that you use a "lot" to make so little... the whole physics engine does nothing and the apk weigths at least 20Mb ... but its a very simple tool that could do the job in a couple of days having little experience and thats what i like about it.... theres also Xamarin C# , Android studio... React.. Depends a lot on your liking...and personal preference.
If I were you, I would go for React Native it is a mobile apps building framework using only Javascript!
Here is a showcase of real-world apps using RN: Who's using React Native?

best prebuilt components for login page and user module for react native?

I'm creating a new mobile app in RN which will require a login page. I can build all of this from scratch of course but I wanted to find out, based on the latest technology and trends, the most common tools, technologies and aproaches that RN devs are currently using for this. Essentially, if you were to create a brand new mobile app in RN today, what approaches and components would you use? My preference is to implement the login module for free, except for my labor, unless there's a high quality aternative for a few dollars per month, which saves a significant amount of implementation/troubleshooting/overhead/etc that a lot of RN devs are currently leveraging.
Your question is quite open ended but here you go.
UI Components
You need your new app to look good and user friendly, these two are what i would almost always choose between they provide all the components you need to have an elegant app and are light-weight dependencies:
react-native-paper
react-native-elements
State Management
Almost always you will need to share certain values, arrays, objects, etc. between components, to achieve this i usually decide between:
React Context - if i am building a simple small scale application.
React Redux - if the application needs to be highly scalable and need enable certain features Redux can help with (i.e. offline application usage, etc.)
Note: i would highly recommend you using Redux for state management, true the boilerplate is a pain but it will help you greatly on the long run.
Miscellaneous
Expo - Pretty much most of my applications use expo platform, i would say your application development timeline is cut by 1/3 using it, however the greatest downside would be the inability to integrate native modules with it like how you use link in a normal react native application.
Axios - For any HTTP related requests
React Navigation - For handling my application routing and navigation
Bonus
If you are actually just starting a new application, i have just finished setting up a quick boilerplate that pretty much uses all the technologies i mentioned above. as well as pre-setup authentication flow, theming (Light and Dark theme) and some extra stuff!
Check it out on GitHub :)
Hope this Helps!

React Native vs Swift/Objective-C/Java Native

I'm working on a new project for a Fintech company and I have been tasked with looking into whether we should go with React Native or native Swift/Objective-C/Java for our mobile app development technology and strategy going forward.
I have done loads of research into this and have read many of the case studies relating to React Native, but I still don't feel I have enough to make an informed decision at this point.
The broad app functionality will include things like:
Data related functions such as Account Balances and Statements (pretty simple)
Image capture of identity documents and selfies of the users
Capture of biometric data
Push notifications
Some of this is pretty standard and simple, but some of it will require the app to use low level device functions and/or use 3rd party Android and iOS SDKs.
So, in terms of working towards the decision of a mobile development strategy, can I ask you for your input, based on your recent experience, on reasons to consider React Native over native Swift/Objective-C/Java development in the light of the planned functionality listed above (including reasons why it may be far better to stick with the native languages/platforms).
From own experience I can tell that React Native is a good choice for most of the apps when you need to develop and iterate fast. It usually means it would be cheaper to develop for a customer.
Looking at the list of features I can not see anything that can not be done in RN. Sooner or later you'll have to dive into native code, usually to bridge native modules with JS. I've done this multiple times, it's not that hard and documentation on RN website helps a lot.
Be aware that you'll most certainly run into stupid bugs and you'll have to find workaround. At least this happened to me multiple times when I was building RN app half a year ago, maybe now it's more stable.
Also I believe it really depends on what are the devices of potential app users. I've never developed for Android, but heard from fellow developers, that on mid-level Android devices RN runs much slower, this should be tested from the very beginning.
React Native has a really nice and tempting idea behind sounds like "unified and almost fully shareable codebase for different platforms including Web". But from my experience (not so extensive but still) the reality is a little bit different – at some point you will face some issues with native code for sure, and it would be really good if you have experienced Swift/Objective-C/Java developers in your team to deal with it. Don't trust the promises "all you need is just a React Front-End Developer". The React Native platform itself seemed to me more like a magical blackbox which I ran with a single command having no any idea what's inside and how it actually works. You have to know at least something about Xcode and Android Emulator even if Facebook is trying to hide this aspect it from you as much as they can.
TL;DR In my opinion if you really want to try React Native for something more complex than TodoMVC then you need to have at least 3 developers: Web (JavaScript/React), iOS (Swift/Objective-C) and Android (Java). Or just one Superhero.