Development setup

Hi everybody

i m working with ionic since a few months now.
I really love this framework and the development speed is amazing.

But now i need some ideas to structure the development environment a bit better, since I m not the only person who works on an app.

My current setup looks like

Netbeans 8.0 ( great cordova support )
Grunt with following tasks

  • ng-annotate ( prepare files for minification and to combine all files into one bundle file )
  • uglify ( to make the bundle file hard to read ( production only )
  • docular ( to generate a nice documentation )
  • karma + istanbul for ( testing and coverage )
  • cordova-icon ( generate icons for all supported platforms )

Structure of the app :
Instead of working on the www folder of cordova i ve added a www_dev folder next to the www.
grunt cares about adding all necessary files to the www ( in most cases the minified and uglyfied js files and all html and css stuff via grunt watch )

inside the www_dev folder the app has following structure

  • css ( all css files )
  • js
  • lib ( lib files like lodash )
  • ionic ( ionic files ( in production only the bundle.min.js )
  • app ( my app )
  • view1
  • view1.html
  • view1.controller.js
  • view 2
    • view2.html
    • view2.controller.js
  • some more views …
  • app.js
  • some other stuff

The final app is build with jenkins ( cordova build ) and checked against several rules with sonar cube

My question:

Is this a good way to setup a project right ?
Any ideas or suggestion to keep the development speed and the quality of the product high.

For android the generated apk is available as jenkins artifact. The testers have to download them manually. Is there a possibility to update an android app on the fly to all testing devices ( apk only since i m working on custom cordova plugins -> serving the web part does not help here ). Its not possible to add the files to a cloud service due to some company restrictions. --> Looking for an inhouse solution



Now it is possibile to distribute apk as alpha or beta through google play, you can create a group of testers with google group, once testers agreed on testing your app, they receive new alpha/beta versions to test. You have the option to promote betas to production.

Your setup is really interesting, how is it working? do you have any feedback now? I would love to know something more about; especially about jenkins integration, how do you distribute tests? Jasmine, protractor, do you use tools like appium?

Our app updates via our own servers now. ( check Cordova-app-loader )

Works very well.
We us appium for our tests