NativeScript empowers you to access native api's from JavaScript directly. Angular, Vue, Svelte, React and you name it compatible.

Overview

NativeScript

Build Status

NativeScript empowers you to access native APIs from JavaScript directly. The framework currently provides iOS and Android runtimes for rich mobile development and can be utilized in a number of diverse use cases.

Getting Started and Installation

Our Getting Started Guides are hands-on tutorials that walk you through developing with NativeScript:

Contribute

$ git clone https://github.com/NativeScript/NativeScript.git
$ cd NativeScript

# setup workspace for development
$ npm run setup

# list all available commands to run
$ npm start

We love you and PR's 🤗 Please follow our contributing guide and see our code of governance to become as involved as you want to be.

@nativescript/*

Quick Links

Other framework source repositories

Outside of the source centralized in this repo, the NativeScript framework consists of a number of components, all of which are open source available on GitHub. Here are the major ones:

  • iOS runtime
    • npm
    • This repo contains the NativeScript iOS runtime — the 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
    • This repo contains the NativeScript Android runtime — the 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
    • 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
    • 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 from which you can take reference while building your NativeScript application.

License

License

Made with ❤️

Comments
  • Implement CSS Box Shadow

    Implement CSS Box Shadow

    Would be great to see a CSS3 style box shadow for UI elements.

    Possible implementation: box-shadow: none|h-shadow v-shadow blur spread color |inset|initial|inherit;


    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    css ux 
    opened by lscown 169
  • 🚨 XCode 12 Status

    🚨 XCode 12 Status

    Update (09/27):

    We have released [email protected] with additional fixes for running on a real device.

    Details in this PR: https://github.com/NativeScript/ios-device-lib/pull/70

    Update (09/23):

    We have released [email protected] with fixes for running on a real device. This version reverted some changes from rc.0 - we expect this to run fine for both simulators and devices, however there may be other cases we need to take into account. Please try the latest RC (ideally revert manual changes in Podfiles, build configs etc and run ns clean) and if something isn't working, re-run with --log trace enable and share the logs with us.


    We released [email protected] that should allow building nativescript apps for the simulator using XCode12.

    Please try it

    npm i -g nativescript@rc
    

    And then cleaning your project (ns clean) and re-running it. The apps should build successfully, and deploy to the simulator(s). If this works for you, consider leaving a 👍 on this issue to let us know - and if it fails to build/run leave a comment with the output logs (re-run the build with --log trace to get more verbose logs).

    Known issues:

    • building with XCode 12 fails [Fix in RC]
    • deploying to an ios14 device (not simulator) gets stuck [Fix In RC1]
    • warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0 - this is a warning, that should not cause any issues with the build. If the build fails, it's likely related to another issue.
    • --release (and --env.production) not able to build the app. [Should Be OK in RC1]
    • running on a real device, the CLI cannot start/stop the app - the app has to be manually restarted. [Should be OK in RC2]
    • if you have a custom CFBundleName the cli will fail with No .ipa found in /.../platforms/ios/build/Debug-iphoneos directory.. [Looking into a fix]

    Related issues:

    • #8866
    • #8861
    • #8860
    • #8780
    • #8788
    • #8868
    • https://github.com/NativeScript/nativescript-cli/issues/5389
    in progress severity: critical 
    opened by rigor789 136
  • Move JS Processing to background thread or allow creation of other WebWorkers/Threads

    Move JS Processing to background thread or allow creation of other WebWorkers/Threads

    From what I understand everything runs on the primary thread. So this is a feature request -- but if done possible sooner would eliminate any later incompatibilities. Having the main thread run the interface and JS runtimes means that hiccups can and will occur frequently. Either the design where the interface is run on its own thread; and the engine is on its own or the ability to start webworks will eliminate these types of issues where you need to do any long running calculations.

    Please vote for this feature in our ideas portal.

    severity: high backlog feature 
    opened by NathanaelA 92
  • Security for the JS code

    Security for the JS code

    Think of ways to IP protection of the JavaScript which is packaged in the app packages.

    If you are interested in this feature please leave comment here and vote for this issue in our ideas portal.

    backlog severity: medium feature 
    opened by valentinstoychev 70
  • Error in properties.js from tns-core-modules

    Error in properties.js from tns-core-modules

    I upgraded my app from {N} v2.something to v3.0 and now I have an error inside the tns-core-modules (which I also updated to 3.0.0).

    Here is what I think is the relevant part:

    TypeError: Cannot read property 'prototype' of undefined
    File: "file:///data/data/org.nativescript.HonkMeNative/files/app/tns_modules/tns-core-
    modules/ui/core/properties/properties.js, line: 461, column: 33
    

    You can find the full stack-trace on PasteBin

    I can realize that I've messed up, as the defaul HelloWorld app works, until I replace it with my code, but I have no clue where to start investigating.

    It looks CSS related from snooping inside the code, but I have no CSS other than an empty module css and the default app.css.

    bug done 
    opened by surdu 63
  • iOS 14 and Nativescript

    iOS 14 and Nativescript

    Hello,

    Has anyone been able to run their Nativescript on iOS 14? Running
    "tns-ios": { "version": "6.5.1" }

    does not work with iOS 14.

    Running it in XCode 12 showed the error in main.m

    [runtime executeModule:@"./"]; Thread 1: EXC_BAD_ACCESS (code=1, address=0x2818dd0)

    Any ideas on how to resolve this issue?

    in progress 
    opened by mspusta78 59
  • Allow borders to be applied on a per-side basis in CSS

    Allow borders to be applied on a per-side basis in CSS

    I'm finding that I frequently need to put a border on one side of a UI component, but NativeScript currently does not support this. I'm requesting that the following CSS properties be added:

    • border-top-width
    • border-top-color
    • border-right-width
    • border-right-color
    • border-bottom-width
    • border-bottom-color
    • border-left-width
    • border-left-color

    To be consistent with CSS, I would also like the border-width and border-color shorthands to work like they do in CSS.

    screen shot 2015-09-30 at 8 17 47 am

    Update: You can vote for this feature at https://nativescript.ideas.aha.io/ideas/NS-I-110.

    Thanks.

    severity: high feature done css ux 
    opened by tjvantoll 58
  • Page Navigation Transitions

    Page Navigation Transitions

    Would be great to be able to customise the transitions between pages. Right now it's either animation or no animation. Both Android and iOS support custom transistions.

    severity: high feature done 
    opened by lscown 58
  • [MacOS] build android failed on app:mergeDebugAssets (unable to create new native thread)

    [MacOS] build android failed on app:mergeDebugAssets (unable to create new native thread)

    Did you verify this is a real problem by searching the NativeScript Forum and the other open issues in this repo?

    Yes

    Tell us about the problem

    tns build android failed on ':app:mergeDebugAssets' > unable to create new native thread

    Which platform(s) does your issue occur on?

    Android development on macOS Sierra

    Please provide the following version numbers that your issue occurs with:

    • tns info output
       ✔ Component nativescript has 4.0.0 version and is up to date.
       ✔ Component tns-core-modules has 4.0.0 version and is up to date.
       ✔ Component tns-android has 4.0.1 version and is up to date.
      
    • Cross-platform modules: (check the 'version' attribute in the node_modules/tns-core-modules/package.json file in your project)
      {
        "version": "4.0.0"
      }
      
    • Runtime(s): (look for the "tns-android" and "tns-ios" properties in the package.json file of your project)
          "tns-android": {
            "version": "4.0.1"
          }
      
    • Plugin(s): (look for the version number in the package.json file of your project) No plugin

    Please tell us how to recreate the issue in as much detail as possible.

    I just run tns create sample-project --template tns-template-tab-navigation-ng, then run tns build android and the error mentioned above appeared

    *note: run tns debug android --bundle completed without error

    tns doctor output

    ✔ Getting environment information 
    ✔ Your ANDROID_HOME environment variable is set and points to correct directory.
    ✔ Your adb from the Android SDK is correctly installed.
    ✔ The Android SDK is installed.
    ✔ A compatible Android SDK for compilation is found.
    ✔ Javac is installed and is configured properly.
    ✔ The Java Development Kit (JDK) is installed and is configured properly.
    ✔ Xcode is installed and is configured properly.
    ✔ xcodeproj is installed and is configured properly.
    ✔ CocoaPods are installed.
    ✔ CocoaPods update is not required.
    ✔ CocoaPods are configured properly.
    ✔ Your current CocoaPods version is newer than 1.0.0.
    ✔ Python installed and configured correctly.
    ✔ The Python 'six' package is found.
    No issues were detected.
    ✔ Getting NativeScript components versions information...
    ✔ Component nativescript has 4.0.0 version and is up to date.
    ✔ Component tns-core-modules has 4.0.0 version and is up to date.
    ✔ Component tns-android has 4.0.1 version and is up to date.
    ✖ Component tns-ios is not installed.
    

    tns debug android --log trace, output attached trace.log.zip

    Is there code involved? If so, please share the minimal amount of code needed to recreate the problem.

    No

    os: android needs more info 
    opened by ikhsan017 55
  • Feature Request: Paged Slider UI component

    Feature Request: Paged Slider UI component

    There is currently no abstraction for a "paged slider" component (not sure if there's a better name for it). It's where you can scroll horizontally between 'pages' of content, with your position indicated by dots below.

    You can see an example of this on the iOS home screen: 2013-06-11-01 10 32

    severity: high help wanted 
    opened by dbbk 54
  • change the outDir of the transpiled code

    change the outDir of the transpiled code

    I don't like the js files being generated next to my ts/ng files , it's so annoying , so I was trying to put the compiled/transpiled js files outside the app directory, as any Angular app.

    what I did is :

    I added outDir to the compilerOptions inside the tsconfig.json file

    {
        "compilerOptions": {
            "outDir": "./compiled/",
    ....
    

    and changed the main entrypoint inside app/package.json

    {
      "android": {
        "v8Flags": "--expose_gc"
      },
      "main": "./compiled/main.js",
    

    by doing so the app crashes since it can't find the main.js...

    what is the correct way to achieve that?


    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    feature severity: low 
    opened by AbanoubNassem 53
  • Error: Build input file cannot be found, when building NativeScript application with Xcode 14.1 using m1 mac

    Error: Build input file cannot be found, when building NativeScript application with Xcode 14.1 using m1 mac

    Issue Description

    When building nativescript cross-platform application for ios, i get the following error.

    Build input file cannot be found: 'xxx/platforms/ios/Build/Products/Debug-iphonesimulator/metadata-arm64.bin'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it?

    Reproduction

    xcode 14.1 ✔ Component nativescript has 8.4.0 version and is up to date. ✔ Component @nativescript/core has 8.4.1 version and is up to date. ✔ Component @nativescript/ios has 8.4.0 version and is up to date.

    i would be very grateful for help and a way out of this

    Relevant log output (if applicable)

    No response

    Environment

    No response

    Please accept these terms

    bug-pending-triage 
    opened by wontroba666 1
  • iOS: When execute more than one animation it is not canceled

    iOS: When execute more than one animation it is not canceled

    Issue Description

    When you run an animation and then run another on the same element on ios the first animation is not cancelled. In android it works fine, my animations types:

    view.animate({
                    scale: {
                        x: 1,
                        y: 1
                    },
                    duration: durationAnimation
                })
    

    Reproduction

    No response

    Relevant log output (if applicable)

    No response

    Environment

    OS: macOS 13.1
    CPU: (24) x64 AMD Ryzen 9 3900X 12-Core Processor            
    Shell: /bin/zsh
    node: 18.12.1
    npm: 8.19.2
    nativescript: 8.4.0
    
    # android
    java: 11.0.17
    ndk: Not Found
    apis: Not Found
    build_tools: Not Found
    system_images: Not Found
    
    # ios
    xcode: 14.2/14C18
    cocoapods: 1.11.3
    python: 3.11.1
    python3: 3.11.1
    ruby: 2.7.7
    platforms: 
      - DriverKit 22.2
      - iOS 16.2
      - macOS 13.1
      - tvOS 16.1
      - watchOS 9.1
    

    Dependencies

    "dependencies": {
      "@nativescript-community/text": "^1.5.11",
      "@nativescript-community/ui-canvaslabel": "^1.1.8",
      "@nativescript-community/ui-collectionview": "^4.0.64",
      "@nativescript-community/ui-label": "^1.2.16",
      "@nativescript-community/ui-lottie": "^5.0.3",
      "@nativescript-community/ui-material-cardview": "^7.0.31",
      "@nativescript-community/ui-material-tabs": "^7.0.31",
      "@nativescript-community/ui-material-textfield": "^7.0.33",
      "@nativescript-community/ui-svg": "^0.1.2",
      "@nativescript/core": "^8.4.1",
      "@nativescript/firebase-core": "^2.4.4",
      "@nativescript/firebase-messaging": "^2.4.4",
      "@nativescript/geolocation": "^8.1.0",
      "@nativescript/google-maps": "^1.4.9",
      "@nstudio/nativescript-shimmer": "^1.0.7",
      "axios": "^0.19.2",
      "moment": "^2.29.4",
      "nativescript-vue": "^3.0.0-beta.5",
      "patch-package": "^6.5.0",
      "pinia": "^2.0.27",
      "router-vue-native": "^2.0.0"
    },
    "devDependencies": {
      "@nativescript/android": "^8.4.0",
      "@nativescript/ios": "8.4.0",
      "@nativescript/tailwind": "^2.0.1",
      "@nativescript/types": "~8.4.0",
      "@nativescript/webpack": "~5.0.0",
      "@types/node": "~17.0.21",
      "sass": "^1.56.1",
      "sass-loader": "^13.2.0",
      "tailwindcss": "^3.1.8",
      "typescript": "~4.8.4",
      "vue": "^3.2.45"
    }
    

    Please accept these terms

    bug-pending-triage 
    opened by vallemar 2
  • fix(webpack): notify CLI even if there are compilation errors

    fix(webpack): notify CLI even if there are compilation errors

    PR Checklist

    • [x] The PR title follows our guidelines: https://github.com/NativeScript/NativeScript/blob/master/tools/notes/CONTRIBUTING.md#commit-messages.
    • [x] There is an issue for the bug/feature this PR is for. To avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it.
    • [x] You have signed the CLA.
    • [x] All existing tests are passing: https://github.com/NativeScript/NativeScript/blob/master/tools/notes/DevelopmentWorkflow.md#running-unit-tests-application.
    • [ ] Tests for the changes are included - https://github.com/NativeScript/NativeScript/blob/master/tools/notes/WritingUnitTests.md.

    What is the current behavior?

    When there's a compilation error, webpack may emit files (depending on how it's configured), however the CLI is never notified of these files, so they are not synced to the device. This is generally the right behavior however there are cases where this isn't ideal, most notably with HMR. When there's a compilation error, a new hash is assigned to the compilation, and files are written but never synced. After fixing the error, yet another hash is generated, however the app will not be able to apply hmr because it must first apply the "errored" hash, and then the fixed one - it works like a sequential chain, and if we don't emit the errored chain links, we break HMR.

    What is the new behavior?

    The CLI is notified regardless of errors in the compilation. This may crash the app - however that's expected in some cases. In other cases this should fix HMR breakage after a single error during development.

    References:

    • https://github.com/nativescript-vue/nativescript-vue/issues/1013
    cla: yes 
    opened by rigor789 1
  • chore: more specific native-api-usage.json file

    chore: more specific native-api-usage.json file

    PR Checklist

    • [ ] The PR title follows our guidelines: https://github.com/NativeScript/NativeScript/blob/master/tools/notes/CONTRIBUTING.md#commit-messages.
    • [ ] There is an issue for the bug/feature this PR is for. To avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it.
    • [ ] You have signed the CLA.
    • [ ] All existing tests are passing: https://github.com/NativeScript/NativeScript/blob/master/tools/notes/DevelopmentWorkflow.md#running-unit-tests-application.
    • [ ] Tests for the changes are included - https://github.com/NativeScript/NativeScript/blob/master/tools/notes/WritingUnitTests.md.

    What is the current behavior?

    What is the new behavior?

    Fixes/Implements/Closes #[Issue Number].

    cla: yes breaking-change 
    opened by farfromrefug 3
  • Custom Library not working in android 12 with nativeScript 8

    Custom Library not working in android 12 with nativeScript 8

    Issue Description

    We have implemented our custom lib for camera view, which manage by native code with custom lib integrated into native script code.

    This was working when we have using native script version 7, now we have migrated the project from 7 to 8 and it is broken now.

    We are getting ActivityNotFound exception in android 12 and lower versions it is working fine without any issues.

    Reproduction

    No response

    Relevant log output (if applicable)

    No response

    Environment

    No response

    Please accept these terms

    needs more info 
    opened by rajeshjadidminc 6
Releases(8.4.3-core)
  • 8.4.3-core(Jan 4, 2023)

  • 8.4.2-core(Dec 29, 2022)

    Bug Fixes

    • android: backwards compat Java cast Float to Long for ApplicationSettings.getNumber (#10140) (7c1590a)
    • core: update metadata filtering for IOS 16 (#10133) (c461f1b)
    • ios: box shadow border radius (#10142) (6948f7c)
    • ios: navigatingTo event handling (#10120) (a4f28b8)
    • ios: reset additional insets if they're zero (#10134) (8b7d5ab)
    • listview: delegate handling removed from unloaded (#10138) (04c3d9a)
    • utils: ios to filter out null values (#10117) (4723114)
    Source code(tar.gz)
    Source code(zip)
  • 8.4.1-core(Dec 1, 2022)

  • 8.4.0-core(Nov 30, 2022)

    Features

    • android: support drawable in ImageSource (#10098) (75eefa6)
    • android: use NestedScrollView for vertical ScrollView (#9199) (cfaa813)
    • core: support css font-variation-settings (#9995) (a5e3e22)
    • core: support for external XML UI compilers (#10008) (75503ef)
    • HtmlView: selectable property (#10057) (ca9c092)
    • types-android: API Level 33 (#10113) (c1187fe)
    • types-ios: 16.1 (#10114) (da78e0b)
    • utils: dismissKeyboard, copyToClipboard, setWindowBackgroundColor, getCurrentActivity and getResource (#10089) (2e1d2c1)
    • webview: adds iosAllowInlineMediaPlayback property (#10014) (4a0e1c9)
    • TypeScript 4.8+ support and NativeClass decorator improvements (#10081) (7f069a7)

    Bug Fixes

    • android: application fallback for startActivity (#10062) (f3a5c16)
    • android: file manipulation threw exception inside worker (#10076) (25c862e)
    • android: file system normalizePath (#10077) (497a9db)
    • android: modal status bar props applied to wrong window (#10049) (6934645)
    • android: normalize for API >= 26 (#10083) (e687e9d)
    • android: tappable spans aren't visible on single-line labels (#10055) (5765707)
    • android: ApplicationSettings return precise stored numbers (#10094) (fd98690)
    • android: memory leak with EditableTextBase (#10052) (501d310)
    • android: prevent flashing activity on app start (#9190) (6a9484a)
    • android: shared SDK_VERSION (#10090) (0226f47)
    • core: ellipsis at the end for Labels with maxLines (#10005) (6c60eab)
    • core: prevent a circular reference because of SDK_VERSION (#10097) (c957b48)
    • core: Color.isValid returned true for null/undefined (#10040) (9091e43)
    • core: font-weight allow passing number (#10072) (5f3f1ac)
    • core: windows build (#10056) (7860d51)
    • color: floating point color values (66e8e39)
    • core: deprecation notes for WeakRef clear and get (3019181)
    • core: WeakRef deprecation notes (b83ed39)
    • ios: animation layer resilience (#10060) (6cabcab)
    • ios: Color.fromIosColor returns wrong value (#10059) (b7d340f)
    • ios: ensure autocorrect not applied silently on IOS16 (#10032) (40b9e35)
    • ios: frame navigatingTo event (#10096) (6148955)
    • ios: stability around canceling an animation (b8d5372)
    • webpack: prevent hmr from patching __onLiveSync multiple times (#10103) (42f5dc5)
    • webpack: support angular 15.x (#10106) (f100109)
    • webpack: close compiler after run (#10080) (59ca35b)
    • webpack: make NativeClass transformer backwards compatible (59624a4)

    Performance Improvements

    Breaking Changes

    utils/utils is just Utils

    • BEFORE
    import { layout } from '@nativescript/core/utils/utils'
    
    • AFTER
    import { Utils } from '@nativescript/core'
    
    Utils.layout
    

    This will affect some plugins. If you use a plugin that encounters this issue you can do the following:

    1. Add a quick webpack alias to mitigate for now:
    webpack.chainWebpack(config => {
        config.resolve.alias.set('@nativescript/core/utils/utils', '@nativescript/core/utils');
        config.resolve.alias.set('tns-core-modules/utils/utils', '@nativescript/core/utils');
        config.resolve.alias.set('tns-core-modules', '@nativescript/core');
    
    1. Contribute a pull request to the plugin author.

    WeakRef type

    Core uses the latest WeakRef types and you can update your tsconfig to latest targets.

    • BEFORE tsconfig.json
    "compilerOptions": {
      "target": "es2017",
      ...
      "lib": ["es6", "dom"],
    
    • AFTER
    "compilerOptions": {
      "target": "es2020",
      ...  
      "lib": ["esnext", "dom"],
    
    Source code(tar.gz)
    Source code(zip)
  • 8.3.6-core(Nov 12, 2022)

  • 5.0.9-webpack(Oct 6, 2022)

    What's Changed

    • chore(webpack): update webpack deps for react-nativescript by @shirakaba in https://github.com/NativeScript/NativeScript/pull/10045
    • chore: webpack updates by @rigor789 in https://github.com/NativeScript/NativeScript/pull/10050
    Source code(tar.gz)
    Source code(zip)
  • 8.3.5-core(Sep 23, 2022)

  • 8.3.4-core(Aug 20, 2022)

  • 8.3.3-core(Aug 11, 2022)

  • 8.3.2-core(Aug 2, 2022)

  • 8.3.1-core(Jul 21, 2022)

  • 8.3.0-core(Jul 14, 2022)

    Bug Fixes

    • android: connectivity reporting none on resume (#9915) (413fa2e)
    • android: content uri handling improvements (#9936) (9fcd440)
    • android: device language and region from system configuration. (#9868) (ad01e6b)
    • android: font icons had incorrect fallback size (#9914) (e8bed44)
    • android: Textfield focus fix (#9885) (fbd1e23)
    • core: allow View subclass to force onLayoutChangeListener (#9886) (6ccf5a2)
    • core: android wrong background state + current value accessors (#9883) (58a7206)
    • core: ensure platforms/android/core.aar is not included in pack (a1dff9a)
    • core: import fix (45dcada)
    • core: metadata filtering (#9946) (4a5e2e2)
    • core: navigatingToEvent allows access to resolvedPage now (#9954) (38142a6)
    • core: trace log using a wrong parameter (#9951) (cd5d2c2)
    • ensure reusable ProxyViewContainer re-adds native children (#9882) (0a082b3)
    • export 'dataSerialize' from utils (#9909) (a85a72d)
    • incorrect font icon size conversion to device pixels. (#9910) (d3718e5)
    • ios: apply proper border radius to box shadow and view sublayers (#9881) (b7e6128)
    • ios: do not convert tap event data to device pixels twice (#9935) (3681fd4)
    • ios: label measure correct height when using custom numberOfLines (#9945) (2ff0891)
    • ios: memory leak after using 'showModal' passing any Page as parameter (#9939) (4db4e4a)
    • ios: memory leak after using the 'presentViewControllerNavigation' (#9934) (957af32)
    • ios: proper disposal and recreation of iOS native views (#9879) (f548fdc)
    • live-sync: navigation history is now maintained (#9889) (665009b)
    • RootLayout: resilience around shadeCover options (e5fffa1)
    • TabView: item styling improvements for iOS 15+ (#9888) (7ccc949)
    • ui-mobile-base: Android http request body was not sent if method was DELETE (#9887) (57e4973)
    • webpack: NativeClass decorator should run after angular transformers in AOT mode (#9908) (c9f77a0)
    • webpack: unit test runner with node 18+ (#9952) (97a21bb)

    Features

    • android: runOnMain, postFrameCallback & removeFrameCallback (#9943) (49343cb)
    • application: expose inBackground and suspended (#9897) (8987bab)
    • core: iterable ObservableArray (#9824) (df74a8b)
    • core: maxLines support for all text components (#9884) (7ff7233)
    • ios: Utils.getRootViewController (29004d9)
    • mac: support for Mac Catalyst with ui-mobile-base (fc77c92)
    • RootLayout: add opened and closed events (#9893) (7b11b6a)
    • types-minimal: paired down typings optimized for smaller footprint editing environments (#9947) (f49e412)
    • Utils: dataSerialize, dataDeserialize, numberHasDecimals, numberIs64Bit (cab5947)

    Performance Improvements

    • cache UIFont construction based on FontDescriptor (#9948) (8756df3)

    BREAKING CHANGES

    • core: ObservableArray push will now handle arguments just like Array.prototype.push. Certain existing methods will now return ObservableArray instance instead. Callback arguments that contained an array argument themselves will now contain an ObservableArray argument.
    • android: Exposes language and region values from android system configuration. If you were working around locale handling because this wasn't originally the case you can likely remove extra conditions as this should reflect more accurately now.
    • ios: tapData.getX() and tapData.getY() will now return correctly in DIP, so any extra conversions (like calling toDevicePixels) twice must be changed.
    • core: When using navigatingToEvent event.entry, the backstackEntry object is now returned which has an entry property on it if you still need it.
    Source code(tar.gz)
    Source code(zip)
  • 8.2.5-core(Jun 15, 2022)

  • 8.2.4-core(Jun 4, 2022)

  • 8.2.3-core(Apr 25, 2022)

  • 8.2.2-core(Apr 7, 2022)

    Bug Fixes

    • ActionItem: rendering threw errors if it had a nested child. (#9821) (efa80c7)
    • android: gesture events fix (#9842) (2664783)
    • css: borderColor parse handling for hsl(a) color values (#9857) (da3bd2c)
    • ios: navigation button now allows using custom icon (#9835) (f88c158)
    • RootLayout: close popup views on live-sync (#9834) (6941466)
    • Utils.queueGC debounce and throttle with reuse of different settings (#9852) (9ce7455)

    Features

    • RootLayout: added topmost method to retrieve view at top (#9826) (3bb8fc2)
    • TouchManager: touchDelay property for nested tap control (c05145b)

    Performance Improvements

    • Improved live-sync functionality for RootLayout (#9836) (3537858)
    Source code(tar.gz)
    Source code(zip)
  • 8.2.1-core(Mar 9, 2022)

  • 8.2.0-core(Mar 8, 2022)

    Bug Fixes

    • android: a11y - do not provide content description for TextView elements (#9673) (dbaf203), closes #9588
    • android: api17 crash on a11y service (#9792) (2efcdf5)
    • android: boolean keyboardType should not set inputType (#9795) (9e6371f)
    • android: edge cases and compatibility with fragments 1.2.x (#9782) (6b41268)
    • android: fragment creation loaded/unloaded protection (ac2e944)
    • android: nested frames were sometimes not recreated (#9725) (902a4c6)
    • android: nested frames were sometimes not recreated (#9748) (cb648e3)
    • android: NullPointerException on navigation (#9669) (9b5d125), closes #8441
    • android: prevent error when detaching from unloaded ScrollView (#9666) (e59f3ff)
    • android: text-transform: capitalize behavior (#9598) (aa1c631), closes #7059
    • android: when hiding the keyboard make view lose focus to match ios behavior (#9786) (b78996a)
    • application instance creation occurs only within Application.run (a518249)
    • core: animation iteration correct for android css animations and iOS rotation (#9628) (608bb1e), closes #7712
    • core: Application handling of nativeApp instance (6c06c77)
    • core: parse template literal syntax with nested identifiers as expression. (#9744) (57cc4ed)
    • ensure android can access native app instance before bootstrap (f10cffc)
    • fs: wrong common paths (51b92f3)
    • ios: do not redraw if background image is 'none' (#9800) (402a7bb)
    • ios: force layout of view when changing the safe area insets (#9773) (a1ba1f6)
    • ios: proper UITabBarAppearance handling (6c71ce2)
    • ios: tabview background color with appearance api in iOS 15+ (#9617) (2749221)
    • ios: UIImage memory leaking after Image is disposed (#9777) (19d8869)
    • memory leaks around image picking/saving to device (7dcfecf)
    • qualifier matcher did not support multiple qualifiers for a single file. (#9720) (3d03f8f)
    • setup script to build only what's necessary (b05650c)
    • tear down views after a modal is closed (#9801) (b38337e)
    • time-picker: correction for super.disposeNativeView (c41e702)

    Features

    • android: content uri support for File (#9807) (c68d002)
    • android: tab view icon rendering mode (#9605) (66d8aff)
    • android: update ui-mobile-base to gradle7 (#9778) (c7df2d0)
    • background/foreground events (#9763) (b553a90)
    • bindable: allow "global" context for expressions inside bindings (#9734) (2cbb135)
    • binding expression parser additions and improvements (#9791) (716b831)
    • config: add new option for pathsToClean (08d5656)
    • config: cli.additionalPathsToClean to clean other paths with 'ns clean' (#9808) (3ec8c42)
    • core: add event when disposeNativeView is called (f038e6b)
    • core: support RGB alpha notation (#9699) (388d7ea)
    • datepicker: ability to show time via showTime property (#9570) (ab4e47a)
    • gestures: GestureEvents.gestureAttached added to modify native recognizers when needed (168a169)
    • improved background handling (#9615) (dde9e02)
    • improved converter and function call parsing mechanism for XML expressions (#9805) (c5856c6)
    • ios: allow dynamic ProMotion frame refresh rate changes (#9775) (b292495)
    • new expression parser for xml bindings (#9729) (90ceed1)
    • proper handling for bindings with converters that were undefined (#9813) (a1772c0)
    • root-layout: support gradient colors on shade cover (#9626) (d756eb5)
    • switch: :checked pseudo and color fixes (#9790) (6437352)
    • testID property for use with e2e testing without interfering with a11y (#9793) (8be543b), closes #9748
    • touch animations demo in toolbox (d7916d7)
    • types-android: updated types + api32 (#9774) (2393dad)
    • types-ios: iOS 15.2 (#9710) (25679a6)
    • types-ios: iOS 15.4 (#9806) (39164ef)
    • types-ios: reduced ios types to common types for optimized ts resolution (#9809) (6cd8b8e)
    • ui: TouchManager for ease in adding interactivity (26953ec)
    • Utils for queueGC, debounce and throttle (40c5984)

    Performance Improvements

    • ios: autoreleasepool for image extensions (fbefea4)
    • ios: prevent crash with image release (1fb687d)
    • ios: uifont and formatted string optimizations plus uiimage scaling (#9761) (9d3977e)
    • ios: UIImage memory leaks (#9783) (988f372)

    Breaking Changes

    For vanilla NativeScript users (using .xml views), several adjustments were made to the xml binding expressions parsing and you may need a few adjustments, for example:

    BEFORE:

    {{ default ? ' something' : ' something else' }}
    

    AFTER:

    Note: renamed default to variable name.

    {{ enableSubmit ? ' something' : ' something else' }}
    

    This is related to the fact that default is a reserved keyword and the expression parsing uses natural language syntax now.

    BEFORE:

    Note: This would apply to example usage: {{ variable | someConv }}

    getResources().someConv = {
       toView: function () {}
    }
    

    AFTER:

    getResources().someConv = function () {}
    

    This is related to improving/simplifying the convertors syntax with bindings.

    Source code(tar.gz)
    Source code(zip)
  • 5.0.6-webpack(Mar 8, 2022)

  • 5.0.5-webpack(Mar 8, 2022)

    Bug Fixes

    • webpack: exclude other platforms from require.context (#9686) (cb7bd2a), closes #9682
    • webpack: xml-namespace-loader incorrect dependency mapping (#9780) (151d6e8)

    Features

    Source code(tar.gz)
    Source code(zip)
  • 8.1.5-core(Oct 28, 2021)

  • 8.1.4-core(Oct 9, 2021)

    Bug Fixes

    • android: StringIndexOutOfBoundsException with invalid drawables (#9563) (8e76bbe)
    • background parsing color #9559 (#9560) (3e21748)
    • ios: ActionBar flat property using new appearance api for iOS 15 (#9558) (183b4d4)
    • ios: TextView respect editable binding (#9589) (2b2ce37)
    • ios: replace autofill string in textfield (#9555) (889f6d7)
    • style: CSS variables should be case-sensitive. (#9603) (02aa0f6)

    Features

    Source code(tar.gz)
    Source code(zip)
  • 8.1.3-core(Sep 18, 2021)

  • 8.1.2-core(Sep 15, 2021)

  • 8.1.1-core(Sep 12, 2021)

    Reverts

    • feat: requestLayout performance improvements (#9122) (e4ce17e)

    This commit breaks back-navigation in certain cases, most prominently with Button pseudo classes. Will target inclusion for 8.2.

    Source code(tar.gz)
    Source code(zip)
  • 8.1.0-core(Sep 12, 2021)

    Bug Fixes

    • allow ignoring reduce-css-calc w/ webpack without error (#9510) (0fd92b7)
    • android: dont dispose fragment on onloaded (#8793) (03b7715)
    • android: make less calls to native with getters around prop handling (#9119) (bca4d95)
    • android: onSaveInstanceState should not crash when no rootView is set (#9447) (ee3c4c2)
    • android: prevent potential crash when app goes to background (#9347) (47df889)
    • android: use nativeTextViewProtected internally (#9483) (71b856c)
    • backgroundGradient fix with android BorderDrawable (41ce315)
    • Color.darken fix (394209e)
    • css colors not parsed correctly within background property (453ea18)
    • include bundle-entry-points by default (ea0b3b0)
    • ios: actionBar title to use appearance api on ios15+ (#9534) (4edeb19)
    • ios: actionBar to use appearance api on ios13+ (#9530) (8e3f16d)
    • ios: actionitem coloring with 15+ (7e35fdf)
    • ios: prevent views from being measured if no native view (#9511) (56c50f2)
    • ios: resiliency to frame controller viewDidDisappear (a5fd53b)
    • modal: persist modal through configuration changes (#9533) (f3cd3d3)
    • styling: change transform parameters parsing (#9481) (dbaab58), closes #5202
    • webpack5: angular scss rule not ignoring regular scss (#9502) (093b369)
    • webpack: add virtualEntry before main entry (5a3a35d), closes #9469
    • webpack: use async type-checking in watch mode (5309f2d)

    Features

    • AbortController polyfill (#9333) (af281dd)
    • android: support clipToBounds (#9508) (5890667)
    • android: vector drawable support (#9464) (490f7dc)
    • autofillType property for edit text base (#9478) (4964d31)
    • color: added utilities and improved color parsing performance (#9110) (0ff2221)
    • config: added option for ignoredNativeDependencies (4cad76c)
    • core: make css parsers tree-shakable (#9496) (dce7408)
    • Frame replacePage by entry (#9460) (4a5bec1), closes #9497
    • handle config name (3bf55b7)
    • image-source: add saveToFileAsync, toBase64StringAsync & resizeAsync (#9404) (36900d7)
    • requestLayout performance improvements (#9122) (e4ce17e)
    • types-android: API 31 (b5b46273b)
    • types-ios: iOS 15 (cb8bf6f)
    • webpack: -v and --version flags (7530ee4)
    • webpack: export merge helper (53492ea)
    • webpack: try resolving compiler, but don't fail if not found (ff4359a)
    Source code(tar.gz)
    Source code(zip)
  • webpack-5.0.0(Sep 8, 2021)

    This is a major release of @nativescript/webpack that is now rebuilt from the ground up with ease of upgrading and customizing in mind.

    Most new projects were already using the beta version of @nativescript/webpack so there's a good chance your project is already compatible.

    The docs cover how the new configuration works: https://docs.nativescript.org/webpack.html

    Upgrading from @nativescript/webpack beta/rc

    If you are already using the beta or rc versions, update to 5.0.0 by changing the version in package.json or using the following command:

    npm i --save-dev @nativescript/webpack
    

    Upgrading from @nativescript/webpack <5

    To upgrade, delete your old webpack.config.js (create a backup if you have done any customizations to it) and then install the latest 5.0.0 version:

    npm i --save-dev @nativescript/webpack
    

    Initialize a new config:

    npx nativescript-webpack init
    

    The new config should look something like this:

    const webpack = require("@nativescript/webpack");
    
    module.exports = (env) => {
      webpack.init(env);
    
      // Learn how to customize:
      // https://docs.nativescript.org/webpack
    
      return webpack.resolveConfig();
    };
    

    Next step is to re-add your customizations if any. Please refer to the docs for examples.

    Source code(tar.gz)
    Source code(zip)
  • 8.0.11-core(Sep 7, 2021)

  • 8.0.10-core(Sep 3, 2021)

  • 8.0.9-core(Sep 2, 2021)

Owner
NativeScript
Empowering you to access native platform API’s from JavaScript directly.
NativeScript
Functional, simple and customizable UI buttons for react native. Also contains loading functionality and automatically changes color for dual tone buttons. TypeScript support.

React Native UI Buttons ✨ Installation If you want to use icons make sure you have react-native-vector-icons installed in your project. npm install --

Hussain Pettiwala 6 Dec 5, 2022
A framework for real-time applications and REST APIs with JavaScript and TypeScript

A framework for real-time applications and REST APIs with JavaScript and TypeScript Feathers is a lightweight web-framework for creating real-time app

Feathers 14.2k Dec 28, 2022
A framework for building native apps with React.

React Native Learn once, write anywhere: Build mobile apps with React. Getting Started · Learn the Basics · Showcase · Contribute · Community · Suppor

Facebook 106.8k Jan 3, 2023
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

Supporting Vue.js Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome ba

vuejs 201.7k Jan 8, 2023
🌟 DataFormsJS 🌟 A minimal JavaScript Framework and standalone React and Web Components for rapid development of high quality websites and single page applications.

?? Welcome to DataFormsJS! Thanks for visiting! ?? ?? ?? ?? ?? ?? 中文 (简体) 欢迎来到 DataFormsJS Español Bienvenido a DataFormsJS Português (do Brasil) Bem

DataFormsJS 156 Dec 8, 2022
:fire: An extremely fast, React-like JavaScript library for building modern user interfaces

Inferno is an insanely fast, React-like library for building high-performance user interfaces on both the client and server. Description The main obje

Inferno 15.6k Jan 3, 2023
⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM.

Fast 3kB alternative to React with the same modern API. All the power of Virtual DOM components, without the overhead: Familiar React API & patterns:

Preact 33.5k Dec 31, 2022
Plain functions for a more functional Deku approach to creating stateless React components, with functional goodies such as compose, memoize, etc... for free.

"Keo" is the Vietnamese translation for glue. Plain functions for a more functional Deku approach to creating stateless React components, with functio

Adam Timberlake 225 Sep 24, 2022
HTML Framework that allows you not to write JavaScript code.

EHTML (or Extended HTML) can be described as a set of custom elements that you can put on HTML page for different purposes and use cases. The main ide

Guseyn Ismayylov 171 Dec 29, 2022
The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.

Bootstrap Sleek, intuitive, and powerful front-end framework for faster and easier web development. Explore Bootstrap docs » Report bug · Request feat

Bootstrap 161.1k Jan 4, 2023
A JavaScript implementation of SOM, a minimal Smalltalk for teaching and research.

ohm-som A JavaScript implementation of SOM, a minimal Smalltalk for teaching and research. Just a hobby, won't be big and professional like TruffleSOM

Patrick Dubroy 16 Jun 25, 2021
Ember.js - A JavaScript framework for creating ambitious web applications

Ember.js is a JavaScript framework that greatly reduces the time, effort and resources needed to build any web application. It is focused on making yo

Ember.js 22.4k Jan 8, 2023
Meteor, the JavaScript App Platform

Meteor is an ultra-simple environment for building modern web applications. With Meteor you write apps: in modern JavaScript that send data over the w

Meteor 43.2k Jan 4, 2023
Knockout makes it easier to create rich, responsive UIs with JavaScript

Knockout Knockout is a JavaScript MVVM (a modern variant of MVC) library that makes it easier to create rich, desktop-like user interfaces with JavaSc

Knockout.js 10.3k Jan 4, 2023
Lightweight MVC library for building JavaScript applications

Spine Spine is a lightweight MVC library for building JavaScript web applications. Spine gives you structure and then gets out of your way, allowing y

Spine JS Project 3.6k Jan 4, 2023
A JavaScript Framework for Building Brilliant Applications

mithril.js What is Mithril? Installation Documentation Getting Help Contributing What is Mithril? A modern client-side JavaScript framework for buildi

null 13.5k Dec 26, 2022
Blazing fast Apple TV application development using pure JavaScript

atvjs Blazing fast Apple TV application development using pure JavaScript. Philosophy What's included Getting Started Basic Examples Creating Pages Ad

Emad Alam 292 Dec 14, 2022
A rugged, minimal framework for composing JavaScript behavior in your markup.

Alpine.js Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost. You get to keep your DOM,

Alpine.js 22.5k Dec 30, 2022