top of page
MY APPS & REPOS
Got questions or suggestions?
Contact me at:
Avoid accidents, road blocks, and other stuff that can ruin your day as a driver.
Use this app to share and avoid accidents or other physical barriers you see while driving and confirm issues reported by other drivers.
Vote BLUE in the 2020 US Elections!
Voter engagement app for the 2020 elections and beyond. Find your representatives and connect with people in your electoral district who need help voting.
Objective-C, drop-in UITextField subclass
For those times when you need to limit the amount of user-input text, but don't want to worry about font size, language, or emoji. This deals with all that. Gives a delegate callback when the input limit is reached.
Available as a CocoaPod
pod 'MPC_CharacterLimitedTextField', '~> 1.1.0'
Highly customizable, drop-in, slide-down notification view -- Objective C
When you need to give text notifications or alerts, or notifications with an image (user profile, etc), just pass them to this class, tell it how long to hang around, and it will clean itself up when done. Includes a delegate callback if it detects a user tap or swipe gesture.
Available as a CocoaPod
pod 'MPC_Notification', '~> 0.2.0'
A portable, drop-in browser class with a .xib file in Swift
A custom UIViewController that displays any URL String passed in the custom init in either a full page browser (over or under the Tab Bar), or within a container view.
An Xcode productivity hack wrapped in a source editor extension in Swift
Do you still remember #pragma marks in Objective-C with fondness? Yeah, me too. They were great for organizing code into logically related methods and groups. Swift now has something similar, the //MARK: - ...err...mark. In one tap you get a Swift "pragma mark" with the insertion point moved to exactly where you need to start typing, and a menu heading in your jump menu.
MPC_NSOperation with CloudKit
A NSOperation subclass that makes chaining time-consuming async operations a breeze
While it's easy to perform async operations with GCD, for more complex operations involving blocks of connected work, where the results of one producer operation (eg. a download) need to be used at some point by a consumer operation (eg. data processing followed by overwriting to a remote server)...yeah, that stuff is more challenging. This demo app includes code you can follow to see how to use NSOperation subclasses with NSBlockOperations to pass data along an NSOperationQueue...and it also gives a handy-dandy custom class -- MPC_NSOperation - and a NSOperationQueue custom category to make the whole process easier. There are even a bunch of re-usable CloudKit subclasses in there as a bonus.
bottom of page