We have TIER and Voi scooters around Tampere which I’d love to ride, but as far as I’m aware there currently aren’t any options to do this with Sailfish OS.
On the Android app side at least Bluetooth is also a missing requirement. On the native side the lack of any open API from the providers is a missing requirement.
WoBike provides a lot of useful info about APIs from various providers, but this mostly seems to be about locating scooters and doesn’t cover unlocking them for use.
Voi does provide various APIs which could potentially be used. Maas Light could be used pretty easily, but provides only passive data, no scooter unlocking. The Maas Pro API provides everything needed, but to get access to that requires a commercial agreement with Voi, and the API consumer is responsible for billing, so it certainly doesn’t seem viable as a hobby project unfortunately.
Personal transport like this really is the future in my opinion, so it’s unfortunate that it’s not an option right now. I’d love to see some kind of universal open API emerging, but given billing is involved, and with all the providers scrabbling to become dominant right now, I’m not confident of it happening any time soon.
Does anyone know of any open source Android Apps that aggregate access to multiple scooter platforms? If there was such an app it might be a good place to look for inspiration.
With Voi, it works up to the point where it asks to scan the QR code with camera.
Same QR issue is also in S-Pankki banking app, it works ok with PIN code, if you log in the old fashioned way. Fingerprint support would be also good to have in Android side.
Its truly unfortunate that there is no proper commerial app ecosystem for SFOS. I definitely prefer the Sailfish UX and security-oriented approach. IMHO Android sucks in almost all respects - UX, development, security and tie-in to Google.
But as real-life use is a big issue, I’ll probably investigate a bit some google-free android like LineageOS…
What do you mean by “real-life use”, should this imply I don’t use my phone in real life?
They have tons of things to fix in SFOS and only limited resources plus Jolla’s priorities may not be aligned with yours or mine
I’m using an Xperia 10 plus, 6GB RAM model. There is a UK tobacco industry app I use, that makes use of the new Track and trace QR type (but not QR) barcodes that appear on wholesale tobacco product outers.
Previous to Sailfish 4.0 the app couldn’t launch the camera to scan the barcode. Since then (perhaps due to the Android API bump) it’s been working fine, except under low memory conditions when too many apps are open.
Okay so I have a working prototype on my 10 ii.
Regarding the payment options, this is pretty much out of scope for the app due to the lack of proper API documentation. I am pretty much bound to use what I can google. So the app needs an already existing account with associated payment information.
What is working:
Log in via mail / confirmation code
Show user profile (excluding past rides)
Show nearby scooters on the map
Show popups for the scooters indicating battery life & range
Scan QR code on the scooter to unlock it
Lock it again / end the ride
your android/ios device will be able to “see” the active ride after it has been started with the SFOS app
Things still to do:
add area markers on the map (the info is available, I just have to implement it)
support for voucher codes (there should be a way, still undecided if I shall add it, since there seems to be no way of displaying current discounts)
Known issues/limitations:
Past rides cannot be shown
I haven’t figured out how to retrieve payment conditions in locale dependent currency, it will probably display price in USD although it should be e.g. EUR. This only affects the price shown before unlocking. After the ride has ended, the real price (including discount info) will be shown in the correct currency. Also the current balance in the user profile is shown in the correct currency.
As mentioned, no real account management or changing payment information. And unless I have official support from Bird side, I would not implement the endpoint for updating the user profile either.
there is an API endpoint for retrieving user agreement info, and another endpoint for accepting said agreement info. the API only offered it once for me, and after I also accepted it via API, I no longer can retrieve the agreement. So I am unsure if this is now somehow stored in my account, and whether or not the agreement is needed for using the API. the app does not implement showing the agreement nor accepting the agreement, so this will need to be tested.
I am not aware of an endpoint for retrieving active rides. as a result, the app remembers active rides when started, and will display them again when the app is reopened. this is okay-ish, yet it would be more user friendly/failsafe if there was a way to query active rides.
The app is designed with provider-independence in mind, so it should be rather trivial to add implementations for more providers.
I plan to polish it throughout the week, and maybe put it on github on the weekend. I might need some volunteers willing to try it out before I push it to any store though.
Meanwhile I have sent mails to other providers, asking for support/help on implementing their API. I am not too optimistic, but lets see how it goes. Maybe there is a kind person on their end willing to help out.