v5.0.0 – Modernized API
This release makes breaking changes and enhancements to your SDL workflow. See all the changes, and the changelog. See the news post for some code examples of what's new!
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, @ChrisB-Elektrobit, @cromotron, @harisheb, @joeljfischer, @mrapitis, @NicoleYarroch, @piyushkhosla, @Rconroy, @shoamano83, Takamitsu Yoshii, and William Wallace.
Breaking Changes
SDLProxy.streamingMediaManager
is now removed. If you wish to use a streaming media manager, you must useSDLManager.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 toSDLConfiguration
.SDLJingle
constants have been removed #7.- Public files
SDLJsonEncoder.h
,SDLJsonDecoder.h
,SDLDecoder.h
, andSDLEncoder.h
have been removed #8. SDLSiphonServer
has been removed; if something similar is needed, it may be custom built and inserted into theSDLLogManager
#85.- RPC array and dictionary properties are now immutable #152.
SDLOnWaypointChange
, a misspelling ofSDLOnWayPointChange
has been removed #489.SDLRPCStruct
and all RPC subclasses now take an immutable dictionary to decode #122 SDL-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 onSDLTTSChunk
instead SDL-0021.- Handler events now provide better parameters instead of generic ones SDL-0027.
Enhancements
- 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 automaticGetSystemCapability
calls #686.SDLRegisterAppInterfaceResponse
fixedpcmCapabilities
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 allonHMIStatus
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 theSDLStreamingMediaConfiguration
. They will also be passed back to the developer through theSDLTouchManagerDelegate
SDL-0075 SDL-0081 SDL-0090.
Bug Fixes
- 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.
Other
- 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.