When the iPhone SDK was released, just over 2 years ago, open source projects specifically targeting the iPhone OS were few and far between. Over the past year there has been a significant uptick in iPhone/iOS open source projects, and with that, I’d like to share various projects as I come across them. Should a good Cocoa library cross my radar, one that is applicable to iOS, I’ll pass that on as well.
Heads Up Display – MBProgressHUD
The inaugural iOS open source project is MBProgressHUD, you can find source code here on git: MBProgressHUD
For those unfamiliar with HUD, it refers to Heads Up Display, a view that is overlayed on another view, typically to show an activity indicator and/or offer a means to interact with the UI. A good example of an HUD is when playing a movie with the built in movie player. When you tap the screen, the movie player will show a series of controls on the display. Another common example, and one that is pertinent to MBProgressHUD, is showing progress indicators on top of an existing view. For example, when accessing a remote service, to provide feedback to the user you may opt to display a “Please Wait” message.
MBProgressHUD offers a number of interesting options from a simple activity indicator to a mode switching display that can show multiple messages, in sequence. See the figures below for a few examples:


MBProgressHUD includes a demo project that you compile and run in the simulator to get a feel for how things work.
Open Source Code / Project Recommendations ?
If you have written, worked with or otherwise know of an interesting open source project, one that is focused on iOS or Cocoa, feel free to send me a note. Even a simple class/category that is open source is welcome – for example MBProgressHUD is only two files, an interface (.h) and implementation (.m) . You can reach me here.
Related posts:
- iOS Open Source – Coverflow-Like Code
- iOS Open Source – Wolfenstein 3D
- Display iPhone Movies in Portrait Mode (Updated)
Thanks for releasing this project. I’m gonna play around with it and see if I can implement it in my next project!
[Reply]
Great Stuff! Thanks for making it open sourced.
[Reply]
Thanks John – very nice indeed
[Reply]
Great job John! I’ll use it in my nextcoming project!
[Reply]
Great Help John… Thanks for sharing it…
[Reply]
I’m getting errors when compiling:
Undefined symbols for architecture i386:
“_OBJC_CLASS_$_MBProgressHUD”, referenced from:
objc-class-ref in DetailViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Did I miss a step?
[Reply]
You need to add MBProgressHUD.m to the list of files that gets compiled.
Go to the projects target, select the ‘Build Phases’ tab. Add MBProgressHUD to the list of “Compile Sources”.
That should help.
[Reply]
Igor Reply:
April 29th, 2012 at 4:56 am
Big thanks!
[Reply]