Skip to content

mj11rock/react-native-fintech-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

React Native Fintech Starter

Opinionated React Native starter for building financial mobile applications. Includes biometric authentication, secure storage, certificate pinning, and CI/CD — the security and infrastructure groundwork that every fintech app needs.

Features

Security

  • Biometric authentication — Face ID, Touch ID, and Android Fingerprint
  • Secure encrypted storage — iOS Keychain and Android Keystore
  • Certificate pinning — Prevent MITM attacks on API communication
  • Jailbreak/root detection — Detect compromised devices
  • Screen capture prevention — Block screenshots on sensitive screens
  • Inactivity timeout — Auto-lock after configurable idle period

Infrastructure

  • TypeScript in strict mode
  • React Navigation 6 with typed routes
  • Zustand for state management with encrypted persistence
  • API layer with Axios, interceptors, retry logic, and request queuing
  • Offline-first architecture with background sync
  • Push notifications via FCM (Android) and APNs (iOS)
  • Deep linking with Universal Links and App Links
  • OTA updates with CodePush
  • CI/CD with Fastlane and GitHub Actions

Testing

  • Unit tests with Jest
  • E2E tests with Detox
  • Snapshot tests for UI components

Project Structure

├── src/
│   ├── api/              # API client, interceptors, endpoints
│   ├── assets/           # Images, fonts, animations
│   ├── components/       # Shared UI components
│   │   ├── base/         # Base components (Button, Input, Card)
│   │   └── feedback/     # Loading, Error, Empty states
│   ├── config/           # Environment config, constants
│   ├── hooks/            # Custom hooks
│   ├── navigation/       # Navigation stack, types, linking
│   ├── screens/          # Screen components by feature
│   │   ├── auth/         # Login, biometric, PIN
│   │   ├── dashboard/    # Main dashboard
│   │   ├── transfers/    # Money transfer flows
│   │   └── settings/     # User settings, security
│   ├── services/         # Business logic services
│   │   ├── auth/         # Auth service, token management
│   │   ├── biometric/    # Biometric enrollment and verification
│   │   ├── secure-storage/ # Encrypted key-value storage
│   │   └── notifications/  # Push notification handling
│   ├── stores/           # Zustand stores
│   ├── theme/            # Design tokens, colors, spacing
│   ├── types/            # Global TypeScript types
│   └── utils/            # Pure utility functions
├── e2e/                  # Detox E2E tests
├── __tests__/            # Jest unit tests
├── fastlane/             # Fastlane configuration
├── .github/workflows/    # CI/CD pipelines
├── android/
├── ios/
└── app.json

Getting Started

Prerequisites

  • Node.js 18+
  • React Native CLI
  • Xcode 15+ (iOS)
  • Android Studio (Android)

Installation

git clone https://github.com/mj11rock/react-native-fintech-starter.git
cd react-native-fintech-starter
npm install
cp .env.example .env

# iOS
cd ios && pod install && cd ..
npm run ios

# Android
npm run android

Security Architecture

Layer Implementation Purpose
Transport Certificate pinning + TLS 1.3 Prevent MITM
Storage Keychain / Keystore Encrypt sensitive data at rest
Authentication Biometric + PIN + JWT Multi-factor user verification
Session Inactivity timeout + background lock Prevent unauthorized access
Device Jailbreak detection Block compromised environments

Deployment

Fastlane Lanes

# iOS
fastlane ios beta    # TestFlight
fastlane ios release # App Store

# Android
fastlane android beta    # Internal testing
fastlane android release # Play Store

Environments

Environment API Push Analytics
Development Local / Mock Disabled Disabled
Staging Staging API FCM Sandbox Debug
Production Production API FCM / APNs Full

Architecture Decisions

Decision Choice Rationale
State Zustand Lightweight, TypeScript-native, supports encrypted persistence
Navigation React Navigation 6 Most mature, typed routes, deep linking built-in
Security Custom security layer Fintech compliance requires fine-grained control
API Axios + interceptors Token refresh, retry, request queuing for offline
Testing Jest + Detox Jest for speed, Detox for real device E2E
CI/CD Fastlane + GH Actions Industry standard for mobile, reproducible builds

Tech Stack

Category Technology
Framework React Native 0.73+
Language TypeScript (strict)
Navigation React Navigation 6
State Zustand
Security react-native-keychain, ssl-pinning
Push @react-native-firebase/messaging
Testing Jest, Detox
CI/CD Fastlane, GitHub Actions

About

React Native starter for fintech apps — biometric auth, secure storage, push notifications, CI/CD

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors