Thursday, 7 March 2013

Our dev stack

Here's a quick run down of the workflow we're using, and finding quite effective, on a current iOS project.



As with all iOS projects, the main ingredient is Apple's free IDE, Xcode. When we created the project, we allowed the wizard to set up a git repo for us.











But we don't use Xcode's built-in git tools. Instead we use SourceTree, the visual git manager from Atlassian, the powerhouse software tools vendor. It's free, has a fairly small learning curve, but has just about everything we need. A great feature I use just about daily is GitFlow. This allows 1-click creation and merging of new branches.



GitHub.com is the home of our code. With a small, but mobile team, having all of our code stored on a high-availability, secure and robust service allows us to be highly productive from wherever we can get on the 'net. Shhh... don't tell Marissa.

Each new piece of functionality big enough to be assigned a work ticket is branched in the repo. GitHub and SourceTree make this an easy-peasy thing to do and share.





Logo for Hosted-CI.comHosted-CI.com The "CI" in the name refers to continuous integration. This online service runs the Jenkins port of the venerable Hudson build server, so we consider this service as a giant build server in the sky. We have an integration with github whereby each time a project team member commits code to github, the continuous integration server pulls the latest code from the repo. We have our project configured to automatically run all of the unit tests, before building a signed, distribution-ready application.


JIRA is another great Atlassian product, JIRA is where we track the progress of all phases of the project. Another small integration with github allows each commit to be tied to a specific JIRA ticket. When a developer commits code to the repo, the full commit log, including a list of files worked on, is automatically added to the JIRA issue ticket. We can now not only track who worked on which issues, but also see exactly what the solution was.



Finally, once a fully tested and properly signed binary has been produced, it is sent to TestFlight for distribution to all of our developers and testers. Each person on the distribution list receives an email that allows them to install the latest build directly onto their iOS device with a single click, right from within the email message.









No comments:

Post a Comment