-
Notifications
You must be signed in to change notification settings - Fork 3
Project's tech stack
Tech | Description | Rationale |
---|---|---|
React | UI library | I'm familliar with it and it is quite popular |
React Router (data mode) | Routing library | Common choice for react apps |
Tauri | Cross-platform framework | Small bundle size(compared to Electron). Has potential to be adopted for desktop (maybe future forks). Native app was chosen over web app to avoid complexities with maintaining infrastructure. Mobile app will work without relying on the servers, making it more time-proof and free to maintain |
Konsta ui Despite being outdated, has largest react collection of M3 styled components. Mui, Ionic mostly have outdated M2 design components at the time of decision. Konsta looked as a good library to quickly build initial UI.
It has numerous issues with inputs (no ref). Might be replaced in future.
Tinybase Allows both in-memory and indexed-db storage and reactivity. Not very popular and illogical sometimes. But I wanted to have a single library and similar methods to:
- manage persistent preferences
- manage financial records in-memory.
- manage persistent form state
Choose tinybase over pouch-db because PD doesn't have in-memory storage (App needs this for protected financial data). Tinybase makes it possible to avoid redux, use-form-hook etc.
android-fs Best rust library I found for managing files in android. Provides file dialogs with write access in android 11+ Shoutout to @aiueo13 for the help! Without him, I wouldnt be able to implement local file management, because I'm noob at rust.
react-number-format One of important UX features for financial app is number formatting. My custom-made solution had issue with input position(i can't avoid blinking of carret when manually controlled its position). This library works out of the box and have all needed functions
react-modal-sheet Konsta doesnt have good modal sheet, that is why this standalone component is used. It is based on apple guidelines, but works good enough. Haven't found any better alternative react component.