I am just exploring react and have couple of doubts. I don't see common UI components for react native apart from scroll, flexbox, input list in the documentation. So if I am writing for iOS will the UI part be different from that of Android? If I am having a web app written in react, can I reuse it (no div, img etc for react native)? So is there any possibility of reusing the web UI to native UI? So how exactly is it cross platform? I can reuse the logic only, right? Thanks.
If you are writing an app for both iOS and Android in React Native you will be able to share about 90% (or more) of the UI between the two platforms.
If you look at the documentation you will see that only some UI components are postfixed with iOS or Android. Those are for views that are specific to each platform and cannot be merged into a single React view that will map automatically to it's native counterpart, for example DrawerLayoutAndroid, which is specific on Android.
On the other hand generic views like View, Image, Button, Text, TextInput and so on, are cross platform, so you can maintain the same UI code between the two platforms.
The only place where you will branch your code is if you want to implement a platform specific UI with it's specific components.
I never tried reusing a React Web UI on Mobile, but I assume that if you're not using components such as div, img it should be doable with small tweaks.
I hope this answers at least part of your question.
So if I am writing for iOS will the UI part be different from that of
Android?
If you're using the generic view components, the UI for Android need not be different - you will be able to reuse your code completely. However, if you're using platform specific components, you can still share code base by conditionally using Platform.OS === 'ios' kind of code.
If I am having a web app written in react, can I reuse it (no div, img
etc for react native)? So is there any possibility of reusing the web
UI to native UI?
You won't be able to use the reactjs web ui code directly. If you plan your app architecture well in advance, you can separate out platform specific (web / mobile) ui in separate files and other rendering of data into those ui by determining the platform on which its running. This will help in majority of code reuse.
Hope that helps.
Related
we want to develop mobile keyboard app - (Third party keyboard) that have some unique features (such translate on the keyboard).
We would like to know if there is a way to developed it once both for IOS and Android, with React native, or any other solution?
Thank !
Short answer: no, it can only be developed in native code (java/android, Objective-C or Swift/iOS)
Long answer: React Native would be an overkill in this case since it would bring a lot of features which cannot be used by a custom keyboard. For example, all the List components or Navigation which are quite heavy.
If you want to build a custom keyboard I would recommend to read the tutorials for iOS and Android about this matters:
https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/CustomKeyboard.html
https://developer.android.com/guide/topics/text/creating-input-method.html
This pieces of functionality are really simple to develop so not a lot needs to be learned, plus having to maintain two codebases is not going to be a big overhead
I have a UWP application and I want it to be able to run into Android and also IOS using Xamarin.forms. Is there anyway to port it and run it on both of them?
Short answer: no.
Long answer: Xamarin Forms is "Xaml" too, but works on top of a completly different framework.
If you have used a good architecture, you can use all your viewmodels (or whatever your ui logic is called) and just put a Xamarin.Forms UI on top of that. With a little luck, you can reuse a lot of the structure from your existing xaml, but as most names are different, it is almost a complete rewrite. Or you could put a native UI with Xamarin.Plattform UI on top of your code.
So if you want to go cross platt form, you have to add at least one completely new UI.
I am programming an Android keyboard. Right now I reached the point where I have to rewrite the KeyboardView and I'm asking myself why not to switch to an Webapp instead of a native Android app. Thereby I could later easily deploy the application for other platforms whithout the need of rewriting.
My approach would be to use the Android App as an container for my web app probaply in combination with GWT. I am also considering using PhoneGap.
The problem is that so far I haven't found anything about people using webapps for an InputMethod. Now I'm wondering if it's reasonable or even possible to use webapps for this task or if they are only suitable for normal activities.
Has anyone tried doing this before or some hints why or why not it is possible?
i have developed an app, running on iphone and android, using phonegap and jquery mobile.
The combination of them is really great.
To support multi platform, I have also evaluated some other platforms too, but the problem that i have is that the UI does not feel native (and although not a problem for most apps performance cannot be compared with native).
The only solution so far giving acces to native UI seems to be monotouch.
Do you have any suggestions on platforms offering native ui at least on iphone and android, regardless of language used?
Thanks.
The only way to have native UI response is to write native apps.
The native UI is a puzzle indeed. You need read HIG firstly, cook UI with color and images to get close with system default ones. But if you are using PhoneGap thing, why do you even worry about it? Just rely on framework to get close the look and feel. Get your app really useful is more attractive than looking accustomed for user.
But it is important to adjust interactive design to avoid conflict. For example iOS navigation bar has return button in left most part, don't put it at right. And Android user will get disappoint if there is no response for long pressing or context menu key pressing.
for now i will go with a mixed on js based on phonegap and native controls plugin which i will extend as needed.
I'm planning a project which will uses JSON objects to display data on andorid mobile.
My application is some what similar to facebook application for android. It seems making detailed ui like facebook's like,comment will be time time consuming & webview seems to be better option in this case ?
need your suggestion.
I'm also planning same app to be developed on iPhone as well.
Refrence link
Android has enough support for JSON that you can easily use the native widgets for your application. By using native widgets, the Joe Default user will have a more normal (expected) user experience, since most of the application will work just like any other Android application works.
Another thing to take into consideration that by using native widgets, it will probably be easier to add support for different UI sizes (portrait and landscape mode in various sizes can be a pain to get right in a single webview).