With WWDC 2019 less than a week away, I wanted to put together a very brief article on my wish-list items for this year's WWDC. A lot of my day-to-day interests revolve around networking and info-security, so if you notice a theme in my wish-list that is why. Also, one thing I wanted to mention is that usually Swift make's it on this wish-list, but the exciting thing is Swift is now developed so much in the open that we have a good idea of what is coming and what has been release in Swift 5 already! Let's jump right in!
QUIC is a new UDP based networking protocol that has a lot of performance and security improvements over using standard TCP based protocols. Why does this matter? Well for TCP based connections on mobile, specifically those using TLS 1.1 or 1.2, there can be a lot gained for your end user and your infrastructure by evaluating sending mobile traffic to your server over QUIC connections instead of TCP. Facebook has already put out an implementation called mvfst, and it looks like Apple has one in the works too called AppleQUIC. I am very hopeful that we will see a release of AppleQUIC this year at WWDC.
A Full Release of Marzipan 🚀
Marzipan was rumored to be released last year at WWDC, and did receive a mention, but not a full developer release. This year, I am hoping that we see a lot more from Marzipan. One driver for this is I am wondering about the benefits it could potentially have in automated testing. For example, if there was a view or set of logic that did not change whether on mobile or desktop, could there be a way to run automated test easier if built for a Marzipan executable instead of having to slave a device to a Mac Mini instead. Another reason I am interested in Marzipan is for the Enterprise market. A lot of the team members I work with would see benefits from having the ability to see, test, and evaluate builds on their desktop as opposed to having a device setup to run the environment required for testing and evaluation of new features.
CoreBluetooth API Enhancements 📡
CoreBluetooth works great today, but there could always be some improvements. Two topics stand out to me right away. The first is how long you can keep the bluetooth antenna active and capturing data while your application has gone into the background. Right now CoreBluetooth only advertises and discovers other devices for about 10 minutes or so until the operating system deprioritizes the service. I know that this can be a battery drain, but in certain cases this could be an added benefit if the author is willing to take on the battery loss. The second is the consistency of reading device name data from advertisement packets. Unless the device you are communicating with actually has advertisement identifiers sent on each packet there seems to be an inconsistency in correlating a raw packet in CoreBluetooth directly with the device name. For example, packet A and packet B could be from the same device, but packet A gives me the device name data but packet B does not. I am only able to identify that this packet B came from the same device as packet A because the manufacturer is adding the manufacturer identifier to the advertisement packet. Any improvements in this area for the CoreBluetooth APIs I feel like would be most welcome.
Increased Surface Area For the Security Framework 🔐
Apple does a great job in securing data on your phone and against your iCloud account. One thing that I wish did not have to be a requirement for using Keychain security features is backing up and syncing your devices to the iCloud Keychain. I do understand the use case because of features for ApplePay and AppleCard, but for users that are do not want to put their Keychain info in iCloud their should still be availability to take advantage of all features in Keychain data protection. For more information on this topic, please refer to the iOS Security Guide for iOS 12.3, release in May of 2019. https://www.apple.com/business/site/docs/iOS_Security_Guide.pdf
In Summary ⌛️
In summary I think that this year's WWDC is going to be a very exciting one, especially with all of the Swift 5 stuff that has already landed. I think that this year we are going to see a lot of cool tech come out of WWDC and I hope that a lot of it has to do with their networking, connectivity, and security stacks. We'll see if any of these items pan out!