Studies are showing more people spending a lot of time each day looking at their smartphones. In fact, there are people who agree that checking their phone is the first thing they do when they wake up. This means that more than ever before there is a need for more content to be released in the mobile world for these mobile phone users to consume making mobile app development possibly the next big thing as far as software development circles are concerned.
I read a blog post which suggests that mobile app development is currently enjoying the kind of attention web development got in the late 1990’s and early 2000’s. I completely agree. There is no doubt that becoming a mobile developer or learning to build mobile apps will create more opportunities for us as developers. But, there are several questions which I have asked and I am sure other would-be mobile developers may have asked like; “Which platform should I develop for? (Android, iOS, Windows)”,”Native, Cross-platform or Hybrid”, “Which tools should I use?”. Finding an answer to the first question was not that much of an effort for me as it is obvious which mobile platforms have the most users. Finding the answer to the second and third question was not so easy for me. Mainly the third question. The reason is due to the various mobile development tools available these days.
Native mobile development is useful and powerful when you are building an app that would need to communicate with the native device’s hardware. In such cases, a Native app would perform better than its Hybrid counterpart. There is a trade-off though. Which is, developing native mobile apps take longer as you would need to write your code twice to target all the frameworks you need to target consequently increasing development time. Enter Hybrid or Cross-platform mobile apps. These apps are your write-once-run-anywhere kind of apps. Meaning with one code base you can deploy your apps to several mobile frameworks. In theory, it sounds straightforward until you actually get down to picking which tools you would like to use for your mobile app development.
It is true that Xamarin is natively compiled, which makes it a go-to option for building high-performance apps with native look and feel. However, I am not sure I will be using it for now. Perhaps in the future when I feel more adventurous and have the patience to fix all the bugs I encounter while trying to run the emulator I will take another look at it and maybe build an app with it.
Without doubt Native apps perform better on mobile devices compared to Hybrid apps but this is changing rapidly as most Hybrid app development frameworks are beginning to catch up. Until then, I intend to stick to Hybrid app development platforms like Ionic and Cordova mainly for the ease of working with these tools and the speed with which I can develop a mobile app with them.
Finally, I like the fact that for Hybrid frameworks such as Ionic and Cordova, the community of folks using them are massive compared to those using tools like Xamarin.