A collection of UI goodies for iPhone.
Objective-C C
Permalink
Failed to load latest commit information.
MuiKit.xcodeproj Fixes to URL redirection resolving. Oct 11, 2010
Scripts Removed extraneous quotes. Apr 27, 2009
en.lproj Initial commit. Mar 23, 2009
it.lproj Initial commit. Mar 23, 2009
.gitignore Ignored Xcode fluff. Jan 30, 2010
Info.plist Added resources bundle and embedding target. Mar 25, 2009
L0ActionSheet.h MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
L0ActionSheet.m Moved to SDK 4. Various little build fixes. Aug 21, 2010
L0DraggableView.h MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
L0DraggableView.m Removed 'self' in L0Logs since L0Log now auto-captures self. Sep 16, 2009
L0ExternalURLOpeningDetection.h Initial commit. Mar 23, 2009
L0ExternalURLOpeningDetection.m Initial commit. Mar 23, 2009
L0FlipViewController.h MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
L0FlipViewController.m MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
L0KVODictionaryAdditions.h Now using functions rather than NSDictionary additions for KVO. Jun 28, 2009
L0KVODispatcher+Test.m Some structural reorganization in the project. Jul 18, 2009
L0KVODispatcher.h Moved to SDK 4. Various little build fixes. Aug 21, 2010
L0KVODispatcher.m Moved to SDK 4. Various little build fixes. Aug 21, 2010
L0Keyboard.h No L0Keyboard on iOS 4. Jun 24, 2010
L0Keyboard.m No L0Keyboard on iOS 4. Jun 24, 2010
L0Map.h MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
L0Map.m Fixed stupid extra &s that caused stack smashin' and crashin'. Sep 13, 2009
L0SolicitReview.alert Initial commit. Mar 23, 2009
L0SolicitReviewController.h MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
L0SolicitReviewController.m Fixed again the property mess in the solicit review ctl. Hope this st… Nov 11, 2009
L0UUID.h UUID class and a few little changes. Also, iPhone Simulator target. Mar 24, 2009
L0UUID.m Fixed a GC leak in L0UUID. Jun 24, 2010
L0WebViewController.h Added web view autoresizing. Jun 24, 2010
L0WebViewController.m Added web view autoresizing. Jun 24, 2010
LICENSE Initial commit. Mar 23, 2009
MuiKit+Test-Info.plist Added new methods to the KVO dispatcher and a few unit tests to make … Jul 18, 2009
MuiKit.h Added L0Keyboard. Jan 30, 2010
MuiKit.xcconfig Fixes to URL redirection resolving. Oct 11, 2010
NSData+L0IPAddressTools.h A few fixes to IP stuff. Aug 29, 2009
NSData+L0IPAddressTools.m A few fixes to IP stuff. Aug 29, 2009
NSURL+L0URLParsing.h Added URL parsing utilities. May 13, 2009
NSURL+L0URLParsing.m Added URL parsing utilities. May 13, 2009
NSURL+L0URLResolvingRedirects.h Replaced kL0MuiKitAllowBlocks with __BLOCKS__, which is automatically… Jul 17, 2009
NSURL+L0URLResolvingRedirects.m Fixes to URL redirection resolving. Oct 11, 2010
ProjectStyle Added a ProjectStyle file to allow building via UBTs. Mar 25, 2009
README.markdown Added linker option instructions for categories (-ObjC). Apr 2, 2009
UIAlertView+L0Alert.h MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
UIAlertView+L0Alert.m MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
UIApplication+L0NetworkIndicator.h MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
UIApplication+L0NetworkIndicator.m MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
UIDevice+L0ModelDetection.h Added internal model name property to UIDevice. Oct 13, 2009
UIDevice+L0ModelDetection.m Added internal model name property to UIDevice. Oct 13, 2009
UIImage+L0RenderingAdditions.h MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009
UIImage+L0RenderingAdditions.m MuiKit can now be built for use on Mac OS X. This is useful if you wa… Sep 12, 2009

README.markdown

MuiKit

MuiKit (short for Mobile UI Kit) is a collection of iPhone code that aims to make programming on iPhone simpler, easier and more rewarding and effective.

That's mostly it. It's underdocumented and overhyped. It's all under a new-BSD-style license. Enjoy it.

Embedding MuiKit in your own projects…

… is made needlessly complicated by a number of Xcode stupidites — especially if you want things to work both on device and on simulator. Sigh.

The steps are as follows:

  • Before you start, set up the ∞labs build tools.
    • Clone the repository at http://github.com/millenomi/infinitelabs-build-tools/;
    • Set it up in Xcode by going into Xcode > Preferences > Source Trees and adding a new tree with the following data:
      • setting name: INFINITELABS_TOOLS
      • display name: "∞labs build tools" (or anything descriptive that you like)
      • path: the full path to the repository clone above.
  • Check out the source in a directory and make sure it builds.
  • Set up an interproject dependency between your new project and MuiKit.xcodeproj's MuiKit target:
    • Drag MuiKit.xcodeproj into your project.
    • Select your target and choose File > Get Info.
    • Add the target named just MuiKit to the dependencies list (by clicking "+" under the list in the top part of the General pane of the window). (There are other targets that start with MuiKit, eg MuiKit (Resources) — ignore them, they're built as part of the target you just set a dependency on. They're "implementation details" if you will :D)
    • Keep the Get Info window open, because you need it to…
  • Set header search paths to include the headers in {MuiKit directory}/Build/Headers, and linker options to include Objective-C categories:
    • In the Get Info window from the previous step, switch to the Build pane.
    • Look for the "Header Search Paths" setting.
    • Add the following path to the setting {MuiKit's source directory}/Build/Headers, non recursive.
    • Look for the "Other Linker Flags" setting.
    • Add the -ObjC flag to the end of the setting.
  • Add resources and libraries to the application target:
    • Go back to the project window.
    • Locate MuiKit.xcodeproj and expand it with the arrow on its right.
    • Drag libMuiKit.a to your application target's Link With Libraries phase.
    • Drag MuiKit.bundle to your application target's Copy Resources phase.

… aaaand you're set. If you use MuiKit, you will get a CodeSign build error if you choose a "Device" SDK from the Xcode pop-up as the resources bundle is built. This is normal and as of 3.1.3 unavoidable. To build for the device instead, change your project's base SDK in the project's Get Info window to what you need, then use the "Project Setting" item from the pop-up instead — this will respect the overrides that MuiKit has to apply to the build system in order to avoid the error. The "Simulator" SDK works fine and does not trigger the error. (As an added bonus, MuiKit will be built for the simulator and used correctly as you would expect.)

To use any header from MuiKit, use:

#import <MuiKit/MuiKit.h>

or similarly for individual .hs.