Announcing NativeScript: Cross-Platform Framework for Building Native Mobile Applications
Announcing NativeScript: Cross-Platform Framework for Building Native Mobile Applications
Join the DZone community and get the full member experience.Join For Free
Bring content to any platform with the open-source BloomReach CMS. Try for free.
Originally written by Valentin Stoychev
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.
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?
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.
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.
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|
|TypeScript support||available now||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.
Detailed FAQ page for NativeScript. Tons of questions and answers here.
Please leave comments below - I'll love to hear your first feedback and impressions! Feel free to also reach me on my email (firstname.lastname@example.org) and on my twitter account @ValioStoychev for more info.
Published at DZone with permission of Doug Winfield , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.