rivium + apalis pocket backend challenge
Run a small background job queue inside an Android app, and trigger it with one cool Android feature.
Time: 1 week | Level: new to Rust is fine
- Rivium starts and stops your Rust code cleanly, on a laptop or inside an Android app.
- Apalis runs background jobs (think "do this task later, retry if it fails").
- An Android feature is how jobs get started or how results show up on the phone.
Your goal: connect all three so that something useful happens on a real phone or emulator.
A tiny Android app where:
- Something on the phone creates a job (a button, a tile, a shared link, a photo, anything).
- A Rust worker, running under Rivium, does the job.
- The result shows up on the phone (notification, widget, screen, etc.).
- Rust code uses both Rivium and Apalis
- One job type is enough
- Runs on your laptop first with
cargo run(no phone needed) - Runs inside the Android app
- Jobs are saved, so they are still there after you close and reopen the app
- One Android feature from the list below
- A short README: what it does, how to run it, which versions you used
| Feature | Example |
|---|---|
| Quick Settings tile | Tap the tile to start a job |
| Notification | Show job progress or results |
| Home screen widget | Show how many jobs are waiting |
| Share Sheet | Share a link to your app and it gets processed |
| Camera / Photo Picker | Each photo becomes a job (resize, hash, etc.) |
| Your own idea | Tell us in an issue first |
- Run Rivium's basic example:
cargo run -p rivium-examples --example basic-service -- --root target/basic-example
- Get an Apalis job running in a plain Rust program (no Android yet).
- Put that worker inside a Rivium service.
- Follow Rivium's JNI example to load it in Android.
- Add your Android feature last.
Rivium needs Rust 1.92 or newer. Both libraries are still changing, so pin the versions you use and follow their current docs and examples.
| What | Points |
|---|---|
| It works end to end | 40 |
| The Android feature is creative and actually used | 30 |
| Jobs survive closing the app | 15 |
| README is clear | 15 |
Bonus (+10): test on a real phone and write down what happened. Rivium's own Android checks only confirm it compiles, so this is useful to the maintainers.
A PR with your code, the README, and a short video or GIF of it working.
- Stuck on Rust errors? Make it work on your laptop first, then move to Android.
- Keep it small. A simple idea that works beats a big one that doesn't.
- Questions about Rivium? Open an issue with the version, platform and a small example.