I’ve been developing apps for iOS for nearly a decade, but Veeda will be my first foray into watchOS development. There are clear differences between iOS & watchOS development, but the limiting factors of watchOS have actually been quite liberating. I’ve always wanted to make a watch app since I first got my Apple Watch (a Series “0”, which is still the one I use today). However, I never really had a compelling enough app idea to push me to start development, until now.
Based on my experience so far, here are lessons I’ve learned that I’d like to share:
- Include only what is critical & relevant to the user
Since the Apple Watch has a relatively small screen & limited storage, it would be impractical & unreasonable to cram all of Veeda’s iOS app features into the watchOS app. I had to ask myself what I personally wanted to see from Veeda when I raised my wrist to view the app.
The most important information for me is the collection of health metrics for the people I monitor. So, I’ve included just two screens in the Veeda watch app: the list of people I monitor, and the metrics for those people. A big help is an API Apple introduced in watchOS 3: Item Pagination (or Vertical Detail Paging as labeled in the Storyboard file). It’s a fantastic feature that minimizes the taps needed to navigate between the main list of people & the detail view for the person. In short, I love it 😊
- Prioritize quick & simple display of information
Related to the first point is the fact that working within the confines of a small screen drove me to rethink how the information should be shown to the user. In the iOS app, the Monitor view already contains all the current health metrics that are being monitored. This was done to bring the info front & center.
However, if I were to do this on the watch, it would be impratical due to the screen size. Instead, I devised a small list view which shows the images & names of the users being monitored. Two rows can be shown without the need to scroll the view. When you tap on the row, you’re shown a view which includes all the health metrics being monitored. Then, through the magic of Item Pagination, instead of tapping the tiny back arrow on the top left, you just need to swipe vertically or turn the crown to switch between users.
- Prepare for situations where the phone isn’t accessible
Even though the Apple Watch is meant to be used as a companion to the iPhone, there are instances where I only have my watch with me. The prime example of this is when I do my exercises outside or in the gym. During these moments, I use the Workout app to track my routine, then when I get within spitting distance of my phone, the info is synced with the phone’s database.
For Veeda, I wanted to give the user access to the latest synced data from the iOS app. Unfortunately, the Realm Platform library I use doesn’t include support for watchOS. Instead, I use Watch Connectivity to sync a distilled version of the Realm database to the watchOS app. Then, I save this data as a plist in the watch app’s documents directory. This way, even when the iPhone is nowhere near my watch, I can still see a copy of the latest health metrics synced when I last opened the Veeda iOS app.
Since the project is a work in progress, I’m sure there are still some lessons to be learned. Still, I’m glad to finally have a chance to release a watchOS app, and I definitely can’t wait to get this app in your pockets and on your wrists.
P.S. In case you’re willing to try out an early version of the app, please email us at firstname.lastname@example.org so we can send you a TestFlight invite. Of course, there are plans to do a public beta, but we have no firm dates for this yet.