Skip to content

An experimental Windows 10 Helsinki DigiTransit client

License

Notifications You must be signed in to change notification settings

pingzing/trippit

Repository files navigation

Trippit

Build status

A UWP HSL Reittiopas app for the greater Helsinki region. Runs on Windows 10 for Desktops and Mobile.

Building

Requirements

Feature Epics

Completed

  • Trip planning
  • Favorites
  • Detailed trip plan
  • Line search
  • Stop search
  • Multi-leg trip planning
  • Show nearby stops
  • Transit service alerts
  • Stop/route tile pinning
  • Crash reporting
  • Analytics

Planned

  • Subscribe to a line, receive notifications when it stops somewhere
  • Testing (really should write unit tests for the GraphQL parser...)
  • Show city bikes on map
  • Allow city bikes in route planning
  • Show journey-in-progress at top of app in the shell

Poorly-documented GraphQL Info

Time and date

Time and date parameters, when requested as strings, are expected to look like this:

date: "2016-05-20",
time: "23:28:00"

I.E. dates are in ISO 8601 format, and times are expressed in 24-hour clock format with colon separators.

When times are returned by the server, they are usually in UNIX-milliseconds timestamp format, encoded as longs.

Formatting

When sending JSON requests, the double-quotes around strings must be escaped in the request. That means backslashes next to the quotes. In the request. Ugh.

Example:

{"query": 
	"{ 
		plan (time: \"2:59:0\"){ }	//note the backslashes and quotes next to the numerals
	}"
}
Transit Modes-The mode parameter

Contrary to the documentation, it's not a string that gets coerced to a masked enum (i.e. "WALK | BUS") but rather a comma-separated list of strings with no spaces (i.e. modes:"BUS,TRAM,RAIL,SUBWAY,FERRY,WALK").

Stupid Platform Bugs and Gotchas Log

  • When using a CollectionViewSource as a ListView's ItemSource and a GroupStyle with a GroupStyleHeader set to HideIfEmpty=True, if (any of?) the underlying lists backing the CollectionViewSource are ever emptied, the next time an element is added to them, the app will hard crash with no exception. Further information on StackOverflow.
  • AutoSuggestBox causes a "Catastrophic failure" exception with no further information if its DisplayMemberPath is set to anything, and the AutoSuggetBox is using an ItemTemplate. Further information found on TechNet.
  • When using localized resources in a separate DLL, the project's .appxmanifest needs to be edited manually to declare supported languages. The magic x-generate token doesn't look in other assemblies to determine what languages the app supports.
  • When using localized resource sin a separate DLL, if you want to use a localized DisplayName or Description or whatever in the .appxmanifest, you give to give it the whole path, like so: ms-resource:DigiTransit10.Localization/AppResources/AppName.

About

An experimental Windows 10 Helsinki DigiTransit client

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages