MyRadar iOS SDK
Put MyRadar's live weather map in your iOS app: animated radar, alerts, lightning, hurricanes and wind in one SwiftUI view.
Oct 9, 2026 · Swift
Put MyRadar's live weather map in your app. One view, a few modifiers, 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. Prefer a classic loop? Switch to stepping frames. 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 and markers with rotation and tap callbacks, drawn above the weather layers. |
| Flights | Show a flight by its number: the SDK looks it up, draws its route, track, airports and aircraft, and keeps it updated until it lands. |
| Playback control | Play, pause, scrub the timeline, set the loop length and speed, read frame timestamps, and get palette data for a legend. |
| Readable text | Map labels follow the system text size (Dynamic Type), or a size you choose. |
| 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#
import MyRadar_iOS_SDK
// Once, at launch.
MyRadarSDK.configure(apiKey: "<your key>")
// Anywhere in SwiftUI.
MyRadarMap()
.camera(center: CLLocationCoordinate2D(latitude: 35.2, longitude: -97.4), zoom: 6)
.overlays([.warnings, .lightning, .hurricanes])
.radarOpacity(0.5)
.overlayOpacity(0.8, for: .warnings)The radar layer is on and playing by default. Rendering starts when the view
appears and stops when it leaves the screen or the app goes to the background.
UIKit apps use MyRadarMapView, a plain UIView with the same capabilities.
Control the animation#
The loop plays 100 minutes of radar, morphing between scans, at a pace tuned for a quick look. Three modifiers change that:
MyRadarMap()
.radarLoopLength(minutes: 60) // 5 to 120 minutes, one frame every 5 minutes
.radarSpeed(0.5) // half speed; 2 is double, from 0.1 to 4
.radarTransition(.step) // switch frames outright instead of morphingEach radar product keeps its own loop length. The HD and SD products default to 60 minutes, and
SD radar always steps. In UIKit, the same settings are mapView.radar.loopLengthMinutes,
mapView.radar.speed and mapView.radar.transition.
Text size#
Map text follows the system text size by default. That covers place and road labels, hurricane labels, flight labels and your text markers. It grows up to 1.6× at the accessibility sizes, then stops so the map stays readable. Larger labels need more room, so fewer of them fit at a given zoom.
MyRadarMap()
.mapTextScale(1.3) // a fixed size you choose, from 0.5 to 3; 1 is the default sizePass nil (the default) to follow the system setting; a .dynamicTypeSize on the map applies
too. In UIKit, set mapView.textScale.
How it fits together#
Your app ──▶ MyRadar iOS SDK (Swift API and Metal rendering engine)
│
▼
MyRadar API gateway (radar tiles, alerts, lightning, cyclones, wind)The SDK, with its Metal rendering engine built in, ships as one XCFramework in a Swift package,
MyRadar-iOS-SDK-SPM.
Your app links the MyRadarSDK product and never touches the engine directly. 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.
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. Get one from the developer portal. |
| iOS | 16.6 |
| Xcode | 16 |
| Swift | 5.9 (stable module interface, so newer toolchains work) |
| Devices | iPhone and iPad. Simulator slices for Apple silicon and Intel Macs. |
| Permissions | None. The SDK does not use location services. |
| Network | HTTPS only; no App Transport Security exceptions. |
| Install size | About 1.5 MB on device; roughly 0.6 MB of App 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.licensesAndAttributionson 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 follows a flight by its number 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 Xcode 16, an iOS 17 simulator and your API key; the walkthrough's Run the demo section shows exactly where the key goes.