{"id":15018590,"url":"https://github.com/juliomrqz/nativescript-version-tracking","last_synced_at":"2025-08-17T04:32:51.452Z","repository":{"id":43340492,"uuid":"159973693","full_name":"juliomrqz/nativescript-version-tracking","owner":"juliomrqz","description":"🕚📱 Track which versions of your NativeScript App, a user has previously installed.","archived":false,"fork":false,"pushed_at":"2023-01-07T06:06:23.000Z","size":3587,"stargazers_count":4,"open_issues_count":23,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-08-16T06:00:28.334Z","etag":null,"topics":["android","ios","marquez","nativescript","nativescript-plugin","tracking","typescript","version","version-tracker"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juliomrqz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-01T18:15:37.000Z","updated_at":"2024-05-30T16:36:34.000Z","dependencies_parsed_at":"2023-02-06T13:31:11.952Z","dependency_job_id":null,"html_url":"https://github.com/juliomrqz/nativescript-version-tracking","commit_stats":null,"previous_names":["bazzite/nativescript-version-tracking"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/juliomrqz/nativescript-version-tracking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliomrqz%2Fnativescript-version-tracking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliomrqz%2Fnativescript-version-tracking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliomrqz%2Fnativescript-version-tracking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliomrqz%2Fnativescript-version-tracking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juliomrqz","download_url":"https://codeload.github.com/juliomrqz/nativescript-version-tracking/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliomrqz%2Fnativescript-version-tracking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270807431,"owners_count":24649342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ios","marquez","nativescript","nativescript-plugin","tracking","typescript","version","version-tracker"],"created_at":"2024-09-24T19:52:09.439Z","updated_at":"2025-08-17T04:32:50.940Z","avatar_url":"https://github.com/juliomrqz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Bazzite Project](https://img.shields.io/badge/Bazzite-project-blue.svg)](https://www.bazzite.com/docs/nativescript-version-tracking?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=nativescript-version-tracking)\n[![Travis](https://img.shields.io/travis/bazzite/nativescript-version-tracking/master.svg)](https://travis-ci.org/bazzite/nativescript-version-tracking)\n[![version](https://img.shields.io/npm/v/nativescript-version-tracking.svg)](https://www.npmjs.com/package/nativescript-version-tracking)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://www.bazzite.com/docs/nativescript-version-tracking/license?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=nativescript-version-tracking)\n\n# NativeScript Version Tracking ![apple](https://cdn3.iconfinder.com/data/icons/picons-social/57/16-apple-32.png) ![android](https://cdn4.iconfinder.com/data/icons/logos-3/228/android-32.png) \n\nTrack which versions of your NativeScript App, a user has previously installed.\n\n## Installation\n\nRun the following command from the root of your project:\n\n```bash\n$ tns plugin add nativescript-version-tracking\n```\n\n## Usage \n\nThe best way to explore the usage of the plugin is to inspect the demo app in the plugin's root folder.\n\n### Initialize the plugin\n\nThis plugin needs to be initialized when your app starts.\n\n*TypeScript*\n\n```typescript\nimport * as app from 'tns-core-modules/application';\nimport versionTracking from 'nativescript-version-tracking';\n\napp.on('launch', () =\u003e {\n    versionTracking.init();\n});\n```\n\n*Javascript*\n\n```javascript\nvar app = require('tns-core-modules/application');\nvar versionTracking = require('nativescript-version-tracking');\n\napp.on('launch', function () {\n    versionTracking.init();\n});\t\n```\n\n### Use the API\n\nYou can make use of the plugin whenever you want. For example, a user has launched several previous versions, and this is the first time he's launched the new version 2.0.1:\n\n```javascript\nversionTracking.isFirstLaunchEver;        // false\nversionTracking.isFirstLaunchForVersion;  // true\nversionTracking.isFirstLaunchForBuild;    // true\n\nversionTracking.currentVersion;           // 2.0.1\nversionTracking.previousVersion;          // 2.0.0\nversionTracking.firstInstalledVersion;    // 1.0.0\nversionTracking.versionHistory;           // [1.0.0, 1.0.1, 1.0.2, 2.0.0, 2.0.1]\n\nversionTracking.currentBuild;             // 18\nversionTracking.previousBuild;            // 15\nversionTracking.firstInstalledBuild;      // 1\nversionTracking.buildHistory;             // [1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, 18]\n\nversionTracking.firstLaunchForVersion('3.0.0')     // false\nversionTracking.firstLaunchForBuild('20')          // false\n```\n\n## API\n\n\n### Properties\n\n| Property                | Default | Description                                                                                                                                                                             |\n|-------------------------|:-------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| isFirstLaunchEver       |    -    | Check if this is the first time ever that the app is launched.                                                                                                                          |\n| isFirstLaunchForVersion |    -    | Check if this is the first time the current version is being launched.                                                                                                                  |\n| isFirstLaunchForBuild   |    -    | Check if this is the first time the current build is being launched.                                                                                                                    |\n| currentVersion          |    -    | Returns the current version of the app.                                                                                                                                                 |\n| previousVersion         |    -    | Returns the previous version of the app.                                                                                                                                                |\n| firstInstalledVersion   |    -    | Returns the version which the user first installed the app.                                                                                                                             |\n| versionHistory          |    []   | Returns a list of versions which the user has had installed, e.g. ['2.1', '3.5', '4.0', '4.1']. The List is ordered from the first version installed to (including) the current version |\n| currentBuild            |    -    | Returns the current build of the app.                                                                                                                                                   |\n| previousBuild           |    -    | Returns the previous build of the app.                                                                                                                                                  |\n| firstInstalledBuild     |    -    | Returns the build which the user first installed the app.                                                                                                                               |\n| buildHistory            |    []   | Returns a list of builds which the user has had installed, e.g. ['2100', '3500', '4000', '4100']. The List is ordered from the first build installed to (including) the current build.  |\n### Methods\n\n| Method                                         | Returns | Description                                                                                                                                                     |\n|------------------------------------------------|:-------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| init(versionsKey?: string, buildsKey?: string) |   void  | Initializes the plugin. Calling this method is required. A good place to call it is at the application onLaunch() method.                                       |\n| firstLaunchForVersion(version: string)         | boolean | Check if this is the first launch for a particular version number. Useful if you want to execute some code for the first time launches of a particular version. |\n| firstLaunchForBuild(build: string)             | boolean | Check if this is the first launch for a particular build number. Useful if you want to execute some code for the first time launches of a particular build.     |\n\n## Support\n\n- 🐞 For **Bug reports** or **Feature requests**, use the [Issues section][issues].\n- 💬 For **questions**, go to [https://spectrum.chat/bazzite/open-source][spectrum-chat].\n- 🚀 You may also want to [follow the company supporting this project on Twitter][twitter].\n\n### Professional Support\n\nThis project is sponsored by [Bazzite][bazzite-website]. If you require assistance on your project(s), please contact us at [https://www.bazzite.com/contact][contact-page].\n\n## Contributing\n\nPlease make sure to read the [Contributing Guide][contributing] before making a pull request.\n\n## Code of Conduct\n\nEveryone participating in this project is expected to agree to abide by the [Code of Conduct][code-of-conduct].\n\n## License\n\nCode released under the [MIT License][license-page].\n\n---\n\nOriginally inspired by [VersionTrackingPlugin](https://github.com/colbylwilliams/VersionTrackingPlugin).\n\n\n![](https://ga-beacon.appspot.com/UA-65885578-17/bazzite/nativescript-version-tracking?pixel)\n\n\n[contributing]: https://www.bazzite.com/docs/nativescript-version-tracking/contributing?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=nativescript-version-tracking\n[code-of-conduct]: https://www.bazzite.com/open-source/code-of-conduct?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=nativescript-version-tracking\n[issues]: https://github.com/bazzite/nativescript-version-tracking/issues\n[twitter]: https://twitter.com/BazziteTech\n[spectrum-chat]: https://spectrum.chat/bazzite/login?r=https://spectrum.chat/bazzite/open-source\n[bazzite-website]: https://www.bazzite.com?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=nativescript-version-tracking\n[contact-page]: https://www.bazzite.com/contact?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=nativescript-version-tracking\n[license-page]: https://www.bazzite.com/docs/nativescript-version-tracking/license?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=nativescript-version-tracking\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliomrqz%2Fnativescript-version-tracking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliomrqz%2Fnativescript-version-tracking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliomrqz%2Fnativescript-version-tracking/lists"}