2022-04-08 07:49:00 +00:00
This is a native Android application for [Ruffle ](https://ruffle.rs ).
2022-04-05 21:45:09 +00:00
It is in a very early stage.
2022-03-26 03:06:30 +00:00
2022-04-08 07:49:00 +00:00
# Prebuilt APKs
2023-08-06 21:08:27 +00:00
The latest release [(here) ](https://github.com/torokati44/ruffle-android/releases ) should have a few `.apk` files uploaded as assets.
2022-04-08 07:49:00 +00:00
You can try this app by downloading and installing one of those.
2023-08-06 21:45:21 +00:00
- **For the vast majority of modern phones, tablets, single board computers, and small game consoles, you'll need the `arm64-v8a` version.**
2023-08-06 21:08:27 +00:00
2023-08-06 21:45:21 +00:00
- The `armeabi-v7a` version is for older, 32-bit ARM stuff.
2023-08-06 21:08:27 +00:00
2023-08-06 21:45:21 +00:00
- The `x86_64` version is for some rare Intel/Microsoft tablets and/or for Chromebooks, and/or for running on a PC on Android-x86 or in Waydroid or similar.
2023-08-06 21:08:27 +00:00
2023-08-06 21:45:21 +00:00
- The `x86` version is there mostly just for completeness.
2023-08-06 21:08:27 +00:00
2023-08-06 21:45:21 +00:00
- The `universal` version should work on all 4 of the above architectures, but it's _huge_ .
2023-08-06 21:08:27 +00:00
2024-03-23 00:24:36 +00:00
# Building from source
2022-03-26 03:06:30 +00:00
2024-03-23 00:24:36 +00:00
Please see [CONTRIBUTING.md ](CONTRIBUTING.md#building-from-source ) for details about how to build this repository yourself.
2024-01-23 10:45:06 +00:00
2022-03-26 03:06:30 +00:00
---
2022-04-05 21:45:09 +00:00
# TODO
In no particular order:
2023-03-22 07:35:24 +00:00
- [ ] Ability to show the built-in virtual keyboard (softinput), for text input
2022-04-08 07:49:00 +00:00
- [ ] Controller/Gamepad input?
- Mapped to key presses and/or virtual mouse pointer
2022-04-05 21:45:09 +00:00
- [ ] Own custom keyboard overlay, maybe even per-content configs
2023-03-22 07:35:24 +00:00
- Not an overlay, and not per-content, but custom keyboard is there
2022-04-05 21:45:09 +00:00
- [ ] Error/panic handling
2022-09-15 08:19:33 +00:00
- [ ] Loading "animation" (spinner)
- [ ] Alternative audio backend (OpenSL ES) for Android < 8
2022-04-05 21:45:09 +00:00
- [ ] Proper storage backend?
2022-04-06 20:12:55 +00:00
- [ ] Resolve design glitches/styling/theming (immersive mode, window insets for holes/notches/corners)
- [ ] Publish to various app stores, maybe automatically?
2022-04-05 21:45:09 +00:00
- [ ] Bundle demo animations/games
- [ ] Add ability to load content from well known online collections? (well maybe not z0r... unless?)
- [ ] History, favorites, other flair...?
### DONE:
2024-03-18 23:23:11 +00:00
- [X] Clean up ~everything
- [X] Cross-platform build instructions?
- I think gradle should take care of it now
- [X] UI backend (context menu)
- Context menu works
- [X] Logging?
- [X] Navigator backend (fetch, open browser)
- Opening links works at least
2022-04-05 21:45:09 +00:00
- [X] Touch/mouse input
- [X] Keyboard input: only with physical keyboard connected or through `scrcpy`
- This was needed: https://github.com/rust-windowing/winit/pull/2226
- [X] Split into a separate repo
2022-04-13 00:36:56 +00:00
- [X] Add ability to Open SWF by entered/pasted URL (or even directly from clipboard)
- No direct clipboard open, but easy to paste into the text field...
2022-04-06 20:12:55 +00:00
- [X] Unglitchify rendering: scale, center and letterbox the content properly
2022-09-15 08:19:33 +00:00
- [ ] Ask CPAL/Oboe to open a "media" type output stream instead of a "call" one
- so the right volume slider controls it, and it uses the loud(er)speaker
- -> solved by switching to a direct AAudio (ndk-audio) backend
2022-04-05 21:45:09 +00:00
- [X] Add building this to CI, at least to the release workflow
- This repo has its own CI setup, which builds APKs
2023-08-16 07:19:17 +00:00
- [X] Simplify build process (hook cargo-apk into gradle, drop cargo-apk?)
- ~cargo-apk is fine, but is only used to detect the SDK/NDK environment and run Cargo in it, and not to build an APK.~
- actually solved by switching to `cargo-ndk` and the corresponding Gradle plugin
2022-04-05 21:45:09 +00:00
- [X] Somehow filter files to be picked to .swf
- How well this works depends on the file picker, but it "should work most of the time"
2023-03-22 07:35:24 +00:00
- [X] Unglitchify audio volume (buttons unresponsive?)
- (pending: https://github.com/rust-windowing/winit/pull/1919)
- actually solved by switching to GameActivity instead
2022-04-05 21:45:09 +00:00
- [ ] Register Ruffle to open .swf files
- How well this works depends on the application opening the file, but it "should work most of the time"
- [X] Figure out why videos are not playing (could be a seeking issue)
- The video decoder features weren't enabled on `ruffle_core` ...
2022-04-06 20:12:55 +00:00
- [X] Sign the APK
- Using a very simple key for now, with just my name in it
- [X] Support for 32-bit ARM phones
2022-04-05 21:45:09 +00:00
- Untested, but should work in theory
2023-08-06 21:08:27 +00:00
- [X] Support for x86(_64) tablets?
- Sorted out
- [X] Consider not building the intermediate .apk just for the shared libraries
- Figured out, no intermediate .apk any more, only native libs built
2022-04-05 21:45:09 +00:00
- [ ] Unbreak the regular build on CI
- No longer relevant after the repo split
- [ ] Clean up commit history of the branch
2024-01-23 10:45:06 +00:00
- No longer relevant after the repo split