• This repository has been archived on 07/Aug/2021
  • Stars
    star
    217
  • Rank 182,446 (Top 4 %)
  • Language
    Objective-C
  • License
    Apache License 2.0
  • Created almost 13 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OBA development has moved!

Development work has moved!

All development work on OneBusAway for iOS has moved to the OBAKit repository. This repository is maintained strictly for historical purposes.


OneBusAway for iPhone Build Status codebeat badge Join the OneBusAway chat on Slack

A project of the non-profit Open Transit Software Foundation!

Start Here

  1. Come join our Slack channel to say hi and let us know what you're interested in working on.
  2. We maintain a set of tasks that we think would be good choices for people interested in working on OneBusAway. Learn more about them here: Picking an appropriate first time issue
  3. This project adheres to a Code of Conduct. By participating, you are expected to honor this code.
  4. Now, learn about setting up your development environment.

Test latest development release

Join the TestFlight beta by following this link: https://testflight.apple.com/join/xj9o3Y5y. We have capped it to only work 500 times, so if you run into a problem using it, please email us at [email protected] to be added to our TestFlight Beta testing group.

Contributing

See our contributing guidelines and upcoming milestones. This project adheres to the Open Code of Conduct. By participating, you are expected to honor this code.

Individual Contributor License Agreement (ICLA)

To ensure that the app source code remains fully open-source under a common license, we require that contributors sign an electronic ICLA before contributions can be merged. When you submit a pull request, you'll be prompted by the CLA Assistant to sign the ICLA.

Picking an appropriate first-time issue

You are welcome to work on any bug or feature you would like, but we know that getting started in a new codebase can be intimidating. To that end, we recommend that you take a look at issues labeled as good first issue. These issues are relatively small and self-contained, and should be perfect for anyone who is interested in getting their feet wet with the OneBusAway codebase.

Development environment setup

  1. Install the latest released version of Xcode 10.x from the Mac App Store
  2. git clone your fork
  3. Install Carthage
  4. Build Carthage dependencies: bin/carthage_build --platform iOS --no-use-binaries
  5. open org.onebusaway.iphone.xcodeproj
  6. Create a new Firebase app at https://firebase.google.com/ - You just need the GoogleService-Info.plist file that it'll spit out at you once you've created.
  7. Place GoogleService-Info.plist in the (SOURCEROOT)/AppIdentities/OneBusAway folder.

You should now be able to build. See our contributing guidelines for the specific workflow to add a new feature or bug fix.

Localization Notes

It is vital that any user-facing strings in this project are localized. If your changes reside within the OBA app itself, you must use the NSLocalizedString macro to wrap your localizable strings. If your changes reside within OBAKit, you must make sure that you import the OBAMacros.h header file and use the OBALocalized macro to localize your strings.

Localizers: README

If you are localizing the app: a) thank you so much, and b) you must supply the -s option to genstrings for OBAKit's custom localization macro, like so:

genstrings -s OBALocalized

Updating App Version Numbers

Bundle Version Numbers

The bundle version number should be updated upon every release to TestFlight or the App Store. Run the script bin/version to update the bundle version number. These are the values that take the form 20171021.17.

App Version Numbers

The bundle version number should be updated upon every release to the App Store. Run the script bin/version <VERSION_NUMBER> to update the app version number. For instance, if you are preparing to release version 17.10.0 of the app, you would use the command:

bin/version 17.10.0

Frequently Asked Questions

Swift Compiler Errors

Q: When I compile, I see errors that look like this:

error: module compiled with Swift 4.0 cannot be imported in Swift 4.0.3: /onebusaway/OBAKit/../Carthage/Build/iOS/PromiseKit.framework/Modules/PromiseKit.swiftmodule/x86_64.swiftmodule

What is going on, and how do I fix this?

A: Like the error suggests, this is happening because the project's Carthage frameworks were compiled with an older version of the Swift compiler than the one you have on your computer. You can recompile the Carthage dependencies with this command from the command line:

bin/carthage_build --platform iOS --no-use-binaries

After Carthage finishes, I recommend cleaning your project and possibly deleting all of your build artifacts.

More Repositories

1

onebusaway-android

The official Android/Fire Phone app for OneBusAway
Java
436
star
2

onebusaway

Parent module for all OneBusAway projects with common configuration information.
327
star
3

onebusaway-application-modules

The core OneBusAway application suite.
Java
204
star
4

onebusaway-gtfs-modules

A Java-based library for reading, writing, and transforming public transit data in the GTFS format, including database support.
Java
126
star
5

onebusaway-ios

OneBusAway for iOS, written in Swift.
Swift
87
star
6

onebusaway-gtfs-realtime-visualizer

A visualizer for GTFS-realtime transit data.
Java
55
star
7

onebusaway-alexa

An Java-based app to communicate with Amazon Alexa for devices such as the Amazon Echo
Java
53
star
8

onebusaway-gtfs-realtime-api

Java classes generated for GTFS-realtime extensions.
Java
17
star
9

onebusaway-gtfs-realtime-from-nextbus-cli

Produce GTFS-realtime data from a NextBus API data source.
Java
16
star
10

onebusaway-vdv-modules

Libraries and tools for working with transit data conforming to the VDV specification.
Java
13
star
11

onebusaway-gtfs-realtime-exporter

A Java library to help in implementing GTFS-realtime data sources.
Java
13
star
12

onebusaway-windows-phone

Source code for the OneBusAway mobile app on Windows Phone
C#
10
star
13

onebusaway-uk

Libraries and utilities for working with public transport data from the UK.
Java
9
star
14

onebusaway-windows8

Source code for the official OneBusAway Windows8 app
C#
9
star
15

onebusaway-gtfs-realtime-trip-updates-producer-demo

A quickstart project demonstrating how to produce GTFS-realtime trip updates and vehicle positions feeds.
Java
9
star
16

onebusaway-siri

A collection of libraries and tools for working with SIRI real-time transit data.
Java
9
star
17

onebusaway-docker

Docker configuration for the OneBusAway Application Modules (https://github.com/OneBusAway/onebusaway-application-modules)
Shell
9
star
18

onebusaway-gtfs-realtime-from-siri-cli

Produce GTFS-realtime data from a SIRI data source.
Java
8
star
19

onebusaway-gtfs-realtime-alerts-producer-demo

A simple example project that shows how to create a GTFS-realtime alerts feed.
Java
8
star
20

onebusaway-nyc

The original/demo OneBusAway NYC MTA BusTime deployment.
Java
6
star
21

onebusaway-deep-links

A web app with a URL pattern designed for deep linking in native apps
Ruby
6
star
22

onebusaway-quickstart

Quickly build and deploy a basic OneBusAway application suite instance.
Java
5
star
23

onebusaway-iphone-common

[DEPRECATED - see https://github.com/OneBusAway/onebusaway-iphone] Common libraries to support the OneBusAway iPhone application.
Objective-C
4
star
24

onebusaway-windows10

Source code for the official OneBusAway Windows 10 app
C#
4
star
25

onebusaway-pebbletime

OneBusAway for Pebble smart watches
C
4
star
26

onebusaway-multiregion-support

Support files for multi-region support in OneBusAway
Python
3
star
27

onebusaway-client-library

A Java library that makes it easy to call the OneBusAway REST APIs
Java
3
star
28

onebusaway-webapp

Modern web app frontend for OneBusAway built in JavaScript with SvelteKit
Svelte
3
star
29

onebusaway-siri-api-v13

Support for the SIRI v 1.3 api for real-time transit data. The class files in this project were automatically generated from the SIRI XSD schemas.
Java
3
star
30

onebusaway-watchdog

A Python script that occasionally checks (i.e., "watchdogs") OneBusAway REST API responses for valid real-time transit data and alerts admins if something is wrong.
Python
3
star
31

onebusaway-siri-api-v10

Support for the SIRI v 1.0 api for real-time transit data. The class files in this project were automatically generated from the SIRI XSD schemas.
Java
3
star
32

onebusaway-csv-entities

A Java library for reading and writing Java objects from comma-separated-values files.
Java
2
star
33

onebusaway-siri-apis

Parent POM module for all OneBusAway SIRI API modules.
2
star
34

onebusaway-guice-jsr250

A simple implementation of the JSR250 module for Guice.
Java
2
star
35

js-sdk

TypeScript
2
star
36

python-sdk

Python
1
star
37

onebusaway-probablecalls

A library for writing interactive phone applications on top of xworks.
Java
1
star
38

onebusaway-cloud-services

API and implementation of local/cloud based services
Java
1
star
39

onebusaway-status-exporter

Utility to export HTML status pages for long-running daemon processes.
Java
1
star
40

onebusaway-wiki-integration

A flexible set of modules that allow OneBusAway to use a wiki or any other back-end content management systems as the source for front end content such as webpage content.
Java
1
star
41

onebusaway-collections

A library with a number of convenient methods for working with collections.
Java
1
star
42

onebusaway-client-library-demo

A demo app for the usage of the onebusaway-client-library that makes it easy to call the OneBusAway REST APIs
Java
1
star
43

onebusaway-guice-jetty-exporter

A Guice module for exporting Servlets to a Jetty server instance.
Java
1
star
44

onebusaway-gtfs-realtime-nagios-plugin

Nagios plugin to monitor a GTFS-realtime data source.
Java
1
star
45

onebusaway-maven-skin

OneBusAway-specific Maven site skin for generated documentation
1
star
46

go-sdk

The official Go SDK for the OneBusAway API
Go
1
star
47

onebusaway-configuration-doclet

A Javadoc doclet to automatically generate configuration documentation from source code.
Java
1
star
48

onebusaway-gtfs-realtime-munin-plugin

Munin plugin to monitor a GTFS-realtime data source.
Java
1
star
49

onebusaway-gtfs-to-barefoot

A Java application that takes a GTFS file and produces a Barefoot map file
Java
1
star
50

onebusaway-everylastlogin

A generic web-based authentication library, supporting OpenId, OAuth, Facebook, Twitter, etc.
Java
1
star
51

onebusaway-cli

A Java library to support command-line apps, including daemonization support.
Java
1
star
52

onebusaway-service-alerts

Web-based application for managing real-time transit service alerts.
Java
1
star
53

onebusaway-resources

Common images and other resources shared across projects.
1
star
54

onebusaway-google-assistant

A Google Assistant client for OneBusAway
1
star