Skip to content
A personal book library cataloguing application for Mac OS X.
Objective-C C Ruby
Find file
Latest commit 49d0056 @gregsexton Merge branch 'v0.3'
Failed to load latest commit information.
English.lproj Migration from DB v3 to v4 works.
Sofia.xcodeproj Migration from DB v2 to v4 works.
database.xcdatamodeld Migration now includes author name property. (2->4).
hmac Got an amazon signed web request working.
icon_design Added an icon and summary of number of books.
psdimages Added a custom coverflow default image.
.gitignore Improved migration error message.
AccessKeyViewController.h Ran headergen.
AccessKeyViewController.m Ran headergen.
AuthorDetail.xib AuthorsWindowController no longer leaks.
AuthorsWindowController.h BooksWindowController no longer leaks.
AuthorsWindowController.m Solved static analysis issues.
AuthorsWindowControllerDelegate.h Ran headergen.
BookReview.h Ran headergen.
BookReview.m Ran headergen.
BooksCoverflowController.h Ran headergen.
BooksCoverflowController.m Ran headergen.
BooksImageBrowserController.h Ran headergen.
BooksImageBrowserController.m Ran headergen.
BooksImageBrowserView.h All IBOutlets are now defined as properties.
BooksImageBrowserView.m Ran headergen.
BooksMainViewController.h Ran headergen.
BooksMainViewController.m Ran headergen.
BooksTableView.h Ran headergen.
BooksTableView.m Ran headergen.
BooksTableViewController.h All IBOutlets are now defined as properties.
BooksTableViewController.m All IBOutlets are now defined as properties.
BooksWindowController.h Bug fix: trying to save objects created in different MOC.
BooksWindowController.m Bug fix: trying to save objects created in different MOC.
BooksWindowControllerDelegate.h Ran headergen.
COPYING.LESSER.txt Added licensing to Sofia.
COPYING.txt Added licensing to Sofia.
CoverflowSplitViewDelegate.h Ran headergen.
CoverflowSplitViewDelegate.m Ran headergen.
Credits.html Further work on the about dialog.
Detail.xib ImportBooksController no longer leaks.
ExternalLinkEditor.xib ExternalLinkEditorController no longer leaks.
ExternalLinkEditorController.h ExternalLinkEditorController no longer leaks.
ExternalLinkEditorController.m Ran headergen.
FilterNotificationView.h Ran headergen.
FilterNotificationView.m Ran headergen.
FiveStars.h Ran headergen.
FiveStars.m Ran headergen.
FiveStarsCell.h Ran headergen.
FiveStarsCell.m Ran headergen.
GHUnitTest-Info.plist Stopped using OCUnit and swapped in GHUnit.
GHUnitTestMain.m Fixed warnings and memory leaks for BooksWindowController
GSCoverflow.h Ran headergen.
GSCoverflow.m Solved static analysis issues.
GSCoverflowDataSource.h Ran headergen.
GSCoverflowDelegate.h Ran headergen.
GSCoverflowItem.h Ran headergen.
GSCoverflowItem.m Ran headergen.
GTMBase64.h Got an amazon signed web request working.
GTMBase64.m Got an amazon signed web request working.
GTMDefines.h Got an amazon signed web request working.
GTMGarbageCollection.h Got an amazon signed web request working.
GTMNSString+URLArguments.h Got an amazon signed web request working.
GTMNSString+URLArguments.m Got an amazon signed web request working.
GeneralViewController.h Ran headergen.
GeneralViewController.m Ran headergen.
ImageAndTextCell.h Added icons to the sidebar.
ImageAndTextCell.m Got Sofia to build as a 64 bit app.
ImportBooks.xib ImportBooksController no longer leaks.
ImportBooksController.h Ran headergen.
ImportBooksController.m Removed NSLogs.
ImportBooksControllerDelegate.h Ran headergen.
Info.plist Got Sofia to build as a 64 bit app.
Library.h Ran headergen.
Library.m Ran headergen.
MBPreferencesController.h Fixed all remaining warnings and memory leaks.
MBPreferencesController.m White space changes.
NSString+Sofia.h Ran headergen.
NSString+Sofia.m Ran headergen.
NoExpansionTextFieldCell.h Ran headergen.
NoExpansionTextFieldCell.m Ran headergen.
OverviewSplitViewDelegate.h Ran headergen.
OverviewSplitViewDelegate.m Ran headergen.
PredicateEditor.xib Everything manually coded.
PredicateEditorWindowController.h Ran headergen.
PredicateEditorWindowController.m Subclassed everything to customise pop up titles.
PredicateEditorWindowControllerDelegate.h Ran headergen.
Preferences_AccessKeys.xib Added Amazon access keys to preferences Xib.
Preferences_General.xib Added download toc option to general preferences.
PreviewSplitViewDelegate.h Ran headergen.
PreviewSplitViewDelegate.m Ran headergen.
PreviewView.h Ran headergen.
PreviewView.m Ran headergen.
PreviewViewController.h Ran headergen.
PreviewViewController.m Ran headergen.
README.mkd Small fix to README.
ReflectionImageView.h Ran headergen.
ReflectionImageView.m Ran headergen.
RegexKitLite.h Started work on isbnExtractor class.
RegexKitLite.html Started work on isbnExtractor class.
RegexKitLite.m Started work on isbnExtractor class.
ReviewsViewController.h Ran headergen.
ReviewsViewController.m Ran headergen.
SidebarOutlineView.h Ran headergen.
SidebarOutlineView.m Ran headergen.
SignedAwsSearchRequest.h Got an amazon signed web request working.
SignedAwsSearchRequest.m Fixed all remaining warnings and memory leaks.
SimilarBooksViewController.h Ran headergen.
SimilarBooksViewController.m All IBOutlets are now defined as properties.
SofiaApplication.h Migration from DB v3 to v4 works.
SofiaApplication.m Improved migration error message.
Sofia_Prefix.pch Migration from DB v3 to v4 works.
SortByView.h Ran headergen.
SortByView.m Ran headergen.
SubjectDetail.xib SubjectWindowController no longer leaks.
SubjectWindowController.h BooksWindowController no longer leaks.
SubjectWindowController.m Solved static analysis issues.
SubjectWindowControllerDelegate.h Ran headergen.
Test-Info.plist isbnExtractor working and unit test written.
Version2To3EntityMigrationPolicy.h Ran headergen.
Version2To3EntityMigrationPolicy.m Ran headergen.
Version2To4EntityMigrationPolicy.h Ran headergen.
Version2To4EntityMigrationPolicy.m Ran headergen.
Version3To4EntityMigrationPolicy.h Ran headergen.
Version3To4EntityMigrationPolicy.m Ran headergen.
VerticallyCenteredTextField.h Ran headergen.
VerticallyCenteredTextField.m Ran headergen.
amazonInterface.h Ran headergen.
amazonInterface.m Removed threading in ReviewsViewController.
author.h Ran headergen.
author.m Ran headergen.
book.h Ran headergen.
book.m Ran headergen.
book.tif Added icons to the sidebar.
filter.png Added filter button and menu item; with logo.
headergen.rb Changes to white space.
importarrow.png Fixed TODOs and changed import toolbar icon.
isbnExtractor.h Ran headergen.
isbnExtractor.m Ran headergen.
isbnExtractor_Test.h Ran headergen.
isbnExtractor_Test.m ISBNs can now have an 'x' at the end.
isbndbInterface.h Ran headergen.
isbndbInterface.m Ran headergen.
list.h Ran headergen.
list.m Ran headergen.
list.tif Added icons to the sidebar.
main.m Ran headergen.
missing.png Added default image if book artwork is missing.
missing_coverflow.png Added a custom coverflow default image.
person.h Ran headergen.
person.m Ran headergen.
shopping.tif Added icons to the sidebar.
shopping2.tif Added icons to the sidebar.
smartList.h Ran headergen.
smartList.m Ran headergen.
smartlist.tif Added icons to the sidebar.
stars.tif Made row height variable to fit the text.
subject.h Ran headergen.
subject.m Ran headergen.


Readme file for Sofia v0.2.0 for Mac OS X 10.6+, October 21, 2010.


What is Sofia? Sofia is a book library cataloguing application for Mac OS X 10.6+. It allows you to add your books from your library by simply entering the unique ISBN number. The details for a book are then downloaded from sources on the internet and populated in a local database. The user interface is designed to closely resemble iTunes and should be familiar and easy to use for everyone.

Why use Sofia? Sofia allows you to manage your book collection. It allows you to quickly and easily browse and search your collection to find a specific book. You can sort your collection by categories and even group books together in book lists. You can specify custom and powerful searches and save these as 'smart book lists', that are updated automatically. Potential uses for Sofia include:

  • Quickly viewing books in your collection that you haven't yet read.

  • Manage your shopping-list of books that you wish to purchase. Easily move these books into your library once you have purchased them.

  • Maintain reading lists for courses or research projects and then make notes on individual books once you have read them.

  • If disaster were to strike, you would have a complete catalogue of your books to be able to notify your insurance company.


Sofia is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation.

You should have received a copy of the GNU Lesser General Public License along with Sofia; see the file COPYING.TXT. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.


  • Interface based on Apple's iTunes.

  • Book lists allow custom collections of books.

  • Smart book lists that update automatically based on search criteria.

  • Import books by ISBN, direct from the web, or extracted from text.

  • Maintain a shopping list.

  • Browse your library using three different views.

    • A list view to quickly view a lot of information easily.

    • A cover artwork view to visually identify a book.

    • Combine the best of both views by using the Coverflow view.

  • Book information including cover artwork automatically downloaded and populated from the web for you.

  • Search for a book in your library using search that narrows as you type.

  • Easily manage your authors and subjects and quickly view the books you own by a specific author or in a specific subject.

  • Easily view the books you own on external websites with a single click. Sofia comes with a collection of default websites and you can easily add your own.

  • Quickly view a summary of a book in the preview pane.

  • View a reference book's table of contents to see if it contains specific material you are interested in.

  • Instantly read reviews from the web about books you own or are considering buying, directly in Sofia.

  • Liked a book? Within Sofia you can simply view books that have been judged to be similar.

  • Filter the current view using an advanced array of search options.

Importing books in to Sofia

You can import books into Sofia by clicking on the add button, typing an ISBN number and clicking search. This will download all of the book's information for you. You can then edit the result and save the book to your library.

For a larger library, a better method is to use a barcode scanner that can output the ISBNs of your books. Simply copy and paste any text into the import window, Sofia will extract any ISBNs and book-by-book download the details for you.

One example of an easily available barcode scanner is zBar for the iPhone. This uses the iPhone's camera to scan barcodes and allows you to send the ISBNs to yourself via email.

Also possible, is adding books from websites. Simply enter the URL of the website in the import window. Sofia will download the page, extract any ISBN numbers from it and start adding your book.

Release Notes


  • 32/64 Bit build.
  • Added more dynamic smart list predicates.
  • Added a view filtering feature.
  • 'Sort by' option in images view.
  • Huge efficiency improvements, particularly in memory.
  • Improved Coverflow responsiveness.
  • Reviews are provided by Amazon again.
  • Fixed many memory leaks.
  • Migration process improved.
  • Upgraded to XCode 4.


  • Bug fix and small improvements release.
  • Database periodically saved every 5 minutes.
  • Sofia quits on closing the last window.
  • UI improvements.
  • Improved database resiliance.
  • Reviews feature disabled until next release.


  • Contextual menu for books. Includes user editable 'view book on' menu.
  • Improved error reporting in Detail window.
  • Preview pane.
  • Enhanced Amazon download coverage. Enhancements include: TOC, similar books and reviews.
  • Custom for Sofia, open source, Coverflow view.
  • Bug fixes and UI improvements.


This is the first release of Sofia. Features include:

  • The ability to import book details by ISBN number, ISBNDb and Amazon are used as the source of information.
  • Viewing books by a details list or by cover artwork.
  • Mass import of books by extracting ISBN numbers from text.
  • Viewing a book's details, including general information, notes and summary, cover artwork.
  • Searching for a book in the database using simple text matching.
Something went wrong with that request. Please try again.