Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/AndrewBennet/ReadingListV1

:books: :iphone: Reading List - an iOS app to track personal reading lists
https://github.com/AndrewBennet/ReadingListV1

app app-store ios ipad iphone swift

Last synced: 30 days ago
JSON representation

:books: :iphone: Reading List - an iOS app to track personal reading lists

Awesome Lists containing this project

README

        

# Reading List (v1.16.1)
[![Twitter URL](https://img.shields.io/twitter/url?label=%40ReadingListApp&style=social&url=https%3A%2F%2Ftwitter.com%2Freadinglistapp)](https://twitter.com/ReadingListApp)

[Reading List](https://www.readinglist.app) 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](https://github.com/yonaskolb/Mint) package manager to manage Swift command line tool packages. Mint can be installed using [Homebrew](https://brew.sh/) (among [other methods](https://github.com/yonaskolb/Mint#installing)):

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](https://github.com/yonaskolb/XcodeGen):

mint run yonaskolb/XcodeGen

### SwiftLint
[SwiftLint](https://github.com/realm/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](https://developer.apple.com/library/content/documentation/General/Conceptual/Devpedia-CocoaApp/Storyboard.html) for UI design (see below); a limited number of user input views are built using [Eureka](https://github.com/xmartlabs/Eureka) forms.

![Example storyboard](./media/storyboard.png)

### Data persistence
Reading List uses [Core Data](https://developer.apple.com/documentation/coredata) 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