Google Maps vs Apple MapKit, which is better?

The two most popular map frameworks available for iOS developers are Google Maps SDK and Apple MapKit. Now there’s also MapBox and a few others, though I won’t address those today because they are NOT free to use and they are less common.

Before jumping into a simple comparison of the two frameworks, I will say this: Google is an information based company whereas Apple is a electronic product and services based company. Google doesn’t want your money – they want your soul. Google will give you everything you want for free if you just use Google. Apple will make you pay for everything – and a lot for it.

It’s important to understand that Apple doesn’t generate revenue from MapKit, where as Google Maps is a part of its core ad revenue. Thus, a reasonable expectation is that Google Maps SDK would be better – simply because there’s motivation for it to be.

In my experience, this turns out to be true. Let’s take a simple example. Suppose you’re building an app that allows users to tap on different neighborhoods in their city. Each neighborhood is essentially a polygon. Both frameworks allow you to draw polygons to your heart’s content. But what about detecting a tap on a polygon?

Google provides this delegate callback:
- (void) mapView: (GMSMapView *) mapView  didTapOverlay: (GMSOverlay *) overlay

What does Apple provide? Nothing! Absolutely nothing! I was just shocked and clenching my fists.

OK, so what else does Google have to offer that trumps over Apple in the domain for mapping?
Take a look at this simple API:
http://maps.googleapis.com/maps/api/geocode/json?address=325%20West%2093rd%20Street%20#1D

Walla, so much information in a mili second about any address in the world!

Streaming YouTube videos

Suppose you want to build a YouTube app – or just a video streaming app that sources YouTube video. YouTube provides a library known as YTPlayerView which allows you to stream any video from YouTube. Sounds great! But wait until you try it:

* Annoying YouTube advertisements everywhere

* Only one YTPlayerView can be used in your app at a time

* When the user pauses the video – it stops streaming!

Clearly, YouTube doesn’t make it very easy for developers to really build great YouTube apps with the full freedom to allow fresh creativity. Wouldn’t it be great if there was a YouTube API that accepted the Video ID and returned all the download links? Luckily, there is!!! Check out these two great API’s:

YouTube Grabber

SaveDeo

YouTube Grabber is completely free, and SaveDeo is free to try with the first 200/daily API calls free of charge. SaveDeo returns a very rich json, full of download links to various formats of the video and the thumbnails as well. I highly recommend!