My Journey into React Native: From Flutter to Building Real-World Apps

Ankit VermaAnkit Verma
5 min read

Why I Switched from Flutter to React Native

Initially, I started learning Flutter because it seemed like the go-to framework for cross-platform app development. However, after some time, I realized that Dart, the language Flutter uses, wasn’t as versatile or widely adopted outside of mobile development. It felt limiting to learn a language that’s mostly used within Flutter itself.

That’s when I started exploring other options and came across React Native. The best part? It uses JavaScript, a language I was already familiar with and which is applicable across web, mobile, and even server-side development. This flexibility made it the perfect choice for me, so I switched gears and began my journey with React Native.

Learning JavaScript Before React Native

Before jumping directly into React Native, I knew I needed a solid foundation in JavaScript. I dedicated time to learning JavaScript from Hitesh Choudhry sir. His teaching style helped me grasp the essential concepts quickly, and I began to understand how powerful JavaScript really is.

Some of the key concepts I focused on included:
- Functions and Arrow Functions
- Promises and Async/Await for handling asynchronous code
- Array methods like map, filter, and reduce
- ES6+ features such as destructuring, spread/rest operators, and template literals

This knowledge laid the groundwork for my journey into React Native, and once I felt confident enough, I made the jump.

The Struggle of Setting Up React Native

Like many beginners, I faced a lot of challenges during the initial setup of React Native. Setting up the development environment took me an entire day. From dealing with issues in Android Studio to setting up the correct path variables, it was a frustrating experience.

I also encountered a lot of confusion about the differences between React Native CLI and Expo. Many people in the community and on YouTube suggested starting with ReactJS to understand the basics of React, but I decided to dive straight into React Native CLI without going through ReactJS first.

Despite the challenges, I pushed through, and today, I’m glad I took the difficult route of learning React Native CLI directly. Setting up and learning the CLI was tough, but the flexibility it offers made it worth the effort.

My First React Native Project: Password Generator App

The very first project I built was a Password Generator App. I learned the basics of this app from Hitesh Choudhry sir’s course, and it was a simple yet impactful project. It taught me how to work with JavaScript strings, arrays, and the Math.random() function.

One of the proudest moments was when I converted this app into an APK for my own personal use. It was a small project but taking it from concept to deployment was an amazing feeling. This experience gave me the confidence to take on more challenging projects.

The Watch Store App: Learning Reusable Components

After completing my first app, I moved on to building a Watch Store App. This project really helped me understand the concept of reusable components and how to structure my project files more effectively. In React Native, reusable components are key to making your codebase efficient and scalable, and this project solidified that understanding.

I learned a lot from a YouTube channel called Zero Degree Coder, which taught me how to break down UI elements into smaller, reusable components. This approach helped me speed up my development and write cleaner code.

Current Projects: Disha Yatra & Music App

Now, I’m working on two ongoing projects that are helping me further improve my React Native skills:
1. Disha Yatra – This is a traveling app that allows users to explore places across India. I’ve learned how to integrate navigation, state management, and API calls through this project. It’s an exciting journey, and I can’t wait to release it soon!

2. Music App – To gain a deeper understanding of how music applications work, I’ve started building one. This project involves managing audio streams, playback controls, and creating a smooth user interface for browsing and playing songs.

These projects push me to learn more every day and give me practical experience in building real-world applications.

Lessons Learned: The Difference Between CLI & Expo

One of the challenges I faced early on was understanding the differences between React Native CLI and Expo. While Expo is great for beginners because of its easier setup and built-in features, I wanted to learn how to build apps with more flexibility, which is why I stuck with the CLI version.

In hindsight, starting with CLI was a good choice because it gave me a better understanding of how React Native works under the hood. I had to manually set up libraries and configurations, which helped me understand the ecosystem better. However, for those just starting, Expo might be a quicker way to get your feet wet before moving on to the CLI version.

Ongoing Learning: Every Day is a New Lesson

One of the biggest takeaways from my React Native journey is that learning never stops. I’ve come a long way since I started, but every day presents a new challenge. Whether it’s debugging a tricky issue or learning a new library, there’s always something new to explore.

I’m still improving my skills in animations, Redux state management, and advanced UI components. The best part about working with React Native is that the community is incredibly supportive, and there are endless resources to keep learning.

Conclusion: It’s a Marathon, Not a Sprint

My journey with React Native has been full of ups and downs, but each challenge has helped me grow as a developer. Starting with Flutter and switching to React Native was a tough decision, but it was the right one for me. By focusing on JavaScript, React Native, and real-world projects, I’ve built a solid foundation for future development.

If you’re just starting with React Native, my advice is:
- Strengthen your JavaScript skills first.
- Don’t be afraid of technical errors—they are part of the learning process.
- Build projects that challenge you but are still achievable.
- Keep learning and growing every day.

The more you practice, the more confident you’ll become. Whether you’re building a simple password generator or a more complex traveling app, every project will teach you something new. I’m excited to continue my journey, and I hope this inspires others to keep going as well!

3
Subscribe to my newsletter

Read articles from Ankit Verma directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ankit Verma
Ankit Verma

Hi, I’m Ankit Verma, currently pursuing a BCA from Amity University Chhattisgarh. I'm an aspiring mobile app developer specializing in React Native. I initially started with Flutter but found React Native’s flexibility more appealing. With a solid grasp of JavaScript, I’m working on exciting projects like a password generator and a watch store app. I'm dedicated to continuous learning and eager to create meaningful applications that make a difference..