Building mobile apps has become an essential part of our lives, with people spending more time on their smartphones than ever before. As such, businesses and developers are constantly exploring ways to create mobile apps that are faster, more responsive, and more user-friendly. One of the popular choices for building mobile apps is JavaScript, a programming language that has been gaining popularity over the years.
JavaScript is a versatile programming language that is commonly used for building web applications. It can also be used for mobile app development. In fact, many popular mobile apps, such as Facebook and Instagram, were built using JavaScript. One of the main advantages of using JavaScript for mobile app development is its cross-platform compatibility. It allows developers to create apps that work across different devices and operating systems.
Today, we have a chance to delve into the perspective of VirtualSpirit's Head of Mobile Engineering, Rahmat Zulfikri. He's been working as a mobile developer for a long time. He’ll be talking about using JavaScript in the React Native framework for building mobile apps. Without further ado, we'll explore his perspective on the pros and cons of using JavaScript in building mobile apps, his very first “why” when he chose to be a mobile software engineer, and his experience in VirtualSpirit.
To be honest, I am working as a mobile developer because I got this opportunity for the first time. Then, after going through it, it turned out that mobile development itself has a broad scope, so I became more interested. I also thought that if I moved to other fields, I couldn't stay focused, so I decided to stick with mobile development until now.
I started working in mobile development in 2016 until now, which means it's been more than 6 years. What I love most about mobile development is that there are many things to explore. Due to its broad scope, mobile development has become an interesting area to dive into.
I like working at VirtualSpirit because this company carries a remote work type so I can work from home. I can still have time for my family. Since I have always had a goal of being able to work remotely.
Meanwhile, the mobile team is the last team to run the development according to the standard development process (design → backend → mobile). So if there is a miss in the timeline, the mobile team will fall through the cracks. Moreover, if there is a bug, the mobile team will always be the first team to blame for. Even though it is not necessarily the fault of the mobile team.
I think the main advantage is that JavaScript is a programming language that is easy to learn and understand. The framework, React Native, is also a popular framework so we can learn deeper from many sources.
If we use the React Native framework with JavaScript language, the limitations are not too prominent. But when compared to other frameworks like Flutter, there are limitations in terms of performance.
But that doesn't mean the performance in React Native isn't good, it's more a matter of preference. React native is optimal for fast development processes because it’s hybrid, easy to learn, and has a large community.
One common performance issue that often arises is the re-render issue. There are many ways to avoid this. The easiest way is immutability, using refs, atomic components, selecting stores, using states, etc. Many developers who are just learning React Native often miss these methods.
At VirtualSpirit we rarely use automated testing. But even with React Native, we can implement testing, from unit testing to UI testing, etc.
As in question number 6 earlier, many developers who are just learning React Native often experience this. I was like that before. The way to avoid this is to read more sources, look for more references, and have more discussions with other developers.
Several successful mobile apps built with javascript in VirtualSpirit are TVMS, JomCharge, WhatsDoc, Pilplan, TogetherLiving, PropSocial, SASA Mobile App, and VirtualSpace Mobile App.
My advice is don't hesitate to ask questions, look for people who can help us in learning, don't forget to learn fundamentals, don't use Google or StackOverflow too much, and read more documents or other sources.
In conclusion, building mobile apps using JavaScript has both advantages and disadvantages that developers should carefully consider. As VirtualSpirit's Head of Mobile Engineering Rahmat Zulfikri has shared, building mobile apps with JavaScript can be both rewarding and challenging.
However, developers should also be aware of performance issues, limitations in accessing native features, and the need to constantly keep up with updates and new tools. By weighing these pros and cons, developers can make an informed decision on how to use JavaScript properly in building mobile apps, especially in the scope of React Native framework.