Try Documentalist,
my app that offers fast, offline access to 190+ programmer API docs.
Nibless cocoa:
- http://lapcatsoftware.com/blog/2007/03/10/everything-you-always-wanted-to-know-about-nsapplication/
- http://lapcatsoftware.com/blog/2007/05/16/working-without-a-nib-part-1/
- http://lapcatsoftware.com/blog/2007/06/04/working-without-a-nib-part-2-also-also-wik/
- http://lapcatsoftware.com/blog/2007/06/10/working-without-a-nib-part-5-no-3/
- http://lapcatsoftware.com/blog/2007/06/17/working-without-a-nib-part-4-setapplemenu/
- http://lapcatsoftware.com/blog/2007/11/25/working-without-a-nib-part-6-working-without-a-xib/
- http://lapcatsoftware.com/blog/2008/10/20/working-without-a-nib-part-7-the-empire-strikes-back/
- http://lapcatsoftware.com/articles/textured-tabbed-windows.html
- http://lapcatsoftware.com/articles/working-without-a-nib-part-8-the-nib-awakens.html
- https://stackoverflow.com/questions/2997333/creating-a-cocoa-application-without-nib-files
- https://stackoverflow.com/questions/717442/how-do-i-create-cocoa-interfaces-without-interface-builder
- https://www.cocoawithlove.com/2010/09/minimalist-cocoa-programming.html
- https://gist.github.com/mcxiaoke/673e819046251e220b2e1903cc4251e3
- http://czak.pl/2015/09/23/single-file-cocoa-app-with-swift.html
- https://www.raizlabs.com/dev/2016/08/ib-free-living-without-interface-builder/
- https://www.raizlabs.com/dev/2017/03/ibfree-practice-1-managing-modal/
- https://github.com/sdegutis/choose
- http://www.mulle-kybernetik.com/weblog/2015/decoding_nibs_into_objective_.html
- http://www.thecave.com/2014/05/04/i-stopped-using-nibs-thanks-to-auto-layout/
- http://inessential.com/2013/03/06/how_much_or_how_little_i_use_interface
- http://mjtsai.com/blog/2016/10/18/working-without-a-nib/
- https://www.cocoawithlove.com/blog/a-view-construction-syntax.html
- https://github.com/toptensoftware/XibFree
code signing and notorization
- https://blog.codemagic.io/automatic-code-signing-for-ios-that-doesnt-require-a-mac/
- https://blog.zeplin.io/dev-journal-automate-notarizing-macos-apps-94b0b144ba9d
- http://pewpewthespells.com/blog/migrating_code_signing.html
- http://furbo.org/2011/03/09/mac-app-store-guide/
- http://furbo.org/2013/10/17/code-signing-and-mavericks/
- https://gist.github.com/jbafford/d91ac15cf79a22e70f65
- http://blog.felix-schwarz.org/post/93968279039/how-to-build-on-10-8-and-earlier-then-sign-for-and
- https://developer.apple.com/library/prerelease/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG205
- https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html
- http://indiestack.com/2014/08/take-this-code-and-sign-it/
- http://tyler.io/2014/11/my-checklist-for-releasing-a-new-mac-app/
- http://indiestack.com/2014/08/take-this-code-and-sign-it/
certtool y | grep Developer\ ID
- http://mjtsai.com/blog/2014/01/08/codesign-lies/
- To verify that my apps are signed properly before deployment, my Makefile includes these two lines:
spctl --status | grep "assessments enabled"
spctl --assess --type execute -v "${APP_PACKAGE}"
autolayout
- http://bridgermaxwell.com/blog/building-on-auto-layout/
- https://github.com/mobitar/AutolayoutHelpers
- https://github.com/rentzsch/AutoLayoutShorthand
- https://github.com/jrturton/UIView-Autolayout, http://commandshift.co.uk/blog/2013/02/20/creating-individual-layout-constraints/
- http://carpeaqua.com/2012/11/02/issues-with-achieving-auto-layout-zen/
- http://vimeopro.com/360conferences/360idev-2013/video/75232527
- http://oleb.net/blog/2013/03/things-you-need-to-know-about-cocoa-autolayout/
- http://optshiftk.com/2013/11/an-auto-layout-adventure-nscell-intrinsiccontentsize-and-constraintsaffectinglayoutfororientation/
- http://optshiftk.com/2013/01/auto-layout-slides-available/
- https://github.com/cloudkite/Masonry
- http://oleb.net/blog/2014/03/how-i-learned-to-stop-worrying-and-love-auto-layout/
- http://devetc.org/code/2014/07/07/auto-layout-and-views-that-wrap.html
- http://blog.helftone.com/auto-layout-on-os-x/
- http://oleb.net/blog/2013/03/things-you-need-to-know-about-cocoa-autolayout/
- http://blog.helftone.com/auto-layout-on-os-x/
- http://themainthread.com/blog/2015/02/simple-auto-layout-in-swift.html
- Autolayout talk: http://vimeo.com/81215794
wkwebview
cocoa articles
- http://khanlou.com/2016/04/the-GCD-handbook/
- http://stackoverflow.com/users/25646/bbum?tab=answers
- http://www.mikeabdullah.net/atomically-copying-a-file.html, http://www.mikeabdullah.net/hunting-atomic-copy-failure.html
- http://www.mikeabdullah.net/convert-between-path+reference-urls.html
- http://www.mikeabdullah.net/url-paths-cheatsheet.html
- http://www.mikeabdullah.net/escaping-url-paths-in-cocoa.html
- http://www.mikeabdullah.net/escaping-url-queries-in-cocoa.html
- http://www.mikeabdullah.net/escaping-url-hosts-in-cocoa.html
- http://www.mikeabdullah.net/nsstring_posix_paths.html
- http://gigliwood.com/weblog/Cocoa/Core_Image__Practic.html
- http://gigliwood.com/weblog/Cocoa/Core_Image,_part_2.html
- http://www.mikeabdullah.net/colorspaces.html
- http://www.mikeabdullah.net/lion-restore-multi-window-document.html
- http://www.mikeabdullah.net/migrating-from-alias-handle.html
- http://www.mikeabdullah.net/NSBackgroundStyleRaised.html
- http://www.mikeabdullah.net/pre-populating-nssavepanel.html
- http://boredzo.org/blog/archives/2013-07-21/how-to-decide-which-ownership-keyword-to-give-a-property
- http://www.cocoatoa.com/posts/2009/12/08/modernizing_the_responder_chain/
- http://blog.metaobject.com/2009/12/responder-chain-is-collection.html
- http://blog.metaobject.com/2013/01/more-objective-c-drawing-context.html
- http://blog.metaobject.com/2012/11/cglayer-performance-and-quality.html
- http://blog.metaobject.com/2012/10/coregraphics-patterns-and-resolution.html
- http://blog.metaobject.com/2012/06/pleasant-objective-c-drawing-context.html
- https://www.mikeash.com/pyblog/friday-qa-2009-11-13-dangerous-cocoa-calls.html
- http://funwithobjc.tumblr.com/post/1553469975/abusing-nspredicate
- http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find-undesirable-memory-growth/
- http://gigliwood.com/blog/making-crisp-retina-icons.html
- https://www.mikeash.com/pyblog/friday-qa-2012-12-14-objective-c-pitfalls.html
- http://blog.securemacprogramming.com/2012/11/object-oriented-callback-design/
- http://nshipster.com/instancetype/
- http://blog.bignerdranch.com/296-arc-gotcha-unexpectedly-short-lifetimes/
- http://iamthewalr.us/blog/2012/11/ns_enum-and-ns_options/
- http://www.mikeabdullah.net/kspasswordfield.html
- http://blog.metaobject.com/2012/10/coregraphics-patterns-and-resolution.html
- http://nshipster.com/nscharacterset/
- https://www.mikeash.com/pyblog/friday-qa-2012-08-10-a-tour-of-commoncrypto.html
- http://useyourloaf.com/blog/2012/08/01/property-synthesis-with-xcode-4-dot-4.html
- http://brockerhoff.net/blog/2012/07/22/checking-receipts-on-os-x/
- http://stackoverflow.com/questions/1309958/avoiding-applescript-through-ruby-rb-appscript-or-rubyosa
- https://github.com/blog/1107-reactivecocoa-for-a-better-world
- https://www.mikeash.com/pyblog/friday-qa-2012-04-13-nib-memory-management.html
- http://www.betalogue.com/2012/03/27/lion-autosave-2/
- http://clang.llvm.org/docs/ObjectiveCLiterals.html
- http://blog.bignerdranch.com/316-a-timing-utility/
- http://www.cocoawithlove.com/2011/01/advanced-drawing-using-appkit.html
- https://www.mikeash.com/pyblog/friday-qa-2013-01-11-mach-exception-handlers.html
- http://spin.atomicobject.com/2014/02/03/objective-c-delegate-pattern/
- http://orangejuiceliberationfront.com/are-your-rectangles-blurry-pale-and-have-rounded-corners/
- http://www.mulle-kybernetik.com/artikel/Optimization/
- http://blog.bignerdranch.com/4736-javascriptcore-example/
- http://ciechanowski.me/blog/2014/04/08/exposing-nsdictionary/
- http://blog.amyworrall.com/post/97311712725/an-introduction-to-cocoa-bindings
- https://github.com/rodionovd/RDProcess
- https://github.com/rodionovd/liblorgnette
- http://joearms.github.io/2016/01/04/fun-with-swift.html
cocoa libraries
- https://github.com/shortcutrecorder/shortcutrecorder
- https://github.com/levey/AwesomeMenu - re-implementation of Path 2.0 menu using CoreAnimation, for iOS
- http://projectswithlove.com/ - a bunch of sample code
- https://github.com/uliwitness/UKSyntaxColoredTextDocument
- https://github.com/phildow/SPSearchStore
- https://github.com/stevestreza/XPCKit
- https://github.com/indragiek/SNRHUDKit
- https://github.com/indragiek/INAppStoreWindow, https://github.com/tomaz/INAppStoreWindow
- https://github.com/indragiek/INDockableWindow
- https://github.com/indragiek/OEGridView
- https://github.com/IdeasOnCanvas/Ashton
- https://github.com/IdeasOnCanvas/iMedia
- https://github.com/ButterKit/Butter
- https://github.com/mobitar/AutolayoutHelpers
- https://github.com/kgn/KGNoise
- https://github.com/mattgemmell/MGScopeBar
- https://github.com/mattgemmell/FolderSweep
- https://github.com/BigZaphod/Chameleon
- https://github.com/Cocoanetics/DTCoreText
- https://github.com/malcommac/DMInspectorPalette
- https://github.com/malcommac/DMSplitView
- https://github.com/malcommac/DMTabBar, https://github.com/Cocoanetics/DMTabBar
- https://github.com/MiMo42/MMTabBarView
- https://github.com/mattt/FormatterKit
- https://github.com/mattt/TransformerKit
- https://github.com/itod/parsekit
- https://github.com/Cocoanetics/DTFoundation
- https://github.com/Cocoanetics/DTMarkdownParser
- https://github.com/quartermaster/DB5
- https://github.com/soffes/sskeychain
- https://github.com/carlbrown/PDKeychainBindingsController
- https://github.com/foundationkit/FoundationKit
- https://github.com/ReactiveCocoa/ReactiveCocoa
- https://github.com/ZarraStudios/ZDS_Shared
- https://github.com/gwynne/NSFilesystemEnumerator
- https://github.com/quicksilver/VDKQueue
- https://github.com/mpw/MPWDrawingContext
- https://github.com/mpw/MPWFoundation
- https://github.com/MrNoodle/NoodleKit
- https://github.com/karelia/ConnectionKit
- https://github.com/karelia/KSFileUtilities
- https://github.com/SVGKit/SVGKit
- http://pfiddlesoft.com/frameworks/
- https://github.com/omnigroup/OmniGroup
- https://github.com/shpakovski/MASShortcut
- https://github.com/Cocoanetics/DTPDF
- https://github.com/tomersh/NanoProfiler
- https://github.com/arielelkin/PocketSVG
- https://github.com/brotchie/Parcoa
- https://github.com/joshaber/JAListView
- https://github.com/joshaber/JAViewController
- https://github.com/AXElements/AXElements
- https://github.com/twitter/twitter-text-objc
- https://github.com/github/twui
- https://github.com/mysterioustrousers/MTStringAttributes
- https://github.com/JanX2/UniversalDetector
- https://github.com/Uncommon/FullHeightToolbar
- https://github.com/Uncommon/RBSplitView
- https://github.com/mysterioustrousers/MYSRuntime
- https://github.com/mysterioustrousers/MYSCoreText
- https://github.com/mysterioustrousers/MTPDF
- https://github.com/mysterioustrousers/MTDates
- https://github.com/logancollins/Photon
- https://github.com/logancollins/Graviton
- https://github.com/kevinlawler/NSDate-TimeAgo
- https://github.com/yaptv/YapDatabase/
- https://github.com/MatthewYork/DateTools
- https://github.com/ButterKit/Butter
- https://github.com/jwilling/JNWCollectionView
- https://github.com/facebook/pop
- https://github.com/rentzsch/JRTranscriptView
- https://github.com/aaron-elkins/ENTabBarView
- https://github.com/monyschuk/LITabControl
cocoa apps and libraries
- https://github.com/serhii-londar/open-source-mac-os-apps : list of open-source apps
- https://github.com/kasper/phoenix : js scriptable window and app manager, https://news.ycombinator.com/item?id=16787836
- https://github.com/macguru/Stapler - note-taking app
- https://github.com/dinhviethoa/dejalu
- https://github.com/sttz/MPlayer-OSX-Extended
- https://github.com/donmelton/MPlayerShell
- https://github.com/niltsh/MPlayerX/tree/sparkle
- https://github.com/zwaldowski/roaringdiff - very obsolete code, doesn't run under latest mac os because uses lots of deprecated/missing APIs (e.q. QuickDraw)
- https://github.com/OpenEmu/OpenEmu
- https://github.com/rowanj/gitx
- https://github.com/phildow/Journler
- https://github.com/sonoramac/Sonora
- https://github.com/rowanj/Chicken-of-the-VNC, http://sourceforge.net/projects/chicken/
- https://github.com/tylerhall/Highwire
- https://github.com/tylerhall/MacSosumi
- https://hg.adium.im/adium
- https://github.com/quicksilver/Quicksilver
- https://github.com/sprang/Inkpad
- https://github.com/rentzsch/markdownlive
- https://github.com/nygard/class-dump
- https://bitbucket.org/snej/murky/wiki/Home
- http://appkido.com/
- https://github.com/pornel/ImageOptim
- https://github.com/JanX2/Play
- https://github.com/Uncommon/Xit
- https://github.com/jessegrosjean/NOTTaskPaperForIOS
- https://github.com/sdegutis/Phoenix/tree/master/Phoenix
- https://github.com/sdegutis/Leviathan - has tabs code and NSTextView with syntax highlighting
- https://github.com/sdegutis/bahamut
- https://github.com/graphsketcher/GraphSketcher
- http://gitweb.saurik.com/cycript.git
- https://github.com/Vluxe/Orca
cocoa search kit
- https://developer.apple.com/library/ios/documentation/Carbon/Conceptual/SpotlightQuery/Concepts/QueryingMetadata.html
- http://stackoverflow.com/questions/8717268/how-to-find-the-newly-added-file-within-a-folder/8717979#8717979
- https://developer.apple.com/library/mac/documentation/UserExperience/Reference/SearchKit/Reference/reference.html#//apple_ref/c/func/SKIndexOpenWithURL
quick look plugins
unzip in cocoa
// http://stackoverflow.com/questions/2296667/unzipping-a-file-in-cocoa
- (void) unzip {
NSFileManager* fm = [NSFileManager defaultManager];
NSString* zipPath = @"myFile.zip";
NSString* targetFolder = @"/tmp/unzipped"; //this it the parent folder
//where your zip's content
//goes to (must exist)
//create a new empty folder (unzipping will fail if any
//of the payload files already exist at the target location)
[fm createDirectoryAtPath:targetFolder withIntermediateDirectories:NO
attributes:nil error:NULL];
//now create a unzip-task
NSArray *arguments = [NSArray arrayWithObject:zipPath];
NSTask *unzipTask = [[NSTask alloc] init];
[unzipTask setLaunchPath:@"/usr/bin/unzip"];
[unzipTask setCurrentDirectoryPath:targetFolder];
[unzipTask setArguments:arguments];
[unzipTask launch];
[unzipTask waitUntilExit]; //remove this to start the task concurrently
}
blogs and websites
NSTextView
- https://developer.apple.com/library/mac/documentation/cocoa/conceptual/TextUILayer/Tasks/TextInScrollView.html#//apple_ref/doc/uid/20000938-CJBBIAAF - Putting an NSTextView Object in an NSScrollView
- http://stackoverflow.com/questions/15172971/append-to-nstextview-and-scroll
- http://stackoverflow.com/questions/19216754/nstextview-live-text-highlighting
- http://stackoverflow.com/questions/2218415/nstextview-syntax-highlighting
- http://stackoverflow.com/questions/4760400/nstextview-drawing-custom-glyphs-that-cant-be-edited
- http://stackoverflow.com/questions/15527305/proper-way-to-replace-nstextstorage-in-nstextview
- http://stackoverflow.com/questions/849655/nstextview-not-refreshed-properly-on-scrolling
- http://stackoverflow.com/questions/19777904/auto-resizing-of-nstextview-and-or-nsscrollview
- https://github.com/phildow/CHNotebookTextContainer
- http://www.noodlesoft.com/blog/2008/10/05/displaying-line-numbers-with-nstextview/
- http://www.noodlesoft.com/blog/2012/05/29/syntax-coloring-for-fun-and-profit/
Links
- https://codejamming.org/2018/deploy-to-macos : deploying native apps to macOS
- https://github.com/sindresorhus/create-dmg : create nice dmg for an app
- https://github.com/koekeishiya/chunkwm : shows how to write nib-less cocoa app mostly in C++ (with bits of Objective-C)
- https://videos.raywenderlich.com/courses : lots of tutorial videos
- https://www.raywenderlich.com/category/macos : os x programming tutorials
- https://www.raywenderlich.com/159287/windows-windowcontroller-tutorial-macos : NSWindow tutorial
- https://news.ycombinator.com/item?id=8099247 : list of os x programming resources
- https://www.cocoawithlove.com/blog/cwllayout.html : auto layout helper
- https://blog.automatic.com/how-we-cut-our-ios-apps-launch-time-in-half-with-this-one-cool-trick-7aca2011e2ea : how to build one big dynamic framework out of many
- https://oleb.net/blog/2017/11/swift-4-strings/
- http://furbo.org/2011/03/09/mac-app-store-guide/
JavaScriptCore
- https://github.com/kasper/phoenix : JavaScript scriptable window manager
- http://nshipster.com/javascriptcore/
- https://www.bignerdranch.com/blog/javascriptcore-example/
- https://github.com/bang590/JSPatch : bridge Cocoa ⇒ JavaScript, for iOS only
- https://github.com/DynamicCocoa/DynamicCocoa : not actually released yet