Sidekick is a cross-platform mobile application for connecting to and managing Cacophony Project thermal cameras used in wildlife conservation.
Sidekick allows conservationists and researchers to:
- Connect to Cacophony thermal cameras in the field
- Configure camera settings and recording schedules
- View live camera feeds and test recordings
- Download and manage recorded footage
- Upload wildlife recordings to the Cacophony Project platform
- Track camera locations and status
The Cacophony Project uses thermal cameras with AI-powered detection to monitor wildlife for conservation research, particularly focusing on predator control and native species protection in New Zealand.
Sidekick is built using:
- Kotlin Multiplatform Mobile for shared native code
- Capacitor.js for cross-platform native runtime
- Solid.js for the user interface
- SQLite for local data storage
This architecture provides native performance with cross-platform compatibility for both Android and iOS.
- Node.js version 18 or higher
- Java 17
- Android Studio (for Android development)
- Xcode (for iOS development, requires macOS)
- A physical mobile device for testing (most features require hardware access)
-
Install pnpm (recommended package manager):
npm install -g pnpm
-
Open the project in Android Studio:
- Open the
/sidekick
directory in Android Studio - Let Gradle download all dependencies
- Open the
-
Install JavaScript dependencies:
pnpm install
-
Build and run:
# Development mode with hot reloading pnpm dev # OR # Build a release version pnpm build pnpm sync
-
Connect a physical device:
- Enable USB debugging on your Android device
- Connect it to your computer
- Or use Xcode to deploy to an iOS device
Note: Most camera features require physical hardware and cannot be fully tested in emulators.
Builds are automated through GitHub releases.
Builds are created manually using Xcode Archive.
When creating a new release, update version numbers in:
./sidekick/app/build.gradle.kts
./sidekick/App/App.xcodeproj/project.pbxproj
For more information about the Cacophony Project: