Apple’s annual developer conference is being held in San Jose this year from June 4th to June 8th and expectations are high this year due to the atypical lack of polish that plagued iOS 11 and macOS High Sierra after launch in September of last year. Of particular interest (to me at least) is whether or not this year will be a scaled back event or a normal one. I bring this up since 1) Apple supposedly made adjustments to their software development process and 2) iMessage in iCloud and AirPlay 2 have yet to launch, but were announced at WWDC last year. What I’m hoping happened internally is that they realized that not all features can be completed in < 1 year’s worth of development time and that staggering features into subsequent updates is a good strategy for innovation as it lets more complicated deliverables bake.
Regardless, each Apple platform (including Apple Music, ugh…) will share the stage at the McEnery Convention Center. With the push for AR/VR experiences, I’m expecting that topic to be a primary focus of the event. Last year’s keynote was especially jam packed full of stuff due to the inclusion of quite a few Mac hardware announcements, so I don’t think that this year will have as many Mac hardware updates other than, hopefully, the Mac Mini. With that, I’ve compiled a list of things that I hope to see announced/addressed for each platform:
watchOS
I put this platform first since I think that watchOS is in desperate need of help. The recent trend for the Apple Watch has been disappearing apps. The App Store for the watch hasn’t really taken off the way Apple expected outside of the fitness category and companies have been discontinuing their watch apps in droves.
Another stickler is WatchKit itself. From Twitter, the consensus is that WatchKit isn’t powerful nor good enough for full-fledged apps. The main issue is that Apple isn’t using WatchKit for its own apps, so they are sometimes oblivious to the capabilities provided to and limitations encountered by non-Apple developers. So, what’s the solution? My hope would be a revamp of WatchKit to let developers access more of the hardware and maybe launch a new watch with a bigger screen so that UIs can use more meaningful navigation and display more.
tvOS
When Apple released the 4th generation Apple TV, they made a push into the gaming market touting the processing capabilities and the Siri remote as a gaming solution. I think that gaming segment of the Apple TV App Store has been somewhat successful, but compared to the Nintendo Switch (the closest traditional gaming system competitor), the Apple TV loses in terms of game catalog, power, and portability. If Apple really desires to make a dent into the gaming space they need an official controller, increase the amount of storage (or allow SD cards), and get rid of the app size limit.
From a feature standpoint, the only thing that I would like to see is Caller ID. Since my iPhone, iPad, and Apple TV are on the same Wi-Fi network, why can’t the Apple TV participate in the ecosystem? When I receive a call on my iPhone, I can answer the call on my iPad (if I had a newer Mac, I could use that too). I think it would be awesome if your Apple TV was on, some type of overlay would appear with the call details so you didn’t have to look at your phone and provide a convenient way of ignoring calls you don’t want.
A bonus announcement would be stricter tvOS app guidelines to enforce the use of Apple’s APIs. The YouTube and Prime Video apps are key examples of terrible tvOS experiences due to the fact that they are just wrapped versions of another platform’s app.
iOS
iOS 10 & 11 have slowly started refining the UI experience introduced in iOS 7 to replace the skeuomorphic predecessor. I would like to see iOS 12 continue to add more context to UI elements and adopt some principals from Google’s material design so that there is less wasted space and more clarity around what an element does (i.e. less minimalistic, more functional).
One must have change is a notification redesign. For some reason, notifications have gotten so bad that they are no longer useful. Apple needs to implement Google’s style of notifications so that notifications are grouped, contain individual controls for display/sound preferences, can be prioritized, and stop having phone calls take over the entire screen (i.e. make it heads-up).
Finally, another feature that I hope is introduced is group FaceTime calling. With Skype & WhatsApp supporting multi-party video chat, this is a no-brainer and would make a huge difference for families and friends in the Apple ecosystem.
macOS
Stability, stability, stability. High Sierra has been plagued with high profile security defects, APFS bugs, and general usability problems since launch. What I’m hoping for is for Apple to embrace a new approach to macOS releases: feature packs. If Apple adopts Microsoft’s approach to their desktop OS, I think they’d get into a better position stability wise since macOS is essentially “done” from a core OS perspective. Windows 10 was released on July 25th, 2015 and has used a semi-annual update cadence for new features. This approach allows the base install of the OS to receive bug fixes and security updates as necessary, but then deliver new features on a predictable schedule when they’re ready. From a typical consumer perspective, they don’t really need to install a whole new OS every year, so by establishing a base, the user more likely to install feature updates since the install process does not need to be as invasive. This would also transform macOS into a more LTS friendly deployment as macOS becomes a service rather than separate products.
Also, if Apple would make HyperDock an official part of the OS, that’d be great.
Xcode
Apple will probably continue rewriting parts of Xcode in Swift to get better performance, but I’ve noticed that although the performance gains are noticeable, Xcode has increasingly become a pain in the butt. Syntax highlighting consistently fails, Interface Builder hangs and crashes frequently, and the install size keeps growing. I would like Apple to focus on hardening these new implementations so that the work consistently and for them to take a pass at optimizing Xcode so that it shrinks in size either by separating some components into separate apps and/or by removing functionality that is rarely used that another IDE covers (such as non-Apple platform/web development).
Another feature I would like to see added is a visual network debugger. The Memory Debugger has proven to be a huge success and being able to visualize network traffic and inspect the packets on each socket would make for an excellent debugging addition.
Miscellaneous
On the rumor front, there is Marzipan. While AppKit has slowly gotten some love over the past series of releases by backporting features from UIKit, the combining of the Mac and iOS team would indicate that Apple would like to stop maintaining two distinct development frameworks and merge the two (i.e. UXKit). By doing so, all features would be (presumably) available to both platforms and allow for bug fixes/improvements to be applied at the same time. Now, some people have read the tea leaves to suggest that this means that macOS and iOS are merging into a singular OS. To me, this doesn’t seem like a thing that is going to happen since macOS has a full file system, allows for unsigned/unsandboxed apps to run, and doesn’t have a touch interface. However, if Apple is secretly working on a version of macOS that runs on ARM, then maybe there will be more code reuse from a core OS/kernel perspective, but unless Apple debuts a Surface Book type Mac with a touch display and support for Apple Pencil, I think the only thing a unified platform would allow for is the ability for iOS apps to run on a Mac in a limited capacity. Even so, Sun’s (and now Oracle’s) approach to write once, run anywhere has turned out to be just garbage, so I would hope Apple has something a bit better in mind.
Lastly, Swift still needs a stable ABI. Looking at the dashboard, it doesn’t look like they’ll meet their goal this year. If they do miss, then it’ll be another year until I consider Swift production-ready.