nativescript-ibeacon
Version:
iBeacon scanning support for Nativescript
96 lines (65 loc) • 3.1 kB
Markdown
# Develop a NativeScript plugin
## Getting started
1. `git clone https://github.com/NathanWalker/nativescript-plugin-seed.git myplugin`
2. `cd myplugin`
3. `npm run postclone`
4. `npm run setup`
5. Get to work.
This seed expands on several things [presented here](http://developer.telerik.com/featured/creating-nativescript-plugins-in-typescript/).
## Usage
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.
### Linking to CocoaPod or Android Arsenal plugins
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:
* [nativescript-cardview](https://github.com/bradmartin/nativescript-cardview/tree/master/platforms)
* [nativescript-floatingactionbutton](https://github.com/bradmartin/nativescript-floatingactionbutton/tree/master/platforms)
### Typical development workflow:
1. Make changes to plugin files
2. Make changes in `demo` that would test those changes out
3. `npm run demo.ios` or `npm 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-ibeacon
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:
* [Emulate your project](https://github.com/NativeScript/nativescript-cli#emulate-your-project)
* [Run your project](https://github.com/NativeScript/nativescript-cli#run-your-project)
* [Full list of commands](https://github.com/NativeScript/nativescript-cli#the-commands)
## Unittesting
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](https://docs.nativescript.org/tooling/testing).
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
```
## Publish
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 publish
* `npm publish`
## Contributing - Want to make the seed better?
Or at least help keep it up to date with NativeScript releases, which would be excellent.
```
npm install -g typescript // if you don't already have it
git clone https://github.com/NathanWalker/nativescript-plugin-seed
cd nativescript-plugin-seed
// Improve!
```