The last NativeScript webinar had a record-setting number of attendees. As such, we also had a record-setting 1000+ questions asked during the webinar. Now, as you can guess we could not answer 1000+ questions in a couple of minutes at the end of the webinar.
So, we read all 1000+ questions post-webinar and select a handful of them to be answer in this blog post. After reading the questions, I believe many of them will be beneficial to the entire NativeScript community and not just the individual that posted the question during the live webinar.
Before we continue with the questions I know that many could not join the webinar because of the high load on webinar software we had. If you are one of them you can watch the webinar recording here.
I’ve divided the questions into the several categories to ease the readability of a large Q&A.
Misc
-
Will the webinar be available as a recording?
Yes, the webinar recording is available here.
-
What kind of license will NativeScript have?
The NativeScript framework is free and open source, and it’s licensed under the Apache License 2.0 license.
-
Will you be sharing the Groceries app?
Yes: https://github.com/tjvantoll/groceries/
-
Where is the roadmap?
The NativeScript roadmap is here, you can also subscribe to NativeScript GitHub repository and watch the issue we are working on at the moment.
- What version of JavaScript/ECMAScript is being targeted by NativeScript? 5? 6? Other?
-
We currently support ECMAScript 5. We will support ECMAScript 6 soon.
-
Does the css work on xml elements like it does on regular html? Where something like the <segmentedBar> can have css applied like typical html elements?
Yes, we support inline css. Please read more about this in our documentation.
- If you wanted to apply some logic to route the app to different starting views (for example skipping a login for returning users) how would you do that? You can execute JS code in the app.js file and set the starting view you need there. You just need to set the mainModule property of the app. Read more here.
-
How hard do you estimate it will be for a C# developer with no TypeScript experience to get up to speed on this platform?
Concepts and syntax of TypeScript are extremely similar to C#. Both languages are created by Anders Hejlsberg, and are very easy to use. You can learn more about TypeScript on their website and from the TypeScript Handbook, or just check NativeScript source code.
-
Can I access bluetooth?
Yes, the full native APIs are exposed. We will create a blog post showing how to use it.
-
Is there a reason why your view language wasn't based on XAML and instead is another new language?
This is due to legal restrictions. XAML is a proprietary format licensed from Microsoft. As much as we like it, legally it is not possible to be used outside of Microsoft.
-
Is it possible to include a “webview” inside the native app?
Yes, you can use a WebView, just like in any native app. See how in our documentation: using WebView with NativeScript.
-
If I already have an IOS project can I just use NativeScript for a few screens inside my iOS project?
No, this is currently not supported. NativeScript should be the starting point of your application. If there are enough requests for this functionality, we can implement it; it is technically possible.
-
How difficult will it be to port an Ionic app into NativeScript?
Ionic apps are PhoneGap apps, so they are being built with JavaScript/CSS and HTML. You will be able to reuse the application resources, part of the CSS and most of your JavaScript code. If you are using Angular or another MVC framework, you will be able to reuse your entire business logic and data models. You will need to re-create the views again because they are based on browser-based HTML. But you will want to do this anyway to achieve a native user experience.
-
Is there any Kendo UI integration? It would have been nice if the Kendo UI framework was baked in, but it seems like a whole new JavaScript API.
Kendo UI framework is a browser-based UI framework, and because of this, it can run only inside the browser, so it is not supported currently. We will provide you with the same functionality in the coming months, so stay tuned.
-
Can I structure the views folder my own way? I’d prefer to have views/xml views/js views/css.
Yes, you can structure the app folders in any way you want. There are no limitations on where the XML/CSS/Js views are stored. You just need to keep the “.js” and “.xml” files in one folder because they are part of one module.
-
Does AppBuilder contain some sample NativeScript apps?
Yes, when creating a new project you can choose to start from a sample application. To see more sample applications please visit our GitHub repository.
-
Is the JavaScript source code encrypted in release builds, and if so, what encryption standard is used?
No. At the moment we do not offer encryption for the JS files in the app packages, but we are working with outside companies that can enable this encryption of the JS source.
-
Does it support less and sass?
Yes. This is the benefit of having standards-based CSS; you can use all the existing tools out there.
-
If I create an app in this that is downloaded to many people and then make a change, will the change be made instantly to everyone, or do they have to re-download the new version?
Your scenario can be achieved with Telerik Platform, where we are working on a solution which you can use to manage the content of the mobile apps. Feel free to contact us for more information.
-
Are you able to avoid the Apple App Store and create apps for internal use only?
Yes, we offer a private marketplace as part of Telerik Platform, called AppManager.
-
Will there be compatibility with notifications sent using Microsoft Azure Notification Hub?
Yes, as long as these notifications are compatible with the native OS, they will be supported.
-
Are there any predefined themes ... such as flat metro ... the Kendo UI themes?
Yes, you can use all the themes available from the native OS.
-
For the CLI framework when you change a file, do you have to explicitly re-run the emulator to see the changes?
As part of Telerik Platform we support LiveSync which enables you to preview the changes immediately. This is not supported in the open source version of the CLI.
-
Will it support cloud build and auto update like the one used in AppBuilder for building hybrid apps? I’m not familiar with native android emulators and having java installed in my PC.
Yes, this is supported now as part of Telerik Platform. You don’t need to install anything on your machine; just use the cloud environment which we maintain for you to build the applications. Open http://platform.telerik.com and you can deploy a NativeScript app within a minute.
-
Are you coming to the UK?
Yes, we have monthly meet-ups in London. You can follow our London-based developer relation specialist Sebastian Witalec on twitter(@sebawita) to get more details.
-
Does NativeScript support In-App Purchases?
Yes, everything that is possible with native mobile apps is possible in NativeScript.
-
Is it possible to do graphics animation?
Yes, but it is complex at the moment. We are working on an animation framework to enable easy, out-of-the-box animations. Stay tuned.
-
Can I develop an app using NativeScript if i don't know Java or Objective C?
Yes. You need to know only JavaScript; we take care of everything else. See our samples on http://github.com/nativescript/sample-Tasks.
-
Will there be 0-day support for everything, even completely new features that iOS or Android release? How are you achieving this—pretty awesome!
Yes! This is achieved because we don’t need to create new wrappers or anything in order to support new APIs. They are available 1:1.
-
Is NativeScript currently mature enough to launch a production app in the Appstore?
We just released our first public BETA. I will advise you to wait until V1, which is coming in May.
-
Is a visual designer of some kind on the roadmap?
Yes. Check out Telerik Screen Builder.
-
What will become of your previous PhoneGap-type of product?
We are actively working on our Cordova tooling; it is not affected by any means by NativeScript. Our promise with Telerik Platform has always been to support web, hybrid and native apps, so we are just keeping our promise.
-
Can we integrate NativeScript with Eclipse.
Yes. With our NativeScript CLI tools you can use any IDE to write the code.
-
Do you support Android Support Libraries?
Yes.
-
Do you also provide some kind of support material design (such as toolbars) pre-lollipop?
Yes - this comes out of the box, because we are just using the plain native components.
How NativeScript works?
For a general info about how NativeScript works please read this excellent blog post by TJ van Toll.
-
How do you execute Javascript? Which engine?
We use V8 on Android and JavaScriptCore for iOS.
-
How much of each platform's native UI components will be exposed to NativeScript?
The entire native platform UI layer is exposed, and you can use any native UI component.
-
Is every UI element compiled to native UI code? Or is there any HTML elements inside the app?
There are no HTML elements. NativeScript uses the native UI objects to render the application.
-
Each view has a css file, but I assume it is possible to use global css files across all views?
Yes, you can have a global CSS declaration. Define the global styles in app.css file and they will be applied.
-
Do the applications run in JavaScript on the target platform, or does the code get translated into a native language like Objective-C or Java? How does NativeScript call native functionality? Does it have proxy objects as in Titanium?
The app code is untouched. There is no translation or compilation of the code done from NativeScript. The JS code is being executed at runtime by the JavaScript engines. Please read How NativeScript works.
-
Can I use platform-specific UI controls with this approach?
Yes, you can have platform-specific code and UI. Please refer to this github issue to read about using resolution and platform-specific views.
-
Will this platform will be able to support push notifications for other platforms other than Telerik, for example pushwoosh?
Yes, you can use any.
Rich UI
-
Is there offline support for later synchronization with the backend?
Yes. As part of Telerik Platform, there will be offline support coming very soon.
-
What about UI animations support? Can we use UIView animations or animations with NSLayoutConstraint?
We are working on a full-blown animation framework, which will use those native animations underneath.
-
Does it consider right-to-left languages?
Not yet, but this is coming after v1.
-
Can we use master pages and have sub-pages, and perhaps different subpages for different IOS?
Yes. We do support the concept of master pages. You can also have different views for different platforms and for different resolution/device orientations. Please read more about this in this GitHub issue.
-
What about someui.iphone.xml or more generic someui.tablet.xml?
Yes. Please read more about this in this GitHub issue.
-
Is it possible to list all available wifi networks in NativeScript? Is it possible to use Bluetooth Beacons?
Yes. You are able to use any native APIs with NativeScript.
-
Is there a native cross-platform way to show PDFs?
We do not provide such a module, but it is a good idea for a module. It is relatively easy to be done on top of our framework. You can get a native PDF viewer for each platform to provide a common API abstraction. Please see here how to create your own module and use it in NativeScript.
-
NativeScript looks really promising. It really addresses many of the painpoints of today's cross-platform development. You mentioned that native libraries can easily be used. Does this apply to any arbitrary libraries or only selected ones?
Yes, this applies to arbitrary libraries. We still do not support static libraries for iOS, but this is coming shortly.
-
To write business applications, I need a local database. Is there any chance to have the same database on all platforms?
Yes. There is SQLite on Android and iOS. We have an implementation for SQLite for Windows too. This is part of the paid tooling and part of Telerik Platform.
-
When using device specific code, can you just extend the JavaScript filename.xml with filename.ios.js so (3) files vs. 1:1 for each xml | JS | css ?
Yes, this is actually exactly how it works. Please check NativeScript source code to see how this is done.
-
Does the binding engine support filters/data converters?
Yes. You can bind to a Function and implement any logic you want inside this Function. Please read our DataBinding in NativeScript article.
-
Can you embed native component/code (i.e. objc)?
Not directly. But you can write a native library and reference it in the project.
-
Do you have a tutorial on how to use your backend services?
Yes. Please check the article Using NativeScript with Backend Services. Also, if you prefer, you can take a look at the Tasks sample, which is based on Telerik Backend Services.
-
If I want to create a platform specific view, do I have to duplicate the whole standard view, or can I replace partial parts?
You can replace the whole View, or you can create a custom component and implement the platform-specific logic there.
-
Is data binding built-in, or does it rely on something like knockout.js?
We have a built-in data binding, but you can use a custom library if that is your preference.
-
How do you guys manage i18n within NativeScript or Telerik Platform?
This is something that is still not released. It will be done right after v1.
-
Can you elaborate on the expressiveness of the binding mechanisms? For example, can you specify another object than the currently specified bindingContext? Can you format a string use data templates?
Please see the article DataBinding with NativeScript.
-
Will this allow us to easily use Sharepoint and Oracle EBS backends as datasources for our mobile apps?
Yes, you can use any backend of your choice. There is no limitation coming from NativeScript.
Perf
-
Have you done any performance comparison between NativeScript and native apps.
Yes, we have our performance tests internally. We will publish them soon. The real performance metric is to get the app installed on your device and start using it. Please download our sample app from the app stores and tell us what you think. Search for NativeScript in both Apple and Google stores to find them.
-
Do you have a real app already deployed to an app store to test?
Yes, please search for “NativeScript” on Apple or Google app stores.
-
Is there any difference in functionality between the open source NativeScript and the Telerik Platform, other than developer experience.
No, the application framework is exactly the same. With Telerik Platform, we are shipping a lot of tools, services and new UI components built using the same application framework.
-
Can you please cover migration from hybrid apps using AppBuilder to NativeScript.
Yes, a blog post is coming soon.
-
What kind of development skills are recommended to start working with NativeScript?
You need to know JavaScript and CSS. Start by reading the NativeScript Getting Started articles.
Visual Studio
-
How do you expect most will use this? We are looking at using it via Visual Studio.
There are several options for you. If you choose the open source free tooling, you can use the CLI tools to build and deploy the projects and any IDE to edit your code. In this case, you need to maintain your local installation of the native SDKs. If you choose Telerik Platform, you will be able to benefit from our cloud environment, in which all the build infrastructure is maintained by us. Again, you’ll be able to use any IDE with CLI tools, but you’ll also be able to use our productivity tooling, which comes with AppBuilder and our Visual Studio integration.
-
For those that use Visual Studio versus AppBuilder, will the extensions be available on launch or now?
Yes, you can start using Visual Studio with NativeScript immediately. Please read this article: http://www.telerik.com/appbuilder/visual-studio-extension
-
Is the Visual Studio extension available for free, or it is tied into the Telerik Platform monthly fee?
You can use NativeScript CLI tools with Visual Studio with no problem. But if you want to enable cloud builds and Telerik Platform integration, you need to have an account within Telerik Platform and subscribe to one of our plans.
-
Does the Telerik web platform IDE has any intellisense?
Yes. We offer full intellisense for NativeScript APIs as part of Telerik Platform.
-
How do you guys debug code, for example if I want to step throug code and find out the value of each variable at a particular line?
We have debugging support for NativeScript. We use the Chrome debugging tools to offer full debugging experience. Read more in this debugging NativeScript article.
OS Support
-
Does it work with watches, IoT and wearables?
Yes it works with watches. Using third-party native SDKs, you have access to the wearables SDKs and you can write code using their APIs. Support for the Apple Watch is coming also very soon—we have internal prototypes working. NativeScript was designed with IoT in mind; by having full native API access, you can run NativeScript on a variety of devices and use their capabilities.
-
Any support planned for Sailfish (jolla.com)?
Not at this moment, but we follow this project closely, and we can enable it if there is demand.
-
Is BlackBerry also supported?
No, BlackBerry phones are not supported at the moment.
-
Does the CLI provide simulators for native platforms (iOS, Android and Windows)?
Yes, we are plugged into the native infrastructure for emulating and deployment, and that’s why you can use any native emulator, not only the default ones. Genymotion is also supported because of this.
-
Do you have to use Telerik Backend Services, or can you use WebAPI and/or REST to get data?
Using Telerik Backend Services is optional and is only for Telerik PLatform subscribers. The NativeScript application framework provides you with its own networking module, which you can use with any other web service. You can also use the JavaScript SDKs of other BaaS systems with NativeScript, so you are by no means limited to Telerik Platform. You can read more in the NativeScript networking capabilities article.
-
Does it support iOS version older than iOS 8.1? It sounded like 8.1 and up.
Yes we do support iOS7+.
-
How well does this work on devices beyond mobile? Is there a solution that would scale for PCs (Windows, Macs and so on)?
Not at the moment. Оur focus is to enable mobile devices first, and then based on feedback, we can scale to support desktop apps.
-
Will NativeScript eventually replace the AppBuilder WebViewer implementation? In other words, does Telerik plan on dropping support for the WebViewer implementation of AppBuilder?
We do not plan to stop working on the WebViewer (Cordova/PhoneGap) functionality in AppBuilder. There are many scenarios in which NativeScript and PhoneGap complement each other.
-
How are you planning to keep up to date with API releases from Apple/Google? Will you support new APIs when released, or will there be a long delay?
We offer 0-day support for new APIs released from Google and Apple. We can commit to this because the architecture of NativeScript does not require any additional manual proxies or wrappers around the native API. We are able to issue a build with the new APIs the moment we have the new native platform APIs.
-
Are you planning to create a designer to make it easy to create a UI using your custom XML layouts?
Yes, we are already working on this. Meet Telerik Screen Builder.
-
Just a quick question about the “css-like” rules available for styling. What coverage of standard css rules are covered in the NativeScript css rules? For example, are most normal CSS rules covered in the “NativeScript css rules?” (By the way, good job on creating a CSS-like language for us to style with!)
It is not CSS-like, it is the standards-based CSS syntax that we support. The only difference is that in the browser, there are more CSS definitions implemented, but that’s it. Please visit our NativeScript CSS styling guide for more info.
-
Can we use third-party native libraries, or can we only use JavaScript libs/HTML controls?
Yes, you can use third-party native libraries (Java, ObjC). This is an essential part of NativeScript capabilities. You can read more in our third-party libraries support in NativeScript article.
-
Is there an additional payload for apps? A big turnoff of Xamarin is apps are pretty big compared to their native counterparts—sometimes 10-20 Mb larger, because it has to embed the mono runtime/base class libraries.
Our payload is much smaller compared to Xamarin. For iOS (both 32- and 64-bit) the runtime size is 4-5 Mb. Android is currently about 8 Mb, but we are working toward making it smaller, too.
Compatibility with Other JS Frameworks
-
What about using this with AngularJS?
The current official version of AngularJS does not provide the flexibility to run outside of the browser DOM. This, however, is changing in Angular 2.0, and we are already working in this direction. Stay tuned!
-
Is there a shared XMLHttpRequest equivalent along all platforms?
Yes. Take a look at the implementation in our repo. This should enable you to use most of the JavaScript SDKs for backend services other than Telerik.
-
What's an example of a JS library that's not DOM-dependent?
There are lots of them. You can find many here: http://npmjs.org. Check MomentJS, for example.
Price, License, Availability
-
What is the cost to use AppBuilder and Telerik Platform?
You can try our tools for free for 30 days, and then the price starts at $39 per month. See the full pricing information here: https://www.telerik.com/purchase/platform
-
Will this have Telerik Analytics support out of the box?
Yes, as part of Telerik Platform, you will be able to use our Analytics tools.
-
Will NativeScript be included with my DevCraft™ Complete subscription?
Currently NativeScript is not included, but we are thinking the best way to bundle it in DevCraft suite, too, so stay tuned.
-
Can you use Telerik Backend Services along with NativeScript?
Yes. You can check this sample NativeScript app, which uses Telerik Backend Services for user authentication and for cloud storage.
-
What features will Telerik Platform give me other than the Visual Studio Extension?
A lot more. As we mentioned, you will be able to use Visual Studio as an IDE to build a NativeScript app. As part of Telerik Platform, you get the following mobile services, depending on the package you purchase:
-
In-app client components and building blocks
- Telerik Native UI controls
- Data visualization components
- Offline data storage and sync
- In-app feedback
- Analytics
- User authentication
- Crash reports
-
Cloud backend services
- Integration with existing databases
- Cloud data storage
- Cloud file storage
- User authentication
- Push notifications
- Email distribution
- Company app store distribution
- Application prototyping
-
Do I have to pay the monthly fee perpetually as long as the app lives in the app store, or only for the time of the development?
If you use Telerik Platform, you are paying a monthly fee only during development. If you are using only NativeScript, without the tooling from Telerik Platform, NativeScript is completely free.
-
So, as a Telerik Platform subscriber, I have access to this today?
Yes. Open http://platform.telerik.com and start developing immediately.
Testing
-
Are there any recommended GUI automation tools and approaches for NativeScript?
We are using Appium.io internally, but any testing tool that works with native applications should work in NativeScript.