reader is a simple book library and reading tracker app for macOS, designed and developed in Swift. It was purposefully built for personal use and to share with a friend, making it easier to manage book collections and track reading progress.
- Add books by fetching from Google Books and Open Library, or entering them manually
- Create collections and organize books into them
- Filter books by reading status, tags ,or collections
- Jot down thoughts or annotations in a dedicated notes section
- Save memorable excerpts in the quotes section
- Search through your added books
- Sort your library by title, author, or published date, in ascending or descending order
- Tag books
- Track reading statuses: unread, reading, or read
- Download the
reader.zip
file from the latest release - Unzip the file and move
reader.app
into yourApplications
folder - Control-click or right-click the app and select 'open'
Note
Since reader is not notarized, macOS Gatekeeper may block the app:
- Go to System Settings > Privacy & Security
- Scroll down and locate the prompt for
reader.app
- Click 'open anyway'
The app requires network access to fetch book data via the Google Books API and Opeen Library
If you'd like to compile the app yourself, follow these steps:
-
Open Terminal and run:
git clone https://github.com/chippokiddo/reader.git cd reader
-
Create a New Xcode Project
- Open Xcode
- Select 'create a new Xcode project'
- Choose 'app' under the macOS tab and click 'next'
- Enter the following details:
- Product Name:
reader
- Product Name:
- Set the language to Swift and user interface to SwiftUI
- Choose a location to save the project
Important
Make sure you're running macOS 14 or higher and have Xcode 16 or later installed, since the project uses Swift 6
-
Locate the cloned repository and open the
reader
directory in Finder -
Drag and drop the following folders and files into your Xcode project:
. └── reader/ ├── Assets.xcassets ├── Components/ ├── Configurations/ ├── ContentView.swift ├── Helpers/ ├── Info.plist ├── Localizable.xcstrings ├── Merriweather/ ├── Models/ ├── Preview Content ├── reader.entitlements ├── readerDebug.entitlements ├── Subviews/ ├── Utils/ └── Views/
-
Add Your Google Books API Key
-
The app uses the Google Books API to fetch book data. You need to provide your own API key for the app to function
-
Locate the file
Config.xcconfig.template
in the repository -
Rename it to
Config.xcconfig
-
Open the
Config.xcconfig
file and replace the placeholder with your actual Google Books API key:GOOGLE_BOOKS_API_KEY=your_actual_api_key
-
Save the file. Xcode will automatically use this key during the build process
-
If the
Config.xcconfig
file is not automatically detected, assign it to your build configurations:- In Xcode, open the info tab for the reader project
- Under configurations, link the
Config.xcconfig
file to both debug and release builds
-
-
Configure Signing to Run Locally
- In Xcode, go to Signing & Capabilities tab for the
reader
target. - Set the team dropdown to 'none'
- Set the signing certificate to Sign to Run Locally
- In Xcode, go to Signing & Capabilities tab for the
-
Build and Run the App
- Press
Command ⌘
+R
to build and run the app on your Mac
- Press
-
Archive the App for Independent Use
If you want to run the app without Xcode:
- In Xcode, go to Product → Archive from the menu bar
- Once the archiving process completes, the organizer window will appear
- Select the latest build and click Distribute App
- In the popup that appears, click 'custom,' then click 'next' in the bottom right of the popup
- Click 'copy app'
- Once completed, you’ll see
reader.app
in a folder where you saved it. Drag reader to your Applications folder, and you're done!
Warning
reader is licensed under the GNU General Public License v3 (GPLv3). This means:
- Any modifications to the source code must also be distributed under GPLv3.
- If you share a modified version of this app, you must include the source code for your modifications.
- For more details, refer to the GPLv3 License Terms.
Contributions are welcome! Follow these steps to contribute:
- Fork the repository
- Create a branch with your feature or bug fix
- Submit a pull request for review
You can help make this app more accessible by contributing translations! This project uses Xcode's string catalogs Localizable.xcstrings
for localization. To learn how to edit or add translations, refer to Apple's official documentation.
reader uses the Merriweather font, made available under the Open Font License.