RLAD is a playground for exploring mobile development patterns across different platforms. This repository contains two implementations of the same app:
- expo – Cross-platform React Native app built with Expo
- native-android – Native Android app built with Kotlin, Jetpack Compose, and modern Android libraries
Both apps demonstrate fetching data from public APIs, displaying lists with search functionality, and navigating to detailed views.
- Expo: Google Play
- Native Android: Google Play
- Architecture: Component-based with custom hooks
- UI: React Native with Expo Router for navigation
- State Management: Zustand + TanStack Query for server state
- Networking: Fetch API with TanStack Query
- Storage: AsyncStorage for local data persistence
- Architecture: MVVM with Clean Architecture principles
- UI: Jetpack Compose with Material Design 3
- Dependency Injection: Dagger Hilt
- Networking: Retrofit + OkHttp
- State Management: StateFlow + Compose State
- Modularization: Feature-based modules with shared core libraries
- Art Institute of Chicago - Museum artwork and artifacts
- GIPHY - GIF search and trending content
- Rick and Morty - Character and episode data
Get a GIPHY API key from developers.giphy.com, then configure it for your target platform:
Create a .env.local file in the expo/ directory:
EXPO_PUBLIC_GIPHY_API_KEY=your_api_key_hereAdd to ~/.gradle/gradle.properties:
GIPHY_API_KEY=your_api_key_here# Navigate to expo directory
cd expo
# Install dependencies
npm install
# Run on specific platforms
# Launch on Android device/emulator
npm run android
# Launch on iOS device/simulator
npm run ios
# Launch in web browser
npm run web# Open in Android Studio
# File → Open → Select 'native-android' folder
# Build and run the projectcd expo
npx expo run:android --variant release
# OR
npx expo export --platform android
cd android
./gradlew assembleReleasecd native-android
./gradlew assembleRelease