Open petermetz opened 6 years ago
Do we want do some generally planning here, then break these up into individual issues in the v4.0 milestone?
migrate to typescript
Do we want to add the typescript tooling before we get CI and everything going? I like working in TS, but the extra build steps can present a challenge.
Drop Dart VM from depedendencie
Is this for the testing? I've attempted to use cordova-paramedic to run the tests, but I was unsuccessful. I started on a node.js replacement for the dart script as an interim cross platform solution.
https://github.com/dopry/cordova-plugin-ibeacon/tree/medic_tests https://github.com/dopry/cordova-plugin-ibeacon/tree/nodejs_test
CircleCI
I'm happy to help with this. I use it for most of my projects. We can do a tag driven release flow. I find that usually works well.
Ionic Native compatability
What are the action items here? just making sure their definitions are up to date?
Start using conventional git commit messages (needed for automated releases)
already doing it for the most part. ;) There are some validators that can help with that.. here is a snippet of a circleci step I use for this. It basically checks all the commits in the tree since the last tag.
- run:
command: |
LAST_TAG=`git describe --tags --abbrev=0`
echo ${LAST_TAG}
npx commitlint --from ${LAST_TAG}
Update the quickstart repo
What is the scope? Just make sure it's up todate with latest release and has working examples for both IOS and Android?
Drop Q and underscore JS dependencies. Clarify new minimum iOS / Android versions (Promise API, ES6 support?)
Do we want to make the JS updates and host OS versioning separate tasks or are these limited by the host OS webview implementations? I think we need a compatability matrix for cordova-ibeacon/android/ios versions. I think we should also consider ticking major version on upstream OS support as well as any major API changes.
First, need to double check if they still allow developers to submit new versions (I imagine they do, but better to check) so that when we release v4 with breaking API changes it doesn't cause any mayhem implicitly. Then need to finalize the v4 API (typings) Lastly, submit the new Ionic Native code.
They are dependent on each other as far as I know so we can't really separate them. https://caniuse.com/#search=promise => This comes handy, they have the matrix ready for the most part. I recommend being aggressive on dropping support for older OS versions that lost market share. If somebody is hell bent on supporting the older platforms they can just keep using the 3.x plugin. Newer major versions have to be up to date with the latest and greatest stuff.
I think we should also consider ticking major version on upstream OS support as well as any major API changes.
I couldn't agree more. Dropping support for a specific OS version is practically the same as a breaking API change.
I think it may be better get some CI and testing in place, then move to TS. That way we have a way to prove functional equivalency through the transition. I'd vote for 2, 3, & 5 before proceeding on typescript conversion. We could also consider pure ES6 classes and eliminate the TS->ES build step. We could still adapt the interface and S6 may have wider audience than pure TS.
I'll take another stab at paramedic, then the nodejs testing. It would be nice to minimize languages. It's a lot to throw dart on top of java, javascript, and obj-c.
First PR is in. What is the full scope of CircleCI functionality you'd like to get implemented? Linting, Testing, Packaging, Distribution?
I know we can make PR against the ionic native library. But we have to check out all of Ionic Native to work on just our plugin. Maybe they have a feature that can slurp in typings and docs automatically from the cordova-plugin-ibeacon repo.
PR is in.
Cool. It's low on my priority list personally. I'd like to get testing and stuff first, so defering this toward the end of the development cycle would be better for me. It'll also give me time to use it in some other apps I'm working on to explore best practices.
I still like trying to aim for a wide versions support. Android tends to lag out. I think right now I'm aiming to support at a minimum 7.0-8.1. We set the minimum version support of any of our consumers. Is there an easy way for app developers to support and deliver multiple versions of their Apps to different OS versions in the iTunes and Play store?
I think it may be better get some CI and testing in place, then move to TS. That way we have a way to prove functional equivalency through the transition.
Works just as fine for me. Especially since we started with CircleCI just now anyway. :-)
I'd vote for 2, 3, & 5 before proceeding on typescript conversion.
👍
We could also consider pure ES6 classes and eliminate the TS->ES build step.
I love the IDE support with the type definitions, but of course it is undeniable that it's extra complexity. Will sleep more on this one. :-)
another point...
Can we update the plugin so it is always referenced as cordova-plugin-ibeacon to be more consistent with the rest of the plugin universe. It currently is installed as cordova-plugin-ibeacon and removed as com.unarin.cordova.beacon
Okay, but it has to be the other way around. The phrase ibeacon
in the name is a bit unlucky because it's Apple specific and is kind of a trademarking gray area (or so I heard).
How about a middle ground of cordova-plugin-proximity
?
proximity might get into another territory, maybe go literalist? cordova-plugin-btbeacon?
bt
being BlueTooth?
bt == bluetooth, yeah.. maybe proximity is better from a discoverability perspective... Maybe just cordova-plugin-beacon
? We can drop the i and I think people will get it.. proximity makes me think people might start thinking GPS and other proximity or location functionality.
I wish it was that easy... :-) That one is taken: https://www.npmjs.com/package/cordova-plugin-beacon
Another wrench to the machine: Geo-fencing is supported on the iOS platform. If we add it on Android too, maybe it will pass as proximity
, but I'm totally open to other suggestions.
Honestly, I could also live with btbeacon
or blebeacon
.
@petermetz Dear Peter, would you be available for a quick direct support question in regard to the usage of listeing to multiple iBeacons with your plugin? Thanks for your support. Christian.
@ChristianMarkert Sorry, I don't have the capacity for any consulting at the moment. I wish I could help!
@ChristianMarkert, feel free to reach out to me via opportunities@spry-group.com
@petermetz, maybe @jcmurray would be willing to yield the namespace. I'll reach out.
@petermetz I'm going to spin of some new issues to keep various discussions on topic.
cordova-plugin-proximity
https://github.com/petermetz/cordova-plugin-ibeacon/issues/390