Android App
This guide covers building and contributing to the KayakNet Android app.
Overview
The Android app provides:
Full KayakNet connectivity
Chat (rooms and DMs)
Marketplace browsing
Domain lookup
Native Android experience
Tech Stack
Language: Kotlin
UI: Jetpack Compose
Architecture: MVVM
Networking: Ktor HTTP client
Build: Gradle
Project Structure
Building
Prerequisites
Android Studio Hedgehog (2023.1.1) or later
JDK 17
Android SDK (API 34)
Build Steps
Build Release APK
GitHub Actions
Automated builds via GitHub Actions:
Architecture
Network Communication
The app communicates with the KayakNet backend via HTTP:
Bootstrap Connection
UI with Jetpack Compose
Features Implementation
Chat
Rooms list from
/api/chat/roomsMessages from
/api/chat/historySend via POST
/api/chat/sendPolling for updates (1s interval)
Marketplace
Listings from
/api/market/listingsDetails from
/api/market/listing?id=XCategories and search supported
Domains
Lookup via
/api/domains/lookup?domain=XMy domains from
/api/domains/mine
Testing
Unit Tests
Instrumented Tests
Manual Testing
Install APK on device/emulator
Ensure KayakNet node is running
App should connect automatically
Known Issues
No Local Node
The Android app connects to the bootstrap node, not a local node. This means:
Relies on bootstrap availability
No local proxy mode
Limited offline capability
Future: Embedded Node
Planned: Embed Go node using gomobile:
Contributing
Code Style
Kotlin conventions
Compose best practices
Clear naming
Comments for complex logic
Pull Requests
Fork repository
Create feature branch
Test on multiple devices
Submit PR with description
Troubleshooting
Build Fails
Connection Issues
Verify bootstrap is running
Check internet connectivity
Try with VPN if needed
UI Issues
Check Compose version compatibility
Verify Material3 components
Test on different screen sizes
Last updated

