A Report from WWDC15 and Further Development on the Apple Watch
Here I am again. You would think after writing a post on developing a custom app for the Apple Watch in May that I would have at least six months before our blog editors sent out the dogs for another article. Alas, in June I found myself at Apple’s Word Wide Developers Conference (WWDC), where Apple unveils their developer news for the year, so I’m back already with an update.
While WWDC has traditionally covered the iOS and Mac ecosystems, this year saw equal billing for watchOS, the name given to the operating system running on the Apple Watch. The biggest news is that version 2 of the watchOS is on its way. This fall, Apple Watch users will be able to update their watches to the new OS, but in the meantime developers will have plenty on their plate as Apple opened up many new features.
So What Changed?
The next biggest news for the Apple Watch from WWDC is that apps can now run natively on the watch. The watch still has a connection to the iPhone, but it can be broken and custom watch apps can remain running.
In version 1 of watchOS, the code of a custom app would run on the phone while the interface of the app ran on the watch. If you traveled away from your phone (i.e. out of Bluetooth range), then your custom app would stop working. With watchOS 2, custom app interfaces and code will be directly installed on the watch. The watchOS can then launch your app without needing to be connected to your phone.
Seems easy in theory, but there are still some nuances. If your watch app and iPhone app share data, you’ll want to make sure that data is syndicated to the watch. If your watch app queries your iPhone for data, then make provisions for this to be conditional. Your watch app can now pull content directly from the internet without your iPhone app’s help if you are connected to a wifi hotspot. However, like internet-enabled apps on your iPhone, users need to understand the online vs. offline capabilities of their watch app.
Native seemed to be the theme as Apple also enabled more native functionality of the watch. Developers targeting watchOS 2 will now have access to a whole host of hardware features that were only available to Apple-created apps with watchOS 1, such as:
- Use of the Taptic Engine for haptic feedback
- Digital Crown use in user interface elements
- Accelerometer and heart rate sensor data
- Speaker and microphone use for audio input/output
What else is new? It’s complicated…
In the horological world, a complication is anything that doesn’t tell seconds, minutes and hours. So this means date display, alarms and chronographs are all complications. Apple has released a way for custom complications to be developed. There are different formats depending on how much information you need to display.
This example shows four complications. The center is a large complication with flight information for a travel/transportation app. The bottom rows shows status of your garage door from a home automation app, the status of your Volkswagen electric vehicle charge, and the score of a MLB game. Complications are a great way to be one look away from important information.
Along with complications is the Time Travel functionality. If a user is at the watch face, they can use the digital crown to advance the time display. As the time moves forward, complications can update to show future information.
Let’s say I have a weather complication that shows the current temperature. As I scroll the digital crown forward to later in the evening, the weather complication will update to show the predicted temperature versus the current temperature. Custom apps can also participate in Time Travel complications.
For more information on these and other watchOS 2 features, see Apple’s web site for a preview.
But…Why So Soon?
Apple isn’t open about their release timelines to answer why there is such a quick update to the watchOS. A common theory is the production delays on the watch hardware pushed back the launch. We know that Apple works on projects for a long time before they are public, so it’s imaginable that they had OS updates in their development pipeline long enough that this update was ready to go regardless of the hardware ship date.
So Where Do We Go With Our App?
While the Hanson app (an Employee Directory) will continue to run, there are certain features in watchOS 2 that we’d like to use. Looking at our initial work, we have two areas we want to look at: data access and user interface.
Native applications in watchOS 2 mean that our Directory app can run solely on the watch without the phone present. In our watchOS 1 app, as users tap on the watch, messages are sent to the phone where the code runs. The code retrieves the data and sends it back to the watch. To move to watchOS 2 and allow the code to run on the watch, we need the data on the watch.
Our watchOS 2 app still communicates and shares files with our phone app, but since it runs on the watch, there is space available on the watch for storage. So now, when our watch app opens it will call out to the iPhone app to get the latest employee information and simply copy that from the phone to the watch. There are considerations regarding the amount of data to copy and frequency of getting updates you’ll want to think about when developing your app.
We’ll next put our attention to the user interface. There are some great additions in watchOS 2 to enhance our Directory app. We are now able to link phone and SMS numbers in custom apps to the Phone and Messages app, so users can initiate these actions straight from our Directory app. Adding buttons to the detail view will allow employees to call or text another employee’s mobile number.
The use of the digital crown is another area of watchOS 2 that we want to look to for additional functionality. Apple includes a new rotating picker that can be customized. We can use images in the picker so the digital crown turns the interface into a picture Rolodex. This will definitely come in handy with all the new faces on our team.
After some testing and QA, I’ll be ready for the release of watchOS 2 with an updated Directory watch app!