git clone https://github.com/NathanWalker/nativescript-plugin-seed.git myplugin
cd myplugin
npm run postclone
npm run setup
- Get to work.
This seed expands on several things presented here.
The seed is prepared to allow you to test and try out your plugin via the demo
folder.
Additionally it provides a proper .gitignore
to keep GitHub tidy as well as .npmignore
to ensure everyone is happy when you publish your plugin via npm.
You will want to create these folders and files in the root:
platforms --
ios --
Podfile
android --
include.gradle
Doing so will open up those native apis to your plugin :)
Take a look at these existing plugins for how that can be done very simply:
- Make changes to plugin files
- Make changes in
demo
that would test those changes out npm run demo.ios
ornpm run demo.android
(must be run from the root directory)
Those demo
tasks are just general helpers. You may want to have more granular control on the device and/or emulator you want to run. For that, you can just run things the manual way:
cd demo
// when developing, to ensure the latest code is built into the demo, it's a guarantee to remove the plugin and add it back
tns plugin remove nativescript-statusbar
tns plugin add ..
// manual platform adds
tns platform add ios
// and/or
tns platform add android
Then use any of the available options from the tns
command line:
This plugin automatically adds Jasmine-based unittest support to your plugin.
Open demo/app/tests/tests.js
and adjust its contents.
You can read more about this topic here.
Once you're ready to test your plugin's API execute one of these commands in the plugin root:
npm run test.ios
npm run test.android
When you have everything ready to publish:
- Bump the version number in
package.json
npm run build
- very important - ensure the latest is built before you publishnpm publish
The plugin structure comes with fully functional .travis.yml file that deploys the testing app on Android emulator and as a subsequent step runs the tests from UnitTesting section. All you have to do, after cloning the repo and implementing your plugin and tests, is to sign up at https://travis-ci.org/. Then enable your plugin's repo on "https://travis-ci.org/profile/<your github user>" and that's it. Next time a PR is openend or change is commited to a branch TravisCI will trigger a build testing the code.
To properly show current build status you will have to edit the badge at the start of the README.md file so it matches your repo, user and branch.