Junior dares! to make a novel bookmarking app specialised for online webnovels. Initially inspired by this thread on r/noveltranslations, I wanted to create a novel managing app that can handle more data than any notes taker, while also looking way better and still being as easy to use.
Junior is an open-source Android app that helps you catalogue the novel you're reading and your progress on it. Apart from these details, you can also log your personal rating and any chapter notes for the current novel. There's a demonstration of the working to the right ⟶
Table of Contents
Installation
To install Junior you can find the current release on the Play Store. If you want to make it harder for yourself, you can also download the apk from this drive folder and install it on your phone.
The app as it is right now is only available on Android and in dark mode. To request additional features or report a bug in the app, just create an issue on the repository.
Usage
As it is right now the app lets you View your reading list in a far better way than any notepad would. The initial homescreen shows your novel list and sort order (Alphabetical, Most Recent or Rating). You can also search for a particular entry with the search bar.
The Details you can log for any novel are:
- Title
- Current and Total Chapters
- Personal Rating
- Link to the Current Chapter
- Chapter Notes or Novel Review
Development
I intend to make this a proper open-source project so the following sections are about developing and modifying the existing app. There's stuff from Navigation to Contribution Guidelines so do check it out if you're helping out!
Navigation
Junior/
├── assets/
│ └── banner.png
├── README.md
└── src/
├── android/..
├── build/..
├── assets/..
├── test/..
├── lib/
│ ├── details_page/
│ │ ├── body.dart
│ │ └── components/..
│ ├── homepage/
│ │ ├── body.dart
│ │ └── components/..
│ ├── model
│ │ └── novel.dart
│ ├── main.dart
│ └── theme.dart
├── pubspec.lock
├── pubspec.yaml
└── src.iml
In case it's not obvious, src/
contains all source files for the application, top level assets/
contains assets for the repo and README, assets/
in src/
contains application data like the icon and all.
I've divided the application into subdirectories the way it makes sense to me. main.dart
runs the entire thing, theme.dart
contains constants for commonly used colors and more. The only model is novel.dart
, which contains code for the Novel class, its attributes and all methods involving reading and writing to memory.
flutter_screen
├── body.dart/
└── components/
├── button.dart
├── list_tile.dart
├── searchbar.dart
└── title.dart
A page looks something like above, with a body and a subdirectory of widget components. body.dart
contains only top level information on how to place the widgets while the actual widgets will be in components/
. Even if it's something as simple as a Text()
, please make a separate class for it, it makes it super easy to re-arrange stuff later on.
And that's about it for navigation! This is the layout that I feel is most intuitive and easy to work with tbh.
Getting Started
TODO
Contributing
TODO
Other Stuff
Stuff I need to add or attribute but didn't get a place in the section before