Thoughtbook
A note-taking application built using Flutter & Firebase to understand software development fundamentals. Uses a local NoSQL database for caching, & BLoC for state-management.
"Building this project provided me firsthand experience developing with a design system, & an overview of technical constraints invloved while translating designs"
Overview & Specs
- PROJECT TYPE
- Flutter Mobile App
- TECH STACK
- Flutter, Dart, Firebase (Auth, Storage, DB), BLoC, Isar DB
- ROLE & INITIATIVE
- Solo Developer
- RESOURCES & LINKS
- GitHub Repo
01 / INITIATIVE
The spark & motivation
I have always been fascinated by software, & used to wonder how they work. Learning Flutter was my way of finally getting down to learning it.
Key Goal
"Build a functional, responsive application to gain hands-on knowledge working with design systems & mobile platforms."
02 / IMPLEMENTATION
Technical highlights
The application was built to support an offline-first experience. Content is locally stored in a NoSQL database, & synecd with Firestore. The client app uses Material Design language comprehensively. The application state is managed using BLoC (Business Logic Component), & uses reactives types (Streams, Futures, Observables) to handle UI data.
Offline-first experience
The applcation was built to support offline functionlaity without any compromise. It uses a synchronization algorithm to locally queue changes in a DB & seamlessly syncs them to the cloud when online
Material Design for an adaptive interface
The application is built using Material Deisgn components, ensuring that text & icons meet accessibility guidelines, and the color schemes presents content heirarchy without ambiguity.
03 / SYNTHESIS
How this informs my UX work
I believe that my engineering background gives me a unique edge as a UX Designer.
- Realistic Design Handoff: Understanding code structures enables me to design clean, modular UI components that are straightforward for engineering teams to implement.
- Empathy for Developers: Speaking the same technical language fosters smoother communication and faster iteration cycles between product design and engineering.