#About this is a VERY loose collection of individual classes and/or components for OSX/IOS that I find myself reusing serveral times and so thought it that it might be good to make them available.
most of the classes are not tested and have no documentation. They also arent meant or even guaranteed to be feature complete. they were/are all used in one or the other published app though.
- BonjourServicesBrowser [ios+osx] - asynchronously finds services using NSNetServiceBrowser
- DBPrefsWindowController [osx] - a window controller that is tailored for doing preferences windows. (has a tabbar, crossfades. Meant to be subclassed. Based on class by Dave Batton)
- DDASLQuery [ios+osx] + demo - wraps the C apis for querying ASL (default log on ios4+ or 10.6+)
- DDChecksum [ios+osx] + demo - wraps the C api for building checksums (from apple's CommonCrypto library)
- DDEmbeddedDataReader [osx] + demo - Based on code from BVPlistExtractor by Bavarious, this class allows easy reading of embedded (linked in) data from any executable. (e.g. a CLI Tool's plist included using the linker flag `-sectcreate __TEXT __info_plist TestInfo.plist`)
- DDMicBlowDetector [ios] + demo - one class that worries about getting microphone input and making 'sure' that the sound is a blowing/hissing sound… not some random music. (the confidence value for this can be set, as well as min/max durations) The basic algorithm is based on a tutorial from Mobile Orchad by Dan Grigsby.
- DDRecentItemsManager [ios+osx] + demo - simple wrapper that stores a list of items (NSDictionaries). The array is trimmed to a user-definable maximum (on osx it uses NSDocumentController, on ios it is set to 10 by default). The list is persisted as a plist in the ApplicationSupport directory.
- DDTask [osx] + demo - 'Replacement' for NSTask that can be run multiple times in any operation / any thread. It tries to get a successful result N times and returns the result of stdout or nil.
- DDXcodeProject [osx] + demo - A class that wraps a XCode project file. It extracts the basic project variables (name, orga, language, _resolved_ root dir) but it doesnt yet look up targets or files. It uses reflection for the parsing.. also nice. Ive first seen it in AQXMLParser :)
- M42AbstractCoreDataStack [ios+osx] - offers a simple core data wrapper (if one doesnt want to use the really good library MagicalRecord)
- M42RandomIndexPermutation M42CompatibleAlert [ios+osx] + demo - Helper to build indexsets that are random but the indices remain unique and the sets reproducable.
- NSFileManager+Count [osx] - (Cocoa wrapper for legacy but fast carbon way of counting files in a folder )
- NSString+advancedSplit [ios+osx] + demo - A 'smarter' version of componentsBySplittingString. It never breaks inside of quotes and respects escaped strings.
- NSDictionary+PostData [ios+osx] - Provides a method to get POST Data from a dictionary it supports NSStrings and NSData(!) [it creates multipart post]
- NSObject+DDDump [ios+osx] + demo - provides a dictionary with reflected information about the class (superclass, protocols, ivars, properties, methods). The category also has a 'dump' method to assemble the data into a NSString that you can output.
- NSString+Entities [ios+osx] - Escapes Entities so the NSString is valid for xml content
- NSString+ValidateEmail [ios+osx] + demo - Check if a NSString object represents a valid email. Uses some regex.
- SKPaymentQueue+TransactionForProduct [ios+osx] - Category to search in a PaymentQueue for (any / first successful[restored or not]) transaction for a given product identifier.
- NSWorkspace+runFileAtPath [osx] - category that provides a method to run any file. It can be an Applescript (NSApplescript is used), a shell script or exectuable (NSTask is used), a file wrapper or app (NSWorkspace is used) or a directory (is opened with the finder). Specified arguments are passed to the Apple Scripts, Shell scripts, to apps and to unix executables.
- NSArray+DDPerformAfterDelay [ios+osx]-Category on NSArray to easily call makeObjectsPerformSelector after a delay
- DDAddressPicker [osx] +demo- A Windowcontroller that offers a PeoplePicker allowing to pick persons from the addressbook. Adding some Features commonly needed
- M42ActionSheet [ios]] - Drop In Replacement for UIActionSheet with support for custom colored buttons. (specifically we wanted a green one!)
- M42ClickableImagview & Label [ios] - Subclasses that have action & target and react to touches
- M42CompatibleAlert [ios+osx] - Class that wraps UIAlert and NSAlertView. Displaying the correct one depending on OS.
- M42LoadingScreenViewController [ios] - Black screen, White 'Loading...', spinner, progressbar :) Looks a bit like the iOS Startup screen
- M42PieChartView [ios] - A UIView that displays a 2D PieChart (for more graphing options, look into CorePlot)
- M42PinchableWebView [osx] - Subclass of WebView which handles zooming in response to pinch gestures.
- M42TabBarController [ios] - A tab bar that has a 'disabled' property and can draw with a 'black translucent' overlay to signal its status.
- M42WebViewController [ios] - A view controller that manages a webview. It displays loading labels and offers a back button if appropriate
- M42WebviewTableViewCell [ios] - Interesting cell that displays html content
- NSWindow+localize [osx]-Category on NSWindow that localizes itself and all its subviews. (knows many defacto default selectors so it works with many views out-of-the-box)
- NSWindow+Fade [osx]-Category on NSWindow that adds fadeIn and fadeOut actions that work like animated order in order out
- NSView+findSubview [osx]-Category on NSView that provides aa method to find a subview (by class and or tag) in its subview-tree.
- NSWorkspace+IconBadging [osx] + demo-Category on NSWorkspace that allows setting icon badges on files/folder (like dropbox or torquoise SVN). (wraps carbon's IconServices API for that)
- NSAttributedString+DDConvenience [ios+osx]-Category on NSAttributedString to create it from printf like varargs (like stringWithFormat:)
On OSX there's also attributedStringWithImage.
###ALL IS AVAIABLE under MIT