Let me lead this off with a disclaimer: This is not meant to be a puff piece for NativeScript at all, I even use Xamarin from time to time and if I knew React I would probably use React Native. I am a Telerik Developer Expert, which is a really awesome group comprised of some very intellectual, talented, and successful developers. I write NativeScript plugins for fun because I see a good future for developing with NativeScript and I’m guessing several thousand other developers would agree since it’s trending upward month after month. I’m not compensated monetarily by Telerik for anything I do, hell I wish I was compensated. I would rather be lounging by a pool than writing this anyway. All of the views and opinions on my blog are my own and don’t express those of my employer or any group I’m affiliated with. Oh and I also don’t have time to proofread this specific post so ignore any typos, grammar or silly writing mistakes.
So yesterday, July 19 2016, I was pointed to a Reddit thread which at first I didn’t want to even bother clicking for two reasons:
- Who actually uses Reddit?
- I don’t even have a Reddit account.
Well I was suckered into clicking after a friend told me how ridiculous the thread was, so I did it. I created a stupid Reddit account and couldn’t help but ‘feed the trolls’ as some people say.
With all of that out of the way let’s jump into the specific points brought up in this thread about NativeScript and point out how terribly incorrect the points are. Last, I want to just briefly comment on why I quickly decided the individual, who was spewing such hatred towards a very rapidly growing mobile development framework, was probably just angry and couldn’t grasp what NativeScript is actually doing and capable of (the same goes for React Native, Xamarin, & Fuse).
All of this stemmed from a really great post by Simon Reimler on DevDactic.com. You can find the post here: NativeScript Angular 2 Introduction: Why NativeScript Matters. The Reddit thread is here.
“Build native applications for all devices!”
No. Its basically, “build web applications that run inside a web container and run even worse than if you didn’t use the container!”
This turns out to be FALSE. I honestly have no idea how anyone would come to that conclusion. Right on the landing page for NativeScript is mentions the Native UI you get.
They have like 4 apps “featured.” I bet you 100% these are actually the only 4 production applications that have ever been made for this. They approached us when we used AppBuilder for the same thing. They can’t get anyone to use this shit.
This also turned out to be FALSE. On the NativeScript showcases page there are numerous apps, not 4 and those don’t include a few other apps available for Android and iOS. Again, I can’t figure out how these statements are even made.
It has access to 2 (a whopping 2!) hardware features that you can already use with html5 (which has like 30 already).
Yet again, this turns out to be entirely FALSE. With NativeScript you have access to the device hardware and the OS APIs. You have full access to camera, gps, flash light, telemetry, file system, device settings, etc. Speaking of the native APIs you can call directly with NativeScript, the images below are code snippets showing a plugin I worked on for playing video in NativeScript apps. The repo is here: https://github.com/bradmartin/nativescript-videoplayer. What these images show is what is possible with NativeScript and how it works. The reason that not everyone needs to know this is because NativeScript is made to engage and reach a broader audience of developers and not just those with native Android or iOS knowledge. The core team abstracts many things into easy to use modules that simplify the development process for a cross platform native application. I like to think of NativeScript as a framework that would be similar to Google and Apple joining forces to create a way to write Android and iOS apps with one code base.
So again, I can’t even make this stuff up if I tried.
Okay, I think I’ve established my argument that these claims are incorrect by now. A well known developer advocate for web and mobile developers also commented on the Reddit thread and was attacked by this individual (I know it’s Reddit and that seems to be a common occurrence). I just want to state something that I firmly believe and I think I would have overwhelming support in this idea. Software developers do not belittle or attack other software developers. Every developer I’ve ever worked with or encountered online has always been helpful and supportive. Whether it’s helping to overcome a code issue or just positive encouragement that development is not easy and everyone hits a wall at one point or another but it’s part of the journey of a developer and it only strengthens your knowledge.
The individual who started this thread seemed to believe in the future of the web and I do too. I really want to see progressive web apps become the norm. However, at no point do I think anyone, any technology or any business benefits from someone being so ignorant and hateful. I know this thread won’t be reaching the masses and it likely won’t hurt NativeScript’s growth and this blog post won’t be lighting the web on fire but I just felt compelled to write out my thoughts on what I witnessed yesterday. I’m still at a loss at how someone who claims to be a successful developer, with patents, can be so ignorant about a specific technology. Which in itself validates my believe that this individual is not really a successful developer with patents.
If you really want to know more about NativeScript, Xamarin, or React Native you need to do more than just jump to an ignorant conclusion that the technology sucks. Why not try it out, test it and see if you like it and if it works for your needs. It might work for you and that’s great or it might not be the best solution for what you need and that’s okay. There is no holy grail framework or library in software development. Tech changes too fast and always will and what is hot right now will be considered ‘legacy software’ in a few years time.