View Full Version : Little bit confused about library-base (aka "shoebox") app

Aug 12, 2013, 01:17 PM
Hi guys,

I'm new to OS X development (however, not new to development at all; I developed under Windows and Linux for a couple of years; only OS X is new to me). I developed an app that I want to change now internally, because I did a lot of first-mac-app errors, especially within the design.

Well, I'm think about making a document based app. While reading the Apple documentation for document-based apps, I read about library-based (aka "shoebox") apps. Looking to iPhoto / iTunes, I have an idea about what an shoebox app is.

My question is: are there some classes for those shoebox-apps like the NSDocument class is for the document-based apps? Can a NSDocument class be used for that? Or do I have to manage everything by my on if I want to create an shoebox app?

I ask because I think about wether there is need for my App to create "multiple" documents. (I will have a sqlite Database and some assigned files for the database entries - everything will be stored inside a file package, so that the user will only see one "file"). Or if it will be enough if the app only creates one file-package (like iPhoto) so that a shoebox-app will be ok. But than I don't know how to develop a shoebox app. Don't find something like that document-based documentation from Apple for that library-based stuff.

The other reason I want know that stuff is just for interrest. ;-)


P.S.: Sorry for my bad english - it's not my native language...

Aug 16, 2013, 07:28 AM
the term show-box is literally a library (or better known as a framework).

If you look at a simple Cocoa app you see:

#import <whatever.framework.h>

at the top..

What that literally is, in Windows (shudder) as a 'library'.

In Objective-C it's basically framework (the reason why I use the terms FRAMEWORK and not SHARED LIBRARY is because the App Store WILL NOT accept private libraries).

I'd advise you start looking here for a start point:


It gets you into the steps involved to start a framework of your own e.g. I have one which has all of the handy bits and bobs I like to use in my apps :)