The latest version of the SmartDeviceLink Library for iOS was released Feb.14, 2018, bringing a host of bugfixes and two new features that improve implementation of mobile navigation apps.
CarWindow allows you to hand over a UIWindow to the Library, which will automatically capture the screen and send it over* (click here for implementation guide); while SDLAudioStreamManager, which has a similar interface to AVPlayer, takes a given audio input and converts it to SDL compatible PCM before sending it out (implementation guide here).
To download the library, you can update your podfile (recommended – note that podspec has changed from “SmartDeviceLink-iOS” to “SmartDeviceLink), or alternatively download the library from here.
* This is not as performant as using a direct openGL conversion.
Pre 5.0.0 users:
5.0.0 introduced some breaking changes and required a major version bump. If you are already using the new manager you can use this guide to upgrade to 5.0.0. If you are a long time user of the library and are still using the proxy directly, please also check out this guide.
This release makes significant feature additions around video and audio streaming for NAVIGATION and PROJECTION applications. There are additional fixes and additions for all applications.
- Log unsuccessful RPC responses automatically.
- IAP Transport reconnection optimizations.
- Adds SDLAudioStreamManager that does on-the-fly transcoding of audio files to an SDL compatible PCM format and can send that audio to be played. This is for NAVIGATION applications only.
- CarWindow automated ViewController based streaming.
- Fix SDLSlider initializer infinite recursion.
- Fix crash if disconnected while setting up the app icon.
The guides have been totally updated and new functionality has been covered in new guides. Check out the guide to update from pre-v4.3 to v4.3+ and from v4.3+ to v5.0.
This release is made up of 736 commits. Thanks to contributors @brettywhite, @ChrisBElektrobit, @cromotron, @harisheb, @joeljfischer, @mrapitis, @NicoleYarroch, @piyushkhosla, @Rconroy, @shoamano83, Takamitsu Yoshii, and William Wallace.
- SDLProxy.streamingMediaManager is now removed. If you wish to use a streaming media manager, you must use SDLManager.streamingMediaManager. The streaming media manager has been entirely redesigned and now takes into account both phone and head unit app lifecycles SDL-0033. There is now a streaming media configuration added to SDLConfiguration.
- SDL-0033. There is now a streaming media configuration added to SDLConfiguration.
- SDLJingle constants have been removed #7.
- Public files SDLJsonEncoder.h, SDLJsonDecoder.h, SDLDecoder.h, and SDLEncoder.h have been removed #8.
- SDLSiphonServer has been removed; if something similar is needed, it may be custom built and inserted into the SDLLogManager #85.
- RPC array and dictionary properties are now immutable #152.
- SDLOnWaypointChange, a misspelling of SDLOnWayPointChange has been removed #489.
- SDLRPCStruct and all RPC subclasses now take an immutable dictionary to decode #122SDL-0005, SDL-0005.
- SDL enums are now all stringly typed in Objective-C, and swift enums in Swift #20 SDL-0006.
- iOS 6 and iOS 7 are no longer supported SDL-0008 SDL-0024.
- Use nullability annotations throughout the project #73 SDL-0018.
- Remove SDLRPCRequestFactory, initializers now exist on most RPC classes SDL-0020.
- SDLTTSChunkFactory was removed, use the initializers on SDLTTSChunk instead SDL-0021.
- Handler events now provide better parameters instead of generic ones SDL-0027.
- Most properties are now nonatomic, which should speed up the library significantly #49.
- SDLLockScreenViewController now uses template images, reducing the size of the library #450.
- RPC classes now conform to NSCopying SDL-0011.
- Added convenience methods for pulling out SDL notifications from NSNotification callbacks #553.
- SDLTouchManager now supports gesture cancellation #673.
- SDLStreamingMediaManager now supports automatic GetSystemCapability calls #686.
- SDLRegisterAppInterfaceResponse fixed pcmCapabilities not being exposed #714.
- Generics have been added for collections throughout the library SDL-0007.
- SDLFileManager will not stream from a file on disk if possible SDL-0025.
- SDLFileManager added methods for sending multiple files in one call SDL-0029.
- Added additional SDLManager delegate methods for all onHMIStatus state changes SDL-0032.
- Added a handler to SDLPerformAudioPassThru SDL-0035.
- SDLStreamingMediaManager now supports H.264 + RTP SDL-0048.
- Added SDL Remote Control baseline SDL-0071.
- Focusable items can now be sent (to Core 4.4+) and a manager exists that will automatically handle finding and sending those rects if a UIWindow is set in the SDLStreamingMediaConfiguration. They will also be passed back to the developer through the SDLTouchManagerDelegate SDL-0075 SDL-0081 SDL-0090.
- Services are now properly ended with hash ids #661.
- Constants are now unified into one style #711.
- Fix streaming media manager always assumed 30fps streaming; it can now be custom set by developers in the video encoding dictionary #717.
- Fix a possible crash if the List Files request from the FileManager fails due to disconnection or unregistration #789.
- SDL constants are now constants instead of #define #3.
- Some protocol property and enum names were incorrect but now fixed #275.
- Internal getters and setters on RPC classes no longer repeat code everywhere #493.
- SDLOnLockScreenStatus does not use constants for property keys #497.
- Removed deprecated methods #679.
Source: AppLink/SDL Platform and Partner Development Team
Connected Vehicle & Services