Build complex iOS interfaces with a mature UI framework
Building user friendly iOS applications takes a lot of behind-the-scenes engineering. This framework provides structure and utilities for building robust user interfaces for iOS devices. Compatible with iOS versions from 5.0 to 7.x.
Basic functionality for UIViewControllers
- Keep track of view state (invisible, about to be visible, visible, about to be invisible)
- Proper memory management which is backwards compatible over different iOS versions (symmetric viewDidLoad - viewDidUnload)
- In-app localization changes support
- Stylesheet support
Extensions for UITableViewController
- Drag to refresh and drag to load more support.
- Automatic adjustment of content insets corresponding to navigation bar tranlucency
- Automatic resize and scrolling corresponding to keyboard appearance/disappearance.
- Automatic showing of a different view when no results are present or when an error occurs (instead of nasty alert views)
- Asynchronous model loading support.
Different kinds of views
- UITableViewCell base classes
- Loading indicator view
- Asynchronous loading image view/button
- Animated image view with cross-fade transitions
- Draggable button for a sliding interaction (like slide to unlock)
- Custom bar button item with support for both an image and a title
Extensions for existing view classes
- Category methods for a lot of existing UIView sub classes
- Thread-safe rotation/scaling using different aspect modes (scale, aspect scale, etc)
- Cropping of images, e.g. for rounded corners
AppDelegate base class
- Integrates with the BMCore module (BMApplicationContext and BMService framework)
- Support for automatically showing a loading overlay when services are active with support for send to background and cancellation.
- Support for receiving a shake gesture independent from UIViewControllers
Part of the BMCommons Framework for iOS
This extends and requires the BMCore framework for iOS, is used by the BMMedia framework for iOS and is part of the BMCommons framework. The BMCore Framework has been developed and used in production apps during the last five years including the BehindTheFrontDoor iPhone app.
The author, Werner Altewischer, has over 15 years experience as software developer and a track record of many successful apps since the launch of the app store in 2008 including the Greetz iPhone app, which won the award of best mobile web store of 2012 in The Netherlands.
- UIViewController base classes, such as BMViewController, BMTableViewController and BMNavigationController offering drag to refresh, drag to load more and custom push animations amongst other things;
- UIViewController classes which use the BMService framework to asynchronously load their model, such as BMServiceModelTableViewController and BMEntityServiceModelTableViewController;
- Helper classes such as BMImageHelper, BMDialogHelper and BMDeviceHelper;
- Base classes for UITableViewCells, such as BMTableViewCell and BMObjectPropertyTableViewCell;
- Asynchronous image loading support through BMAsyncImageLoader;
- UIView/UIControl classes such as BMTextField, BMAnimatedImageView, BMAsyncLoadingImageButton, BMDraggableButton, BMBarButtonItem;
- Stylesheet support for view controllers through BMStyleSheet
- Loading indicator support through BMBusyView
- Categories on commons classes such as UIWebView(BMCommons), UIView(BMCommons), UINavigationBar(BMCommons) and more;
Here is a full list of all classes with a short description of their purpose.