I've been using the iPhone SDK since its original release way back in March. Many frustrating moment in the beginning but the recent beta 7 and beta 8 release proved to be ready for prime time. Apple has added many helper classes or helper methods to classes to make it far easier to work with the UI components, which is by far the most frustrating things I encountered. I am still having problem wrapping my head around the idea of Interface Builder but since the apps that I am building do not involve very complex UI, I just hand coded all the UI instead.
To illustrate, the original iPhone app idea I had that I started developing using the original SDK is a mobile application for Mingle. The application would consist of a series of table views showing projects, cards, and card details, along with some network code to talk to the Mingle server through REST API. At that time, progress was slow because of many factors. First, learning Cocoa/Cocoa Touch API and Xcode at the same time was tough. Second, the Cocoa Touch API was a bit 'primitive' in the beginning. What I mean is that while the API provides all the necessary hooks for developers to create an iPhone app it does not provide many pre-build components, making it difficult and required lots more work from developers to re-create the look and feel of the built-in iPhone apps.
I was so put off by the initial experience that I skipped beta 4-6 and did not open up Xcode until last weekend. And what a refreshing change with beta 7! Now it is straightforward to make an app that looks and feels just like an Apple's one. I was so fired up that last Sunday evening I decided that I would try to create an app for an idea that one of my fellow ThoughtWorker suggested to me. Instead of days of tearing my hair out and got no where, I was able to create a almost features completed app within hours, using beta 8.
So what is this app? It checks the build status on the CruiseControl server. Just like CCTray (Windows) or CCMenu (OS X), it allows users to monitor their software build status. Following the convention, I am calling it CCPhone. The app isn't more complex than the Mingle app but the fact that I was able to almost match the productivity I normally get on my Windows development environment means that I was excited about working on the app rather than dreading it.
Now here are couple of screen shots:
To-do:
- Fix the build time being 1 hours off (probably day time saving bug)
- Better status icons
- Create application icon (currently it uses icon from CCMenu)
- Finish coding the 'Force Build' functionality
- Add startup screen bitmap (so it won't be just a black screen)
- Add auto detect of CruiseControl server (Java, .Net, or Ruby)
Well when ever Iphone decide to come to SA which were rumoured between August and November, we will have to see, in the meantime I am waiting patiently.
Seriously disappointed Apple fan.
LikeLike
This is absolutely awesome, can't wait to see it as a download. I was
just thinking today that this needed to be done so I could be out to
dinner and (obsessively) check the status of our integration build. Any
idea if you are going to release it on the Apple App Store? 🙂
LikeLike
I'm still waiting for ThoughtWork's application to the iPhone Dev program to be approved, so I can get my hands on the certificate to sign the app. So no idea when, I'm afraid but it's a definite.
LikeLike
looks great!Is the source code for this app available for download ?
LikeLike
Source code is not available yet. I am reluctant to open source the app until the Apple NDA situation is clarified.
LikeLike
Great!
Did you ever get this on the app store? How can I find it?
LikeLike
any updates on what's happening with the source for this in a post NDA world?
LikeLike
I haven't submitted the app to the AppStore. I have been pretty busy with my day job so I haven't devoted any time to it since last year.
LikeLike
I'm considering open sourcing the app so others can write patches, add new features, etc. Just need to find time to set it up all 🙂
LikeLike
Need to be able to push through a VPN gateway to get to the server in many corporate environments (properly authenticated, of course).
LikeLike