16

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?

SpaceBeers
  • 12,834
  • 6
  • 43
  • 61
Semere Taézaz Sium
  • 4,006
  • 3
  • 18
  • 26

2 Answers2

23

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.

nhahtdh
  • 52,949
  • 15
  • 113
  • 149
Omar Abdelhafith
  • 21,083
  • 5
  • 50
  • 55
  • 2
    Excellent answer. And I would add that it is impossible to think that Apple will suddenly break the compatibility in iOS6 of thousand of apps that are based on MapKit. – viggio24 Jun 09 '12 at 21:14
  • 11
    While I agree with your conclusions, Apple is well known for *not* maintaining backward compatible updates. They deprecate things surprisingly quickly. I would certainly not be surprised to see changes in the MapKit API in iOS 6 (not that they're highly likely, just that they wouldn't be surprising). But your conclusions are certainly correct. I can't imagine any change that would stop me from shipping an app this month. – Rob Napier Jun 09 '12 at 21:15
  • 1
    that should be virtually impossible, i worked at a company that made imaging SDKs, and breaking interfaces was punishable by death :D, and we were a company with a couple of thousands of clients, not like apple with 1M and above devs – Omar Abdelhafith Jun 09 '12 at 21:16
  • 1
    it's also important to note that there are a few things that some developers have relied on (for better or for worse) that clearly **will** break, when moving off Google Maps. [as an example ....](http://stackoverflow.com/questions/576768/how-to-invoke-iphone-maps-for-directions-with-current-location-as-start-address) – Nate Jun 09 '12 at 21:18
  • @RobNapier even if they did that, even if they broke the interface completely, the apps that you and i are currently developing and the apps that are on the market will still be 100% functional, please consider the change when ARC was introduced, apple had a solution of not enabling ARC on some files, wich saved alot of third party SDKs and me too, so worst case scenario, they will present you with a similar solution – Omar Abdelhafith Jun 09 '12 at 21:18
  • @OmarAbdelhafith, have you been through many iPhoneOS/iOS upgrades? :D There are *always* quite a lot of things that have to be rewritten, and many programs that won't even run properly on the new OS without rework because of broken backward compatibility. Compared to other vendors, Apple tends to dump old stuff very fast and expect us all to rewrite to their new stuff. But the point is that this is normal and expected in iOS-land, and as you say, the OP should not worry excessively. – Rob Napier Jun 09 '12 at 21:25
  • 1
    @RobNapier unfortunately i have been in one of the worst cases that apple had that i know of, the library caches vs document folder, iCloud issue, and yes i suffered a lot from that, but still i have a little of faith in apple, their response in adding the no cloud flag was rather swift, they were somehow helpful – Omar Abdelhafith Jun 09 '12 at 21:33
  • Good experience, and a good object lesson for anyone wondering what Apple might do in the future. – Rob Napier Jun 09 '12 at 22:31
  • One example of something that will "break". Any developer who rotated their map and then (because this was required) put back the "Google" image on lower left hand corner (in satellite view anyway), will have to remove that code or alter it to put in the new "copyright" image if there is one. Also, we have no idea if the new satellite imagery will be as good, and more critically if the imagery aligns properly (like within 1 yard) of correct lat/long points. – Fraggle Jun 12 '12 at 15:19
4

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.

Community
  • 1
  • 1
Nate
  • 30,589
  • 12
  • 76
  • 201
  • you are right, I decided to remove the feature that launches the maps app because I am using parametrized google url to invoke the app as in the technique you mentioned. This will certainly break in the new maps app. And obviously I am not going to wait for everyone to upgrade to iOS6. I think I will push an update later on to add the new feature. – Semere Taézaz Sium Jun 11 '12 at 18:48