Notepad has been rewritten from the ground up! The app's 8-year old codebase has been replaced with one that is fully modernized and aims to follow Android development's best practices for 2022.
This README is meant to track the progress of the rewrite, and also give a general overview of the architecture of the app in comparison to the old one.
Old App | New App | |
---|---|---|
Language | Old, crusty Java with some of the worst code you'll ever read | 100% Kotlin for all new code |
Architecture | Spaghetti | MVVM-ish, generally following Google's recommended app architecture |
UI Framework | Standard Android views, activities, fragments | Jetpack Compose |
Data Persistence | Raw plaintext on the filesystem. Seriously. | SQLDelight |
Preferences | SharedPreferences | DataStore |
Dependency Injection | What is that? | Koin |
This table will track the features of the app as they are reimplemented in the new codebase.
Implemented In New App | |
---|---|
Migrate old notes and preferences | ✔ |
List all notes | ✔ |
Notes list empty state | ✔ |
Create new note | ✔ |
View saved notes | ✔ |
Edit saved notes | ✔ |
Share notes | ✔ |
Delete note (while viewing/editing) | ✔ |
Settings screen | ✔ |
About screen | ✔ |
Overflow menus | ✔ |
Dual-pane view for tablets | ✔ |
Light/dark themes | ✔ |
Sans serif / serif / monospace fonts | ✔ |
Font sizes | ✔ |
Sort notes by date or name | ✔ |
Show date/time in notes list | ✔ |
Markdown / HTML support | ✔ |
Import text files | ✔ |
Export to filesystem | ✔ |
Print notes | ✔ |
Multi-select notes list (button) | ✔ |
Multi-select notes list (long-press) | ✔ |
Delete notes (from list) | ✔ |
Export notes (from list) | ✔ |
Options for exported filename | ✔ |
Edit notes directly | ✔ |
Ask before saving | ✔ |
Save / load drafts | ✔ |
New Note launcher shortcut | ✔ |
Share text to Notepad from other apps | ✔ |
Open text files in Notepad from file managers | ✔ |
Keyboard shortcuts | ✔ |
Double-tap to edit | ✔ |
Probably some other things I forgot |