Knickerbocker Apps Featuring SchedNYC


Updates, March 2012

Hello! There have been many changes and improvements to SchedNYC since my last post. The current version of SchedNYC is v1.8.3, and many of you who are using the app have upgraded to that version. You have my thanks.

But there are still a significant number of users who are using v1.5.1 or earlier. What happened is that the update that followed, v1.6.0, incorporated the Google Maps library, for which it is unsupported on a certain number of devices. The feature that I had added was the maps for station entrances (which I will elaborate in an upcoming post). I have only revisited this problem now with the current version v1.8.3. I set the manifest (what Google uses to filter applications) so that the Google Maps library would not be required, but if it is present, it will allow the station entrance map component to appear. I hope Android Market (which was rechristened Google Play today) and other mirrors that are hosting my app (without my permission or knowledge, by the way) are showing v1.8.3 as an update for all devices.

What is the single most important reason for upgrading? The service status component in SchedNYC will crash and not work properly in all but the most recent updates. This is because the service status file provided by the MTA underwent significant changes and the app was not able to handle them. In my opinion, and based on feedback from users, the service status is a key part of the app. So it is imperative that if you have an older version of SchedNYC that you get the latest version.

If you are not able to see version 1.8.3 in the Android Market/Google Play or elsewhere, please send me an e-mail to developer (at) and I will send you an APK that you will need to install manually. Any insight that you may have as to why version 1.8.3 and previous updates are not appearing are also welcome. The APK is a bit larger than before at 12.77 MB. You should also note that I may not be able to reply immediately because my home Internet connection is unreliable, so allow at least 2-3 days for an answer.

Briefly, these are the most important features that have been added/improved since the last blog post, and will be elaborated upon in upcoming posts:

  • Real-time bus arrival status is now available for Staten Island and B63 buses, with data from MTA Bus Time and NextBus.
  • A New York City geographic rail transit map created by Kriston Lewis
  • Entrance maps for New York City Subway stations, accessible through the Next Scheduled Trains for a station (only with the Google Maps library installed on your device)
  • Favorites for subway stations and bus stops
  • Redesigned service status (the next app update will have a rewrite of the service status component to make it less susceptible to changes in the service status file)

Finally, if you have any suggestions, comments, or questions about the app, don't hesitate to e-mail me at developer (at) I am unable to answer concerns through Android Market comments or through crash reports. Also, despite many requests, for the moment, I will be unable to expand the scope of the app to other systems, namely New York City Bus (local routes), LIRR, Metro-North, NJ Transit and other systems outside of New York City. SchedNYC did feature the Long Island Bus system, which is now defunct and is now removed from the app. The replacement system, Nassau Inter-County Express, has not published a GTFS file for developers; plus, with the upcoming route changes, I would need some time to readjust the current application anyway. So that's all I have to say for now and I hope that v1.8.3 would be available where it was not previously.

Filed under: SchedNYC No Comments

Updates, May 2011

Several things have happened since the last post. Briefly...

  • SchedNYC now has the B63 real-time status as provided by MTA BusTime and NextBus.
  • Earlier this week, I introduced express bus schedules as an additional database.

These additions will be explored in a future post. I am also aware that some people have been unable to use the app after the updates earlier this week. This appears to be an issue with certain phones. What happened is the program apparently says certain database tables do not exist, but they do. I tried to implement some solutions, but they don't seem to work so far.

I am the only person working on this app, so you will have to bear patience with me. The phone I am using, the Motorola Droid, does not have this problem. so I'm working at a huge disadvantage. I will have to go through my program with a fine tooth comb, which may be a long process.

RECOMMENDED FIX: Try to reinstall the databases. Go to the home screen and select "Delete database" from the menu. Then select "Schedules">"New York City Subway..." and follow the prompts to install databases.

If you are having further problems, report force close crashes through the phone and please e-mail me at developer (at) with the following information:

  • Phone model
  • Version of Android operating system
  • A detailed description of the problems you are encountering: the messages that appear, what you were trying to access.
  • If you installed both the subway and express bus databases or the subway database only.

If you are willing to try out test versions of my app on the affected phones, that would also be appreciated. I'm very sorry for any inconvenience, but as I said, there is only one person working on the application and it may take time for me to come up with a solution.

Filed under: SchedNYC No Comments

SchedNYC Tour part 4: Next scheduled trains & elevator/escalator outages

This last part of the SchedNYC tour features one of the original features and the most recent addition. We begin with the former: equipment outages on the New York City Subway.

Escalator and elevator outages

Although not all stations have them, the escalators and elevators in the subway system tend to be heavily used. One set of MTA data I think is underused by the public is the elevator/escalator outage data. Apart from the MTA's official websites, and its mobile app (which is actually quite decent, but not too useful in the subway due to the general lack of wireless data service underground), I couldn't find an existing Android app that uses the outage data, so I included it in my app.

Along with the status of subway service, finding out the status of your station's escalators or elevators can be important to you. If you are using a wheelchair, you do not want to reach the station to find out the elevator is not working. Or if you have trouble walking, if you know that at least one escalator at your station is out of service, you can plan accordingly.

In SchedNYC, the elevator/escalator outage feature (as well as the service status feature, BTW) can be accessed in three ways:

  1. From the main home screen
  2. From the "Elevator/escalator outages" choice in the subway route selection screen
  3. By choosing "Equipment outages" from the menu within route, corridor, or station schedules

After a successful download and processing of the data, the screen on the left image shows up, and the right image represents when the screen is scrolled to the bottom. It's a basic listing of stations that report an escalator or elevator outage. (A third type of outage is also reported: the moving walkways that connect the Court Square G station with the 23rd Street - Ely Avenue E/M station.) Icons on the left represent which type of equipment has the outage. The elevator and escalator icons are provided free by the AIGA as part of its set of symbol signs. The moving walkway icon is adapted from the escalator icon.

The wheelchair symbol is also added to elevators that provide ADA access to the station. If this kind of station is listed, it usually means that step-free access to the station is unavailable at this moment. If you rely on an elevator at this station, you may need to use a different route to either access or exit the subway system. For more about the accessibility of the subway system, click here.

Continuing on, press on a station to show the details of the outage.

The images above represent an elevator (ADA) outage to the left, and an escalator outage to the right. Information provided about an outage includes station name, train lines, borough, the equipment id, which areas of the station the equipment serves, the date the outage occurred, the date at which the repair is scheduled to be completed, and the reason for the outage.

Next scheduled trains

Finally, we come down to the most recent addition to SchedNYC: schedules for subway stations. I have grown to love this feature more than the timetables, especially when I only need to find out when the train arrives in the station and I don't need to plan out a route. For regular, frequent trips, such as from home to work, and back, you just need to know when the trains are scheduled to stop at your station. Even for infrequent trips, the subway station schedules show only the upcoming trains relevant to the station.

So let's see this in action. Let's select the D train, and choose "Station list and schedules" (left image below).

The result, on the right, is the station list for the chosen route. This list includes street location (e.g. cross street) and borough. If you want to see the route in reverse direction, there is a Reverse button on the upper left. On the bottom is the same route selection scroll as can be seen in the primary route selection screen (e.g. the upper left image).

On this route, we'll look at a couple of stations, beginning with the 55th Street station in Brooklyn:

For all "next scheduled trains" station schedules, the first 6 trains that are scheduled within one hour are listed, per each train line in each direction. An option to refresh the display can be found through the menu.

A large percentage of the stations in the subway system are of this type: a single line serves a station.

Let's now go into Manhattan and see the 42nd Street - Bryant Park station.

This station serves express and local trains, so we see the B, D, F, and M lines as this is a weekday schedule. With a few exceptions, southbound trains (or Downtown trains in the Bronx and Manhattan) are listed first, followed by northbound trains (or Uptown trains). If you scroll all the way to the bottom, you will notice a drop-down menu (or Spinner as it is called in Android programming); this means that this station is a station complex and you can transfer to other subway lines from this station. The 42nd Street station connects to the 5th Avenue station, which is served by 7 trains. We'll take a brief look at that here:

Lastly, we'll take the D train three more stops to 59th Street - Columbus Circle:

Here, we see the 1 train, as well as the A, B, C, and D trains. Both groups of trains stop at different platforms. Although this means this is also a station complex, since the general directions of all of these trains are the same, they are all included together in one place. If you, as the user, find this confusing, and would rather see trains grouped as separate stations, please let me know in the comments.

To conserve processor usage, the "Next Scheduled Trains" feature does not refresh itself. To refresh the times, press Refresh from the menu.

In closing the tour, I end with this comment on schedules. When you are riding the subway, or any transit system, the one thing that's better than schedules is finding out where trains are in real-time. Positioning technologies and algorithms have revolutionized how we see view public transportation. Passengers feel much more comfortable when they are able to know when trains are expected to arrive at their station. Schedules provide the timeline, but real-time positioning and time estimates more closely reflect actual conditions. So while I try to provide schedules, as published by the MTA and other operators, hopefully in a friendly manner for passengers, I am more eager to pass along real-time data as it is available.

The MTA has installed so-called "countdown clocks" in some stations, including the L, 1, 2, 3, 4, 5, and 6 lines, based on the train positioning, and also in other stations based on the signaling system. They are working on ways to provide the data for public usage. Until then, if you are not within the subway, you'll need the schedules, and that's what I offer in this SchedNYC app in the form of timetables and next trains in a station.

PREVIOUS: SchedNYC Tour part 3: Preferences & Corridor schedules

Filed under: SchedNYC tour No Comments

SchedNYC Tour part 3: Preferences & Corridor schedules

In this part of the tour, we'll be looking at one of the unique features of SchedNYC: corridor schedules. But first, let's go back to the route schedules for just a moment.

SchedNYC Preferences

Here, on the left you see the 7 train schedule in its default format. (It includes the weekday 7 express or 7 "diamond" train. The app also includes the 6 express and Z trains, both weekday trains with special services.) Now, press the menu button and select Settings (right image). The result is:

These are the preferences you can set for the route schedules. They are, in order:

  • Show the time with seconds Default: unchecked
  • Use the 24-hour clock (e.g. 23:00 instead of 11:00 pm) Default: unchecked
  • Use "<" and ">" to navigate the schedule, instead of using "Prev" and "Next" Default: unchecked
  • The number of trip columns to show in portrait orientation Default: 3 columns
  • The number of trip columns to show in landscape orientation Default: 5 columns
  • For each schedule, the default station that SchedNYC will use when it retrieves a timetable based on the current time

The first 5 preferences are pretty straightforward. (The settings I personally use, for my Motorola Droid phone, are, in order: show time with seconds, use 12-hour clock, use Prev and Next, 2 cols in portrait, 4 cols in landscape. I like the seconds setting because it provides a fine level of detail in the schedule. Trips on the subway tend to be quick, as opposed to, say, commuter rail, so fractions of a minute matter more to me in this case.)

The last preference requires a little explanation. As you are retrieving a schedule, take a look at the note that pops up:

When you retrieve a timetable, it is based on the default station for that day and direction. The initial settings for default stations are usually the first stop in each day and direction. So for the 7 train, as we are looking at Weekday Eastbound, the initial default station is Times Square - 42nd Street.

You can change this. Here's how:

  1. Select "Default stations for routes" in the preferences menu
  2. Choose the line you want, in this case "7 Flushing Local"
  3. Choose the day and direction, here "Weekday eastbound"
  4. Select the station you want from the list that pops up, let's choose "74th Street - Broadway."
  5. Navigate back to the schedule screen with the back button.

So the next time you choose the schedule for the 7 train, weekdays eastbound, from the timetable selection menu, you will notice that the 7 train schedule is now based on the current time at the 74th Street - Broadway stop as so:

If you regularly board at a station that's not the first stop of a route, if you change this setting, you will now be able to see the first train that will depart that station and you won't need to navigate the timetable to reach it.

Corridor schedules

Now we'll take a look at corridor schedules. What are corridor schedules? They are schedules for trains that are served by more than one line, either through local and express service, or through 2 or more lines that share the same track. This includes "trunk lines," the lines that go through Manhattan (except for the G and shuttle trains) and on which the colors that are used for lines and "subway bullets" are based. The Nomenclature of the New York City Subway Wikipedia article has a thorough explanation of how the subway system is organized and here is a YouTube video by the MTA that explains the colors and line names in the subway.

The corridor schedules that are available (along with Wikipedia links if you want to learn about these lines) are:

To demonstrate an example, let's see the Broadway Line schedule that runs along Broadway in Manhattan. Press on "Broadway Line (N, Q, R)" and choose "Weekday southbound". This is the result, after you scroll down:

As you can see, the N, Q and R trains are arranged in order of ascending time. This is helpful in that you can see express trains side-by-side with local trains. The idea of including the corridor schedules came when I wanted to see schedules for all the trains at 14th Street - Union Square station, on the Broadway Line, incidentally, as I was going to Brooklyn. I could have looked up the N, the Q and the R schedules individually, remembered the times, and then make my decision. With this feature, I can look at the 3 routes side by side, see when the trains stop at Union Square, and then I'll decide on my trip. It's so much easier with the corridor schedules.

Here are some more examples of corridor timetables:

The last upcoming part of the tour will touch on the features not discussed in detail yet: the station times and elevator/escalator outages.

Just a reminder, public voting for SchedNYC in the NYC BigApps competition ends next Wednesday, March 9.

PREVIOUS: SchedNYC Tour part 2: Database installation & route schedules
NEXT: SchedNYC Tour part 4: Next scheduled trains & elevator/escalator outages

Filed under: SchedNYC tour No Comments

SchedNYC Tour part 2: Database installation & Route schedules

In the next part of the SchedNYC tour, we're going to look at route schedules (timetables). Before SchedNYC was released in August 2010, no apps in the Android Market featured timetables for New York City Subway routes, at least not to my knowledge. There were applications that showed times when trains would arrive in a station, but not train timetables which show the progression of trains, where they originate and terminate, and where they stop. So SchedNYC provides the traditional timetable format that was lacking in Android app offerings. (There are also several Android apps that feature subway maps. I have no immediate plans to add subway maps or other system maps to my app. I also don't plan to add pathfinding to the nearest station or augmented reality. Other apps do that well with their own algorithms.)

Installing schedule database

When you first install the app, you get a dialog box that welcomes you and explains the mechanism that the app uses to show train times: databases.

In a nutshell, the dialog warns you that you need space on your phone to install the database that SchedNYC requires. You can click "Install later," but if you press "Schedules," you will be prompted again. Let's install the database now and we'll see the next dialog about database location.

You can install the database in internal storage or external storage, such as an SD card. The earliest versions don't allow this choice; you had to install it in internal storage. As internal storage space in most phones is limited, choosing external storage is recommended. If you have Android version 2.2 or higher, the application itself can be installed and stored in external storage. (This aspect is subject to change if new features of the app require it to be on internal storage. But I have app size on my mind.)

Route schedules

After installing the database successfully, press Schedules. Here is the resulting screen:

This is the main interface for selecting schedules. On the top are tabs that let you choose between route schedules and corridor schedules (covered in the next part). Below that, scroll with your finger left and right to choose one of the New York City Subway routes, the Staten Island Ferry or the Staten Island Railway. In this tour, we'll stick with the 1 train. The remaining part of the screen shows the route identifier, and finally, choices for schedules: first timetables, then station times, and lastly (for subway/SIR) current status, elevator/escalator outages, and @NYCTSubwayScoop on Twitter. (Scroll to see all the choices.) The last three choices are included for convenience.

Under Timetables, the current day is highlighted in yellow. But choices are available for the other days, again for convenience. Let's look at the Weekday Southbound schedule for the 1.

So here's the 1 timetable in the traditional timetable format. Scroll with your finger to see the remaining schedule. You'll notice the drop-down menus (also called Spinners) for day and direction. Under the Spinners are navigation buttons and a "Jump to" button which I'll get to in a moment. (You can also move the schedule by swiping with your finger left or right. The swiping motion is most effective if you swipe in a straight horizontal line.) Then there's the schedule itself. If you press on an italic time or "SKIP," messages will pop up:

Italics mean the train is scheduled to be held for a certain amount of time. Pressing SKIP will show you when the train is supposed to pass the station. The third image shows when the phone is rotated. The layout is slightly different, but it is designed to show as much of the schedule as possible. Now we'll press the "Jump to..." button and see...

This allows you to jump the schedule according to either the trip number (trips are numbered and arranged according to the start of a service day as defined by the MTA, meaning usually midnight at one terminal and an hour or two later at the other), or by station and time. Let's say we want to see the times at 34th Street - Penn Station at 5:00 pm.

You may need to scroll the timetable, but the timetable jumps to the trip that arrives on or after 5:00 pm at Penn Station.

In the next part, we'll explore corridor schedules and preferences.

PREVIOUS: SchedNYC Tour part 1: Home screen & current service status
NEXT: SchedNYC Tour part 3: Preferences & corridor schedules

Filed under: SchedNYC tour No Comments

SchedNYC Tour part 1: Home screen & current service status

Hello again. I have been busy with family and household chores, so I haven't been able to update as I'd have liked. If building the app is tough, promoting the app is also a lot of hard work, but it will be worth it in the end. I know Benjamin Kabak at Second Avenue Sagas, a popular New York City subway related blog, and I admire how much work he's doing in updating his site and disseminating news (and his reactions) in a timely manner, in addition to his day job. Kudos to you, Benjamin, and all you hard-working bloggers.

For an overall introduction to the app that showcases all its functions (filmed in the subway nonetheless), see the YouTube video below.

In this and subsequent posts, I will be going over the highlights of SchedNYC in detail. First off, at the start: the home screen.

SchedNYC home screen

As you can see, there are 3 options: Schedules, NYC subway and bus system status, and Elevator and escalator outages. You can get separate apps that have these separate functions, but this one does all 3. The one we'll be looking at today is the System Status function.

Current service status

Once it is loaded, you see the screen on the above left, and if you scroll down with your finger you see the screen on the right. At this time, all subway services are running well (at rush hour, by the way). [For subway aficionados, "Good service" or on-time means trains are running 5 minutes and 59 seconds on schedule. If a train is running 5 minutes late, it's annoying, but technically it's not delayed.]

Now let's look at how the buses are doing. (Tap on "NYC Bus.")

Oh, not so good for Queens and Manhattan. If you tap on Manhattan, you'll see the details. If you tap on it once again, it collapses. (In Queens, the Q44 is detoured around a water main break at Queens Boulevard and Main Street.)

If you'll notice in the Subway menu, there is a link to Twitter. This takes you to @NYCTSubwayScoop on Twitter. There's a similar link in the bus menu as well for @NYCTBusStop. What do you get? Take a look.

This is the @NYCTSubwayScoop as viewed from an Android phone. Sometimes the MTA will be able to provide details of service disruptions, particularly if they are not planned. It's a good complement to explain the delayed service. Other times, there are MTA promotions, and yes, the MTA will respond to you (ask them nicely, please) if you post their Twitter address. (I'm only mildly familiar with Twitter, and what I do know comes mostly from Late Night with Jimmy Fallon and Live with Regis and Kelly. ) The Twitter links open up on your browser window, so you'll be able to navigate from it as you would from the normal Web browser.

So that's an overview of service status lookup with SchedNYC. Interface-wise, this is a big improvement over the previous version. (You don't want to know about that.) Remember, SchedNYC is in the Android Market (Android 2.1+), and here's a link to it!

One final note: Please vote for SchedNYC in the NYC BigApps competition, especially if you already have it and like it! Public voting began last Wednesday, but voting ends March 9th, so you have plenty of time. Registration is free, you can vote for as many apps as you like, but you can only vote for an app once. Your votes are greatly appreciated!

NEXT: SchedNYC Tour part 2: Database installation & route schedules

Filed under: SchedNYC tour No Comments

Allow me to introduce myself…

Hello everyone! My name is John Paul (you may call me JP) and I'm the developer behind Knickerbocker Apps. I have only released one application so far, and that is SchedNYC on the Android phone/OS. As I've been focusing on the app since I released it on the Market last August, I haven't had time to build a website around it. Now that it is pretty much established, now's the time to start promoting it.

SchedNYC is, first and foremost, a timetable viewer for the New York City Subway. It's the app to go to when you want to look and browse at all the scheduled trains, as in a commuter rail timetable or a timetable for other transit systems. Unlike the paper timetables that are available on the MTA's website, these timetables include all stations. Timetables are available in two flavors: routes and corridors. Route timetables are the traditional timetables that are published for a line. Currently, SchedNYC has the subway's seven numbered lines (1, 2, 3, 4, 5, 6, 7); the lettered lines, including the shuttles (A, B, C, D, E, F, G, J, L, M, N, Q, R, Z, and the 42nd Street, Franklin Avenue and Rockaway Park Shuttles); the Staten Island Ferry and the Staten Island Railway.  Corridor timetables show the so-called "trunk lines," as well as some subway lines that share the same tracks.

There are two other important features of the app. The first is the current status of the New York City Subway and New York City Bus systems. This includes links to @NYCTSubwayScoop and @NYCTBusStop on Twitter, the MTA's subway and bus Twitter accounts, which usually provide details and reasons of significant service changes and delays. The other feature is the current escalator and elevator outages. If you rely on an elevator or escalator at your station, check this out before you leave so you can plan ahead.

I've been very pleased with the ratings and comment so far for SchedNYC, and for those of you who have already installed my app I thank you greatly.

I am preparing an application update that will be published tonight or tomorrow morning, so I won't have time to go further. The update will include a new feature to the app that should be popular. I'll be showcasing more features and details of SchedNYC in the coming days.

SchedNYC is available in the Android Market. Just search for "SchedNYC".

(Knickerbocker Apps and SchedNYC are not affiliated with the Metropolitan Transportation Authority (New York) or its subsidiary agencies.)

Filed under: SchedNYC No Comments