diff --git a/README.md b/README.md index 211bc2c..755df05 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,94 @@ -# NextCompanion - Hacker's Nextbike Client -A **minimalistic** and **unofficial** client for Nextbike. Still under early development, use with care. +# NextCompanion -The app allows you to sing-in, see a list of bikes, rent bikes and return them. - -The app is neither official, nor feature-rich. It also doesn't allow you to. -sign-up to nextbike or to delete your account, use GPS or read the news -feed. It was just tested for Norderstedt, so it's not guaranteed to work in -all areas. The app has no support for flexzones. - -**I'm not a professional developer; especially not for Android. Until someone cool reviewed this source code, please consider this app bad by technical design.** - -## Installation -* Build it -* [F-Droid](https://f-droid.org/packages/com.example.hochi.nextcompanion/) -* manual APK download (upcoming) - -## Usage notes -* Sign up will never be supported, so you have to sign up via the website or the official app -* Flexzones are not supported at the moment, but could work. Please share your experience in [issue #5](https://github.com/h0chi/next-companion/issues/5). - -## Privacy -This app does not track you or send any private data - including your geopositon and app usage metrics- to NextBike servers or third party servers. It does only send a couple of requests to the NextBike servers, just enough to rent you a bike. The original app does not offer an opt out for sending your position to its servers, because it depends on it during the return process for some reason. It even seems to track the exact rout I took in my case. - -## Tested areas -NextCompanion should work in other cities as well. - -* "Nextbike Norderstedt" Norderstedt, Germany -* "Nextbike Kassel" Kassel, Germany -* "Nextbike Poznań" Poznań, Poland -* "Nextbike Luboń" Luboń, Poland -* "SWB Mobil/Nextbike Bonn", Germany -* "MetropolRadRuhr" Dresden,... , Germany -* "szbike" Dresden, Germany +A minimal GTK4/libadwaita Nextbike client for Linux. ## Features -* [x] Sign in -* [x] List of rented bikes -* [x] Rent bikes -* [x] Return bikes -* [x] Sign out -* [ ] Good error handling -* [ ] Settings -* [ ] Flexzone support? -## Possible features -* integration of other bike sharing systems +- Interactive map with bike station markers (Leaflet.js) +- Marker clustering for dense areas +- Rent and reserve bikes directly from the map +- Filter by bike type (All / Standard / E-bikes) +- View active rentals and reservations +- Return bikes with station number or electric lock -## This is not... -* feature rich -* the official client -* sign up on Nextbike -* read the news feed -* a map -* delete your account -* using GPS -* fancy swiping +## Screenshots -## Motivation -tl;dr: The original app did not work for me. Too many crashes, completly overloaded with features, returning did not work and privacy issues. +*Coming soon* -The original client sent me random testing notifications like "IOS test" or "LOL" but idk, why does a bike sharing app needs notifications anyhow? It also features loading their news feed in the main activity and since a recent upgrade it became unusable for me because returning depends on personal GPS location. +## Installation + +### Flatpak + +```bash +# Build and install locally +flatpak-builder --user --install --force-clean build-dir org.nextbike.NextCompanion.yml +``` + +### NixOS / Nix + +Run directly: +```bash +nix run github:onny/nextcompanion +``` + +Or add to your flake inputs: +```nix +{ + inputs.nextcompanion.url = "github:onny/nextcompanion"; +} +``` + +Then add to your packages: +```nix +environment.systemPackages = [ inputs.nextcompanion.packages.${system}.default ]; +``` + +For development: +```bash +nix develop +cargo run +``` + +## Usage + +1. Sign in with your Nextbike phone number and PIN +2. Browse the map to find bike stations +3. Click a station marker to see available bikes +4. Rent or reserve a bike with one tap +5. View your active rentals via the "Rentals" button +6. Return bikes by entering the station number + +**Note:** Sign-up is not supported. Create an account via the Nextbike website or official app first. + +## Privacy + +This app does not track you or send telemetry. It only communicates with Nextbike API servers to perform bike operations. + +## Requirements + +- GTK4 4.x +- libadwaita 1.x +- WebKitGTK 6.0 + +## Building from source + +```bash +# With Nix +nix build + +# With Cargo (requires GTK4, libadwaita, WebKitGTK development packages) +cargo build --release +``` + +## Tested cities + +NextCompanion uses the Nextbike API and should work in any supported city. Tested with: +- KVV.nextbike (Karlsruhe, Germany) ## Disclaimer -This app is not affiliated to NextBike GmbH in any way. The above statements about the original app may be biased. + +This is an unofficial client and is not affiliated with Nextbike GmbH. + +## License + +See [LICENSE](LICENSE) file.