A UWP HSL Reittiopas app for the greater Helsinki region. Runs on Windows 10 for Desktops and Mobile.
Requirements
- Resw Code File Generator (only works with VS2015 at the moment)
- 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
- 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
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 long
s.
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
}"
}
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"
).
- When using a
CollectionViewSource
as aListView
'sItemSource
and aGroupStyle
with aGroupStyleHeader
set toHideIfEmpty=True
, if (any of?) the underlying lists backing theCollectionViewSource
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 itsDisplayMemberPath
is set to anything, and the AutoSuggetBox is using anItemTemplate
. 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 magicx-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
.