Info: An app to show everything bus related in Singapore, including arrival times and a directory. Flutter + Dart.
NextBus SG
An app to show everything bus related in Singapore, including bus arrival times and a directory, with extra features.
Gallery
Click here to see a detailed explanation of each screen.
Features
Click to reveal all features Click to reveal features for the future
Wiki
Data
Check out themindstorm/bus-sg for a detailed guide on how the data was scraped. The data is copyrighted by LTA.
Packages used
- provider
- hive
- hive_flutter
- hive_generator
- geolocator
- permission_handler
- styled_widget
- flutter_markdown
- bot_toast
- url_launcher
- introduction_screen
- flutter_launcher_icons
- flutter_native_splash
- quick_actions
App philosophy
In short, I first made this app only for myself because I wasn’t happy with any app that already exists. All I needed was a simple, clutter-free interface to show bus timings of only the buses I’m actually taking. On rare occasions, I wounldn’t know where the bus stop is. I’d just use Google Maps. I never found large maps on bus apps useful.
No map
The thing is, once you know where a bus stop is, you won’t need to use the map again. If you already know where the stop is, the mpa on your scren takes more space. There are rare occasions when I don’t know how to get to the bus stop, but that’s why I have Google/Apple Maps.
Clutter free interface
You need bus timings. I’m giving you bus timings. Period.
Context-aware favorites
- You saved Bus 14 at Bedok Interchange as a favorite.
- You open the app near Bedok Interchange
- We assume that you are taking Bus 14, so we put its timings at the top of the screen (refer to the images above)
Other information
- Data collection start date: February 11, 2020
- Project start date: February 13, 2020
- This project was reviewed by happyharis on April 18, 2020: Video
- NextBus SG has its own promotional website, which is also open-source at themindstorm/nextbus-website: April 19, 2020
Built setup
Your system requires the Flutter SDK. Follow the steps here to install it on your system. Once Flutter is installed, follow these steps:
- Clone or fork this repository.
- In the
lib
folder, createkeys.dart
.
In keys.dart
, paste the following:
final String apiKey = '<LTA API KEY>';
To get an API key, go to LTA’s Request For API Access web page and fill out the form. The key is required for the app to work properly.
Once the key as been set up, the app can be tested with the following commands:
flutter run
Please check out the wiki for additional information.
Generating icons and splash screens
After updating pubspec.yaml
, run these commands:
flutter pub run flutter_launcher_icons:main
flutter pub pub run flutter_native_splash:create
Stuck at installing debug Android app?
Go to app settings and uninstall your app. The app may not appear in your launcher, but it could still be installed. Go to your settings, find it, and completely uninstall it.
This can also be done using ADB:
adb uninstall com.themindstorm.nextbussg
If this does not work, check out this answer on SO.
Build Android APK and appbundle
flutter build appbundle
flutter build apk
Once the APK has been built, install it on a physcally connected Android device:
flutter install
If you have multiple devices, you can view a list of Android devices connected using this command:
adb devices
And to install the app on an Android device, copy the device ID and install the app using
flutter install <devce ID>
Support
Like this project?
- Star the repository
- Send a pull request to add new features
- Share this package with other developers
- Download the mobile apps (scroll to the top for links)
Detailed screenshots
Click to reveal detailed images of the app’s different screens and explanations. These images may be too tall for desktop screens.
This and this was what the design looked like at first.
Acknowledgements
This app makes use of data and images (MRT map) from:
- LTA (Land Transport Authority): https://www.mytransport.sg/content/mytransport/home/dataMall.html
- LTG (Land Transport Guru): http://landtransportguru.net
License
Legal attribution
Google Play and the Google Play logo are trademarks of Google LLC.
Download Flutter Singapore Bus Tracking App source code on GitHub
Provides the list of the opensource Flutter apps collection with GitHub repository.