An immersive Augmented Reality game that challenges players to discover and interact with virtual objects in the real world.
This project follows modern Android/Kotlin conventions with a clean architecture approach:
app/src/main/kotlin/com/aryoucovered/app/
├── core/ # Core app components
│ ├── constants/ # App-wide constants
│ ├── utils/ # Utility classes and extensions
│ └── receiver/ # Broadcast receivers
│ └── GeofenceBroadcastReceiver.kt
├── data/ # Data layer (Repository pattern)
│ ├── repository/ # Data repositories
│ └── model/ # Data models
├── domain/ # Business logic layer
│ ├── usecase/ # Use cases/Interactors
│ └── model/ # Domain models
├── presentation/ # UI layer
│ ├── activity/ # Main activities
│ │ ├── MainActivity.kt
│ │ └── SettingsActivity.kt
│ ├── fragment/ # Fragments (if any)
│ ├── theme/ # Compose themes
│ │ ├── Color.kt
│ │ ├── Theme.kt
│ │ └── Type.kt
│ └── common/ # Common UI components
├── feature/ # Feature-specific modules
│ ├── auth/ # Authentication features
│ │ ├── SigninActivity.kt
│ │ ├── SignUpActivity.kt
│ │ └── VerifyCodeActivity.kt
│ ├── game/ # Game-related features
│ │ ├── GameActivity.kt
│ │ ├── Attributes.kt
│ │ ├── GameObject.kt
│ │ └── GameUtils.kt
│ ├── ar/ # AR-specific features
│ │ └── ARActivity.kt
│ └── map/ # Map features
│ └── MapActivity.kt
└── di/ # Dependency injection (future)
- Augmented Reality: Interactive AR experience using ARCore
- Location-based Gaming: Geofenced gameplay with location awareness
- Authentication: User registration and sign-in system
- Map Integration: Google Maps integration for location features
- Modern UI: Material Design with Compose support
- Language: Kotlin
- AR: ARCore with SceneView
- UI: Jetpack Compose + Traditional Views
- Maps: Google Maps SDK
- Authentication: Firebase Auth
- Location: Google Play Services Location
- Architecture: Clean Architecture with feature modules
- Android Studio Arctic Fox or later
- Android SDK 31+
- ARCore supported device for AR features
- Clone the repository
- Open in Android Studio
- Add your Google Maps API key to
local.properties:MAPS_API_KEY=your_api_key_here - Build and run on an ARCore supported device
- Scalability: Easy to add new features without affecting existing code
- Team Development: Different teams can work on different features independently
- Testing: Feature-specific testing is straightforward
- Presentation: UI logic and theming
- Domain: Business logic independent of Android framework
- Data: Repository pattern for data access
- Core: Shared utilities and components
- Dependency Injection Ready: Structure supports DI frameworks like Hilt
- Modularization Ready: Can be easily converted to multi-module structure
- Testing Ready: Clear separation enables comprehensive testing strategies
This project has been refactored from the original structure:
- Package Name: Changed from
com.example.statefarmARtocom.aryoucovered.app - Project Name: Updated from "State Farm AR Hunt" to "AR You Covered?"
- Directory Structure: Migrated from
java/tokotlin/directory - Organization: Reorganized into feature-based architecture
- Themes: Updated all theme references to use new naming
When adding new features:
- Place feature-specific code in the appropriate
feature/subdirectory - Use the established package naming convention
- Follow the clean architecture principles
- Update this README if adding new architectural components
The project structure is designed to work seamlessly with Git:
- All files are properly tracked
- Directory structure matches Git repository structure
- Clean commit history maintained through refactoring