← Files MapboxARCHIVED FILE

skills/mapbox-android-patterns/evals/evals.json

3.92 KB · Sep 30, 2026 · 23:11 UTC

↓ Download file

{
  "skill_name": "mapbox-android-patterns",
  "evals": [
    {
      "id": 1,
      "prompt": "I'm setting up the Mapbox Maps SDK in my Android app. How do I add the dependency and configure the access token?",
      "expectations": [
        "Must add the Mapbox Maven repository in settings.gradle.kts: url = uri(\"https://api.mapbox.com/downloads/v2/releases/maven\")",
        "Add the dependency: implementation(\"com.mapbox.maps:android:11.x.x\")",
        "Token goes in a resources file app/res/values/mapbox_access_token.xml with the string resource name mapbox_access_token",
        "Shows the correct XML: <string name=\"mapbox_access_token\">YOUR_TOKEN</string>"
      ]
    },
    {
      "id": 2,
      "prompt": "My Android app creates a new `PointAnnotationManager` inside my `refreshMarkers()` method that gets called on every data update. Performance is noticeably poor. What should I change?",
      "expectations": [
        "Creating annotation managers repeatedly is the problem — each call reinitializes resources",
        "Create the PointAnnotationManager once (e.g., in onCreate or a setup method) and reuse it",
        "To update markers, reassign the annotations list: pointAnnotationManager.annotations = newAnnotations",
        "Recommends batch updates: set all annotations at once rather than appending individually"
      ]
    },
    {
      "id": 3,
      "prompt": "I'm using the Mapbox Standard style on Android and want to handle user taps on buildings. When a user taps a building, I want to highlight it. How do I implement this?",
      "expectations": [
        "Use ClickInteraction.standardBuildings { building, context -> ... } — the modern Interactions API for Standard style featuresets",
        "Shows the pattern: mapView.mapboxMap.addInteraction(ClickInteraction.standardBuildings { building, context -> ... })",
        "To highlight, use setFeatureState on the building: mapView.mapboxMap.setFeatureState(building, StandardBuildingsState { highlight(true) })",
        "Notes that returning true from the lambda stops propagation to other interactions"
      ]
    },
    {
      "id": 4,
      "prompt": "Add a Mapbox map to my Android Jetpack Compose project. I need the correct dependencies and a basic MapboxMap composable.",
      "expectations": [
        "Compose extension dependency uses group com.mapbox.extension, not com.mapbox.maps: implementation(\"com.mapbox.extension:maps-compose:11.x.x\")",
        "Must NOT use com.mapbox.maps:compose, com.mapbox.maps:extension-compose, or com.mapbox.maps:android-compose",
        "Both maps SDK and compose extension must use the same version",
        "Uses MapboxMap composable from com.mapbox.maps.extension.compose, not AndroidView wrapping MapView"
      ]
    },
    {
      "id": 5,
      "prompt": "I need to set the Mapbox access token programmatically in my Compose app before the map loads. What's the correct import and call?",
      "expectations": [
        "Import is from com.mapbox.common.MapboxOptions, NOT com.mapbox.maps.MapboxOptions",
        "Call MapboxOptions.accessToken = \"pk.your_token\" before any map component is created",
        "Recommends mapbox_access_token string resource as the preferred alternative",
        "Must NOT use manifest <meta-data> placeholders with ${MAPBOX_ACCESS_TOKEN}"
      ]
    },
    {
      "id": 6,
      "prompt": "I want to add tappable point markers to my Mapbox Compose map. When a marker is tapped, I need to know which one was clicked. Show me the correct pattern.",
      "expectations": [
        "Uses PointAnnotation composable from com.mapbox.maps.extension.compose.annotation.generated",
        "Uses interactionsState.onClicked { ... } inside the init lambda for tap handling, NOT the deprecated onClick parameter",
        "Uses rememberIconImage(R.drawable.ic_marker) for the marker icon, not BitmapFactory",
        "PointAnnotation renders nothing without iconImage — must always set it"
      ]
    }
  ]
}

SHA-256: 26c995e691ba106023100e1b4f146ba2cf8f1b76cc45d0a385f3fa166ba65c4c