Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A personal book library cataloguing application for Mac OS X.

branch: v0.4

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 English.lproj
Octocat-spinner-32 Sofia.xcodeproj
Octocat-spinner-32 database.xcdatamodeld
Octocat-spinner-32 hmac
Octocat-spinner-32 icon_design
Octocat-spinner-32 psdimages
Octocat-spinner-32 .gitignore
Octocat-spinner-32 AccessKeyViewController.h
Octocat-spinner-32 AccessKeyViewController.m
Octocat-spinner-32 AuthorDetail.xib
Octocat-spinner-32 AuthorsWindowController.h
Octocat-spinner-32 AuthorsWindowController.m
Octocat-spinner-32 AuthorsWindowControllerDelegate.h
Octocat-spinner-32 BookReview.h
Octocat-spinner-32 BookReview.m
Octocat-spinner-32 BooksCoverflowController.h
Octocat-spinner-32 BooksCoverflowController.m
Octocat-spinner-32 BooksImageBrowserController.h
Octocat-spinner-32 BooksImageBrowserController.m
Octocat-spinner-32 BooksImageBrowserView.h
Octocat-spinner-32 BooksImageBrowserView.m
Octocat-spinner-32 BooksMainViewController.h
Octocat-spinner-32 BooksMainViewController.m
Octocat-spinner-32 BooksTableView.h
Octocat-spinner-32 BooksTableView.m
Octocat-spinner-32 BooksTableViewController.h
Octocat-spinner-32 BooksTableViewController.m
Octocat-spinner-32 BooksWindowController.h
Octocat-spinner-32 BooksWindowController.m
Octocat-spinner-32 BooksWindowControllerDelegate.h
Octocat-spinner-32 COPYING.LESSER.txt
Octocat-spinner-32 COPYING.txt
Octocat-spinner-32 CoverflowSplitViewDelegate.h
Octocat-spinner-32 CoverflowSplitViewDelegate.m
Octocat-spinner-32 Credits.html
Octocat-spinner-32 Detail.xib
Octocat-spinner-32 ExternalLinkEditor.xib
Octocat-spinner-32 ExternalLinkEditorController.h
Octocat-spinner-32 ExternalLinkEditorController.m
Octocat-spinner-32 FilterNotificationView.h
Octocat-spinner-32 FilterNotificationView.m
Octocat-spinner-32 FiveStars.h
Octocat-spinner-32 FiveStars.m
Octocat-spinner-32 FiveStarsCell.h
Octocat-spinner-32 FiveStarsCell.m
Octocat-spinner-32 GHUnitTest-Info.plist
Octocat-spinner-32 GHUnitTestMain.m
Octocat-spinner-32 GSCoverflow.h
Octocat-spinner-32 GSCoverflow.m
Octocat-spinner-32 GSCoverflowDataSource.h
Octocat-spinner-32 GSCoverflowDelegate.h
Octocat-spinner-32 GSCoverflowItem.h
Octocat-spinner-32 GSCoverflowItem.m
Octocat-spinner-32 GTMBase64.h
Octocat-spinner-32 GTMBase64.m
Octocat-spinner-32 GTMDefines.h
Octocat-spinner-32 GTMGarbageCollection.h
Octocat-spinner-32 GTMNSString+URLArguments.h
Octocat-spinner-32 GTMNSString+URLArguments.m
Octocat-spinner-32 GeneralViewController.h
Octocat-spinner-32 GeneralViewController.m
Octocat-spinner-32 ImageAndTextCell.h
Octocat-spinner-32 ImageAndTextCell.m
Octocat-spinner-32 ImportBooks.xib
Octocat-spinner-32 ImportBooksController.h
Octocat-spinner-32 ImportBooksController.m
Octocat-spinner-32 ImportBooksControllerDelegate.h
Octocat-spinner-32 Info.plist
Octocat-spinner-32 Library.h
Octocat-spinner-32 Library.m
Octocat-spinner-32 MBPreferencesController.h
Octocat-spinner-32 MBPreferencesController.m
Octocat-spinner-32 NSString+Sofia.h
Octocat-spinner-32 NSString+Sofia.m
Octocat-spinner-32 NoExpansionTextFieldCell.h
Octocat-spinner-32 NoExpansionTextFieldCell.m
Octocat-spinner-32 OverviewSplitViewDelegate.h
Octocat-spinner-32 OverviewSplitViewDelegate.m
Octocat-spinner-32 PredicateEditor.xib
Octocat-spinner-32 PredicateEditorWindowController.h
Octocat-spinner-32 PredicateEditorWindowController.m
Octocat-spinner-32 PredicateEditorWindowControllerDelegate.h
Octocat-spinner-32 Preferences_AccessKeys.xib
Octocat-spinner-32 Preferences_General.xib
Octocat-spinner-32 PreviewSplitViewDelegate.h
Octocat-spinner-32 PreviewSplitViewDelegate.m
Octocat-spinner-32 PreviewView.h
Octocat-spinner-32 PreviewView.m
Octocat-spinner-32 PreviewViewController.h
Octocat-spinner-32 PreviewViewController.m
Octocat-spinner-32 README.mkd
Octocat-spinner-32 ReflectionImageView.h
Octocat-spinner-32 ReflectionImageView.m
Octocat-spinner-32 RegexKitLite.h
Octocat-spinner-32 RegexKitLite.html
Octocat-spinner-32 RegexKitLite.m
Octocat-spinner-32 ReviewsViewController.h
Octocat-spinner-32 ReviewsViewController.m
Octocat-spinner-32 SidebarOutlineView.h
Octocat-spinner-32 SidebarOutlineView.m
Octocat-spinner-32 SignedAwsSearchRequest.h
Octocat-spinner-32 SignedAwsSearchRequest.m
Octocat-spinner-32 SimilarBooksViewController.h
Octocat-spinner-32 SimilarBooksViewController.m
Octocat-spinner-32 SofiaApplication.h
Octocat-spinner-32 SofiaApplication.m
Octocat-spinner-32 Sofia_Prefix.pch
Octocat-spinner-32 SortByView.h
Octocat-spinner-32 SortByView.m
Octocat-spinner-32 SubjectDetail.xib
Octocat-spinner-32 SubjectWindowController.h
Octocat-spinner-32 SubjectWindowController.m
Octocat-spinner-32 SubjectWindowControllerDelegate.h
Octocat-spinner-32 Test-Info.plist
Octocat-spinner-32 Version2To3EntityMigrationPolicy.h
Octocat-spinner-32 Version2To3EntityMigrationPolicy.m
Octocat-spinner-32 Version2To4EntityMigrationPolicy.h
Octocat-spinner-32 Version2To4EntityMigrationPolicy.m
Octocat-spinner-32 Version3To4EntityMigrationPolicy.h
Octocat-spinner-32 Version3To4EntityMigrationPolicy.m
Octocat-spinner-32 VerticallyCenteredTextField.h
Octocat-spinner-32 VerticallyCenteredTextField.m
Octocat-spinner-32 amazonInterface.h
Octocat-spinner-32 amazonInterface.m
Octocat-spinner-32 author.h
Octocat-spinner-32 author.m
Octocat-spinner-32 book.h
Octocat-spinner-32 book.m
Octocat-spinner-32 book.tif
Octocat-spinner-32 filter.png
Octocat-spinner-32 headergen.rb
Octocat-spinner-32 importarrow.png
Octocat-spinner-32 isbnExtractor.h
Octocat-spinner-32 isbnExtractor.m
Octocat-spinner-32 isbnExtractor_Test.h
Octocat-spinner-32 isbnExtractor_Test.m
Octocat-spinner-32 isbndbInterface.h
Octocat-spinner-32 isbndbInterface.m
Octocat-spinner-32 list.h
Octocat-spinner-32 list.m
Octocat-spinner-32 list.tif
Octocat-spinner-32 main.m
Octocat-spinner-32 missing.png
Octocat-spinner-32 missing_coverflow.png
Octocat-spinner-32 person.h
Octocat-spinner-32 person.m
Octocat-spinner-32 shopping.tif
Octocat-spinner-32 shopping2.tif
Octocat-spinner-32 smartList.h
Octocat-spinner-32 smartList.m
Octocat-spinner-32 smartlist.tif
Octocat-spinner-32 stars.tif
Octocat-spinner-32 subject.h
Octocat-spinner-32 subject.m

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.