Skip to content

Releases: heremaps/msdkui-ios

HERE Mobile SDK UI Kit Version 2.0.0

14 Dec 15:29
9e1a44b
Compare
Choose a tag to compare

Highlights - What's new in version 2.0?

  • In comparison to version 1.0, we polished the experience of the demo application. You can find now a proper landing screen where you can choose between routing and navigation experience. In addition, we provide new in-app components like the dashboard or the basic map picker screen which you can extract to your own projects, if desired.
  • The route planner components were updated to improve usage-related limitations.
  • Improved support for customization: You can now use the advantages of the UIAppearance API. These changes should give you more flexibility to customize all or specific instances of the required UI components.
  • The new HERE Mobile SDK UI Kit (MSDKUI) requires the version 3.9 of the HERE Mobile SDK. With this version, we support scooter routing and you will find this reflected in the component updates. Note, that this SDK version may require a map update.
  • Entirely new for MSDKUI 2.0 is the updated guidance experience with new navigation specific UI components. The new UI components are:
    • GuidanceEstimatedArrivalView - A view to show navigation related information like arrival time, distance and duration.
    • GuidanceManeuverView - A panel presenting detailed information about the upcoming maneuver.
    • GuidanceNextManeuverView - A view to inform about the next maneuver after the upcoming one.
    • GuidanceSpeedLimitView - A simple view to display the speed limit.
    • GuidanceSpeedView - A simple view which is meant to display the current speed.
    • GuidanceStreetLabel - A view to display the current street label in a prominent way.

Known Issues

  • Some string ids are not yet translated and will be provided with upcoming releases.

Functional and Behavioral Changes

  • increased the minimum supported HERE Mobile SDK for iOS version from 3.8 to 3.9

  • removed UIColor.init(hex: Int, alpha: CGFloat = default)

  • removed UIView.useAutoLayout()

  • removed UIView.addSubviewBindToEdges(_ view: UIView)

  • removed CustomStringConvertible protocol conformance of GuidanceManeuverData

  • removed deprecated class WaypointItem

  • removed onModeChanged property from TransportModePanel. Its delegate property should be used instead

  • removed onTimeChanged property from TravelTimePanel. Its delegate property should be used instead

  • removed onTimePicked property from TravelTimePicker. Its delegate property should be used instead

  • removed onChanged property from OptionItem. Its delegate property should be used instead

  • removed onOptionChanged and onOptionCreated property from OptionsPanel. It's delegate property should be used instead

  • removed timeType, timeTypeProxy properties and enum TimeType declaration from TravelTimePanel

  • removed timeType, timeTypeProxy, variety, varietyProxy properties and enum Variety declaration from TravelTimePicker

  • removed from Styles class properties related to WaypointList, WaypointListCell, TitleItem, TransportModePanel, TravelTimePanel, TravelTimePicker, RouteDescriptionList, RouteDescriptionItem, ManeuverDescriptionList, ManeuverDescriptionItem, InputBox and GuidanceManeuverPanel

  • changed validator parameter order from last to first in parameter list of NumericOptionItemInputHelper.init

  • changed data property of GuidanceManeuverView from implicitly unwrapped optional to an optional

  • changed type of WaypointList.itemFlashDuration from CGFloat to TimeInterval

  • changed parameters from setManeuver(maneuvers: [NMAManeuver], position: Int) to setManeuver(maneuvers: [NMAManeuver], index: Int, measurementFormatter: MeasurementFormatter = .currentMediumUnitFormatter) in ManeuverItemView

  • changed ManeuverTableViewDelegate protocol functions from:

    • maneuverSelected(_ list: ManeuverDescriptionList, index: Int, maneuver: NMAManeuver)

    to:

    • maneuverTableView(_ tableView: ManeuverTableView, didSelect maneuver: NMAManeuver, at index: Int)
    • maneuverTableView(_ tableView: ManeuverTableView, willDisplay view: ManeuverItemView)
  • changed static var name to a let constant in RouteTypeOptionsPanel, RoutingOptionsPanel, TrafficOptionsPanel, TruckOptionsPanel, TunnelOptionsPanel and RouteDescriptionList

  • changed public var waypoint: NMAWaypoint setter to be private in WaypointEntry

  • changed public var title: String? and public var inputHelper: NumericOptionItemInputHelper? setters to be private in OptionItemSpec. Factory methods should be used to set these properties

  • renamed iconView property to iconImageView in ManeuverItemView

  • renamed listDelegate property to maneuverTableViewDelegate in ManeuverTableView

  • renamed SingleChoiceOptionItem's delegate property to pickerDelegate

  • renamed delegate property of RouteTypeOptionsPanel, RouteTypeOptionsPanel, TrafficOptionsPanel, TruckOptionsPanel and TunnelOptionsPanel to pickerDelegate. Additionally, made it an optional instead of a implicitly unwrapped optional and added weak reference specifier

  • renamed GuidanceManeuverPanel to GuidanceManeuverView

  • renamed GuidanceManeuverPanelPresenter to GuidanceManeuverMonitor and their delegate protocol's name and functions

  • renamed ManeuverDescriptionItem to ManeuverItemView

  • renamed ManeuverDescriptionList to ManeuverTableView and their delegate protocol

  • renamed RouteDescriptionListDelegate protocol function from routeSelected(_ list: RouteDescriptionList, index: Int, route: NMARoute) to routeDescriptionList(_ list: RouteDescriptionList, didSelect route: NMARoute, at index: Int)

  • renamed WaypointListDelegate protocol functions from:

    • entryAdded(_ list: WaypointList, index: Int, entry: WaypointEntry)
    • entrySelected(_ list: WaypointList, index: Int, entry: WaypointEntry)
    • entryRemoved(_ list: WaypointList, index: Int, entry: WaypointEntry)
    • entryDragged(_ list: WaypointList, from: Int, to: Int)
    • entryUpdated(_ list: WaypointList, index: Int, entry: WaypointEntry)

    respectively to:

    • waypointList(_ list: WaypointList, didAdd entry: WaypointEntry, at index: Int)
    • waypointList(_ list: WaypointList, didSelect entry: WaypointEntry, at index: Int)
    • waypointList(_ list: WaypointList, didRemove entry: WaypointEntry, at index: Int)
    • waypointList(_ list: WaypointList, didDragFrom from: Int, to: Int)
    • waypointList(_ list: WaypointList, didUpdate entry: WaypointEntry, at index: Int)