Realtime arrival notification utility for LA Metro on Android Also works in Bay Area, for obvious reasons.
Metro Companion App provides realtime arrival information and notification for the Los Angeles Metro system. Users input the names of Metro bus and rail stops, and the App will display arrival data to those stops.
In addition, each arrival to a stop can be tracked with a notification in the phone's drawer, and a sound will be played when the vehicle is almost arrived.
Metro Companion App has no map view and uses intelligent autocomplete to suggest what stops to track. It has one main screen, and one "About" pane. All arrival predictions are listed directly on that one main screen. This makes the app extremely quick to open and check, unlike many other bloated apps. Combined with the arrival notification feature, Metro Companion aims to put as little between the user and the information they want as possible.
app/ has the Android source. scraper/ has the offline scraping utility, which generates the stopname databases.
The app/ folder is structured to separate pure Java business logic from the Android-specific stuff. At one point there was an iOS port which used the java things.
like, under main/java/com/remulasce/lametroapps
Directory | Purpose |
---|---|
java_core | Pure Java business logic that runs the prediction service. See below. |
components | Android Activity, autocomplete, etc classes. Most of the user-touching logic is implemented here. |
display | Just the implementation of the trip View class. |
static_data | Android-aware SQL readers |
Raw Files | Mostly older stuff for the notify service, which was written first. |
Directory | Purpose |
---|---|
basic_types | Raw base classes for Stop, etc. These have a tendency to do a bit of logic themseles. |
dynamic_data | An awful Java-threaded implementation of going to network and updating various objects. |
See file HOW_TO_DEPLOY for a reminder of how to actually make releases.