Skip to content

AndrewBennet/ReadingListV1

Repository files navigation

Reading List (v1.16.1)

Twitter URL

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

This repository contains the source code for Reading List v1.16.1; in 2021, Reading List v2.0 was released, which is no longer open-source. The app is instead supported by some select premium features which require a payment to unlock.

This repository is kept public for posterity.

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