Giter Site home page Giter Site logo

bikesharinghub's Introduction

BikeSharingHub

BikeSharingHub 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).

It is a fork of the OpenBikeSharing application, which adds few improvements for recent Android versions.

Get it on F-Droid Get it on Google Play Get it on Github

Contribute

Bug reports and feature requests can be reported in Issues.

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.

Translations

Translation status

Help translate the app to your language from our Hosted Weblate page.

LICENSE

BikeSharingHub. Shared bikes availability in your city.
Copyright (C) 2020-2021 François FERREIRA DE SOUSA

BikeSharingHub incorporates a modified version of OpenBikeSharing
Copyright (C) 2014-2015  Bruno Parmentier

BikeSharingHub is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

BikeSharingHub is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with BikeSharingHub.  If not, see <http://www.gnu.org/licenses/>.

bikesharinghub's People

Contributors

5mikachu avatar adriaaah avatar altonss avatar bittin avatar bparmentier avatar canerbasaran avatar comradekingu avatar debyos avatar dfacoet avatar eugenia-russell avatar eugentoptic44 avatar fabmazz avatar francoisfds avatar frazzmark avatar gensitu avatar jsmakaayb avatar milotype avatar naofum avatar nathanbnm avatar oersen avatar pataquets avatar poussinou avatar santossi avatar sarojdhakal avatar thesebas avatar vistaus avatar weblate avatar xendez avatar xmgz avatar yarons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bikesharinghub's Issues

Attribution

Hey francois,

I saw a screenshot and the screenshots on the f-droid store; I found the OpenStreetMap attribution to be lacking a link ( https://www.openstreetmap.org/copyright ) at the word "OpenStreetMap" and the map objects are being displayed on top of the attribution, as well as possibly having other map styles available as well, for which the attribution could be similarly lacking (I can not check this).

Could you have a look at this, please?

working with and perhaps selecting multiple areas/services

IMHO a killer feature would be to display more than one area/service at once (distinguished by e.g. colour)!

it happens in bigger cities that there is more than one provider or some universities have their own system on campus within the city etc. or even sometimes operating areas of a city and its suburbs overlap... for this cases showing more than one area/service at a time would be awesome.

if not, at least adding a possibility to mark areas/services as favourites (which are always shown on top) may ease the situation a little bit for those who have to frequently switch between them.

Double press on map zoom button

When double pressing the zoom buttons on the map, it isn't behaving "correctly": instead of zooming out/in more, it behaves like a simple press. Compared to the behavior of OrganicMaps for example, this feels unintuitive.

Version: 2.1.2

Icon not displaying well on Samsung Galaxy A40

With the Samsung OneUI desing the icon doesn't render well. This is just a minor issue, but maybe it would not be too difficult to tweak the icon for these devices?
This is not a priority, but just a cosmetic detail that could make the app more appealing to new users :)
image

location-based features don't work

BikeSharingHub version 2.1.0 installed from F-Droid on LineageOS 20-20230124-NIGHTLY-lemonadep (Android 13). No Google services, but working GNSS-based location.

The app correctly shows my location on the map, which shows it has access to my location. Nevertheless:

  • The "nearby" tab says "No nearby stations" even though I'm standing right at the station.
  • Clicking on "circle with four prongs around a disc" icon (at the top right of the map) gives message "Location not found"

Note that while my location is correctly shown, it is very infrequently updated if I move while I leave the Map screen open; this gives me the impression that maybe BIkeSharingHub is able to access my location when the system knows it because another app has acquired it, but does not trigger the system into acquiring it?

Screenshot_20230203-173224_BikeSharingHub
Screenshot_20230203-173234_BikeSharingHub
Screenshot_20230203-173242_BikeSharingHub
Screenshot_20230203-173403_Permission controller

Add to Play Store

I think it would be nice to add it on Play Store so that the easier access to the app can attract more users.

improvments for selecting area/service

since OpenBikeSharing seems abandoned (bparmentier/OpenBikeSharing#58), i'm opening here my tickets with ideas for improvement:

since the list for choosing your city/area/provider/service is just ordered by alphabet there is room for improvement IMHO... in my country a bunch of services are not named after the city but after a wider area (and it can be sometimes tricky to figure out its name because they are not really "official"), or the provider named it's service after a small village which started at first in the area and then expanded to other cities (so no real connection between name & the whole operating area). and if you are a stranger who's on vacation or whatever, it can be impossible to find the correct service just by guessing names.

so how about ordering the list at least by country, eventually by state (and so on), similar to how OsmAnd orders its list of downloadable maps?
the one thing i'm not 100% sure about is the search in this case... because it can be helpful to just search down the "folder" in which you currently are (instead of all, like now), but this has to be somehow clearly indicated.

speaking of OsmAnd: it would be even better to have (additionally) a map to chose the city/area/provider/service on which the operating area of the service is indicated (similar to map areas in OsmAnd) or at least marking its base (as it is done at https://citybik.es/) and it can be simply selected by a tap.
this (especially with indicating the operating area) would even better cover the case where the name doesn't really match the (whole) operating area.

Master branch feels sluggish

Compared to last version 2.1.1, the latest master branch build somehow feels slow, including the map.
I don't know the reason though 🤔

Show free (not parked at a station) bikes as well

Hi,

with Nextbike, we can also have bikes not parked at a station (in the pink area on the Nextbike map), but this äpp shows only those parked at stations (which are pretty much always empty here).

I was hoping this äpp could show them on a map even on Open Source Android (i.e. without Google Play services) where the Nextbike äpp works for renting but does not show the map.

callback compatibility issue when initialing method

We confirm a callback compatibility issue which might threaten the robustness of your app and give a detailed suggestion for you.

In ''be.brunoparmentier.openbikesharing.app.activities.MapActivity", you super the framework API "<android.app.Activity: void onRequestPermissionsResult(int,java.lang.String[],int[])>" in "onRequestPermissionsResult" method as shown in following. But actually, this method is added in API level 23 (https://developer.android.google.cn/reference/android/app/Activity?hl=en#onRequestPermissionsResult(int,%20java.lang.String[],%20int[])).

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode) {
            case REQUEST_LOC_PERMISSION_CODE:
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    mooveToLocation();
                } else if(!ActivityCompat.shouldShowRequestPermissionRationale(this,
                        Manifest.permission.ACCESS_FINE_LOCATION)) {
                    Toast.makeText(this, getString(R.string.location_not_granted), Toast.LENGTH_LONG).show();
                }
                break;
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

So when the app try to initial related funtion on devices level 21 and 22, your app will run with an unpredictable results. So we suggest you add an "if(SDK_INT>22)" or change your app miniSDK from 21 to 23 to fix this potential issue.

There is too much blank space in the tabs!

There is too much blank space in the tabs! All tabs could fit on this screen. There just seem to be too much padding between the 3 columns. We could probably fit all 3 tabs without the need to scroll on big enough screens (like on the screenshot).
This happens on a Samsung Galaxy A40:
image

Widget is not handling several networks

Widget doesn't handle several networks selected:

  • when initialising widget, info for only 1 network is showed
  • when going to the app, the prefered stations are now only showing for 1 network until refresh!
  • when going back to the widget, the prefered stations of the 2 networks are displayed correctly
  • a refresh of the widget resets all to zero (information for only 1 network)

Display problem of favorites (scrolling)

With 9 favorites, just one more than the screen accepts without having to scroll). Issues:

  • The last favorite (at the bottom of the list) is half masked by the last update info. I cannot scroll more up.
  • When I want to scroll back to the top, it is nearly impossible because it triggers the refresh.

Screenshot
Screenshot_2021-10-27-19-42-55

Hardware info:

  • Android 5.0.1
  • Small screen size
  • Version 2.0.4 from F-Droid

Too much vertical space on the top of the app

On the Samsung Galaxy A40, the top bar is really big and this space is lost (there is black unused space on top and maybe also at the bottom? (idk)). Would it be difficult to improve this design/UI part? This is probably mostly the case for newer phones, running on newer android versions and some having a top notch.
image

Visual issue in network list

When searching for "Santa Marg" for example, you can find a network which information is partly hidden because the text is too long. This creates a "visual bug" which should/could maybe be handled better :)

Widget is showing parking spots for networks not having such info

For networks such as "LeVélo, Marseille", the widget is not behaving the same as inside the app and is displaying -1 parking spots despite this info being completely hidden inside the app (icon included) because this information isn't provided.
This could be improved for consistency :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.