[MapplsAPIKit (REST API Kit for iOS)]()
Mappls API Kit Native for iOS distributed via the SPM (Swift Package Manager).
Compatibility decision
Use for artifact discovery only. Confirm entitlement and the exact SDK, native artifact, toolchain, architecture, and host-application version pairing.
Repository content, activity, code fragments, and local correspondence are discovery evidence only. They do not establish a supported package coordinate, binary identity, current version, account entitlement, runtime pairing, production compatibility, or approval.Source and identity
- Public source
- Open repository ↗
- Captured document
- Open source documentation ↗
- Default branch
main- Lifecycle risk
- Compatibility Review
- Authentication signals
- oauth2 · api-key
Products and prerequisites
- An iOS project with Xcode and the package manager required by the source release
- OAuth client credentials issued for the intended Mappls project
- A Mappls project key restricted to the intended app, domain, or backend
- The corresponding product entitlement enabled for the developer application
Install and configuration guidance
These statements are reproduced as normalized repository evidence. Validate coordinates and versions before copying them into a project.
Installation
To add a package dependency to your Xcode project, select File > Swift Packages > Add Package Dependency and enter its repository URL. See Adding Package Dependencies to Your App.
Dependencies
This library depends upon MapplsAPICore. All dependent libraries will be automatically.
Getting Started
Mappls Map SDK for iOS lets you easily add Mappls Map and services to your own iOS app.It supports iOS SDK 9.0 and above and Xcode 10.1 or later. You can have a look at the map and features you will get in your own app by using the Mappls Map app for iOS. The SDK handles Map Display along with a bunch of controls and native gestures.
API Usage and Requirements
The allowed SDK hits are described on the plans page. Note that your usage is shared between platforms, so the API hits you make from a web application, Android app or an iOS app all add up to your allowed daily limit.
Source code evidence
Use these fragments to understand integration shape. They may belong to an older toolchain or authentication generation.
MapplsAutoSuggestManager * autoSuggestManager = [MapplsAutoSuggestManager sharedManager];
// or
MapplsAutoSuggestManager *autoSuggestManager = [[MapplsAutoSuggestManager alloc] initWithRestKey:MapplsAccountManager.restAPIKey clientId:MapplsAccountManager.atlasClientId clientSecret:MapplsAccountManager.atlasClientSecret grantType:MapplsAccountManager.atlasGrantType];
MapplsAutoSearchAtlasOptions * autoSuggestOptions = [[MapplsAutoSearchAtlasOptions alloc] initWithQuery:@"mmi000" withRegion:MapplsRegionTypeIndia];
autoSuggestOptions.location = [[CLLocation alloc] initWithLatitude:28.2323234 longitude:72.3434123];
autoSuggestOptions.zoom = [[NSNumber alloc] initWithInt:5];
[autoSuggestManager getAutoSuggestionResultsWithOptions:autoSuggestOptions completionHandler:^(MapplsLocationResults * _Nullable locationResults, NSError * _Nullable error) {
if (error) {
NSLog(@"%@", error);
} else if (locationResults) {
MapplsAutoSuggestLocationResults * results = (MapplsAutoSuggestLocationResults *) locationResults;
if(results && results.suggestions) {
for (MapplsAtlasSuggestion * suggestion in results.suggestions) {
NSLog(@"Auto Suggest %@%@", suggestion.latitude, suggestion.longitude);
}
}
if(results && results.suggestedSearches) {
for (MapplsSearchPrediction * suggestion in results.suggestedSearches) {
NSLog(@"Auto Suggest %@", suggestion.identifier);
}
}
} else {
NSLog(@"No Results");
}
}];let autoSuggestManager = MapplsAutoSuggestManager.shared
//Or
let autoSuggestManager = MapplsAutoSuggestManager(restKey:
MapplsAccountManager.restAPIKey(), clientId:
MapplsAccountManager.atlasClientId(), clientSecret:
MapplsAccountManager.atlasClientSecret(), grantType:
MapplsAccountManager.atlasGrantType())
let autoSearchAtlasOptions = MapplsAutoSearchAtlasOptions(query: "mmi000",
withRegion: .india)
autoSearchAtlasOptions.location = CLLocation(latitude: 28.2323234, longitude: 72.3434123)
autoSearchAtlasOptions.zoom = 5
autoSuggestManager.getAutoSuggestionResults(autoSearchAtlasOptions) { (locationResults, error) in
if let error = error {
print("error: \(error.localizedDescription)")
} else if let locationResults = locationResults as? MapplsAutoSuggestLocationResults {
if let suggestions = locationResults.suggestions {
for suggestion in suggestions {
print("suggestion: \(suggestion.placeName)")
}
}
if let suggestions = locationResults.suggestedSearches {
for suggestion in suggestions {
print("suggestedSearches: \(suggestion.identifier)")
}
}
} else {
print("No Results")
}
}MapplsReverseGeocodeManager * reverseGeocodeManager = [MapplsReverseGeocodeManager sharedManager];
//Or
MapplsReverseGeocodeManager * reverseGeocodeManager = [[MapplsReverseGeocodeManager alloc] initWithClientId:MapplsAccountManager.clientId clientSecret:MapplsAccountManager.clientSecret grantType:nil host:nil scheme:nil];
MapplsReverseGeocodeOptions *revOptions = [[MapplsReverseGeocodeOptions alloc] initWithCoordinate:CLLocationCoordinate2DMake(28.553291, 77.258876) withRegion:MapplsRegionTypeIndia];
[reverseGeocodeManager reverseGeocodeWithOptions:revOptions completionHandler:^(NSArray<MapplsGeocodedPlacemark *> * _Nullable placemarks, NSString * _Nullable attribution, NSError * _Nullable error) {
if (error) {
NSLog(@"%@", error);
} else if (placemarks.count > 0) {
NSLog(@"Reverse Geocode %@",
placemarks[0].formattedAddress);
} else {
NSLog(@"No results");
}
}];let reverseGeocodeManager = MapplsReverseGeocodeManager.shared
//Or
let reverseGeocodeManager = MapplsReverseGeocodeManager(clientId: MapplsAccountManager.clientId(), clientSecret: MapplsAccountManager.clientSecret())
let revOptions = MapplsReverseGeocodeOptions(coordinate: CLLocationCoordinate2D(latitude: 28.553291, longitude: 77.258876), withRegion: .india)
reverseGeocodeManager.reverseGeocode(revOptions) { (placemarks, attribution, error) in
if let error = error {
print("%@", error)
} else if let placemarks = placemarks, !placemarks.isEmpty {
print("Reverse Geocode: \(placemarks[0].formattedAddress)")
} else {
print("No results")
}
}let filter = MapplsNearbyKeyValueFilter(filterKey: "brandId", filterValues: [String,String])MapplsNearByManager * nearByManager = [MapplsNearByManager sharedManager];
//Or
MapplsNearByManager * nearByManager = [[MapplsNearByManager alloc] initWithRestKey:MapplsAccountManager.restAPIKey clientId:MapplsAccountManager.atlasClientId clientSecret:MapplsAccountManager.atlasClientSecret grantType:MapplsAccountManager.atlasGrantType];
NSString *refLocation = @"28.550667, 77.268959";
MapplsNearbyAtlasOptions *nearByOptions = [[MapplsNearbyAtlasOptions alloc] initWithQuery:@"EV Charging" location:refLocation withRegion:MapplsRegionTypeIndia];
[nearByManager getNearBySuggestionsWithOptions:nearByOptions completionHandler:^(MapplsNearbyResult * _Nullable result, NSError * _Nullable error) {
if (error) {
NSLog(@"%@", error);
} else if (result.suggestions.count > 0) {
NSLog(@"Nearby %@", result.suggestions[0].placeAddress);
} else {
NSLog(@"No results");
}
}];Connected implementation paths
Exact source paths
No quickstart or starter explicitly names this source. Continue through the platform path without claiming direct lineage.
Adjacent platform paths
Platform guidance—not package compatibilityCreate a lifecycle-safe iOS mapMigration evidence
No published migration track names this source. Lifecycle and compatibility review still apply.
Production compatibility checklist
A clean demo is the beginning of the decision, not its conclusion.
- 01
Confirm the exact package or artifact identifier and version with the owning Mappls product team; a repository name is not a package contract.
- 02
Verify platform toolchain, operating-system, architecture, host-application, and transitive-dependency compatibility from a clean build.
- 03
Bind only the documented credential class and restriction to its intended client or trusted-server runtime; never commit or log a secret.
- 04
Verify account entitlement, region, quota, endpoint generation, data rights, and applicable commercial terms independently.
- 05
Exercise initialization, ready, denied, empty, offline, timeout, cancellation, background/resume, and teardown paths.
- 06
Pin dependency and native artifact integrity evidence; retain source fingerprint, selected version, lockfile, build provenance, and approving owner.
- 07
For stateful or hybrid behavior, persist application state outside the SDK and prove idempotency, reconciliation, audit, privacy, and recovery.
- 08
Release by a bounded cohort with observable rollback; repository activity or a successful fixture is never production compatibility evidence.
Local repository candidates
Only minimized identity evidence is exposed. Review candidates side by side; do not assume they are the same release line.
No deterministic local candidate was found for this public source.