What are the benefits of watch app development?
Let’s take a look at some features:
- you can use the newest solutions provided by Swift and App
- SwiftUI (it is supported on all Apple Watch with watchOS 6 installed) – It is a brand new Apple UI framework for creating fast and reliable user interface
- Watch Connectivity framework – It is a communication library that offers developers easy way for implementing different forms of communication on Apple Watch
- Location services (Since second generation released in 2016 every Apple Watch have GPS and GLONASS)
- Accelerometer and Gyroscope
It allows us to create an almost independent app. We can make a sport tracker app that communicates with iOS app internally and provides it with additional health data that supplement the bluetooth sensors. Then we can provide more accurate data and make more interesting calculations to examine efficiency of the workouts. The watch itself can communicate with bluetooth sensors and, if in that case we are speaking of water sports, we do not want to take our iPhone to the swimming pool very often. We can make an app that gathers all the data from sensors in Apple Watch while still providing additional health data. Then, sync this data with iOS app to make analysis and provide feedback for the user.
We can take advantage of everything that Apple Watch offers: it can monitor your sleep cycle, track your movement, and take specific actions or gather specific data. Based on our location, we can check if we would make it to the bus stop on time. There are many possibilities.
Let’s go technical
Development for Apple Watch is almost identical to iOS application. You write the code the same way as for the iPhone. Debugging and testing can take some time when dealing with cross device applications since (for now) we can’t simultaneously connect both iOS and Watch app to the one debugger (one of the apps has to be manually attached from a separate process). But other than that it is just a normal development. There is a guideline for most efficient UI, tips and specifications on some Watch particular mechanics, and somehow clearly stated limitations.
When developing an iOS app, even on a planning process we can determine if a given feature would be shared with the Watch app.
We can do this on many levels. By developing a separate app or by extracting code used by both iOS and Watch app. That’s where planning shared features becomes so important. When dealing with bluetooth – we can extract all logic to separate framework and then early include it in the main iOS application. It will also make the code easier to maintain. Then, when the time comes, it will be much cheaper to develop a Watch version of the app. Almost every data can be shared between Apple Watch and iOS Application via secure container. By default, communication between Apple Watch and iPhone is encrypted so we do not have to worry that our data falls into the wrong hands. Apple takes security and privacy very seriously. Besides internal communication and Bluetooth service, Apple Watch offers the same networking as for normal iOS applications. You can make the same HTTPS requests and get the same data using Watch to keep your app updated.
HTTPS requests can only be sent when we have a connection with the internet. This could be achieved by connecting the Watch to a known WiFi network, being in a close proximity to paired iPhone with mobile data turned on, or by using cellular version of the Watch.
Some actions, like refreshing complications (custom Watch Face widgets), have a certain limit for daily refresh rates. This has been implemented to extend the battery life by preventing developers from running complex algorithms in the background.
App authorization is a bit tricky – Apple Watch does not provide a normal “qwerty” keyboard so any actions that require text input from the user have to be done by dictation or by scribbling a message.
Taking all features and limitations into consideration – Apple Watch is a great device for gathering all kinds of health and movement data. Furthermore, it can do almost everything that an iOS app would do – we just need to make it a little bit “smarter”. The only thing is to make good use of the data and in-built abilities of the Apple Watch.