Open Source Projects

霍弘厚
2023-12-01

Open Source Projects

The following projects are the open source projects hosted at ProjectsWithLove. They are mostly projects that I've written and shared as part of my Mac programming blog, CocoaWithLove and are intended to teach concepts and techniques in Cocoa Mac programming.

NameRelated blog postDescription
AnimationAccelerationParametric acceleration curves in Core AnimationA sample Mac application that simulates some functions that CAMediaTimerFunction can't achieve by using parametric CAKeyframeAnimation values.
AppWithButtonCustom views in Interface Builder using IBPluginsAn Mac application with a custom drawn button and a plugin allowing the button to be viewed and customized in Interface Builder.
AustralianPostcodesThe design of an iPhone applicationAn sample iPhone application that displays the locations of Australia Postcodes from a Core Data file in an MKMapView.
CocoaScriptA Cocoa application for running scriptsA Mac application that runs a series of steps, recording the output of each step and tracking the success/failure result of the steps, much like a typical IDE build log.
ColumnSplitViewAn NSSplitView delegate for priority based resizingA Cocoa Mac delegate class that configures a split view for this side panel and main view behavior — resizing the views in a split view based on a priority list.
ColumnViewSampleCustom UI Bindings in Interface BuilderA Mac application demonstrating how to implement custom UI bindings with a column view designed like the iOS UITableView.
CSVImporterWriting a parser using NSScanner (a CSV parsing example)An RFC4180 compliant CSV parser implementation to show you the basics of writing a recursive descent parser for importing data into your Cocoa applications.
CurveDrawingCoreGraphics curves and lines: a sample appA small Mac application which shows the basic CoreGraphics line drawing primitives. Includes mouse editable control points to manipulate the primitives graphically.
CustomObjectCreationAlternative Objective-C object allocation for large arraysSample code that shows how to allocate arrays of Objective-C objects with a single malloc operation (for efficiency).
EasyCustomTableEasy custom UITableView drawingA sample iPhone application that draws its UITableView using entirely custom graphics.
FIFOQueuesBreadth-first traversal of a graph of Objective-C objectsA command line Mac program used to test overheads of using an NSMutableArray as a FIFO queue in different ways.
FullscreenImageAnimating a window to fullscreen on the MacA simple Mac application which shows how to animate a window to fullscreen.
GraphicalSubtraction5 ways to draw a 2D shape with a hole in CoreGraphicsA collection of different ways to draw hole in the center of an object in CoreGraphics.
HashValueHashValue: an object for holding MD5 and SHA hashesA class for creating MD5 and SHA hashes easily in Cocoa.
HiddenDrawerIntercepting status bar touches on the iPhoneAn iPhone application that uses an undocumented hack to intercept a status bar touch and display a hidden drawer.
IconAppAdvanced drawing using AppKitA Mac application that draws an icon similar to the Mac App Store icon, entirely in code using AppKit drawing primitives.
iPhoneStreamingPlayerRevisiting an old post: Streaming and playing an MP3 streamAn iPhone application that can stream and play a continuous MP3 audio stream via HTTP.
LocalSubstitutionCacheSubstituting local data for remote UIWebView requestsAn iOS application that shows how to use a custom webcache to substitute local data for requests in a UIWebView.
LinkedListCodingUsing NSKeyedArchiver to archive a C linked-listA class for creating an NSKeyedArchive from a C linked list.
Magic Number MachineN/A (predates CocoaWithLove).A free, full-featured, graphically laid out, high-precision, scientific calculator for Mac OS X 10.4 and greater. Full source-code is included with the distribution.
MultiRowSelectMultiple row selection and editing in a UITableView.An iPhone application that can select multiple table rows (like the message delete interface in the iPhone Mail app).
NameListEditorApplication Design in AppKitA simple Mac application that I used in the post to illustrate how Model-View-Controller applies to Cocoa Mac applications.
NewToTheStoreA Cocoa application driven by HTTP dataA Mac application which shows how to populate a table column and main window view from data fetched from an HTML page.
NibOrNotLoad from NIB or construct views in code: which is faster?An iPhone application that tests whether constructing a view in code or loading the view from a NIB file is faster.
NSData_Base64Base64 encoding options on the Mac and iPhoneA class for encoding and decoding Base64 data.
NSFileManager_DirectoryLocationsFinding or creating the application support directoryA category for the NSFileManager class that allows you to find or create the application support directory in a single line.
NSHost_ThreadedAdditionsA drop-in fix for the problems with NSHostAn NSHost category which makes the class threadsafe.
NSInvocationForwardedConstructionConstruct an NSInvocation for any message, just by sendingA class for creating an NSInvocation object simply by sending the message to the class.
NSString+SymlinksAndAliasesResolving a path containing a mixture of aliases and symlinksAn NSString category that can resolve paths with a blend of aliases and symlinks.
OpenFileKillerInvoking other processes in CocoaA Mac project that shows how to invoke other processes — optionally with root privileges — and get the results in a single line. The sample application can kill the processes that have opened a specific file.
OrderedDictionaryOrderedDictionary: Subclassing a Cocoa class clusterAn NSDictionary subclass that keeps its keys in an ordered array and can rearrange as desired.
PagingScrollViewMultiple virtual pages in a UIScrollView with just 2 child viewsA sample iPhone application that shows how to maintain multiple pages in a scroll view without needing to allocate and maintain more than 2 pages at any given time.
PhoneNumbersHeterogeneous cells in a UITableViewControllerA sample iPhone application that uses a small, self-managing CellController class to eliminate conditionals from a UITableViewController that manages different row types. The sample application shows the phone numbers in your Address Book.
PropertyAccessorsPerformance Tests: Replacing Core Data key pathsCategories on NSArray and NSSet for faster traversals of key paths in Core Data. Includes the performance tests that measure the speed difference.
PropertyFromInstanceVariableInstance variable to synthesized property (an Xcode user script)A PERL script plugin for Xcode that can generate a property declaration and @synthesize statment for selected instance variables.
Quartzeroids2An Asteroids-style game in CoreAnimation, Part One, Two, Three and Four.A Mac implementation of "Asteroids" using entirely scalable vector graphics.
RecreatedTableViewControllerRecreating UITableViewController to increase code reuseA reimplementation of UITableViewController starting with a basic UIViewController so that a single view controller could be used for either.
RecreatingNSApplicationDemystifying NSApplication by recreating itA Mac application that recreates (almost all of) the critical parts of NSApplication so that you can see how NSApplication works.
RoundWindowDrawing a custom window on Mac OS XA simple application with an entirely custom drawn window (uses a round, gray-gradient ellipse frame).
SelfTestingAutomated user interface testing on the iPhoneAn iPhone Simulator application that can automate its own user-interface as though a user were driving it and can test that specific results are achieved after this automation.
ShadowedTableViewAdding shadow effects to UITableView using CAGradientLayerAn iPhone application with a UITableView subclass that draws shadows under and above every section.
SpinnerCustom build rules, generated tables and faster floating pointA variation on Apple's OpenGL sample iPhone application that uses an Xcode custom build rule to generate a lookup table to use instead of the sin function for faster trigonometry.
StickiesServing an NSManagedObjectContext over an NSConnectionA Mac application which serves an NSManagedObjectContext over an NSConnection to a remote host.
StreamingAudioPlayerRevisiting an old post: Streaming and playing an MP3 streamA Mac application that can stream and play a continuous MP3 audio stream via HTTP.
SynthesizeSingletonSingletons, AppDelegates and top-level data.A header file that allows you to turn any class into a singleton with a single macro invocation.
TapZoomRotateA ZoomingViewController to animate a UIView to fullscreenAn iOS view controller that can zoom a view to fullscreen and back.
TableDesignRevisitedUITableView construction, drawing and management (revisited)A project that shares the code I typically use to manage UITableViews and UITableViewCells on iOS.
TextMasking-iPhoneCreating alpha masks from text on the Mac and iPhoneA simple iPhone application that shows how to create a bitmap mask from text and use it for drawing effects.
TextMasking-MacCreating alpha masks from text on the Mac and iPhoneA simple Mac application that shows how to create a bitmap mask from text and use it for drawing effects.
TextTransferA simple, extensible HTTP server in CocoaAn iPhone application that embeds an extensible HTTP server for transferring off of the iPhone via HTTP.
ThreadingOverheadsThe overhead of spawning threads (a performance experiment)A small Mac program that tests the relative performance of different ways of creating threads in Cocoa.
ToneGeneratorAn iOS tone generator (an introduction to AudioUnits)An iOS application that uses an AudioUnit to play a tone and a UISlider to change the pitch while the tone continues to play.
UncaughtExceptionsHandling unhandled exceptions and signalsA basic iPhone application that demonstrates some basic ways that you can catch exceptions and signals for debug purposes.
WhereIsMyMac-WithUnitTestsA sample Mac application with complete unit testsA reimplementation of my WhereIsMyMac sample Mac application with full unit tests using Test-Driven-Development.
WhereIsMyMacWhereIsMyMac, a Snow Leopard CoreLocation projectA sample Mac application that uses Core Location in Snow Leopard to show the Mac's current location in Google Maps.
WhereIsMyPhone-WithUnitTestsA sample iPhone application with complete unit testsA reimplementation of my WhereIsMyMac application for the iPhone with full unit tests using Test-Driven-Development.
WorldTimeConverterWorldTimeConverter: Dates and timezones in CocoaA Mac application that can convert a specified time in any timezone to the equivalent time in another timezone.
XPathQueryUsing libxml2 for XML parsing and XPath queries in CocoaA wrapper around libxml to make full DOM based parsing and Xpath based searching easier on the iPhone.
 类似资料:

相关阅读

相关文章

相关问答