Urban Crawl is a tiny catalogue of a few selected cities that you can carry along, and explore the interesting places around these cities.
Urban Crawl is a reference app from Akamai Developer, which demonstrates the capabilities and usage of Akamai's MAP SDK (https://developer.akamai.com/tools/map/)
The source code of Urban Crawl will help the app developers understand how MAP SDK can be used in different scenarios, and how different functions of MAP SDK work.
- Clone the repository in Android Studio below 3.0 (See known issues)
- Download a copy of MAP SDK bundle from your Luna Portal
- Replace the following keys with your own keys:
- MAP SDK License Key, in
res/xml/android_sdk_init.xml - Replace font certificate keys, in
res/values/font_certs.xml - If you're using Crashlytics, replace it with your own Crashlytics keys.
- MAP SDK License Key, in
- Build and Run (and let us know if you run into any issues)
Detailed instructions, to setup MAP SDK, can be found in the Getting Started Guide.
The following points will help the developer understand the structure of the code:
- All the activities are located inside com.akamaidev.urbancrawl package.
- The app uses simple MVP design pattern.
- All the network activities are done either inside, or initiated from the Models.
- All the Presenters and Models are located inside the
presentersandmodelspackages. - The app uses GSON to convert the JSON that the REST API returns, and these GSON classes are inside
jsonobjspackage. - All the other helper classes, are stored inside
helperspackage. These are classes which have methods for Analytics, Logging, Pickers, Events, and Adapters.
- MAP SDK provides wrappers for OkHttp, Retrofit and Picasso, and these wrappers are stored under
MAPSDKWrapperspackage. - The
Default Networking ClientusesAkaUrlConnectionto make Internet calls using MAP SDK - The
CityDetailsModeluses Retrofit to interact with our REST API, and uses the Retrofit Wrapper to make these HTTP calls go through MAP SDK - The
PlaceModeluses Volley to interact with the REST API, and uses the OkHttpWrapper to make the HTTP calls go through MAP SDK - All the models are stored in
modelspackage - The
ImageLoaderclass contains the centralized Picasso code to download images, and uses theAkaPicassoDownloaderas Picasso's downloader. theImageLoaderclass is underhelperpackage.
The code tries to be self explanatory, but write to us in case you have any questions.
- Like few of the libraries, we have noticed build errors while compiling on Android Studio 3.0, mainly because of the new Gradle and Gradle Wrapper versions. We'll find a stable fix to it and update the repo as soon as possible.
Write to us at devrel@akamai.com for any questions.