21. “JavaScript-driven Native”
• Share code
• Reuse existing skills/teams
• Reuse existing libraries
• Native UI (no WebView!)
• Full access to device APIs
• Immediate access to new
OS features
🔥 Fast to market
😎 Best experience
31. Active monthly CLI
users doubled Aug
to Dec ‘15
Doubled again Jan
to April ‘16
Doubled again April
to July
On track to double
again by October
504% increase in
active monthly users
since January
38. Roadmap Milestones
Jan Feb Mar Apr May Jun Jul Aug Sept Oct Nov Dec
1.6 1.7 2.0 2.1 2.2 2.3 2.4
Preview
Telerik
Platform
Perf
Perf
CSS
Animations
UI for {N}
DataForm
70. // create new worker
var myWorker = new Worker("worker.js");
// send messages to worker
myWorker.postMessage("message will be sent to
worker");
// receive messages from worker
myWorker.onmessage = function (e) {
result.textContent = e.data;
}
Quote source: http://julyrapid.com/hybrid-vs-native-mobile-app-decide-5-minutes/
The first 80% of the code accounts for the first 80% of the dev time.
The remaining 20% of the code accounts for the other 80% of the dev time.
Quote source: http://julyrapid.com/hybrid-vs-native-mobile-app-decide-5-minutes/
The first 80% of the code accounts for the first 80% of the dev time.
The remaining 20% of the code accounts for the other 80% of the dev time.
After that totally nastolgic look at where we’ve been, I want to take a few minutes to look at where we are now. All we really have is today, and as human beings, we tend to always live in either the past or the future. For the next few moments, we’re going to look at NativeScript right here. Right now. Like Jesus Jones. If you got that reference, you may be old.
I want to talk about where we currently are with Angular.
First, why Angular? Why do we need it? What does it bring to NativeScript that anyone even needs.
This is from Jeff. I love this tweet, and i think it says a lot about the importance of Angular support in NativeScript. Far more than I ever could. I like this idea Todd. This is such a validating sentiment when you consider where we are right now.
Well, you have to know that NativeScript on it’s own does not offer a full application framework. We do have what we think is a pretty slick binding solution that we gleaned from years of experience with .NET platforms. We’ve also got a full navigation pattern for moving between screens along with the quite ubiquitous commonJS modules.
But a lot of people need more than that. Not just because they want the functionality that Angular offers, because Angualr is way more than an application framework. It’s also much bigger than just NativeScript apps.
Angular 2 is about thinking way beyond the web and way beyond mobile.
More on that coming in a moment
The Angular 2 team sent me this email in February of 2015. I’ve showed this email before – specifically at our keynote at ng-conf.
At this time, NativeScript had not yet been released – beta
Coincidentally, React Native had been announced in January
We already knew that we needed to provide an application framework and we didn’t want to build another one.
We also build the very popular Kendo UI framework, and we were hearing a growing number of requests for Angular 2. Far and above anything else people request, Angular 2 integration was number one.
But you don’t have to take my word for that.
Angular is incredibly popular. It still trounces even the nearest competitors in terms of adoption.
According to Google Trends, Angular will likely be just as popular as jQuery by 2017
On StackOverflow, it is on page one of the most popular tags. For reference, React is on page six, right before “visual Studio 2012”
A lot of people will say, yeah but that’s all Angular 1!
Yes, but consider this…
Unfortunately, Angular 2 has been in beta since May 2nd.
Since then they have broken their own API 6 times, including a router re-write.
It’s been hard on everyone, especially us.
But it is now stable! Party time. Excellent.
Angular 1.x has converged on 2. The API is now virtually identical.
The leap from 1.x to 2 is very short.
“A lot of people are stuck on Angular 1”. So what? A lot of people are stuck on a lot of older techologies. At least the Angualr team is making it more logical to move to
People will switch for performance
Unfortunately, Angular 2 has been in beta since May 2nd.
Since then they have broken their own API 6 times, including a complete router re-write.
It’s been hard on everyone, especially us.
But it is now stable! Party time.
People will move to Angular 2 because they are already using Angular 1
The will move because moving from 1 to 2 is more of a hop tha a jump
They will move for performance
They will move, because of TypeScript.
Let’s talk about TypeScript for a moment
TypeScript is an integral part of what we do with NativeScript.
NativeScript’s itself is built with TypeScript where we use JavaScript – cross-platform modules
Late bound languages are awesome for speed of development, but not awesome for tooling.
Native app API surfaces are gargantuan.
TypeScript allows us to provide both.
This example is from Nathan Walker’s plugin seed
Microsoft has done a fantastic job with TypeScript
You already know that NativeScript is built on TypeScript
And you probably know that Angular 2 is built on TypeScript
Did you also know that Ember is built on TypeScript?
What about Dojo? Remember Dojo?
Anyone know this last one? This last one is Aurelia.
TypeScript is taking the developer community by storm. It is as integral to our success with NativeScript as JavaScript itself.
TypeScript is so important because while Javascript is awesome, we can’t just ditch decades worth of hard learned programming experience for a language that was ushered out the door in 10 days.
TypeScript makes JavaScript accessible to the millions of static language developers out there who find it really hard to just chuck everything they know and “just go nuts with JavaScript”.
Lastly, the fact that Microsoft makes TypeScript means that the TypeScript integratoin in their editors is killer. And I mean editors like, Visual Studio Code.
Let’s talk about VS Code.
While we’re talking about TypeScript, we have to mention Visual Studio Code
The NativeScript VS Code Extension. Over 13K installs. OMG!
We could not be happier with not just NativeScript, but our Angular integration and our choices to use TypeScript and build our tooling in Visual Studio code.
Now lets look at our more recent 2.3 release.
If you didn’t already now, 2.3 dropped last week and it’s got some HUGE improvements in it. Starting with one that has been one of the most highly requested additions since day one.
Today we are announcing a new default theme for NativeScript apps.
This theme is gorgeous, and all of this stying can be done with simple documented CSS properties. We modeled our theme very closely after Twitter bootstrap in terms of how our classes and utlity methods are put together and we love it.
In the example above you can see our default light theme. Android is on the right and iOS on the left. Notice that while both look very similar, Each platform retains the details that make it unique.
On Android we see the subtle shadows and material design influences.
On the right in iOS we see that true flat UI with items such as the easily recognizable iOS switch in it’s natural state
You can use this TODAY So how does this work? Let’s look…
Kendo UI is a world class UI framework for the web. Not just dropdowns and comboboxes. Serious apps.
Let’s talk about threads
The current model is single threaded This is some huge advantages for NativeScript Developers
This is what happens on the web when your page becomes unresponsive and eventually crashes
You can get the same thing in NativeScript if you do some long running operation, like querying 1 million rows of data and then performing your own machine learning on them on the device. The UI will lock become unresponsive.
This is what happens on the web when your page becomes unresponsive and eventually crashes
You can get the same thing in NativeScript if you do some long running operation, like querying 1 million rows of data and then performing your own machine learning on them on the device. The UI will lock become unresponsive.