Icons8 App is a free app for Mac which contains more than 3000 icons available for download as a standalone app and from the App Store. Some features exist only in standalone version because of the restrictions of Apple policies.
The app provides icon database look-up and allows to drag and drop icons directly to developer tools like Photoshop, Illustrator, Xcode or anything. My role was the lead developer. Also, I was in charge of the implementation of every aspect of the app. Together with the VisualPharm team we designed core concepts and planned architecture of the application.
Icons8 App had successful launch! It hit top charts of Graphics category in AppStore worldwide.
The work on this app was difficult — we never knew what feature we had to do next. Despite the steep learning curve of the knowledge domain (myriads of details about icons in different sizes and formats) this application also had two versions to support: AppStore and Standalone. They had critical differences in content handling and payment methods.
We started the first prototype with Core Data and native Cocoa UI frameworks. Soon we replaced the Core Data stack with SQLite. It was crucial to be able to make complex SQL queries and to leverage full-text search capabilities of SQLite engine. As the app evolved storage back end got replaced again. We had chosen Couchbase Lite, the document-oriented database. Thanks to its sync capabilities, users could get their purchases and content updates live.
Serious UI work was done. We had reimplemented grid icon browser so it could work with 5000+ icons (which is ~40000 files encoded in base64). We used futures and promises techniques to implement lazy-loading approach (RXPromise)