MyRadar Android SDK
Put MyRadar's live weather map in your Android app: animated radar, alerts, lightning, hurricanes and wind in one Compose map or Android view.
Oct 13, 2026 · Kotlin
Put MyRadar's live weather map in your Android app. One composable (or one view), a few parameters, and you have animated radar, severe weather alerts, lightning, hurricanes and wind on top of a fast vector base map, with room to draw your own data on top.

What you get#
| Feature | What it does |
|---|---|
| Animated radar | The same morphing radar as the MyRadar app: a 100-minute loop that interpolates between scans with motion vectors, so storms glide instead of stepping. HD and SD products are also available. |
| Watches and warnings | National Weather Service alert polygons, color-coded by type, refreshed every 20 seconds. |
| Lightning | Strike markers synchronized to the radar timeline, plus an optional full-map flash effect. |
| Hurricanes | Storm center, past and forecast track, intensity markers and the forecast cone for every active tropical cyclone. |
| Wind | Animated surface wind particles. |
| Six base maps | Gray (built for weather contrast), Roads, Aerial, Topographic, Dark and Light. |
| Your own data | Polylines, polygons and markers with rotation and tap callbacks, drawn above the weather layers. |
| Playback control | Play, pause, scrub the timeline, read frame timestamps, and get palette data for a legend. |
| Layer opacity | Radar, warnings, hurricanes and wind each take an opacity from 0 to 1, so weather can sit lightly over your own data or stand out on its own. |
Radar that morphs#

Hurricanes, wind and warnings together#

Pick a base map#

Dial in each layer#

Thirty seconds of code#
// Once, at launch (for example in Application.onCreate).
MyRadarSdk.configure(apiKey = "<your key>")
// Anywhere in Compose.
MyRadarMap(
modifier = Modifier.fillMaxSize(),
initialCamera = MapCamera(LatLng(35.2, -97.4), zoom = 6f),
overlays = setOf(Overlay.Warnings, Overlay.Lightning, Overlay.Hurricanes),
radarOpacity = 0.5f,
overlayOpacities = mapOf(Overlay.Warnings to 0.8f),
)The radar layer is on and playing by default. Rendering starts when the map is
on screen and its activity is started, and stops when it leaves the screen or
the app goes to the background. Apps that use views instead of Compose use
MyRadarMapView, a plain Android view with the same capabilities that can also
be declared in XML.
val mapView = MyRadarMapView(context)
mapView.setCenter(LatLng(35.2, -97.4), zoomLevel = 6f, animated = false)
mapView.setOverlay(Overlay.Warnings, enabled = true)
container.addView(mapView)How it fits together#
Your app ──▶ MyRadar Android SDK (Kotlin API and OpenGL ES 3 rendering engine)
│
▼
MyRadar API gateway (radar tiles, alerts, lightning, cyclones, wind)The SDK and its rendering engine ship as two Android libraries in the MyRadar
SDK Maven repository, https://myradar.github.io/MyRadar-Android-SDK-Maven. Your app depends on
com.acmeaom.myradar:myradar-sdk, which brings the engine in automatically,
and never touches the engine directly:
// settings.gradle.kts, inside dependencyResolutionManagement { repositories { … } }
maven { url = uri("https://myradar.github.io/MyRadar-Android-SDK-Maven") }
// app/build.gradle.kts
implementation("com.acmeaom.myradar:myradar-sdk:1.0.0")All weather data comes from MyRadar's gateway over HTTPS and is authenticated with your API key. Base map tiles come from MyRadar's map servers. The SDK contacts no other host.
Requirements#
| Minimum | |
|---|---|
| MyRadar API key | Required. Pass it to MyRadarSdk.configure(apiKey) once at launch; every request to the MyRadar API gateway is authenticated with it. Without it the map makes no requests and shows a "not configured" notice. Get one from the developer portal. |
| Android | 10 (API 29), with OpenGL ES 3 |
| UI toolkit | Jetpack Compose (MyRadarMap) or Android views (MyRadarMapView) |
| Devices | Phones and tablets with arm64-v8a, armeabi-v7a or x86_64. Emulators need at least two CPU cores. |
| Permissions | INTERNET only, merged in automatically. The SDK does not use location services. |
| Network | HTTPS only; no cleartext traffic. |
| R8 / ProGuard | Rules ship inside the libraries; nothing to add when you minify. |
| Install size | About 10 MB on device for one ABI; roughly 3 MB of Play Store download. |
Good to know#
- Smooth morphing needs a regional view. Motion-vector morphing is active at roughly zoom 4 and closer. Whole-continent views cross-fade between frames instead. Whole-number zoom levels are the safe choice when you position the camera in code.
- Attribution is required. Show the entries from
MyRadarMapView.licensesAndAttributions(context)on an about or legal screen. - US coverage first. Alerts are National Weather Service products; radar coverage follows the NEXRAD network with a global estimate blended in offshore.
Next#
Build a flight tracker with the SDK: a one-screen app that searches live flights and draws their real paths over the weather, built entirely with the public API. Its complete source is in the MyRadar SDK samples repository on GitHub. To run it you need Android Studio, an Android 10+ emulator or device and your API key; the walkthrough's Run the demo section shows exactly where the key goes.