Getting My Feet Wet: The OpenNMS iPhone App

| 3 Comments

I've been spending some spare time working on an OpenNMS iPhone app, and things are coming along just great. As many of you know, I do a lot of work with porting various UNIX C/C++ applications to Mac OS X, but despite now having many years of practice doing such things, I actually have very little knowledge of writing C/C++ code from scratch.

I've debugged many a bad header, but up to this point I could count the number of lines of code I've actually written where I need to manage my own memory on erm... well, 20 hands? OK, bad analogy.

Still, it was with much trepidation that I approached finally hunkering down and learning Objective C. The verdict is: not bad. I did have to go through some growing pains learning how scoping and memory management works, but it's not as troublesome as I'd feared -- and the class libraries are pretty robust. In a couple of weeks, it's nearly feature-complete for what I wanted to get working for a 1.0 release. All that's left is the alarm detail page, and being able to acknowledge alarms from the app.

The biggest thing I learned was Instruments and the LLVM static analyzer are you friends! The Clang Static Analyzer is friggin' awesome -- it wraps your build and then analyzes the resultant binaries and outputs a report that tells you whether you've passed ref-counted data, allocated without deallocating, and other spiffy things.

I'm stopping to work on getting an OpenNMS 1.7.6 (and next week, 1.6.6) release out the door, but hopefully I'll have a chance to pick it back up and finish it off soon. I'm still waiting for the OpenNMS corporate iPhone development paperwork to go through anyways.

Without further ado... screenshots:

Outages List Node Detail (1) Node Detail (2) Node Detail (3) Alarm List Node Search About

It's open-source, so if you want to see my awful code, you can check it out from SourceForge.

3 Comments

Looks awesome!

Brilliant! You truly are unstoppable! :-D

Any update on this app? I am looking forward to it!