Please sign in to access this page

eScive

eScive Used AI

11 devlogs
49h 7m
Created by Johan

eScive is a mobile app that aims to be a third-party client for e-scooters with Bluetooth functionality, allowing an alternative interface with more features, and more importantly, without all the telemetry that is included in some official apps (generally Chinese ones 👀).
For now, the project specifically targets iScooter "i10" electric scooters, but is coded in a way that will allow other brands in the future.
Communications between devices are based on reverse engineering of packets sent using the BLE protocols, and directly from the decompiled source code of official apps.
The app is made using Flutter and will be published to stores at the end of the project.

Timeline

Johan
Johan
5h 17m • about 1 month ago

Maybe I weren't done with this app yet.. 👀

This new update features a trip sharing feature, weather alerts in France, and a far better landscape mode support.

  • Use the map widget to share your trips with your friends or on social medias by long-pressing the relocate button.
  • eScive now alerts you if rain is suddenly expected in your area within the next hour. Enable this feature in the settings (only available in France).
  • Enhanced responsive design for widgets in landscape mode, including the music player and the map.
  • Settings to force auto screen rotation in any direction, in landscape mode only, or manual.
Update attachment

Ship 1

0 payouts of shell 0 shells

Johan

about 2 months ago

Johan • Covers 10 devlogs and 43h 49m

Fixed a little bug with Kustom variables, app should be done!!!

Update attachment

Fixed numerous bugs, implemented startup time measuring, implemented a way to choose what elements are shown on the UI (for future bridges), and implemented DEEP LINKING (with escive:// scheme) + KUSTOM INTEGRATIONS!

You can now make your own automations that can actually interact with your vehicle: this includes the ability to retrieve data from a Kustom App, and to define data from any apps!

Don't forget to sign up for the Google Play Store beta program to try the app right now with demo mode (if you don't have a compatible scooter)!

Update attachment

I published some fixes adressing the historic of positions showed in the fullscreen map (more frequent update, changing the maximum distance threshold when tracing a segment, new debug settings, speedometer froze when starting to emit positions).

Also, I really need more users to sign up for the Google Play Store beta program to get the app accepted on the store, this would mark the final step before submitting the project here!

Update attachment

eScive is now available to test directly from your browser! On Chrome Desktop, you can even connect to a compatible Bluetooth e-scooter to fully test the app. It can be accessed from this link.

Btw, you can now sign up for the Google Play Store beta program to get early access to eScive on Android!

Update attachment

The app will soon be available to try directly from your browser. Thanks to the amazing technologies provided by Flutter, I'm planning on making a demo website for everyone to try the app. The best part is, it can even connect to a real e-scooter! There's a lot of bugs that I may not get to fix now (not the current priority) but it's working I guess. Stay tuned for the demo link!

In the meantime, you can now sign up for the Google Play Store beta program to get early access to eScive on Android!

Update attachment

Update on the map widget! There is now a new settings to track every one of your moves when riding and to show them directly in the fullscreen map. This new feature make the data precision even more useful as your position was already used when this option was turned on (to show your street name in the home page or to locally determine your moving speed from your phone).

I'm approaching the finale state of this project and I will start to create a new project on the Google Play Store for Developers to make sure it will be published as soon as possible.

Update attachment
Johan
Johan
12h 18m • about 2 months ago

IN-APP NAVIGATION HAS ARRIVED!
A new widget has arrived in the app, get an overview of the environment you're riding in, and quickly launch a route in your favorite navigation app (Google Maps, Transit, Citymapper).

This new feature displays a map on eScive's home screen along with the street and city you're currently located in, to help you orient yourself in any circumstances.
Tap on it to display:
- A full-screen view with intelligent search functionality
- A history of your previous trips launched through eScive
- The ability to define up to 3 favorite addresses that will be displayed on the map when you approach them

I originally wanted to integrate a step-by-step navigation system within the app, but it's better from a user experience standpoint to simply redirect to a more competent third-party app like Google Maps, especially since the visual and audio notifications as well as PiP on these apps are sometimes preferable.

Update attachment

Advanced stats are here! They can be enabled directly from the settings and are calculated based on time and TRIP/Total Distance (provided by the e-scooter).

Sadly, eScive needs to be opened for these data to be grabbed and saved into the app local data, but the app is perfect for staying always on, so that won't be a problem!

Update attachment

After a few final touches, the eScive source code is now available on GitHub. The app currently allows you to:
- Connect to an electric scooter compatible with the iScooter app (i10, i10 Max, and i10 Pro models; the i10Max was used during development, but differences exist between the three versions so I'll need to make modifications later)
- View and interact with the scooter in real-time: show speed in km/h, speed profile, front light, built-in parking mode (lock)
- Add, rename, delete one or multiple devices, including a demo device (with random mocked data)
- In-app widget to display and manage currently playing music on the phone
- Warning lights in the speedometer, like in a car
- Settings to force the phone screen to stay on or force its brightness to maximum, set a visual speed limit, set the interface language

I'll soon be adding statistics through a trip tracking feature using the phone's GPS position, as well as a new in-app navigation widget (if possible, I still need to study the feasibility). Stay tuned!

Update attachment

I had already started the project before the start of SoM, I didn't intend to publish it so the entire codebase was in my native language at the beginning. After translating everything, removing some minor details that I didn't want to show online, and after cooking on the first BLE protocol integration, I'm almost ready to publish the source code of the project. Afterward, I will keep updating the app and posting devlogs here until I get to the most advanced state of the app I want to make!

Update attachment