Our DNA is written in Swift

iCatalog 3rd Gen Goes Live

Our partner has begun rolling out the latest generation of iCatalog+ apps which marks the third generation of our framework. The 3rd generation will also celebrate the 3rd birthday of our iCatalog.framework. Initial development had begun in Summer 2010 with the first public release occurring in October 2010.

The current generation brings several user-facing features as well as a plethora of internal cleanup and refactoring.

Lilly Pulitzer

The main benefits for users are that that the download process feels much better. Previously you would only see a progress bar during the download of catalogs and then it would not do anything during the “Processing” stage. Recent advancements in our DTZipArchive component now give us the capability of also showing an uncompressing progress.

That actually fills us with geeky delight because of a funny little detail we put into DTZipArchive that you would only feel. When computing progress you could either count files or bytes. When copying something large in Apple’s Finder they appear to be using whatever is the higher percentage of these two. This way you always have a movement on the progress bar, even if you’re copying many small files. We are doing it the same way.

When we started with iCatalog all catalogs where basically in portrait format and so we were surprised a bit by more and more clients doing catalogs in landscape format. Previously landscape catalogs would look small and out of place with exaggerated margins around the pages. So we made certain that this “surprising new format” also displays optimally, especially since most people seem to prefer holding their iPads in landscape orientation.

Before & After v3

In this montage I am showing the previous landscape presentation on the left and the much improved version on the right. The page thumbnails are now larger and since we dynamically create them on the device they now support Retina displays which much improves their utility since you can even read large headlines – if you have good retinas.

Of course a shiny new version like 3.0 also deserves that we updated all components we rely on to the latest versions. The big benefit this gets us is that on iOS 6 the apps now use the built-in Facebook share sheets. We figure, people who love Facebook will also love this improved way of sharing products they find in iCatalog books.

There is another big change behind the scenes that affects the catalog production work flow. Three years ago I was a fledgling iOS developer and – frankly – was afraid of the big confusing world of Mac apps. Which is why I built the editor for iCatalog issues into the app itself. This worked pretty well for over two years, running the editor in iOS Simulator.

With v3 we were now able to refactor out the editing code and special cases from the framework. This is now in a standalone Mac app that I wrote late last year as my first big Mac project. Having the Editor in a separate Mac app gives the production staff many obvious advantages: drag and drop, Autosaving and Versioning (which are built into OS X since Lion), full mouse and trackpad support, keyboard shortcuts.

In retrospect I can say: if I had known how easy it is to make a Mac app I would have made the switch a couple of years earlier. And my partners would have suffered much less. Oh well, you grow and learn. I did my best to make the new Editor as efficient and fun to use as possible to make up for that.


You can and should immediately try out version 3 with the updated Lilly Pulitzer iCatalog+ and the brand new FullBeauty iCatalog+. Never mind that the current catalogs show a selection of beautiful bras. If somebody asks … you’re just evaluating the iCatalog technology. 🙂

iCatalog.framework 3.0 has proven to be a sturdy yet extensible platform that more than two dozen brands have chosen to trust for their digital catalog presentation: 27 catalogs and 1 magazine at today’s count, if you search for “iCatalog” on the app store.

Categories: Updates

Leave a Comment

%d bloggers like this: