My name is Jaak and I am the Head of Mobile of CartoDB’s newest division, Mobile. As CartoDB embarks on the innovating the field of mobile development, we wanted to keep you up-to-date on all the latest and greatest developments happening here. I’d like to start the Mobile SDK series by introducing the native mobile capabilities of CartoDB on both the general and technical levels.
Like the web, mobile has several map engines and APIs to choose from. The first implementation question is always: Which map API should I use?
Major mobile platforms already provide a map engine as part of their own API: iOS has MapKit (with Apple Maps), and Android has Google Maps Mobile API. Google Maps API is also available for iOS, WP, and Xamarin to make the choice even more difficult.
But there are third party options like CartoDB SDK (formerly known as Nutiteq) with built-in map APIs (similar to Google’s) that are nice and free.
However, like the other major mobile SDK offerings, they have some limitations:
- They do not work offline.
- Basemaps require a constant online connection. Some basemaps have certain caching availability — but it is very limited.
- They do not allow you to change basemaps to anything else, other than their own. There is no customization of basemaps.
- There is no whitelabel option, the Google logo will always appear in the corner.
- There are usage restrictions for some cases. (E.g. fleet management and navigation).
- The API is made for end-user app cases, so map data editing requires a lot of ugly hacking, if made possible at all.
- No advanced 3D features.
YET there are HUGE advantages with the CartoDB mobile API.
First, it will already be pre-integrated with your CartoDB server and account — just create maps using the CartoDB Editor, and the maps work very similarly on your mobile device: same basemap, overlay map layers, and extra overlays. Second, it has nice native mobile-specific features like offline basemaps, and 2.5D map rotation and tilting. It is stand-alone fully functional SDK library, so it does not require Google Services to work.
Happy data mapping!