Skip to content

v4.0.0

Latest

Choose a tag to compare

@akovalov akovalov released this 23 Sep 12:40
· 1 commit to master since this release

SkyPath iOS SDK 4.0.0

Warning

This is a major release with breaking changes. Follow the Migration Guide v3.x → v4.0 before upgrading. Renamed APIs include @available(*, unavailable, renamed:) shims, so Xcode offers fix-its for most of the migration.

Requirements

  • Minimum iOS version raised to iOS 17.0 (was iOS 16.0).

See Install for details.

Highlights

  • Observations API: the old turbulence APIs are renamed to observations: observations(with:), ObservationsQuery, ObservationsItem and DataType.observations.
  • Validated fetch configuration: fetchConfig is read-only. Change it with updateFetchConfig { } or setFetchConfig(_:), which validate your changes and throw on invalid input. The SDK now fetches data automatically.
  • Initialization: initialize(with: AuthConfig) replaces start(apiKey:airline:userId:env:).
  • Single recording state: recordingState and didUpdateRecordingState(to:) replace inPosition, isHorizontal and inNoise.
  • Testing namespace: all simulation APIs now live under SkyPath.shared.testing and work only in the staging environment.
  • Forecast: the old nowcasting APIs are renamed to forecast: DataType.forecast, DataSourceType.forecast, OneLayerQuery.isForecastEnabled, and NotificationQuery.isForecastEnabled.

Breaking Changes

  • widthAround (distance on each side of the route) is replaced by routeWidth (the total corridor width). Double your existing values.
  • The sevs arrays on queries are replaced by a minSev threshold. NotificationQuery.minSev is now required and defaults to .light.
  • All SkyPathDelegate methods are now required. Fetch and location errors come through one method, didFail(with:dataType:).
  • Aircraft is set with fetchConfig.aircraftICAO. The Aircraft and AircraftSize types are removed.
  • TurbulenceSeverity.none is renamed to .smooth. The SDK no longer provides severity colors, so apps define their own palette.
  • App events are now reported through reportAppEvent(_:).
  • Logging is now SkyPath.loggerLevel and SkyPath.exportLogs(...). The Logger type is no longer public.
  • Flight.fnum is renamed to Flight.num, and the initializer is now Flight(dep:dest:num:).
  • Removed: stop(), fetchData(refresh:types:), SPLocalNotificationManager, the Tile type (use Itemable.tileKey), serverReachable and lowPowerMode.

Improvements

  • Altitude ranges are rounded to the nearest thousand feet automatically.
  • New error cases: GeneralError.unauthorized(message:), GeneralError.location(error:) and QueryError.invalidRoute.
  • OneLayerQuery and ObservationsQuery now share a common DataQueryable protocol.
  • Various improvements and performance optimizations.

📖 Full details: Migration Guide