Telerik blogs

Introduction

For the last four years my team has focused entirely on the native mobile development stack. Back in 2010, when Microsoft announced Windows Phone 7, we formed the mobile team here in Telerik to create the most amazing native Windows Phone components out there (we love that product!). Our Windows Phone tools are currently used by many high-profile applications in the Microsoft Store (we have more than 300+ showcase apps in our site alone). Soon after that You - our customers - requested the same native toolset for iOS and Android. You asked and we delivered :). During these years we mastered the art of creating mobile applications with beautiful UI and great native user experience. We were responding to what Your customers needed. Pixel perfectness, fast responsive UI and fast data manipulations were our pillars while developing those client-side tools.

The next step in the evolution of mobile applications was caused by mobile platforms diversification. It became clear that to build a successful mobile application you should make it available on all of the major mobile marketplaces - namely Apple AppStore, Google PlayStore and Microsoft Windows Store. This created a need for companies and developers to publish native apps that are available on all three major mobile stores without compromising the native user experience. The problem - those three operating systems are very different and companies need to implement three different applications for these stores. Essentially, your company has to write and maintain multiple implementations for the same problem. Teams write (and have to support) the same apps multiple times. There is a good chance that bugs reported on one platform also exist on the others but remain unnoticed. Apps that are meant to behave identically on all platforms may exhibit subtle differences due to differing implementations. Shipping new features at the same time on all platforms is hard. This is not optimal and not very productive and requires a significant investment in knowledge of three different operating systems, languages, IDEs, APIs and marketplaces. There has GOT to be a better way.

The Cross-Platform framework idea for building native mobile apps was born

This was the moment when we decided to create a cross-platform framework for building native apps with native UX running on all platforms and devices. We envisioned a framework that will use the native platform APIs, rendering and layout capabilities to deliver ultimate user experience and will allow developers to reuse their coding skills, eliminating the need to learn new languages and IDEs.

I'm happy to announce NativeScript framework. NativeScript framework enables developers to use pure JavaScript language to build native mobile applications running on all major mobile platforms - Apple iOS, Google Android and Windows Universal. The application's UI stack is built on the native platform rendering and layout engine, using native UI components and because of that no compromises with the User Experience of the applications are done. It is also worth mentioning that a full native API access is provided by using JavaScript.


Telerik-NativeScript

 

 

Today is only the beginning - we are releasing the first preview version of NativeScript. This release contains the very early bits, and there is still no Go-Live license for production ready applications available. We don't expect that you will start writing applications immediately with the current bits, but they are a good option for you to start exploring the technology and providing feedback. See our roadmap to get more info on what we managed to bake into this release and what is coming soon. To get access to the bits and get involved, please join the NativeScript Insiders Group - it will be an exciting journey!


 

What problems we want to solve with NativeScript?

With NativeScript developers can build a native application for iOS, Android and Windows Universal while sharing the application code across the platforms. Our goal is to provide the most code reuse across platforms, best user experience and native platform access. There's a lot going on under the covers. Below is a list of capabilities that we decided NativeScript would have to be able to do. Some of these features are available now, and some are coming soon. Did we mention that you should request beta access?

Expose Native platform APIs to JavaScript. Existing native platform APIs are available out of the box. No need to write plugins, or any wrappers to access the native API with JavaScript. If the API is available in the native platform it will be available to you in the JavaScript layer. I should also note that future native platform updates are available immediately in the JavaScript layer for use by the developer. There is no need from additional wrappers, only NativeScript framework should be rebuild to include the new APIs from the native platform.

Native User Interface - you will be able use NativeScript class libraries to produce native user interface. Developers will be able to use the default native platform UI capabilities or add 3rd party libraries which are available to be consumed out of the box (no need for wrappers or anything else - just include the libraries in the project).

Cross Platform UI abstractions - available will be full UI abstraction to build the application UI. All the UI code will be shared - you do not need prior Android, iOS or Windows knowledge. Our cross-platform abstraction includes the following components

  • UI components abstraction
  • Layout abstractions - linear(stack) panel, grid panel, canvas layout and more
  • Markup UI declaration 
  • MVC-esque framework including bindings support

When you build the application UI you will use our libraries which abstracts the differences between the native platforms. These libraries internally will be smart enough to know how to render themselves in the target native platform and to use the native components (being the default native components or 3rd party ones). This way your application will use the native User Experience - gestures, positioning, layout, navigation - everything will be done using the native paradigms and rendered using the underlying native platform.

One important note I should make here is that developers will also be able to write separate Views/Screens for a specific platform platform if they need to. We will not limit you only to our abstractions - you will be able to explore the underlying UI and write custom platform specific UI in the cases when this is needed.

Shared Business logic - declare your business logic using JavaScript and share it across all target platforms.

Shared Data models - declare your data models using JavaScript and share them across all target platforms.

3rd party native libraries support - just include the library you want to use in your project and use it from JavaScript. It is as simple as that. This will be a very powerful functionality and will  allow you to reuse any library available for the native platforms. Including and not limited to native user interface libraries.

No Mac machine required to build for iOS - as part of Telerik AppBuilder we have our remote compilation for iOS for all of you who are using Windows machines. No need to buy a Mac machine to build iOS apps.

No need to install and manage many 3rd party SDK - its all in one package. You don't need to install Android SDK, iOS SDK, Windows SDK and other tools that are needed along them to start developing. Just install our tooling and it is all out of the box - as simple as that.

As you can see from the above practically everything you need to write an application will be available. Please note again that some of these features are not available in this preview version. Below I will explain in more details NativeScript roadmap and what is part of this release and what will be available soon.

Roadmap and current progress

Below is a visualization of our roadmap.

 

Telerik NativeScript Roadmap

 

As you can see there are many things available in the current preview release, but we have some features that need to bake a little longer before we can put our “go-live” stamp on NativeScript as a whole. Until then please engage with us and tell us what you think. Below is a summary of all the planned features and what is their support in this version.

Feature Name June.2014 - v0.1 Official Version 1
Support for iOS/Android
available now available in v1
Windows Phone support not available available in v1
Debugging support
not available available in v1
AppBuilder integration available now available in v1
Visual Studio integration available now available in v1
Access to native platforms from JS layer
available now available in v1
Reference third party native library out of the box not available available in v1
JavaScript Application Platform layer
only part of the application abstraction is available available in v1
TypeScript support available now available in v1
Javascript/Markup UI abstraction not available available in v1
Integration with Telerik Platform Services not available available in v1
Documentation resources
available now available in v1
No Mac machine required to build for iOS available now available in v1

 

Open Source - not yet another proprietary framework

We don't want to create yet another proprietary closed-source framework. Goodness knows there are quite enough of those already. We want to build the best cross-platform framework for native mobile applications and we want to do it together with the development community. This is the reason why we decided that once the core framework is implemented we will release the framework code under the Apache License Version 2. We already have an organization on http://github.com/NativeScript where the project will be hosted and will be pushing the code shortly - now just go ahead and star us.

More info on the open source topic will come in the next few months! Stay tuned.

Get the bits and join our NativeScript Insiders Group

Sounds interesting? If You believe this is the best platform to implement your mobile app then the next step for you is to join our open NativeScript Insiders group. We will love to shape the future of the this framework with you - our goal is to be as transparent as possible, to share with you our plans and thinking for the platform and to built this framework with your help and cooperation. Most active users will be granted a 1 year Telerik Platform Professional license for free.

More resources

Detailed FAQ page for NativeScript. Tons of questions and answers here.

Technical in depth review - read these two deep technical articles from the engineering leads behind NativeScript:How NativeScript actually works and On NativeScript for Android.

Please leave comments below - I'll love to hear your first feedback and impressions! Feel free to also reach me on my email (valentin.stoychev@telerik.com) and on my twitter account @ValioStoychev for more info.


About the Author

Valio Stoychev

Valentin Stoychev (@ValioStoychev) for long has been part of Telerik and worked on almost every UI suite that came out of Telerik. Valio now works as a Product Manager and strives to make every customer a successful customer.

 

Comments

Comments are disabled in preview mode.