BGHUD AppKit – Impressive HUD Framework
The lack of HUD controls from Apple in Leopard is a hot topic. The HUD style has picked up quite a following over the last few years, and without an official release of the controls from Apple, developers have been left to their own devices to replicate that style.
The community has been hard at work and before now the most notable project being developed was by the Shiira web browser team, called BlkAppKit.
Tim Davis from Binary Method has been hard at work creating an awesome framework of HUD controls. Unlike the few other kits already out there, BGHUD AppKit does not use images to create the controls. None at all. These controls are beautiful and ready for Resolution Independence. Also worth noting is the shear number of controls already available, the speed with which the developer is creating new ones and the community that is using it, including RealMac Software, developers of RapidWeaver.
Another unique feature to the BGHUD AppKit is theming. Tim has taken an interesting approach to theming the controls to better match your application, if you need something different than the default HUD style. Place your controls on the windows and set the custom class, as you would with any other custom control in Interface Builder. Building and Running the application at this time will show no difference. However, if you initiate an object controller, of either “BGThemeManager” or “BGGradientTheme” and connect the outlet of every control to this object, your controls are now updated. Using the “BGGradientTheme” gives you the default appearance, while using the theme manager lets you customize the controls.
This seems a little tedious upfront, especially if you want to just use the default appearance. However, if you needed to change the overall appearance of your application, instead of subclassing all of these controls, you can simply subclass and use the update theme manager. Therefore, it does pay off in that respect.
My personal recommendation: If I don’t set the outlet on my control to a theme manager, then use the default HUD behavior. That way I don’t even have to worry with it. But, the work put into this framework is phenomenal and it seems that Tim isn’t sleeping until he implements every last single available control perfectly. If you need HUD controls in your project, I strongly believe this is the best framework available. The work is beautiful, it’s under heavy and active development, the developer is responsive to requests, it’s easily theme-able, and all the controls are already Resolution Independent.
Update: Tim has already read the post and really liked my recommendation for simplifying the ThemeManager behavior. Even better, he’s already implemented the change into the framework, so checking out subsequent version from SVN are now more friendly. Check out his blog for more details and to get your copy.














Submitting Your Comment, give me a second...
Thanks for the awesome post about BGHUDAppKit. I appreciate it very much.
Per your suggestion I have just committed the changes that let the controls default to the Gradient HUD style when no theme has been defined. Thanks for the feedback!