React Navigation vs. React Native Navigation [closed] - performance

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
What are the technical differences between the main two React Native navigation solutions: React Native Navigation and React Native?
React Navigation
React Native
Navigation
Are there specific technical limitations that would require the use of one over the other?
Is one more widely used than the other?

NEW EDIT: As of today (07/2020) I suggest using React Navigation v5. It's the community solution being most pushed by Facebook. The V5 rewrite was a complete game changer and is far superior to previous versions. Easy to get setup and implementing easy/complicated stacks is a breeze most of the time.
If that's not doing it for you another alternative is react-native-navigation by WIX (not compatible with expo unfortunately).
React Native Navigation as the name says uses the native modules with a JS bridge, so performance will/may be better. This requires native integration.
While React Navigation is a simple and powerful solution provided by react native itself. Its an all JS implementation unlike the other that uses native support which can be tricky. Just npm-install and you're good to go ...
Use react navigation if you prefer an all JS implementation and use native navigation if your highest priority lies in performance .
Both libs have undergone drastic changes and entered next stable versions. react-navigation is more stable and performant now. If you have to handle complex computations in js go for react-native-navigation. but in most cases react-navigation will work for you!
With the advent of react-native-screens, the native screen optimisation is brought possible to react-navigation by bringing the native navigation component (UIViewController for iOS, and FragmentActivity for Android) Refer here
For those who are looking from a user experience view, both provides almost identical animations and flow so that you wouldn't know what lib is used behind the scenes. The major difference is the native side that can make performance better(which is crucial for a better user experience)
Both libs are amongst the best navigation solutions for React Native. Use it according to your need/preference.

React Native Navigation using native navigation by wrapping each screen with a native controller. So the performance is optimized by the native realm. The area you gonna implement is inside the header and tab bar.
React Navigation is pure js implementation. It uses React-native root view as the container view. Each screen is under the root view hierarchical tree.
So if you open the app from View Hierarchy console, you will see a big difference (React Navigation includes a bunch of weird components like multiple headers or tab bar, the tree is also difficult to understand).

You should give the Navigation router a try. It provides the best of both worlds: 100% native navigation on iOS and Android and a JavaScript array representation of the native stack of screens.

Related

Shopping cart App-Xamarin.Forms or Xamarin.iOS or other technology [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I have to make Mobile Native App(s) for Multiplatform(iPhone,Android,etc..) but right now for (iOS-iPhone), and i am .NET guy and also have developed a testing app for Point of Sale by Xamarin.Forms, but right now i have to make real application and that will be publicly available.Here is application details:
This application from 1st day will be Multilingual like, Arabic(1st language) and English (2nd language).
I have to develop a standard shopping cart to view LOT LOT PRODUCTS WITH DIFFERENT IMAGES/ MAY BE VIDEO for each product, and UI SHOULD BE AWESOME/COMPELLING.
Wish List product,Sharing product,Cart info, User Profile, Delivery status, may be in future Map integration to show the status of delivery in Minutes/Kms etc
So i have to finalize the technology, please help me.
Xamarin.Forms or Xamarin.iOS...?
I want the quickest (as developer point of view) and
highly performance (as customer/user point of view).
Thanks,
-NZ
I think for your app your should go with Native instead of Forms because you want AWESOME/COMPELLING UI. for this you need to customize UI controls which is not easy with Xamrin forms.
developer point of view
If you are a .NET guy and know xaml, it will be easier for your to use forms. With native you will have to learn another plateform to code. +1 for Forms.
Forms will we quicker as it you can share code for different platform. +1 for Forms
With forms, you will have to use basic controls available on all plateforms. customizing it for required effect will going to difficult. with Native - You can get maximum of UI. +1 for Native
customer/user point of view
App developed with forms are slower at the time of launching - it slower in initializing. As a user or Customer -- I won't like this. +1 for Native
Adding platform specific functionality later will be easier with native +1 for Native
List item

Understanding Xamarin [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
As a complete beginner to Xamarin and new entrant to mobile app development, I have some questions about Xamarin and about the way it works which I was not able to find on the internet
How does Xamarin Cross-platform actually work? Is it any use? I was told Xamarin told Xamarin is a cross-platform mobile development solution, but when I Start off, I see it actually encourages you to create separate projects for iOS and Android. I understand that is to give us more power and there is always Xamarin Forms if we want cross-platform UI. In that case, however, I would expect the Portable Class libraries to handle all the backend logic while the native projects are used only for the UI. But when I started out, the most basic library for accessing mobile functionality (Xamarin.Mobile), is not compatible with PCL. What is the use of PCL even in that case?
How are cross-platform apps generally made in Xamarin? What is the role of the PCL and how do we get it to do cross-platform stuff?
Is there no pre-built Xamarin API which allows to do most mobile-related stuff platform independently? Seems we have to download new libraries from nuGet for every little thing we want to do which is quite painful
I hate to ask this. But is the only real advantage of Xamarin the fact that we can code in C# instead of native languages? What I was expecting is actual cross-platform shared code-base. If unity can do it, why can Xamarin not do it?
As someone who's worked with Xamarin (certified) for more than 2 years I will try to answer your questions:
1) Xamarin is a .NET framework that compiles to native code for both platforms. 2 years ago you'd create projects for every 'type' of app you built (Android, iOS, etcetera). In practise this meant you writing Activities for android (in the .NET way of doing things, but with the exact same native android types) and UIViewControllers for iOS. Xamarin.Forms has been out for a while and is a solution that will allow you to share UI Code as well as Business logic.
2) Depending on the app, one chooses either Xamarin.Forms or the native route. In case of the native route you'd create views for every platform (Android AXML and iOS Storyboarding). Additionally a PCL would be added containing all the business logic. This way you can call
var authResult = AuthService.Login(username,password);
var settings = SettingsService.GetUserLocalDbSettings();
from both iOS and Android, and the business logic for logging someone in - only has to be written once. Xamarin.Forms allows you to also share UI, by building XAML-layouts in the Xamarin.Forms project. These get transformed to the right screen type in either OS. Note: This only works properly with simple layouts (think lists, tabs etcetera). Complex layouts take way more time in forms to the point you switch to native.
3) Xamarin is only the framework allowing you to write .NET for these platforms. There's a lot of plugins available (e.g. Connectivity check) that are available. Install them in your native projects AND the PCL, and you'll be able to check whether the app has connectivity from within the PCL, or not). Xamarin is the hammer, Nuget offers the nails.
4) You can share a lot of code (PCL). My honest experience though is that most of the time you'll be building layouts (views) for both platforms. The business logic (signing in, saving items to a SQLite database) costs the least time to build. UI / design however,....requires a lot more patience. So YES you can share all business logic (as far as the used libraries respect the PCL profile).
5) Protip: Xamarin offers some free university training since they have been part of Microsoft.
I agree with the comment made by Lex Li above that you seems to be quite new not only in Xamarin space but also in C# development space, but will still try to add to the points mentioned by Eric J which I think he has missed in his answers.
Answer to Question 1:
How does Xamarin Cross-platform actually work? Is it any use?
Already answered by people before me.
What is the use of PCL even in that case?
You didn't found the use of PCL because you didn't tried to use it correct way. It's not for accessing mobile feature from common code, It's used for writing code which is common for all the platforms example for such type of code can be 'Web Service call', 'Business Logic' etc.
Answer to Question 2:
This is a very generic question whose answer is given many times, by many people. The best place to know more about Xamarin is by following the Xamarin Developer Guide
Answers to Question 3:
As mentioned by Lex Li Nuget is core of .Net package distribution and you should use it not only because of this reason but also because it makes development and deployment more easy.
Like :
1) You need not to worry about where to store DLLs (GAC/Local)
2) No need to store a particular version of DLL in fear of loosing it, all the versions are stored on Nuget Servers and Visual Studio automatically downloads the one which is mentioned in you Package config.
3) You can choose to use pre-release version of any DLL in one project and Stable version in other with out worrying about any clash.
Answers to Question 4:
I think all the advantages are already mentioned in above answers, I would request you to first try working with Xamarin sincerely and then start ranting about it.
Unless you learn Xamarin as part of the larger C# ecosystem, the questions and answers will be hard for you to digest.
1 and 2: Kind of the worst questions. So many use Xamarin. PCL is dying if you really know how C# and .NET ecosystem go. .NET Standard and Standard Library will be the future, and have already been supported by the latest beta builds from Xamarin.
3: NuGet is the core of .NET package distribution (like npm for JavaScript) and every C# programmers should use it. If you cannot get used to that, well, nobody forces you to start your own tool chain.
4: Then why not use Unity? What are you waiting for then? Xamarin has its own target user groups, and those guys do appreciate that only the meaningful code should be shared. People do love platform dependent UI, as that can blend perfectly into native platforms.

Static graphs with nativescript

How can I build statistic charts with nativescript,I asked if there is any module or tutorial or something else ?
You most probably want to take a look at Telerik UI for NativeScript. Be advised that this is a set of payed components (with support etc). They're free to try.
That being said, thanks to the architecture of NativeScript, you can use whatever iOS Cocoa Pod/Android Library you want to. E.g. Charts for iOS. See e.g. https://www.nativescript.org/blog/details/using-cocoapods-is-a-piece-of-cake-with-nativescript-1.3.0.
For a seasoned developer, implementing a Android Lib/Cocoa Pod is not that big of a deal but the easiest route would definitely be to use the readymade Telerik UI component.

React JS v React Native

I am looking to decide what to you to style my meteor application with which I plan to launch solely as an android and iOS app. It will not be made into a website.
My understanding is react native is the same as reactjs but geared towards mobile apps. Is this this true? If so do you recommend using react native instead of reactjs for making apps or does reactjs still offer greater benefits?
Also, is material ui or anything like that needed when using react native?
React-native shares a mental model with React and some key code, but is significantly different. Here's a few points/differences to consider:
Runs w/ bridged-code that executes native functionality not normally callable by or with JavaScript.
React and react-dom are meant to run in a DOM environment (react-dom can run server-side, but the apps are meant to run and be interacted w/ primarily in a browser context).
It allows you share code between platforms, but you usually can't and shouldn't expect to have 100% code re-use.
You can drop to native when appropriate, but in a good situation you can share code more often than not.
Lastly, for material UI, if you're talking about the google material UI, is a stylistic UI lib, not a cross-platform interface library. It's more akin to bootstrap than React. There are plenty of libraries that implement google's material UI, and those might be created specifically for React, React-native or another library/platform.
Hope that helps a bit!

GUI Builder for Titanium Developer [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
Is there any gui builder available for titanium desktop/mobile applications?
I have been using javascript to write that buttons/labels code.
Is there any drag and drop facility available in titanium?
Checkout ForgedUI http://www.forgedui.com/ ForgedUI is a Drag and Drop UI builder for Titanium.
It costs $99, but you can test it out for free (you only can save 10 times). Here is the link in the Titanium Marketplace.
I use codiqa.com and its awesome.. Probably the best till date. I am looking for something better than this... and good if that's free ! :-)
BTW, I found a tool called Visual UI:
http://visual-ui.com/
It is a paid eclipse plugin, but it has a free trial unlike ForgeUI. It works only with Alloy AFAIK. Alloy is the xml gui creation api in Titanium 3.0.
I haven't investigated thoroughly, so if someone has used this, please comment.
From what I see there is no syncing between xml and the gui perspective, but again don't take my word for it - my experience is far too limited.
It costs $20/yr which is less than ForgeUI.
I have gone through with many Ui thing i found this interesting http://visual-ui.com/
VisualUI for Titanium Studio is a plugin that allows WYSIWYG creation of user interfaces for the Titanium Appcelerator platform using drag and drop with an internal editor and external designers using the target device simulators.
Works as a pluging on all platforms supported by Titanium Studio. Native Alloy development or standard Appcelerator SDK supported.
Yes there is one drag and drop tool... TUB Titanium UI Builder http://titaniumui.com
its cool.
Check out TiSmithy, it is easy to use and in the Mac App Store.
The way it works is very simple. You add the elements you would like into your layout, then edit the attributes and finally hit "generate code". It will output both alloy and classic code that's ready to use.
The only thing you'll need to change is the image paths to reference the folder locations within your project itself.
In the latest version Fluid elements were added. These appear on all screens, while the fixed elements appear only on the screen you add them. There's a trial on the site if you want to see how it works.

Resources