Hey

Since we've been running into numerous issues with Google updating their
tools already, I think it's time that we update the new project structure
to work with Android Studio more easily so that we can integrate JUnit
tests for plugins, Library Projects, Gradle dependencies and allow for
people to work with Android Studio and Android tools more easily on Cordova
projects.

Right now, I have a branch where I'm currently working on stuff.  I don't
have upgrade scripts working, nor do I have plugin installation working
yet, but this will auto-detect the structure and will pick the right
builder for the project.  You can check it out here.

https://github.com/infil00p/cordova-android/tree/StudioProjectCleanup

It should be noted that we kinda half-assed the ANT support and that we
never properly supported Ant, so I think we should officially drop Ant
support in the next version of Apache Cordova regardless.

The big elephant in the room is the plugin installer and the fact that
plugin authors basically abandon their projects after the 1.0 release.
Cordova probably has the most abandonware that I've ever seen.  We're going
to have to write a LOT of mapper code just to keep the old plugins working
since people are using them regardless of their abandonware status, and we
don't have the resources to re-write every plugin everywhere and support
them.

That said, we've used plugins as an excuse to not upgrade for three years
now, and I think the problems with this position are going to get a lot
worse the longer we pretend that Android Studio doesn't exist.

Here's the TL;DR of what I propose:
1. Change project structure so new Cordova-Android platform directories
have an Android Studio directory structure.
2. Allow for existing projects to stay the same for the time being and for
a project upgrade to be hidden behind a flag
3. Move plugins to work like library projects and possibly AARs down the
road.

I know that I've written this e-mail before, but it would be great if we
could finally move forward with this change before Google breaks more stuff
with our current builds.

Thoughts?

Joe

Reply via email to