Taking Lead on NgCordova

It was March, and I was on my way up to NYC to interview for the Software Engineering position at Jewelbots. I was using the UX mocks Sara gave me to build a front end for the app to show that I could (come to think of it, I don’t know why I did that). I was using Ionic. Sara Chipps (CEO of Jewelbots) looked at me and said, “So do you think we should build our app in this? Can Ionic support Bluetooth?”

After a quick moment of panic and a little googling, I found ngCordova and said, “This looks like it will work, let’s use Ionic.”1.

It’s been a rollercoaster ever since.  Ionic is a top-notch framework for cross-platform mobile apps2, but one issue is that since it’s relegated to the WebView for each platform, it doesn’t have access to the native plugins through JavaScript. That means Cordova, which means ngCordova (or lots of callbacks).  And ngCordova releases have been… lagging behind3.

Since I depend on ngCordova for Jewelbots4, and since I already spend most of my day looking at ngCordova and Ionic issues, it only makes sense to help maintain ngCordova.  I asked Mike from the Ionic team about taking over lead on ngCordova, and he agreed.

So, starting today, I’m the new lead maintainer on ngCordova.

What does that mean for you?  If you use ngCordova, I’m going to be going through the outstanding PRs and resolving those first; and then go through the issue backlog and prioritize fixes.  My goals:

  1. Keep ngCordova up to date with bug fixes.
  2. Make sure documentation reflects the plugins’ capability.
  3. Allow for developers to quickly see which plugins are compatible with which versions of cordova.
  4. Make sure issues, comments, and PRs are addressed in a timely fashion.
  5. Accepting PRs for new plugins or plugin changes to plugins that are actively maintained.

You’ll notice that I’m not talking about new development of plugins per se.  NgCordova has always been a wrapper for community maintained Cordova plugins, and not a creator of plugins itself.  One important piece, though, is to make sure that developers know which ngCordova wrappers support the various versions of Cordova.

For a truly native experience for app development, plugins are essential; and it’s my goal to make sure the ngCordova experience is as welcoming to new Ionic app developers as possible.

If you work with ngCordova, I want to hear from you. What needs to be improved?

PRs welcome5.

1. It’s interesting to note that while conceptually I understood Ionic was a wrapper for Cordova, I’d been using it for all of about 4 days, and didn’t know how plugin support worked.
2. I gave a talk on ionic at NoVA Code camp, slides here.
3. In the interest of full disclosure, I’ve done a lot of belly-aching about ngCordova. It’s only fair I should put my money where my mouth is.
4. Our custom build is here: Includes BLE plugin compatible with Cordova 5.0; fixed Contacts plugin Wrapper; and a partridge.
5. Please be gentle.

Leave a Reply