Skip to content
📚 📱 Reading List - an iOS app to track personal reading lists
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Move CONTRIBUTING to .github folder Jan 29, 2019
ReadingList Add some usage analytics Mar 16, 2019
fastlane Switch to using "normal" Firebase Crashlytcis Mar 12, 2019
.gitattributes Add .gitattributes, with union merge instruction for project files Sep 9, 2018
LICENSE Switch to GPLv3 licence Mar 28, 2018
Mintfile Improve Travis CI testing (#12) Jan 21, 2019 Update Jan 17, 2019
Podfile Prevent some Xcode warnings Feb 16, 2019
Podfile.lock Update dependencies Mar 9, 2019 SwiftLint added to README Jan 13, 2019
project.yml Switch to using "normal" Firebase Crashlytcis Mar 12, 2019

Reading List

Build Status codebeat badge

Reading List is a free, open source iOS app for iPhone and iPad. Reading List allows users to track and catalog the books they read.


  • Xcode 10.1


Reading List uses a couple of package managers:

  • Mint, to manage Swift command line tool packages
  • Bundler, to manage Ruby tools
  • SwiftLint, to enforce Swift style and conventions

Mint and SwiftLint can be installed using Homebrew (among other methods); Bundler can be installed with RubyGems:

brew install mint
brew install swiftlint
gem install bundler


The Xcode project should be generated by running XcodeGen:

mint run yonaskolb/XcodeGen


Reading List uses various third party libraries, which are managed using CocoaPods. To ensure that CocoaPods is installed, run bundler install. To install the libraries, run:

pod install


Reading List is written in Swift, and primarily uses Apple provided technologies.


Reading List mostly uses storyboards for UI design (see below); a limited number of user input views are built using Eureka forms.

Example storyboard

Data persistence

Reading List uses Core Data for data persistence. There are three entities used in Reading List: Book, Subject and List. The attributes and relations between then are illustrated below:

Core data entities

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.