Should I be worried about rumors that Apple will s

2019-01-15 12:37发布

问题:

Almost every major news media outlet is reporting that Apple will stop using Google Maps services in iOS6. I don't think anyone really knows what exactly the changes are, when they will be rolled out, how Apple will implement them and if Google or Apple will start charging money for their services. As a result of these uncertainties, I am having trouble making a sound decision on whether I should or should not release a new public bus tracker app that I have been working on for over a year now. I have had the initial hard deadline set for June 15, 2012. I know that the best thing to do is to wait and see what the changes will be and how Apple will implement them. But I am a bit impatient and stressed out about pushing the release date as any further delay will affect many of my other plans in a very significant way.

More information on the app:

It provides real time public transit information based on information it obtains from a third-party transit agency's API. It heavily depends on the iOS MapKit framework and iOS location services to display current geolocation of buses on a given route in realtime and to provide transit information between two locations. According to Apple, the iOS MapKit framework uses Google services to provide map data. Some features invoke the Google Maps app to provide transit planning and turn-by-turn directions to nearest stops.

My question:

If the rumors turn out to be true, do you think Apple will most certainly implement any changes without affecting apps that already use the current MapKit framework? What kinds of potential problems should I be prepared for?

回答1:

From the experience I have with SDKs, I can tell you that: no, you will not need to worry, for a couple of reasons:

  • Apple is well known to maintain backward compatible updates.
  • The Map Kit API is encapsulated and it should not change at all.
  • Even if the techniques of achieving maps and routes changes, Apple will still keep the same interface to access these functionalities.
  • Most of low level functionalities of any SDK are encapsulated, their public interfaces (that we developers have access to) are stable and should not change.
  • A break in these interfaces must be very difficult to even think about.
  • Change the lower level of implementation will not change the public interface of the Map Kit API.
  • Even if the interface changed, Apple will still leave the old interface and add deprecation metadata to them. These interfaces will still work, and other interfaces maybe added.

The only potential problems is that you will need to think about are when you are going to update your app, and that would be on whether to implement the new functionalities that the new Map Kit may provide.



回答2:

I agree with Omar that Apple will probably work quite hard to make sure MapKit isolates developers from breakage. But, there will be some problems.

The first problem I see is usage of undocumented features of Google Maps. Undocumented doesn't necessarily mean the same thing as Private APIs, which it's pretty hard to sneak into the app store (although not impossible).

For example, this technique for opening Maps with a URL, to display routes. This is different than using MapKit, but it still could be an issue for some apps.

The second thing I see are potential legal issues associated with Google Maps. If I remember correctly, there are Google geocoding web services, that allow free usage, so long as you display the results on a Google map. Currently, iPhone maps are Google maps (Maps.app or MapKit maps). In the future, they map not be. If your app relies on a back end that uses Google geocoding services, you may have some rework to do.

Anyway, the majority of maps-related code should not break. I just wanted to give a couple examples of where there could be problems.

Update: also, there have been reports that the new Apple Maps are inferior to Google Maps in a few ways. Although it might still work, if your app is doing something like routing to an address, you might find that Apple's new maps app does a poorer job of finding the location you give it. So, in order to work as well as it used to, you may need to refactor your app to use coordinates, rather than addresses. Again, little things might turn out to make a difference here.