PortfolioFint Case Study
S

Wallet Balance

$18,485.90

FINT PREMIUM

**** **** **** 8820

SUMUKH YR

12/28

Stake Earnings+14.2%

Transactions

Stripe API Payout

2m ago

+$1,240.00

AWS Cloud Infrastructure

1h ago

-$42.00

Fintech Wealth Management System

Fint

Fint redefines wealth management by consolidating complex asset categories—ranging from domestic equities to decentralized tokens—into one unified, low-latency client engine. By leveraging Dart isolates and write-through caching, the application handles complex multi-stream market rates without locking the main thread.

RoleLead Mobile Architect
PlatformsiOS, Android
Timeline6 Months (2024)
ArchitectureClean Architecture
40%Latency Reduction
60 FPSRendering Rate
100%Offline Success
Tech Stack & Concepts
Clean ArchitectureGetX Selective RebuildsHive DBWebsocket Integration

The Problem

Wealth management tracking across traditional equities and volatile crypto markets usually suffers from high synchronization latency, stale offline states, and heavy main-thread computations.

Product Thinking

Users expect instantaneous wealth balance updates. To build real user trust, offline availability is a hard product requirement rather than a tech feature. The UX must show write-optimistic states, rendering trade completions before server confirmations.

Engineering Challenges

Handling real-time web socket tickers on 100+ assets simultaneously without dropping UI frames below 60 FPS, while keeping offline local caches safe from race conditions.

Key Learnings

Learned the limits of standard object storage and the extreme value of Dart isolates for background parsing, alongside selective widget rebuild IDs in GetX.

Behind the Code

Architectural & Code Decisions

Deep technical breakdowns of individual structural choices and implementation patterns.

DECISION 01

Hive Local Ledger Integration

Replaced SQLite with Hive for local caches due to its incredibly fast direct-to-binary key-value reader, which runs directly in memory, achieving read operations in single-digit microseconds.

dart
// Initialize Encrypted Hive ledger
await Hive.initFlutter();
Hive.registerAdapter(TransactionAdapter());
var ledgerBox = await Hive.openBox<Transaction>('fint_ledger');

// Optimistic local transaction insertion
Future<void> logOptimisticTransaction(Transaction tx) async {
  await ledgerBox.put(tx.id, tx);
  update(['wallet_balance_view']); // Trigger selective GetX refresh
}
DECISION 02

Isolate-Driven JSON Parsing

Offloaded real-time websocket packet parsing to a dedicated Dart Isolate thread to prevent main-thread garbage collection (GC) sweeps from causing micro-stutters during high market volatility.

dart
// Spawn isolate for JSON parsing
Future<Map<String, dynamic>> parseJsonInIsolate(String rawJson) async {
  return await compute(_jsonParserExecutor, rawJson);
}

static Map<String, dynamic> _jsonParserExecutor(String raw) {
  return jsonDecode(raw) as Map<String, dynamic>;
}