Akhil B Nair
ENGINEERING & SIDE INITIATIVE • 2024

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"

APP SCREENSHOT
Visual artifact: Flutter UI screen

Overview & Specs

PROJECT TYPE
Flutter Mobile App
TECH STACK
Flutter, Dart, Firebase (Auth, Storage, DB), BLoC, Isar DB
ROLE & INITIATIVE
Solo Developer
RESOURCES & LINKS

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.

CORE FEATURE

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

INTERFACE

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.

ARCHITECTURE OVERVIEW
Technical visual: System architecture

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.