Reading Quantified, iOS Edition

11 June 2019

Introduction

It’s finally here! The iOS version of Reading Quantified.

Here’s a video demonstrating its capabilities:

Features

The UI is pretty barebones at the moment. The goal was to focus on the features I’ve been most particularly interested in, which are centered around two views:

  • Dashboard: Shows key metrics filtered by year. The metrics are: number of books finished, average days to finish, shortest read in days, and longest read in days.
  • Books: Provides a table of all the books that are searchable and sortable by title, date started, and date finished.

How it works

The app communicates with the REST API server using a network abstraction library called Moya. Access to the REST APIs require a JSON Web Token, which is generated for a valid username and password. The data are then stored locally in a Realm database.

The app also attempts to use software design best practices for Swift. (The keyword is attempts…. :)) This includes using an MVVM architecture, Swinject for dependency injection, and RxSwift to communicate changes between logically separated portions of the app.

Here’s a high-level diagram that illustrates the architecture:

Reading Quantified iOS App Architecture
Reading Quantified iOS App Architecture

Next steps

This is just the beginning of the project’s iOS journey. Expect enhancements and new features!


Categories: Books, iOS

comments powered by Disqus