10
Maxeh
7y

Do you plan to develop a mobile app which works cross platform? DONT USE IONIC(2). JUST DONT. Thank me later. Have a look at react native (not perfect but much better)

Comments
  • 1
    Go native or go home!
    I know solutions like React will save time and cost but do we ever get the same performance as native?
  • 2
    No you dont get the same performance, but still RN is much better than ionic. If you want a perfect app, you have to go native.
  • 0
    If you want a website that can also work offline use ionic or even better develop a progressive web app. For everything else go full native.
  • 3
    @gitpush For the vast majority of apps (excluding games, intensive apps, etc), you won't see a significant difference in performance between native and RN.
  • 1
    That's exactly what I was looking for, for over a year!
    I tried intel XDK but jeez... No..
  • 0
    @justsomeguy Well thats simply not correct. You cant see the difference directly, but the app is slower than a native app. Best example is the tabNavigator from react navigation. When you compare switching tabs in a RN app to an app like whatsapp for example you directly see what I mean.
  • 0
    Titanium by Appcelerator, which is used by devRant, seems to work even better than RN. But dont forget, RN is still in version 0.5.
  • 0
    @Maxeh React Navigation isn't technically part of RN officially yet. You have to download it as a separate framework. It's not even a finished product.

    This would be an example of a poorly implemented component and not an accurate representation of the difference in performance between RN and Native.
  • 0
    @justsomeguy well this argument does not really hold as RN is not really usable without packages like react navigation. And some parts of react navigation run in a JavaScript environment, thats why it is laggy sometimes.
  • 0
    @Maxeh There are multiple other routing packages available. React Navigation is just the "official" one, which isn't yet a finalized product.

    The delay you're seeing has nothing to do with the fact it's written in JS.

    Download the React Native UIExplorer and play with the UI. You'll notice there's no delay in any of the components.
  • 0
    @justsomeguy of course it has something to do with JavaScript. Because parts run in a native thread and some parts in a js thread. Thats why there are sometimes performance issues. For a smooth experience everything has to run native.
  • 0
    @Maxeh When you build a RN app, the UI components are compiled into Java files. You can actually see this by going into the Android build folder. They are, by definition, "native" files. You can even modify the Java files directly after wards to optimize the generated code.

    Of course, RN isn't even a finished product, so judging its performance at this state, is rather unfair IMHO. It's far from being optimized.

    Of course, native is always better. I never disagreed. My initial comment was that there was no SIGNIFICANT difference in performance for non-intensive apps. There is a keyword there. And my point is easily proven by the UIExplorer app.
  • 0
    Still it is important to distinguish the native and javascript thread:

    "Another example is responding to touches: if you are doing work across multiple frames on the JavaScript thread, you might notice a delay in responding to TouchableOpacity, for example. This is because the JavaScript thread is busy and cannot process the raw touch events sent over from the main thread. As a result, TouchableOpacity cannot react to the touch events and command the native view to adjust its opacity."

    More information on this:

    https://facebook.github.io/react-na...
Add Comment