NativeScript

NativeScript is an open source framework for building truly native mobile apps with JavaScript. Use web skills, like Angular, FlexBox and CSS, and get native UI and performance on iOS and Android.

Subscribe to updates I use NativeScript


Statistics on NativeScript

Number of watchers on Github 12793
Number of open issues 365
Average time to close an issue 1 day
Main language TypeScript
Average time to merge a PR 1 day
Open pull requests 115+
Closed pull requests 72+
Last commit 8 months ago
Repo Created over 3 years ago
Repo Last Updated 8 months ago
Size 24.5 MB
Homepage http://www.native...
Organization / Authornativescript
Latest Release3.3.0
Contributors35
Page Updated
Do you use NativeScript? Leave a review!
View open issues (365)
View NativeScript activity
View on github
Latest Open Source Launches
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating NativeScript for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

NativeScript Build Status

NativeScript logo

NativeScript is a framework for building native iOS and Android apps using JavaScript and CSS. NativeScript renders UIs with the native platforms rendering engine, no WebViews, resulting in native-like performance and UX.

NativeScript provides a best-of-both-worlds development experience. Our cross-platform JavaScript modules give you the convenience of writing iOS and Android apps from a single JavaScript codebase, while our runtimes give you the power of accessing native APIs, SDKs, and frameworks when you need themall without needing to open Xcode or Android Studio. NativeScript was created and is supported by Telerik.

Check out the links below to get started:

IMPORTANT: NativeScript is an inclusive community, and we expect all NativeScript community members, users, and contributors to treat each other respectfully. As such, all users of this repository must adhere to the NativeScript community code of conduct.

For CTOs

Making the right technology choices is key to success. Our CTOs guide to NativeScript helps you understand why NativeScript is the right choice for your next mobile project.

Getting Started and Installation

Our Getting Started Guides are hands-on tutorials that walk you through installing NativeScript and building a real iOS and Android application.

NativeScript architecture diagram

Below is a common NativeScript architecture diagram. In more detail, read the How NativeScript Works article.

Architecture diagram

Quick Links

Repositories

The NativeScript framework consists of a number of components, all of which are open source and on GitHub. Here are the major ones:

  • Cross-platform modules npm Waffle.io - NativeScript Modules and Angular
    • This repo contains the NativeScript cross-platform modules, which abstract iOS and Android APIs into JavaScript APIse.g. camera.takePicture(). The modules are written in TypeScript.
  • iOS runtime npm Waffle.io - NativeScript iOS Runtime
    • This repo contains the NativeScript iOS runtimethe code that hosts NativeScript iOS apps, and allows JavaScript code to be executed on iOS devices. The iOS runtime is written in a fun mix of C++, Objective-C, and more.
  • Android runtime npm Waffle.io - NativeScript Runtimes and CLI
    • This repo contains the NativeScript Androidthe code that hosts NativeScript Android apps, and allows JavaScript code to be executed on Android devices. The Android runtime is written in a fun mix of C++ and Java.
  • CLI npm Waffle.io - NativeScript CLI
    • This repo contains the NativeScript command-line interface, which lets you create, build, and run apps using the NativeScript framework. The CLI is written in TypeScript.
  • Docs
    • This repo contains the NativeScript framework documentation, which is available at http://docs.nativescript.org/. The docs are written in Markdown.

In addition to the code that makes up the NativeScript framework itself, we also provide a number of open-source sample apps that you can reference while building your NativeScript application.

Contributing

We love PRs, and accept them for all of our repositorieseven docs! Please follow our contribution guide if you want to become part of the project.

Angular

We worked together with the Google Angular team to make Angular 2+ work on top of NativeScript. To use Angular with NativeScript please follow the getting started article.

Get Help

Please, use github issues strictly for reporting a bugs or requesting features. For general NativeScript questions and support, check out the NativeScript community forum or ask our experts in NativeScript community Slack channel.

NativeScript open issues Ask a question     (View All Issues)
  • about 2 years Can't run build apk in an external emulator. Displaying the error code:
  • about 2 years disbable the enableSwipeBackNavigation flag per page not working
  • about 2 years Vertical-center text inside grid layout with vertical-align stretch on android
  • about 2 years View of TabViewItem at index 0 is undefined
  • about 2 years application module error on @next version of tns-core-modules
  • about 2 years CSS Border Shorthand Property
  • about 2 years MimeType null in http-request response
  • about 2 years Sample project with webpack does not work
  • about 2 years iOS10 Speech Recognition
  • about 2 years Setting automationText to a number crashes the app on Android
  • about 2 years Seems {N} won't include @namespace node_modules
  • about 2 years v2.4.0 Image is broken in Empty cases
  • about 2 years ListView, SegmentedBar separatorColor - allow adjustment via CSS
  • about 2 years CSS not applied when view is loaded with builder and added to native view
  • about 2 years NSLayoutConstraint with VisualFormat not working
  • about 2 years Question: how can i convert {N} File object to javascript File or Blob. And upload XMLHttpRequest
  • about 2 years Enable WebPack by default in Release mode
  • about 2 years Enable Chrome DevTools as primary developer tool
  • about 2 years Performance improvements
  • about 2 years [Question] Is it possible to observe a CSS or XML property?
  • about 2 years I want to use DotsPageIndicator for android
  • about 2 years [Android] TabView dynamic icon and navigation bar overflow
  • about 2 years Reverse Geocoding
  • about 2 years [iOS] TabView icons are not visibile
  • about 2 years define specific deploy environment variables
  • about 2 years Event Propagation
  • about 2 years Found peer TypeScript 2.0.3 Error: read ECONNRESET at exports._errnoException (util.js:1008:11) at TCP.onread (net.js:563:26)
  • about 2 years Plugins: Use Variable in Android.xml and Info.plist
  • about 2 years background: color; does nothing
  • about 2 years Listpicker width does not compute properly.
NativeScript open pull requests (View All Pulls)
  • Add SegmentedBar-XML creation to HowTo
  • Add Issue and PR templates
  • Update iOS TypeScript definitions for the NativeScript modules
  • WebInspector infrastructure
  • fixed: some transitions in side drawer are not working
  • Ensure parent directory when creating a new file
  • Added save to gallery option - IOS
  • Fix: Cannot change the iOS status bar text color
  • Fixed issue with simple object as binding context.
  • Added save to gallery option - Android
  • Add __extends in case it's missing
  • Delete missing main module in ui/package.json
  • Expose configurable attributes property when loading components
  • Update package.json
  • Make JavaProxy extends lazy
  • Remove redundant comments from the gruntfile
  • Export single CSS property resolution API.
  • Add compiler that won't typecheck .d.ts-es
  • The original josh use get raw x y instead of get x y to allow smoother panning coordinates
  • Optinoal async mode for loading images from local files
  • add native script key in package.son files
  • A test pull request
  • Erjan gavalji/use packed theme
  • [Second Try] Add API that resolves the native android.app.Fragment instance created for a Page
  • Fixed issue #1655 cascading css selectors.
  • Fixed: Custom ActionItem gets displaced in IOS
  • Fixed: CSS-Animation w/ iteration-count:infinite is never reset causing out of memory
  • Fixed: TranslateX and Animate in iOS strange behaviour on 2.0
  • Fixed sorting issue with Css Selectors with same specificity.
  • Fixed: iOS CSS Animation rotate() do not reset the value after 360 degrees rotation
  • Use the nativescript theme by default for api-ref
  • Rename com.tns.Async.xxx to org.nativescript.widgets.Async.xxx
  • Updated webinspector interfaces
  • Added a new test: test label height in docklayout in scrollview
  • Implement Typescript Definitions for APIs beyond 17
  • Fixed animation value sync issues
  • Ignore the case when getting a response header
  • Add sdk-examples app scaffold
  • Style perf improvements
  • [Snapshot] Register TypeScript helpers at the very start
  • Fix: CSS background-image on Label not loading in iOS
  • Fix Custom Fonts when bundled with Webpack
  • Added async image source functionality
  • Make package mains more webpack-friendly
  • Add npm script that generates ios .d.ts-es from the tests app
  • Add support for translucent ActionBar on iOS
  • Color of buttons inside dialogs is not applied if there'are nested css styles
  • Added tintColor property in {N} ImageView
  • Fixed ipv6 reachability check in connectivity
  • (Bugfix) Android Image memory leak, resolves #2571
  • Fixes #2621: Add accessibility labels to views
  • Manually kickstart GC for android after navigation
  • Update iOS TypeScript declarations with iOS 10 beta 6
  • Existing iOS integration app support added
  • Fix for Dialogs crashing on iOS
  • Added missing dev dependency to run dev-typedoc
  • Change test-results file path for android
  • check for undefined value in setColorProperty and resetColorProperty …
  • Export several more missing iOS delegates to allow modification
  • Remove console.log() leftover
  • Added support for scale(x)
  • npm scripts for typechecking public .d.ts-es and running tslint
  • Flexbox css able
  • Fixed: jumping action bar reported in #2941
  • Adding request for write storage permissions for tests app.
  • ImageAsset extends Observable
  • FlexboxLayout profiling and improvements
  • API Level 14 Compatibility (replace android.view.View.generateViewId)
  • Fake PR to run ui tests
  • backgroundColor added in ActionBarStyler
  • Order property is not respected if set more than once
  • [DO NOT MERGE] This is a test PR
  • [In Progress] Add CSS positional selectors
  • add an example how to use webview with gestures for both iOS and Android
  • Add objc decorator definitions
  • Add sibling combinators for CSS rules
  • Remove query params from target filename on getFile (fixes #3957)
  • Implemented feature request: TextField `maxLength` property support.
  • [Do not merge] #2740 Feature Request: Improved ActionBar CSS Support
  • Add 'DidEndPreview' listener to utils.is.openFile
  • Fixing Button text alignment behavior
  • Define defaultValue for font-size to allow overwriting it.
  • [DO NOT MERGE] enable recycling of nativeView
  • Call native setters once when a page is instantiated
  • Implemented feature request: TextField `maxLength` property support.
  • fix(android-tabview): handle tab fragments attach detach properly
  • chore: add ios runtime waffle
  • chore(uitests): intoduce new run strategy
  • feat: Add a 'profiling: lifecycle' to track startup times [WIP]
  • chore(uitestsapp): replace start with run
  • Bugfix: Image.tintColor not applied correctly on iOS
  • feat(webpack): Mark the CSS type for stylable views explicitly
  • Fix: Line-height breaks line break mode (iOS)
  • Remove log & Set scale on start [IOS]
  • refactor(console): remove the console module
  • refactor: throw if global css file is not found in webpack context
  • update(launch screen): Add iPhone X launch screens
  • feat(animation): support animating width/height properties
  • Add Enterkey-Processing for some IMEs to editable-text-base.android
  • Improve ImageAsset scaling
  • fix(frame): root tabview with modal frame when suspend/resume app Fixes #5398
  • hiding cookbook/ui/action-bar article in favor of ui/action-bar
  • chore(apps): add modal-navigation-app for ui testing
  • Implemented cookie sync between wkwebview & sharedHTTPCookieStorage
  • Cherry-pick onDisplayed event for iOS and TS 2.7 fixes
  • fix(inspector): Fix --debug-brk issue with Inspector
  • Extend console tests for iOS
  • fix(ios-action-bar): NavigationButton text change on first navigation
  • fix(ios-action-bar): NavigationButton cannot be hidden
  • test(e2e): add modal-navigation app tests
  • fix-next(tabview): fix tab title layout in modal root tabview Fixes #5392
  • add required interface for generalized listview comonent
  • feat(ios-image-source): standardize quality scale in image-source
  • chore(docs): Update writing-tests.md with note about code snippets comments
  • [Do not merge] test ci pr
NativeScript questions on Stackoverflow (View All Questions)
  • Would Parse javascript SDK work with NativeScript?
  • Nativescript ListView
  • Nativescript: how do I include a view (e.g. a slide drawer) in several views?
  • NativeScript global event handler in an XML declaration?
  • Using .map in nativescript with angular2
  • nativescript-sqlite plugin won't run on iOS
  • Nativescript email validation module
  • NativeScript Dynamic Map Marker
  • Referring to core modules from NativeScript UI plugin
  • Authentication from NativeScript App(android/ios) to Sharepoint 2013 REST API
  • Add more z-index at Actionbar Nativescript
  • Does Quickblox javascript sdk works in nativescript?
  • Nativescript - Button Pressed highlighter css not working
  • How add the reference to JSOG.js (nativescript and angular2)
  • Is there a way to capture scroll events on a List-View in NativeScript
  • Importing JavaScript Library into NativeScript
  • Which NodeJS frameworks are suitable to build a complete backend for a Nativescript app (JS-based)?
  • NativeScript (Telerik) and Serial Port on Android
  • How to implement override method for Android native abstract class in Nativescript?
  • nativescript css unit of measurement
  • Amazon S3 upload via NativeScript mobile application
  • Nativescript - Font style in android. Could not override native Lollipop style(UPPERCASE)
  • What is the div equivalent element in Nativescript
  • Testing NativeScript app with Appium
  • nativescript: new object is not an new an empty opject
  • Hybrid apps using NativeScript
  • Plugin admob to NativeScript
  • Find button or label inside Griview using Nativescript Grid view
  • NativeScript ListView with Too Many Rows
  • NativeScript - App Builder on iPhone tells me Companion App is not installed when it is
NativeScript list of languages used
NativeScript latest release notes
3.3.0 2017, October 25

For detailed information, please check the CHANGELOG.

3.2.0 2017, September 08

For detailed information, please check the CHANGELOG.

3.1.1 2017, August 08

For detailed information, please check the CHANGELOG.

Other projects in TypeScript