MobileEntityLogo.png

Hi.

Welcome to the best online resource for IOS & Android tutorials.

What I LOVE, and HATE about React Native after 6 months

What I LOVE, and HATE about React Native after 6 months

Since February 2021 I have been working with a few clients on React Native projects. What I have learned the past few months is that it depends on what tasks I do. Some days I LOVE my job, and some days I HATE my job, it just depends on what framework of React Native I am working with. Overall React Native is really cool, even though it can get me the point where I want to throw my computer away. Here we go with the list of pros, and cons of React Native that I have gathered in the past 6 months.

PRO’S

  • Write once, run on iOS, Android, and as of last year Windows, and Web. One team can write a single app for multiple platforms, this is just awesome from a business perspective.

  • I LOVE JSX/TSX (The format used to write UI components is just beautiful. You can reuse styling across the entire app if you wish.

  • The React State management lifecycle is just amazing. (You can pass data of all sorts of kinds, specific behaviors for back, header styling, etc. It’s just magic.

  • Fast Refresh (Just like other frameworks such as SwiftUII react native lets you refresh the device in real time whenever you save a file. I love this because you can have the IOS and Android simulators side by side and see how it looks as you write your views)

  • IT’S OPEN SOURCE (React Native being open source means that anyone of us developers can contribute to the platform in any way we see fit as long as someone approves our pull requests.)

CON’S

  • EVERYTHING is a Framework (React Native is a framework that relies on rendering UI using native frameworks, then React Native is composed of other Frameworks like Flipper, Folly, and others to make it work. Not to mention the other frameworks you need for maps like MapBox, and others to make your app do what it is supposed to. This causes LTOS of room for error. If you update React Native, or any other framework and something breaks it is EXTREMELY annoying to have to debug cocopods on IOS, Gradle on Android, and nom on the React Native CLI side of things. This is just way too shaky. That’s why I make sure that clients don’t upgrade React Native until all dependencies officially support the version they are upgrading to. There is upgrade tools, but from my experience they are terrible)

  • UI isn’t always consistent on all platforms. (Sometimes I find myself having to use the Platform API to detect what OS the app is running on to fix UI bugs that are platform specific. MOST of the bugs are Android related, specifically Samsung devices. If you don’t own a Samsung device you will get complaints about broken UI. Oh and its not consistent on all devices either. It depends on One UI version, and Android version too. WHY IS THIS A THING? All other device brands don’t have this issue. What is React Native and Samsung not playing nicely. This needs to be fixed, but I don’t have the patience to do it.)

  • NOT ALL ACCESSIBILITY FEATURES ARE EXPOSED (I recently added VoiceOver support to a FinTec app, and it was so frustrating trying to access API’s to change the way VoiceOver goes through the order of a UI. I had to use custom styling to make VoiceOver happy. This shouldn’t be acceptable in a production framework. When I have the time I will contribute to React Native and expose some more of these frameworks. I know React Native 0.65.0 is around the corner so lets see how much they improve the accessibility framework.)

  • NEW features take a while to come to React Native. (When Apple or Google announces new platform features we have to wait months to get any kind of support for these features. This is annoying, but not really that bad. I am nit picking since I am running out of bad things to say about React Native haha!)

  • App bundle sizes are HUGE (React Native includes lots of extras in the APKs and IPAs for running your Javascript/Typescript code. Think of it like a Node sandbox for your app. TLDR App is not optimized thanks to Node)

Even though hI had 5 bad things to say about React Native I had to start nit picking after the third bullet point. React Native is overall a decent framework. Of course I will always prefer Native over Cross platform as a developer just because of the tools we are provided are higher quality and overall better optimized.

How to get Device screen width and height in SwiftUI using GeometryReader

How to get Device screen width and height in SwiftUI using GeometryReader

Load asynchronous images from URL using SwiftUI

Load asynchronous images from URL using SwiftUI

0