SW dev tools on Mac

Discussion in 'Mac Programming' started by jpyc7, Jul 30, 2012.

  1. jpyc7 macrumors 6502

    Mar 8, 2009
    Denver, CO

    I'm looking for recommendations for software development tools either on Mac and/or in conjunction with a Linux system as well.

    I am setting up for Android development (with just myself as the single developer for now).

    Documentation (reqts, design, test) - Pages word processor? I think I want something with better support for UML. In MS Windows, I used IBM Rhapsody (a really expensive reqts tracking tool), Visio, and MS Word.

    IDE/Coding/testing - Eclipse/junit. I plan to stick with this.

    Version Control - Bazaar? I am new to it and not that thrilled about its integration with Eclipse. I picked bzr over git since it seemed better for someone with svn experience.

    Defect tracking - ??? I've used gnats and bugzilla.

    Scrum tools - ??? Mostly, I would like to track tasks (product backlog, sprint backlog). I am not too concerned about graphical output like burn-down charts. I've used "trac", a python-based web tool with sql backend, which my last company customized for scrum and not so much for defect tracking. It was okay, but I hope to use something developed specifically for scrum.

    My impression is that I might be better off going with just Linux for all development since I prefer free open-source tools, but I already have some tools working in my Mac. Installation on Linux from a major distro seems like less hassle than installing Mac versions. From what I can tell, one cannot download many of these tools from the App store.

    Feel free also to "disrecommend" any tools that you think are not very good.

  2. displaced macrumors 65816


    Jun 23, 2003
    Gravesend, United Kingdom
    I've not used anything with in-built UML support, but I tend to do my documentation using the wiki pages in my issue tracker (see below).

    At work (.net developer), I use xml codedoc comments which are parsed by Sandcastle into a nice website. Not sure what there is on the Eclipse/Java side (javadoc?).

    I've stuck with SVN despite the interest in git/bazaar. If you're already very comfortable with SVN and have experience with the useful tools (WebSVN, etc) that exist, then I'd stay with it.

    I use (and love) Redmine. Very extensible and has great source control integration.

    For example, put the following in your commit log:

    Workaround for race condition at startup if no network is available (fixes #1234 @2h)
    ... and it'll link your commit with ticket #1234, will close that ticket and also log 2 hours work against it.

    It's also got a very good per-project wiki with various PDF and HTML export options that makes for good redistributable documentation.

    Redmine has a few Scrum-based plugins, but I've not played with them.

    For this sort of stuff, the difference between OS X and Linux is pretty similar to the difference between Linux and another *nix such as Solaris. It's no more difficult to get this stuff up and running -- it's just different.

    I run Subversion, Redmine, WebSVN and the Jenkins continuous integration server on OS X and found the initial setup a breeze. Most of the 'base' stuff (ruby, mysql, php, perl, python, etc) is part of a default OS X install. Java, whilst not a default install any more, is no harder to install than any other platform.

    I mentioned Jenkins CI just now -- I highly recommend having a continuous integration system if you're going to be building software for anyone but yourself. I have mine (both home and work) set up to build on every commit. This gives me the freedom to mess about as much as I want in a debug environment, but get the assurance from Jenkins that the committed code still builds and tests correctly in a release environment. Add some automation for installer builders etc. and you've got a solid release pipeline. Also prevents you doing the classic howler of releasing some code with accidental debugging #define's in there!

    You mentioned 'trac' in your post. We used that for a long time before finding Redmine. We've not regretted the change in the slightest! Not that trac's bad, just Redmine's much better. Redmine's also much friendlier than something like Bugzilla. We have no qualms exposing part of our Redmine site to customers so that they can log issues themselves.

    Good luck!

  3. softwareguy256 macrumors regular

    Jun 5, 2010
    sounds like you already have your mind made up so why are you even asking this question.

  4. Reason077 macrumors 68020


    Aug 14, 2007
    Pretty much all open-source Linux tools work just fine on the Mac.

    For a Mac equivalent of your Linux distro's package manager, check out Homebrew (my favourite) or Macports.

    In my own workflow I use a mix of XCode, Eclipse, and open source command line tools.
  5. Cromulent macrumors 603


    Oct 2, 2006
    The Land of Hope and Glory
    Frankly I just use Bitbucket or Github to handle task tracking and version control. I have no experience with Bazaar but I do have experience with Git and I'll say that it is quite easy to learn the basics of it which most of the time is all you need. As long as you understand branching, tags and merging in Git you'll be fine.
  6. jpyc7 thread starter macrumors 6502

    Mar 8, 2009
    Denver, CO
    Thanks for your comments, Chris. I definitely want to look into redmine; I vaguely recall that it was something I had run across before too. Especially since it is built on Ruby and I'd like to learn some of that.

    I forgot about continuous integration. I "used" Hudson, the predecessor to Jenkins at work, but did not actually set it up. It's pretty easy to forget about all the SW dev tools that one COULD use for best practices, but frequently do not such as code coverage, static checking, memory leak checking, etc. I don't expect to be using these anytime soon.

    I will look into these tools. I had vaguely heard of them, but didn't really understand that they are package managers. I mostly used the Mac for consumer software for which Apple provides a good ecosystem.

    I have used git with ucLinux (a variant for embedded systems), but it involved the kernel and I had trouble with pulling and merging. I recall my issues (due to lack of knowledge) had to do with auto-generated files, which did not have any documentation.

    For app-level software, you are probably correct that just the basics are required.

Share This Page