3.0 Migration Guide

While much of the core functionality of the Aeris Weather SDK for iOS remains unchanged from version 2.0, there have been several naming and architectural changes to the SDK and its various modules that you should be aware of when upgrading from version 2.0.

The following guide outlines the major changes you'll notice when updating your code to use the new version 3.0 of the SDK from 2.0.

Architectural Changes

Each individual framework of the SDK is now built as a dynamic framework, which was a feature introduced with Xcode 6 and iOS 8. The exception to this is AerisGoogleMapKit.framework, which is still a static framework due to architecture limitations of the core Google Maps SDK.

Version 3.0 of the SDK introduces a new framework structure, essentially moving core foundation and interface code into base frameworks out of the weather- and map-related modules. The new structure is:

When using the Aeris Weather SDK for iOS, you will be working primarily with the AerisWeatherKit module, which has AerisCore and AerisCoreUI as dependencies. If you are also adding weather map functionality into your application, then you will also be using the AerisMapKit module.

AerisCore and AerisCoreUI are foundation frameworks used throughout AerisWeatherKit and AerisMapKit modules that you should not have to work with. Thus, we do not provide public documentation for these modules.

New Requirements

Version 3.0 of the Aeris Weather SDK for iOS no longer has third-party dependencies, such as AFNetworking from version 2.0.

Improved Swift Interoperability

The Aeris Weather SDK for iOS is written using Objective-C, and while much of it has worked without issue with Swift even in version 2.0, some improvements were needed in version 3.0 to make interoperability with Swift much better.

So version 3.0 now has vastly improved Swift interoperability, such as proper nullability annotations, modified method naming for Swift, widespread usage of generics where applicable, string enumeration values and more.

Removed AerisUI and Built-in Weather Views

As of version 3.0 of the iOS SDK, the the weather views that were built-in as part of the AerisCoreUI library in version 2.0 are no longer part of the SDK. Instead, we've pulled them out of the library and included the source files as part of the demo application that's distributed with the SDK.

If you're project still requires these weather views, you will need to include the source files into your project when migrating to version 3.0.

AerisWeatherKit

Base weather library for interacting with the Aeris Weather API. Requires AerisCore and AerisCoreUI frameworks that are distributed with the SDK.

Object Loaders > Endpoint Services

In version 2.0 of the SDK, you would interact with the Aeris Weather API using a series of object loader classes. Now in version 3.0, the underlying architecture has been improved and you now interact with the API's data using endpoint classes.

You can either create your own endpoint service instance when requesting data, or just use the shared instance when needing to do a quick, simply request for data. Review the Loading Data guide for more details.

AerisMapKit

Extension library for AerisWeatherKit that adds support for a fully-interactive weather map that uses the Aeris Map (AMP) API for weather imagery.

Data Sources

Data layers are added to and managed on a weather map using a data source instance, specifically either a tile, point or shape data source subclass that corresponds to the data type being added to the map. When managing Aeris Maps (AMP) layers on your weather map using AWFMapLayer types, you won't need to worry about dealing with these data source objects directly. However, if you want to add a custom data set to your weather map, you can subclass one of the data source classes and override the necessary setup or data request methods.

AWFLayerType > AWFMapLayer

The AWFLayerType enumeration values from version 2.0 have been updated to a new string enumeration value type for improved Swift support: AWFMapLayer. Each Aeris Maps (AMP) raster layer has a corresponding AWFMapLayer value that you can use when adding and removing AMP layers to/from your weather map. Refer to the guide on Managing Map Data Sources for more details.

Improved Aeris Maps (AMP) Support

Version 3.0 of the iOS SDK now supports the complete set of features available with the Aeris Maps Platform (AMP), such as adding layer modifiers, text values and/or image filters to specific layers. Refer to the Using AMP Features guide for more details about working with AMP via the SDK.

Support for Mapbox GL SDK

We now support the full Mapbox GL SDK for iOS with version 3.0, meaning you can take advantage of Mapbox's new mapping platform while still using data from our API and mapping services. Review our Mapbox SDK Support guide for more information on using the Aeris Weather SDK for iOS with Mapbox.