Goal Build a secure payment‑transfer flow with biometric authentication in React Native + TypeScript. This page is the single entry‑point for code, board, and other assets.
# | Topic | What & Why | Outcome / Trade-off |
---|---|---|---|
1 | Expo Go vs Biometrics | Expo Go ships without LocalAuthentication native code, so Face ID fails silently. | Automatic PIN fallback kicks in when the device lacks biometrics or the user cancels. |
2 | State Management – Zustand | Needed something lighter than Redux, more explicit than Context. Zustand’s store keep re-renders low. | No middleware out of the box; wrote a small persistence hook for AsyncStorage. |
3 | UX Error Handling | Full banking-grade error matrix is outside 3-day scope. Strategy: single Error screen with Retry and Home buttons; non-blocking to the happy path. | Allows graceful recovery without backend deep-dive |
4 | Pagination – Infinite FlatList | Loading the full transfer history spiked memory on mid-tier Android. Implemented paginated FlatList onEndReached. | Smooth scroll to load Recent Transfers |
5 | Styling Layer – NativeWind | Chose NativeWind over Tamagui to exploit Tailwind muscle memory and ship faster. Utility classes + theme tokens keep UI consistent with minimal config. | Tailwind JIT runs at runtime, tiny performance cost. |