Getting Started with React-Native and why React-Native?

Getting Started with React-Native and why React-Native?

๐Ÿ’๐Ÿปโ€โ™‚๏ธ Here's the Context

Hi! My name is Shrinivas and I'm a 21 year old techie from Pune, India.
Below is the image that summarises 6 years of my formal education.

After exploring Web Development, UI/UX Designing, Data Analytics, Machine Learning, Data Science ( could be merely termed as combination of Data Analytics & Machine Learning ), why did a sudden switch to React-Native?

Recently me and my 2 friends have begun a startup and we're executing quite well.
But to function we'd need 2 things:

  • A Website ( a static one ) which would serve as good point to establish online-presence and station for customer's data acquisition.

  • A Mobile-Application that the users would download and actually interact with the services that we're offering.

Being someone who had experimented with so many technologies, getting started with Mobile Application was much challenging for me in the first place.

During the 2018 to 2021 era, many of my friends ( who had system with high-hardware specifications ) started practicing Mobile App Development using Java, because we had Java Programming Language as a part of our academic curriculum.

Although, Kotlin was declared as an official language for Android development at Google I/O in May 2017, we were very much afraid to experiment with the new technologies and sticked to the more promising languages like Java.


๐Ÿง So Why React-Native Specifically

Now that you have understood the reason for my starting of Mobile App Development, let us understand why React-Native specifically?

Reason #1: The Learning Curve

Despite all the advantages that Java offered, I disliked it. Also, back then I was not very smart to curate the free or affordable learning resources.

And since, I already learnt JavaScript really well, I thought why work language that I'm not so comfortable with (Java) and why spend unnecessary time learning a new language (Kotlin)?

Reason #2: Cross-Platform Development

React-Native offers something called "Write Once, Run Anywhere" which means, you write the source-code only once, and the same source code will be internally be compiled for the different platforms ( operating systems ) like Android and iOS.

It is like hitting 2 birds with a single stone.

Pros:

  • Faster Development & Lower Cost: Write once, deploy to multiple platforms (Android & iOS). Saves development time and resources.

  • Code Reusability: Share a large portion of your codebase between Android and iOS, reducing maintenance effort.

  • Large Talent Pool & Community: JavaScript skills are common, making it easier to find developers.

  • Hot Reloading: See code changes reflected instantly in the app during development, speeding up the workflow.

  • Ready-made Components & Libraries: Large ecosystem of pre-built components and libraries for common functionalities.

Cons:

  • Performance: React Native apps might have slightly slower performance compared to native apps due to the abstraction layer.

  • Limited Customisation: Reliance on pre-built components can limit deep customisation for a truly native look and feel.

  • Debugging Challenges: Debugging issues can be trickier due to the additional layer between code and native platform.

  • Platform-Specific Features: Accessing some advanced device features might require writing native code, negating some cross-platform benefits.

When conducting market research we understood that there is going to be substantial am

When looking at the above distribution of market shares per platform, I makes more sense to develop a Native Android on the fly and not be concerned about 4.83% of Apple users.

But the customer segment that we're specifically targeting has the high probability of owning the iPhones as well. So why take extra efforts to build separate applications for both Android and iOS.

It is definitely not worth it if you're simply getting started and want to roll out your application to the production.
When the time comes where you can predict the customer acquisition is going to be fairly consistent and you can afford the technical resources and skilled talent you can always migrate to different tech stacks or even perhaps maintain different code bases for Android and iOS.


๐Ÿคจ Final Thoughts?

You should definitely get started with Reach-Native. You should also start with Flutter ( with Dart programming language ).

Don't forget about Native Android App Development with Kotlin and Native iOS App Development with Swift.

I might sound like a mad-man at this point. But what matters is getting started.

To clear out all the confusion and save you from analysis paralysis ( this is a legit term and not some rhyming I've made up ), I've given you the above tree like diagram.

Here's 5 a step plan of action for you:

  1. Select any technology that you think would suit you the best.

  2. Initially start-out with free resources and then if you think you want to continue learning the same, you can invest in paid resources as well.

  3. Complete 1 resource that you begin with, start to end and don't get distracted with other resources. If you think the current resource is not good enough, then switch to other resource.

  4. First try to resolve your queries by referring to the official documentation and stack-overflow and then resort to Gen-AI tools ( like Chat-GPT and Co-Pilot ) to resolve you issues. [ This will truly transform you into a good software developer, because not always Gen-AI tools will be able to serve you the best. ]

  5. Use Gen-AI tools to simplify the complex topics and accelerate your learning process.

๐Ÿ”ฅ BONUS:

If you come to a realisation after good amount of time and effort investment,
that the current technology you're learning is not the best suited for you, do yourself a favour and stop being stuck there.

Start the quest of finding the most ideal fit for yourself. There's nothing worse than being stuck in a place and letting you time and effort go to vain.


๐Ÿ˜Ž Conclusion

I hope you must have found answers to you undiscovered questions.

If you think that my content is valuable or have any feedback,
do let me by reaching out to my following social media handles that you'll discover in my profile and the follows:

๐Ÿซก This is Shrinivas, Signing Off!


ย