There is some information here already: White labeling an iOS app
I was wondering if there any workflows for white labeling a React Native app?
Basically if I had a core app for the app store. I would like to create white labeled versions (iOS + Android) with some modifications.
I found the project a project called white-label-app in github, I believe you can inspire yourself looking this project closer (and use them as boilerplate).
I'll try to use the majorajs, the idea of this package is "Manage white-label or skinned versions of your React Native app", sounds good for me.
You can use a combination of the React Native Bridge & product-flavors/targets to achieve what you want.
The process is extensive to setup, but once you have it setup it is very easy to add new white labelled apps to it.
I wrote a blog post that goes over every detail if you need a step by step guide.
One approach would be to use Fastlane together with react-native-config to provide values from the environment.
I wrote up a more detailed blog post about it here that explains my approach:
A React Native White Labeling Journey
I'm building the app through the CI which runs my Fastlane script, which parses the unique git tags for each app, building the appropriate app and distributing it to AppStore / GooglePlay.
Related
I'm about to begin building out an app using React Native. It's a simple audio player that plays music. However, on top of having an audio player in the app, I would also like to support:
Android Auto
Apple CarPlay
Wearables
Does React Native support these platforms out of the box? How good is the integration? Will I run into many bumps along the way?
Thanks!
About Apple Car Play you can use react-native-carplay, but before use it I see expo tag in your question if you are using expo to create you application it's not supported in a expo. read this article to know more how implement add Car Play to your React Native App
about wearables check the repo to know more.
How good is the integration? Will I run into many bumps along the way?
If you are using TypeScript it's will be easy to do, and you have much repos and articles explain how to implement those packages with mobile application
I built an application in React, is there a way that the same code will be used for a website?
I know Instagram is built on React and it also has a website, I wonder maybe you should add some link or something that it will open for me as a website?
Or maybe there is no such way and I have to build a website separately?
First off all, If you have written any code which is related to native functionality, then it can be challenging.
If you have only worked with views, images, and some of the basic functionality.
It can be done with react-native-web you can easily migrate your project to react-native-web.
If you project is created with expo they already provide react-native-web support.
Option 2: If you have some of the code you want to share and some is that you don't want to share or can't share.
You can use renderProp or customHooks pattern to reuse your logical code and seperate your view for react-native and react js apps.
If you want to reuse your views too, you can do those with primitives.
you can use styled-component primitives for that.
https://medium.com/react-native-training/sharing-code-between-react-web-and-react-native-applications-7f451af26378
You can get some idea here as well.
we working with expo and using mapview, however, there are many restrictions in react native maps, as we are planning to implement turn by turn navigation. Integrating Mapbox would have been the best option, however we do not think it’s best to eject the project as expo doesn’t still support Mapbox. Although, I came across a package, react native maps navigation, I would like to know if anyone has been able to successfully implement it in their project and it functioned properly, and also know if there are any drawbacks that comes along with it. I am asking this because the author says “Please note that this module is usable but still under heavy development. Some properties and/or component names might change without notice.”
Kindly give your suggestions and advice. Thanks
Mapbox works very well in a react-native projects and recommend to use this service for your project but effectively, it don't works with expo so for me, you should eject your project to use it.
I paste here some packages I used for a GPS project (The last one is to get the current position of an user)
react-native-mapbox-gl/maps
mapbox-sdk
react-native-geolocation
Hope that could help you
Some cross-platform tools (like Xamarin native and RubyMotion) allow the development of two separate views for Android and iOS, while keeping the business logic shared for both of them. Others (like Apache Cordova or Xamarin.Forms) share both UI and business layer, with the option to use platform-specific overrides when necessary.
What is the state of the interpreted JavaScript frameworks (NativeScript, React Native or Appcelerator)? Are they all focused on creating single UI with platform overrides, or do they allow creating two separate views for each platform? For example, is it possible to create a view using Fragments in Android, but a different view on iOS (since Fragments do not exist there)?
Cordova uses WebView, that mean GUI level will be the same for both Android and iOS but different per Device version. In case of Android each client has own Chronium version and it can break UI behaviour. So developers use Crosswalk to set fixed Chronium version. (extra 20M to your application).
BTW Ionic that uses Cordova architecture uses native behaviour per platform. For example for Android Tabs located at the top, on iOS - at the bottom
On other hand Xamarin (C#), React-Native(JS) and NativeScript(JS) call native APIs. They don't use WebView but generate Native code.
For example if you create button - it will look different: on Android - material theme, on iOS - iPhone theme
Anyways, the bottom line is: everything depends on resources and time. If you want to build application fast, with the same view - I would go on Ionic2+ Angular2 + Cordova.
If you you have more time - go on React-Native or NativeScript (Still has poor documentation) or Xamarin (C#).
React-native's slogan is Learn once, write everywhere. So, you can choose what suits your needs, you can:
Share UI between platforms.
Share Only business logic.
So, the answer for react-native is yes. You can create separate UIs or you can share it.
Since you are writing components, one way of separating this logic is to write component.android.js and component.ios.js and the platform loads the appropriate one for you. Note that you can also do that programmatically.
You can see that in action in the official f8 app made by facebook using react-native
What's the easiest way to go about indexing a React Native app so that content within the app appears in Spotlight searches?
If you're still interested in indexing your app content using React Native, I've written a plugin to do just that.
As you've figured out, there's no built-in react-native support for this. The only option for you to utilize the Core Spotlight framework capabilities is to create your own native module which will expose this functionality to your react-native code. You can also try to find someone who already wrote this module and made it open source, but I guess you've already tried that.
Since this is the only way, it is also the easiest... That said, it should be pretty easy to implement it yourself, assuming you have some experience with iOS development. If you run into problems you can post your code and I can point you in the right direction if necessary.