Shared bikes availability in your city

Overview

OpenBikeSharing

Build Status

OpenBikeSharing is an Android application that displays the availability of shared bikes in your city.

It uses the CityBikes API that provides data for more than 400 cities in around 40 countries and displays this data in a list or on an OpenStreetMap layer thanks to the osmdroid library (multiple layers are available).

Download

OpenBikeSharing is available on F-Droid and Google Play. Signed APK's can also be found on GitHub in the Releases section.

Contribute

Issues

Bug reports and feature requests can be reported in Issues.

To contribute to the openbikesharing.org website, just switch to the gh-pages branch.

Translations

Translations are managed on Weblate. Please follow these instructions if you want to help.

Donations

Donations are always welcome and will help further development of OpenBikeSharing:

  • Bitcoin: 168utA5DWMVXLFVfQDahG5abEWUSk9Wcfm

Build

If you use Android Studio, you can import the project directly from GitHub.

Otherwise you can build it from the command line with Gradle.
Clone the repo and type:

./gradlew build

(You may need to chmod +x the gradlew script)

The Gradle script will take care of downloading the necessary libraries and will generate the APK's in app/build/outputs/apk.

Permissions

The following permissions are needed by OpenBikeSharing (those are the same that are required by osmdroid):

  • ACCESS_COARSE_LOCATION
  • ACCESS_FINE_LOCATION
  • ACCESS_WIFI_STATE
  • ACCESS_NETWORK_STATE
  • INTERNET
  • WRITE_EXTERNAL_STORAGE

Internet access is needed to download the map tiles and the stations. Location access is only used to locate you on the map. Access to the SD card is required by osmdroid to cache the tiles.

Comments
  • colour stations on map according to bike availbility/free parking

    colour stations on map according to bike availbility/free parking

    To visually filter out more easily the stations on the map when looking for a bike or a parking space, it would be very nice to have the bike logos that represent the stations have a colour code.

    For example (just an idea, clearly): red: the station has no free bikes, no free spaces (ie: the station is out of order, basically) green: the station has free bikes, free spaces grey: the station has free bikes, no spaces (can happen even when the station is not actually full of bikes) brown: the station has no free bikes, but has free spaces

    I realise these colours are probably not the best, especially the grey and brown ones.

    Another option is to use the bike logo in two-halves, ie: front wheel of the bike represents bike availability, back wheel represents free spaces. Green front wheel, red back wheel: bikes available, no free spaces. etc.

    Last suggestion (I'm on a roll!), the colours could also be a gradient according to the number of free bikes on total number of bikes, and/or free spaces on total number of spaces. Probably not very relevant info, but still a possibility.

    Hope this helps!

    enhancement 
    opened by axelsimon 5
  • New provider in Paris

    New provider in Paris

    Hi,

    The velib provider in Paris changed on January, 1st. It seems OpenBikeSharing is only fetching stations from the previous provider (JCDevaux)) but not the new one. There are some remaining stations from the old provider but all stations should move to the new one in a couple of months.

    An official opendata endpoint is available from https://opendata.paris.fr/explore/dataset/velib-disponibilite-en-temps-reel/

    It would be awesome to have them in OBS. Let me know if needed, I can help translate the doc if needed. But I can't do much Android coding :/

    Thanks!

    duplicate invalid 
    opened by Phyks 3
  • Cannot compile after fork

    Cannot compile after fork

    I forked the repository and tried to compile the app. After a few failed attempts because of the missing android-support, I was finally able to compile it, but when I ran it in the emulator it crashed. Seems like it's trying to resume an app on first run, which is obviously not possible. Here are the adb logs

    06-05 06:27:29.366    2011-2011/be.brunoparmentier.openbikesharing.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
        Process: be.brunoparmentier.openbikesharing.app, PID: 2011
        java.lang.RuntimeException: Unable to resume activity {be.brunoparmentier.openbikesharing.app/be.brunoparmentier.openbikesharing.app.activities.StationsListActivity}: java.lang.NullPointerException
                at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2774)
                at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2803)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2238)
                at android.app.ActivityThread.access$800(ActivityThread.java:135)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:136)
                at android.app.ActivityThread.main(ActivityThread.java:5001)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:515)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                at dalvik.system.NativeStart.main(Native Method)
         Caused by: java.lang.NullPointerException
                at be.brunoparmentier.openbikesharing.app.activities.StationsListActivity.onResume(StationsListActivity.java:179)
                at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192)
                at android.app.Activity.performResume(Activity.java:5310)
                at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2764)
                at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2803)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2238)
                at android.app.ActivityThread.access$800(ActivityThread.java:135)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:136)
                at android.app.ActivityThread.main(ActivityThread.java:5001)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:515)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                at dalvik.system.NativeStart.main(Native Method)
    
    bug 
    opened by frazzmark 3
  • Call-A-Bike networks data retrieval error

    Call-A-Bike networks data retrieval error

    All Call-A-Bike networks, for example Berlin or Munich, are not working with version 1.7.2. When selected, trying to refresh the stations lists results in a toast message saying "Error retrieving data".

    bug 
    opened by fpletz 3
  • Configurable Citybikes api URL

    Configurable Citybikes api URL

    Since https://github.com/eskerda/PyBikes looks like is stale, no pull request responses for more than month and biking season is "almost over" I can't wait any longer for merging my pull requests (added 11 Polish bike networks), maybe that's good idea to allow customize API url in app settings. I'm ready to fork and setup own API server (with new networks added) but don't want to fork and maintain this app :).

    enhancement 
    opened by thesebas 2
  • make it easier to donate via bitcoin in the app itself

    make it easier to donate via bitcoin in the app itself

    It could be handy to have a link in the about menu (or a donate item in the settings menu) to make easy bitcoin donations. Something that would automatically open the installed wallet, ideally.

    Right now, one has to go to your website, copy the bitcoin address and then paste it in the wallet of choice. Making it easier would diminish the friction to make donations ;)

    enhancement 
    opened by axelsimon 2
  • long click (touch) on station on map takes you to station page

    long click (touch) on station on map takes you to station page

    This could be useful to allow to have more info on the station (not that there really is any extra info to display right now, at least basing myself on the Paris Vélib' map) or to add to favourites, if one were to follow my suggestion in https://github.com/bparmentier/OpenBikeSharing/issues/3.

    enhancement 
    opened by axelsimon 2
  • Error retrieving data

    Error retrieving data

    Haven't checked OpenBikeSharing for some weeks now and it worked like a charm before. But now I get "Error retrieving data" when I try to update the list of all stations or go to settings "Choose a network".

    However, the data from Mapnik is received as expected in the app.

    I am using version 1.9.2.

    opened by qfvldaa2xn 1
  • Use an external platform to manage translations

    Use an external platform to manage translations

    It will be easier for non-developers to contribute translations if using an external platform.

    Weblate seems interesting. It is free software and does offer hosting solution for FOSS projects (~~sent them a request a week ago, but still no answer though~~).

    enhancement 
    opened by bparmentier 1
  • Choose main tab

    Choose main tab

    I think it should be a good idea to let the user choose which tab to open on start. Like, I don't have any GPS, so the nearby tab is useless, I would like to see the favorites first.

    enhancement 
    opened by frazzmark 1
  • Keep zoom on map while rotating the screen

    Keep zoom on map while rotating the screen

    Is it possible? i noticed today that after rotating the screen the map starts to re-draw in the default position and zoom level. Can they be kept after the rotation?

    bug 
    opened by frazzmark 1
  • When the app can't locate the current location due to the lack of permission, a wrong prompt will be given

    When the app can't locate the current location due to the lack of permission, a wrong prompt will be given

    Describe the bug When the app can't locate the current location due to the lack of permission, a wrong prompt will be given.

    To Reproduce Steps to reproduce the behavior:

    1. install openbikesharing and open app
    2. click the map icon in the upper right corner
    3. click the positioning icon in the upper right corner
    4. prompt "location not found"

    Expected behavior Location permission should be requested.

    Smartphone (please complete the following information):

    • Device: HUAWEI nova 5 pro
    • OS: HarmonyOS 2.0.0
    • Version: 1.10.0

    Additional context Add any other context about the problem here. ezgif com-gif-maker (3)

    opened by sjl872964789 1
  • Is this still actively developed?

    Is this still actively developed?

    Hi there,

    I'm hochi from the next-companion project which is also available via F-Droid. We'd like to depend on your app for the map and station finding process. Is this thing still active or are we better off if we're simply forking it?

    For us, the standard tiles were not working (tested on two devices). I know there's #51 for this.

    opened by h0chi 2
  •  If the device has been rotated in the welcome interface, the all stations list cannot be displayed

    If the device has been rotated in the welcome interface, the all stations list cannot be displayed

    Describe the bug If the device has been rotated in the welcome interface, the all stations list cannot be displayed

    To Reproduce Steps to reproduce the behavior:

    1. Install OpenBikeSharing and open app
    2. rotate the screen
    3. Click on "OK"
    4. Chose any network (Albacete (ES) for me)
    5. Click on "ALL STATIONS"
    6. Prompt "NO STATION"

    Expected behavior Should show the station list

    Smartphone (please complete the following information):

    • Device: Galaxy A6s
    • OS: Android 7.1.2
    • Version: 1.10.0

    Additional context Add any other context about the problem here. ezgif com-video-to-gif (14)

    opened by sjl872964789 1
  • Integrate electric bikes

    Integrate electric bikes

    Hello.

    As stated in #45, CityBikes API does support electric bikes. I suggest this integration built on top of #52. Please ask if you have any question with the way it is handled. Thank you in advance.

    opened by francoisfds 0
Releases(v1.10.0)
A simple Android app to show city weather

City Weather Application A simple MVVM application to show a list of cities weather where you can search for your favorite city weather and see its we

Mohammad Alhaj 1 May 17, 2022
Android practice shared ViewModel

Cupcake app This app contains an order flow for cupcakes with options for quantity, flavor, and pickup date. The order details get displayed on an ord

Gabriela Fernanda Soto Ramirez 0 Dec 13, 2021
Android app for removing tracking parameters from shared URLs

Léon - The URL Cleaner is an Android application which removes tracking and other obsolete parameters from a URL before sharing. Its usage is simple,

Sven Jacobs 89 Dec 30, 2022
A random meme generator and can be shared , each click will show yo a different meme.

AlphaMemes(random meme sharing app) A android app which display new meme on each click. used API which is dynamic/ Glide library used / Recycler view

SUMIT KUMAR 4 Jan 18, 2022
This repo provides a sample application that demonstrates how you can speed up the authentication experience for frontline workers on shared devices using QR codes.

Project This repo has been populated by an initial template to help get you started. Please make sure to update the content to build a great experienc

Microsoft 5 Dec 7, 2022
Easy app for managing your files without ads, respecting your privacy & security

Simple File Manager Can also be used for browsing root files and SD card content. You can easily rename, copy, move, delete and share anything you wis

Simple Mobile Tools 1.2k Dec 30, 2022
when you use restful api and network get disconnect you have to store your data local for make your app faster and work on ofline mode

AppArchitectureOflineMode when you use restful api and network get disconnect you have to store your data local for make your app faster and work on o

Kareem-Mansy 3 Jun 20, 2021
Taskify - An app to manage your daily tasks and boost your productivity. Taskify is built using kotlin and follows all modern android Development practices and hence is a good learning resource for beginners

Taskify Taskify is an app to manage your daily tasks and boost your productivity Video Introduction ?? This is a small introduction video about Taskif

Vaibhav Jaiswal 101 Jan 4, 2023
Alkatraz is an app that helps you to Reach your goals by managing your Habits .

Alkatraz - Build healthy habits for healthy life Alkatraz is an app that helps you to Reach your goals by managing your Habits . It's makes your life

Nishant Kumar 11 Nov 28, 2022
Manage your torrents from your Android device with Transdroid.

All popular clients are supported: µTorrent, Transmission, rTorrent, Vuze, Deluge, BitTorrent 6, qBittorrent, and many more. You can view and manage running torrents and individual files. Adding is easy via the integrated search or RSS feeds (full version required). Monitor progress using the home screen widget or background alarm service.

Eric Kok 1.1k Jan 5, 2023
Source code of JekyllEx Android App which can manage your Jekyll blog directly from your Android device!

JekyllEx Android App Built with ❤︎ by Gourav Khunger ?? Introduction JekyllEx is an Android App that allows you to manage a Jekyll Blog directly from

JekyllEx 24 Nov 8, 2022
Vaibhav Jaiswal 57 Jan 3, 2023
Tournant is a Gourmand/Gourmet recipe parser which serves your dishes on your Android device

Tournant Gourmand/Gourmet recipe parser Website: tournant.zimbelstern.eu Tournant serves your favorite dishes on your Android device! With Tournant, y

null 5 Dec 23, 2022
ICSx⁵ is an Android app to subscribe to remote or local iCalendar files (like time tables of your school/university or event files of your sports team).

ICSx⁵ ICSx⁵ is an Android app to subscribe to remote Webcal feeds / iCalendar files (like time tables of your school/university or event files of your

bitfire web engineering 60 Dec 28, 2022
Share your minecraft-adventure with your friends in nation-party.

Nation Party Make your adventure as shared with your friends and family in Nation Party. Features * Create your own party with your own name; * Invite

Luiz Otávio 1 Jan 9, 2022
Candash - A simple Android app that turns your phone into an instrument cluster for your Tesla Model 3 and Y

What is CANdash? CANdash is an Android app that turns your Android device into a

Nick Nguyen 31 Nov 5, 2022
With this simple app, you can keep track of your favourite cryptocurrency on your wrist.

Capstone project crypto Tracker ?? Final Product (05-06) V1.1 "somebody toucha my spaghet" feature set State Note Track the current price of a crypto

Stefan de Kraker 2 Aug 20, 2022
Record full-resolution video on your Android devices.

DEPRECATED: Android 11 now includes native screen recording! License Copyright 2015 Jake Wharton Licensed under the Apache License, Version 2.0 (the

Jake Wharton 2.5k Dec 15, 2022