Technology Stack
Core Technologies
- Expo (~54.0.30) - React Native framework
- React Native (0.81.5) - Mobile UI framework
- Expo Router (~6.0.21) - File-based routing
- React (19.1.0) - UI library
Key Libraries
Project Structure
Development Setup
Prerequisites
- Node.js v18+
- Bun v1.0+
- Expo CLI
- Android Studio (for Android development)
- Xcode (for iOS development, macOS only)
Installation
Running the App
Start Metro Bundler
Run on Android
Run on iOS (macOS only)
Clear Cache
If you encounter issues:Architecture
Cross-Platform Design
Inkdown uses a shared core with platform-specific adapters:Native Bridge
The@inkdown/native-expo package provides platform-specific implementations:
Storage
Mobile uses MMKV for fast key-value storage:Editor
The editor uses a WebView with CodeMirror:Key Components
App Context
Provides app instance to all components:Theme Context
Manages theme state:File Explorer
Displays workspace files:Navigation
Expo Router provides file-based routing:Styling
Use React Native StyleSheet with theme variables:Platform-Specific Code
Use Platform API for platform-specific logic:Performance Considerations
FlatList Optimization
Memoization
Building for Production
EAS Build
Configure ineas.json:
Testing
Mobile-specific tests are included in the main test suite. See Testing Guide.Debugging
React DevTools
Console Logs
View logs in Metro bundler terminal:Remote Debugging
Enable in dev menu:- Shake device
- Select “Remote JS Debugging”
- Chrome DevTools will open
Common Issues
Metro Bundler Cache
Native Module Errors
iOS Pods Issues
Next Steps
- Read Mobile Best Practices for performance optimization
- Review Code Style for styling guidelines
- Check Development Guide for workflow
