In Arrivo! HD & Express Blog

The official Blog of the In Arrivo Suite

Why In Arrivo will be faster

Waiting for the release by Apple of the new version, I would like to talk a bit about the technologies that allows it to be much faster than the previous versions.

New Apis


The first one, already introduced in the 7.0 version, takes advantage of the new apis provided by Agenzia Roma Servizi per la Mobilità to offer waiting time and transit routes without the need to download and scrape complex html pages as done previously both by In Arrivo and the competing apps. In order to do it a set of Python scripts have been developed according to the suggestions by the provider to offer services to the legacy PHP scripts exporting the information to the apps.

Apple turn-by-turn


The latter breakthrough was due to the introduction on the part of Apple of a new MKDirection library. This allows to find path directly from inside the app without the need of contacting the Google services by means of remote scripts. This allows a much quicker feedback and freedom for possible limitations on the part of Google.

IOS 6.1 support


Finally this result was attained by means of a twist. Basically Apple has silently introduced CALayers in its views and executes a callback to layoutSublayersOfLayer on specific views like the stops. Strangely this call happens even when executing the code on a iOS 6.1 device while the function in the MKAnnotationView is missing with the result the app crashes. The solution was to conditionally provide that in the case of iOS 6.1 does nothing but at least does not crash the app.
Unfortunately the previous technology is not available for iOS 6.1 and no backward compatibility is foreseen. Consequently paths no longer appear on older devices without anyway impairing in any way the correct working of the app.

Comments
Subscribe to the In Arrivo suite RSS feed