When we first started developing for android, we had 2 projects: One for the 'core' functionality, other for the 'business' functionality. So far so good, we went through bad times waiting so much time for compilation of XML changes, but life was still quite bearable. After some time, we evolved (or not) to come with 9 projects. For some projects, we have a 'test' project. We also have some library projects, for instance, we have two different projects for different versions of android, and we have a 'shared' project for shared configs or controllers. The reason for that is because our application is quite big. When we make some changes on the core project, we usually have to recompile, and 'clean' the workspace with eclipse. Also, we usually have to use the 'Build Project' option a few times for the projects to update their references, the first build hardly compiles everything, we call this in our team 'COMBO', which is the combination of 'F5' and 'CTRL+B' to compile the projects. All this setup is killing a lot of time and making developers sad, like, a team of 6 developers :(
I know that by this time we should pretty much know all the issues and the best options, but I can't believe the way it is. And after so many time searching and trying to improve, we can't seem to find other solutions to improve development time with android.
Our set of tools is:
- Eclipse 4.2.1
- ADT 21.1.0
- Eclipse Colour Themes (for a cute code)
- SDK always updated
Hardware:
- Windows 7 Professional 64 bits
- 8 GB RAM
- Intel Core i5-3470 3.20GHz
I would love answers about:
- Compilation time improvement: Did you found any IDE that for YOU it was faster than eclipse? Why? How was the setup? What are the drawbacks of using ADT and how can I improve performance with it, while using multiple projects?
- Project references management, is there any suggestion on how to speed up build? Should I put the whole source code in a single project?
- Any way to speed up development when you have the device and need to deploy it while testing the application?