Making Mobile Apps as a Web Developer
It’s all about the technology
There are a couple of cross-platform, mobile app development frameworks out there to solve these problems and the biggest two by far are React Native by Facebook and Ionic by Ionic. The beauty of cross-platform frameworks is that you build the app once and it runs on both platforms.
At JUMP, we had to decide which framework to go with to build a new, modern, cross-platform mobile application, due for release soon.
We went with React Native for development for the following reasons:
React Native code compiles down to native code, meaning speedy performance almost as good as if you’d built it with native tools. Ionic uses WebView (effectively the mobile devices browser) and is noticeably slower.
We were using React already
To accompany our mobile app, we also built a web backend so our client could manage the data generation for the app to consume. We chose React to build the frontend so choosing React Native for the app meant we could not only share some elements of the codebase but also share the same programming principles and patterns.
Using React Native wasn’t all smooth sailing however; here are some of the main problems we came across:
Steep Learning Curve
The documentation for React Native is not as strong as it could be which can make it more difficult to learn some of the more advanced concepts.
Limited Styled Components
There are actually very few styled components in React Native (especially compared to Ionic) meaning you have to make pixel perfect recreations of the user interface for both Android and iOS - this can eat into development time.
As web developers, we’re used to testing our websites on mobile/tablet/desktop screen sizes and various web browsers, but it’s another thing altogether when you have a plethora of phones to test your app against (we’re looking at you Android!). This is especially difficult when you’re testing multiple hardware features across multiple hardware devices, some running different operating system versions.
So, it is possible to use web based languages to build mobile apps, but be certain to weigh up the pros and cons at the beginning of the project. As with all the projects we design and develop at Jump, time invested in the scoping and planning stages pay dividends.
Keep an eye out on our website and social media for the launch of the new cross-platform app.