Why You SHould Be Excited About Telerik NativeScript

Sani Yusuf
5 min readNov 22, 2014

--

On the 20th of november 2014, I came across a new technology called NativeScript made by a company called Telerik. Telerik is a company that makes addons/components, that help developers in various ways, and to be frank their tools are normally very good even though a bit pricy.

What Is Native Script?

Now let me give a bit of background about what NativeScript is or claims to be, and why it caught my attention. NativeScript is an approach to mobile development that lets you create native mobile apps using Javascript. This is the definition heavily portrayed on the NativeScript website. This is a very bold promise that there is surely a great deal of demand for and no one yet has been able to fully deliver a working solution for. You might ask, “why is there so much demand for the ability to create mobile apps with Javascript”? This is a question I will duly address before we proceed any further.

Crash History Of Mobile APPS

Before the era of mobile apps, the web was the de-facto platform for delivering content on the internet. By web, I mean an actual webpage that you'd normally need a computer to access. Javascript is the language of the web, at least on the front end side (++ to Node for getting it to the back end) so for a long time, you pretty much needed to know some Javascript to make cool web pages. This meant that there were a lot of Javascript developers around and they were here to stay. Now when the real mobile era kicked in within the last decade, the emphasis of internet content started to shift from desktop to mobile. More people were using phones to do things they would normally use a computer to do. And also we had mobile apps which made content consumption on mobile easier.

Fragmentation Problem

Mobile apps were a great solution but they brought some fragmentation problems. Each mobile OS vendor had their own platform specific tools & language for the creation of apps that ran on their platform. For IOS you need to be an Objective C programmer, Java for Android and .Net for Windows Phone etc. This was a new problem that was non existent in the web page era as javascript developers wrote code for a website, that ran on every browser in every machine. That simple cross platform delivery of internet content was lost. This meant if you were a Javascript developer and wanted to make an mobile app, not only did you have to learn a new language for every platform, but you couldn't use your current Javascript skills and you would also not be able to share or reuse any components between independent platforms. Developers began to recognise this expensive and inefficient problem and one solution in particular emerged to solve this problem

Cordova/Phonegap Solution

The solution I am referring to is Cordova/Phonegap. Cordova was created to allow web developers create a simple website in Javascript and HTML5 that also had access to the device features like Camera, Storage, Accelerometer etc. This was a welcome development for any web developer as this meant that finally, we could write a normal webpage and did not need to learn any native language to and would be able to create an application. With all this promises that Cordova brought, the most important one was the fact that it enabled you to work with a single code base that was used to create apps on multiple platforms, so from one code base, you could create an IOS and Android app simultaneously with 100% reuse. This was a very much welcome development firstly because by contrast, there are more Javascript developers than native developers(Node & Javascript On Desktop has further strengthened this argument). Secondly, javascript has an easier learning curve in comparison to native mobile languages like Objective-C and Java.

This Cordova technique won many hearths and is a bandwagon I am still a part of today. Infact, I even speak about it at events. Also shout out to people like Ionic-Framework for making Cordova apps better. With all this said, Cordova had and still has its major flaws. It did not fully solve the problem of fragmentation. Performance is the most obvious concern in comparison to native apps and also it always was and always will be and feel like a hack if you understand how it works internally.

The Perfect Scenario

For me, I have always said the perfect scenario for making mobile apps will be like how webpages are made. Write once, deploy once and use everywhere (Im watching you IE), and all to be done with Javascript as this will be a natural progression for most web developers, because lets be honest if you are making an app today most of the time you are really just porting a web site or utilizing a web service one way or the other. But for this to happen, this means that Javascript will have to be able to talk directly to native runtime APIs of each independent mobile platforms.

The NativeScript Promise

Well hello NativeScript. Even though it is still in its infancy, NativeScript pretty much promises to fix this issue. This new tool is being developed by Telerik to enable developers write javascript and be able to access native APIs without any bridge like with Cordova. This means any app created will pretty much have the same performance and API access as an app created natively. With NativeScript, you will be able to write an app like you were building a web page and not have to re write it for every platform like with Phonegap, as this is part of the goodness it promises. Also, you wont need past experience with any native platform to use it. But for now its still new and I am keen to see how they will overcome some concerns I have.

Concerns

My number one concern is, how will the cross platform UI development be managed? Will there be a way to create separate platform specific UI components similar to what phonegap does with its merge feature. Also I will be guessing that developers will be working with strict components, instead of free flowing HTMl5 tags in order to manage the inter platform UI creation.

Another concern I have is the total footprint size of the final packaged app. Since there will be a lot of compiling between programming languages, how will this affect the final app size. The reason I bring this concern is with rumours mostly gotten from a certain similar approach to NativeScript (Im talking about you Xamarin), where file sizes of apps are in contrast significantly larger that their native counterparts.

Lastly, what would this mean for the Cordova community. I cant help but think if NativeScript becomes a huge success in future, a lot of developers will abandon the Cordova camp and switch allegiance even I myself might be one of them.

Final Thoughts

Hopefully by now you understand what NativeScript is about and what it might deliver as we steadily wait. No approach to making apps is significantly better than the other. It all depends on use case and resources available. But if NativeScript does deliver its promises, I must say it will be a no brainer not to use it over native techniques 10 times out of 10, which is why we should all be excited as we watch as this unfolds.

--

--

Sani Yusuf

Founder Of Haibrid. Author Of Ionic By Example.I Create Mobile Apps With Ionic. Oel Ngati Kameie