Skip to content
master
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Sep 27, 2020

Reading List

Build Status codebeat badge Twitter URL

Reading List is an iOS app for iPhone and iPad which helps users track and catalog the books they read.

Reading List v2

As of version 2.0, Reading List is no longer open source. The app is instead supported by some select premium features which require a one-time payment to unlock. The codebase here is as it existed in v1.16.1.

Requirements

  • Xcode 12.4

Dependencies

Reading List uses the Mint package manager to manage Swift command line tool packages. Mint can be installed using Homebrew (among other methods):

brew install mint

XcodeGen

XcodeGen is a command-line tool written in Swift. It generates your Xcode project using your folder structure and a project spec, which contains all the information necessary to generate a project, such as targets, schemes, settings. The Xcode project should be generated by running XcodeGen:

mint run yonaskolb/XcodeGen

SwiftLint

SwiftLint is used to enforce Swift style guidelines. An Xcode build step runs SwiftLint; this requires it to be installed. To install it, run:

mint install realm/SwiftLint

Architecture

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

User Interface

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