Watch Complications

RSS for tag

Display timely and relevant information about your app on the Apple Watch face using Complications.

Posts under Watch Complications tag

170 Posts

Post

Replies

Boosts

Views

Activity

WidgetKit Watch Complication not displaying Images
My complication code is very similar to that found in the Migrating ClockKit complications to WidgetKit tutorial. Except, I am only interested in displaying the app icon as the complication. I just cannot get any 'custom' images to display in the simulator, nor on a Watch. Image(systemImage: "") work fine, however. Does the image need to be re-sized to a specific resolution? The original image is 1024×1024, I have tried re-sizing this down to multiple smaller resolutions with no success. import WidgetKit import SwiftUI import Intents struct Provider: IntentTimelineProvider { func placeholder(in context: Context) -> SimpleEntry { SimpleEntry(date: Date(), configuration: ConfigurationIntent()) } func getSnapshot(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (SimpleEntry) -> ()) { let entry = SimpleEntry(date: Date(), configuration: configuration) completion(entry) } func getTimeline(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (Timeline<Entry>) -> ()) { var entries: [SimpleEntry] = [] // Generate a timeline consisting of five entries an hour apart, starting from the current date. let currentDate = Date() for hourOffset in 0 ..< 5 { let entryDate = Calendar.current.date(byAdding: .hour, value: hourOffset, to: currentDate)! let entry = SimpleEntry(date: entryDate, configuration: configuration) entries.append(entry) } let timeline = Timeline(entries: entries, policy: .atEnd) completion(timeline) } func recommendations() -> [IntentRecommendation<ConfigurationIntent>] { return [ IntentRecommendation(intent: ConfigurationIntent(), description: "Treadmill Assistant") ] } } struct SimpleEntry: TimelineEntry { let date: Date let configuration: ConfigurationIntent } struct Tread_Cadence_ComplicationEntryView : View { var entry: Provider.Entry var body: some View { Image("AppIcon") //.resizable() //.frame(width: 50, height: 50) //.scaledToFill() } } @main struct Tread_Cadence_Complication: Widget { let kind: String = "Tread_Cadence_Complication" var body: some WidgetConfiguration { IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: Provider()) { entry in Tread_Cadence_ComplicationEntryView(entry: entry) } .configurationDisplayName("Treadmill Assistant") .description("Opens Treadmill Assistant.") } } struct Tread_Cadence_Complication_Previews: PreviewProvider { static var previews: some View { Tread_Cadence_ComplicationEntryView(entry: SimpleEntry(date: Date(), configuration: ConfigurationIntent())) .previewContext(WidgetPreviewContext(family: .accessoryRectangular)) } }
2
2
1.9k
Oct ’22
What is the callback for widgetURL on WKExtensionDelegate? I tried handleUserActivity, but it failed to be called.
The demo code is as follows.      case .accessoryRectangular:       ZStack() {         AccessoryWidgetBackground()         Text(entry.date, style: .time)       }       .widgetURL(URL(string: "demo://test")) I didn't get any useful information on the related documentation. Am I missing something?
3
2
1.5k
Oct ’22
Neither getCurrentTimelineEntry nor getLocalizableSampleTemplate get called by Complication Controller
I have an iPhone with Watch Project, I was getting good results on my Complications but lately they don't want to update… When I build and run on my iPhone the new Watch build gets transferred to the paired watch and is running there fine. Almost: it refuses to update the Complications. After Watch restart I only get ----- My server correctly tells me that I have two active complications on the current watchFace and I am calling server.reloadTimeline(for:) on both of them but the getCurrentTimelineEntry function never gets executed by the server. Neither does the getLocalizableSampleTemplate When I remove the App from the Watch, restart the Watch and then put the App back on the Watch using the iPhone's Watch App -- then it works, but only about 3 minutes after starting the Watch App on the Watch. During these 3 minutes my app's complications are only --. I can't ship it like this… My hunch is that somewhere the complication controller crashes, but it doesn't take my app down with it and thus my complications don't work any more. All other apps' complications do update alright though. Now my question is: is that a bug in Xcode, in WatchOS, or in my code? Will this happen when I first deploy my app on the App Store or will it be an issue with updates via App Store? Is this only relevant for my "local" build? Any hints where to hunt this bug?
1
0
1.8k
Oct ’22
Can't Load Image on Apple Watch Complications with New iOS 16 Widget
Image("sticker5")             .resizable()             .frame(width: 47, height: 47)             .scaledToFill() sticker5 is a picture with 94px * 94px. This is the size recommended by guideline. The Error is ComplicationsExtension[403:17806] [archiving] Widget archival failed due to image being too large [2] - (94, 94). We don't want to use low pixel images. That would look terrible. Please Help!
3
1
2.1k
Sep ’22
WatchOS9 - Widgetkit complications do not appear on simulator
Hi, I followed excactly the steps in https://developer.apple.com/videos/play/wwdc2022/10050 to add Widgetkit for watchOS to my existing iOS Widgets. Both widgets do work for iOS, but on my Apple Watch, my widget is invisible to be set as a complication. Any idea what I'm doing wrong? ... @available(iOSApplicationExtension 16.0, *) struct MyWidget: Widget {  private let kind: String = "MyWidget"     var body: some WidgetConfiguration {   return IntentConfiguration(kind: kind, intent: WidgetConfigurationIntent.self, provider: Provider()) { entry in    MyWidgetComponent(entry: entry)   }   .configurationDisplayName("widget_name_description".localized())   .description("widget_name_description".localized())   .supportedFamilies([.accessoryCircular, .accessoryRectangular, .accessoryInline])  } } @main struct MyAppWidgets: WidgetBundle {  #if os(watchOS)  var body: some Widget {   return MyWidget()  }  #else  var body: some Widget {   if #available(iOS 16.0, *) {    return WidgetBundleBuilder.buildBlock(OtherIosWidget(), MyWidget())   } else {    return OtherIosWidget()   }  }  #endif } ...
2
0
1.9k
Sep ’22
watchOS 9 complications - where do they go?
I have an app with Home Screen widgets, and new Lock Screen widgets, and I'm trying to get my complications to work on the Watch. The widgets are running off dynamic intents, taking a list of items from user defaults and providing that list for the user to choose when they add a Home Screen or Lock Screen widget. This works fine. In the "Complications and widgets: Reloaded" video from WWDC2022 at about 7:00 the guy tells you to duplicate the widget extension, rename it, and set it to run on watchOS. I ended up with these targets: Main App (embeds Widget, Intents Handler and Watch App) Widget Intents Handler Watch App (embeds Complications) Complications (new, copy of Widget) At about 8:30 he adds the supported families for the Watch to his EmojiRangersWidget WidgetConfiguration, so it looks like the code for the accessory widgets is used for both Lock Screen widgets and complications? Should I be putting all my complications views in the Widget target, something like this? @main struct WidgetEntry: Widget { public var body: some WidgetConfiguration { IntentConfiguration(kind: kWidgetKind, intent: DynamicItemSelectionIntent.self, provider: Provider() ) { entry in WidgetEntryView(entry: entry) } .configurationDisplayName("abc") .description("def") #if os(watchOS) .supportedFamilies([.accessoryCircular, .accessoryInline, .accessoryRectangular, .accessoryCorner]) #else .supportedFamilies([.accessoryCircular, .accessoryInline, .accessoryRectangular, .systemSmall, .systemMedium]) #endif } } struct WidgetEntryView: View { var entry: Provider.Entry @Environment(\.widgetFamily) var family @ViewBuilder var body: some View { #if os(watchOS) switch family { case .accessoryCircular, .accessoryCorner, .accessoryInline, .accessoryRectangular: ComplicationView(item: entry.item) @unknown default: UnknownComplicationView(item: entry.item) } #else switch family { case .accessoryCircular, .accessoryInline, .accessoryRectangular: LockScreenWidgetView(item: entry.item) case .systemSmall: SmallWidgetView(item: entry.item) case .systemMedium, .systemLarge, .systemExtraLarge: MediumWidgetView(item: entry.item) @unknown default: UnknownWidgetView(item: entry.item) } #endif } } I've previously been told by an Apple engineer on these forums: "The complication code should be in the watch app target. That's where watchOS 7 and 8 will look for complications, and where watchOS 9 will look for old ClockKit complications for migration to their WidgetKit counterparts." I'm no longer supporting watchOS 7/8, but does this mean that watchOS 7/8 will look for old complications in there to migrate to the new stuff into the Widget target? I asked a couple of follow-up questions but they never got answered ¯\_(ツ)_/¯ Apple make this stuff so unnecessarily complex, even though their videos make it look so easy. How many times have we all paused their videos to see exactly what code they're writing and where they're putting it? There's practically zero help out there - these forums are full of questions and few answers. Xcode should have much better documentation and help to guide you through this. It takes so long to get anything done because there just isn't the information we need.
1
0
2.2k
Sep ’22
WatchKit: Complications update failure
Hello, My AppleWatch app supports complications on X-Large and Modular WatchFaces. I use common data models for the complication families. I reload complications by calling server's reloadTimeline() and as the result my datasource's getCurrentTimelineEntry() is called. After that I get my complication on X-Large and Modular Faces updated. But sometimes complication on X-Large watchface is not updated on reloadTimeline() call or updated in a couple of minutes after the call. Though Modular complications works fine and do not have problems. Does anyone have similar problem with updates of X-Large complication?
0
0
485
Aug ’22
Please, eli5 me the flow to update AppleWatch complications in background, using data from iOS companion app
My god I feel so dumb. Please help. I have: an iOS app that displays calendar/reminders list (using EventKit data) a set of iOS widgets that also display these lists, but in a widget form the data fetch logic is shared, as well as most of the UI (everything's in SwiftUI) I'm trying to: create a WatchOS app and a a set of watch complications, to display calendars/reminders on the watch IMPORTANT: iOS app is the source of truth for all the data (it need to be post-processed after fetching from EventKit) Here's what works/flow fine (I understand how it works): iOS app updates its data upon launch (or EventKit update message). All good. iOS widgets update their data when iOS asks them to provide a new timeline. Widgets just reach out into EventKit directly on iPhone, and are done with everything (same device, enough processing power, direct access). All good. Watch app (as far as I understand), upon launch, would just need to send a request for data message to the iOS companion app, and iOS companion app would then just "push" the data back to the watch app (after post-processing it into a proper dictionary). So, I'm mostly good with it as well, I think. Watch app could update complications once it is launched and received data from iOS companion app (right?…) And here's where I'm stuck: I can't for the life of me to figure out what would be the flow to update Watch complications automatically in the background, using data from the iOS app's source of truth. I would assume it might be something like: watchOS requests a complication to provide its timeline (at whatever time it decides to do that - I can only be partially in control of the timing) complication, in turn, um…… calls the WatchOS app? (right?……) and requests the data required to build the timeline from the watch app once watch app receives that request from complication, it: sends request for data message to the companion iOS app receives the data from iOS app in a form of dictionary rebuilds the complication's timeline with the data it received from the iOS app Questions: Does the above flow sounds right at all? There does seem to be a lot of messages flowing around and between… Is it how it's supposed to be? What would be the very best approach to this situation? A simple flow outline would help immensely. I tried to look through the documentation and I'm feeling completely worn out… I can't connect the pieces and I just can't find the right place to start so I can untangle the logic (what starts when, request data from where, how) Any guidance is appreciated. I think I'm probably missing something very basic, but I have no idea what exactly :( Thanks! PS: I would like to support watchOS 8+, iOS 15+, so I guess newest additions to watchOS 9 are not applicable. I build everything in SwiftUI.
0
1
802
Aug ’22
What if an Apple Watch could protect us from mosquito bites?
One of our latest innovation and patented technology can be used in mobile devices like the Apple Watch to protect the environment from being attacked and bit by mosquitos. By modelling sensor structures this technology influences behavior patterns of mosquitoes and other insects. This allows mosquitos to be kept away without being affected. Using existing IoT hardware already available on-board, in addition to software-based algorithms, the Apple Watch could be a best fit for this application. I would appreciate if we had the opportunity to set up a personal discussion with the Apple Watch engineers.
0
0
1.4k
Jul ’22
I just want to show [Second] for timer app on watch complication
I could make countdown on watch complication by using [.timer]. However its showing [Hour], [Minute] and [Second], and I just want to show [Second] instead of [Hour] and [Minute]. Lets say if I set the time with [5 minutes] then I would like to make it showing [300] instead of [5:00]. So what will be the best code I should write? Please kindly advise.
0
0
696
Jun ’22
Is it possible to make an Apple Watch app that runs in the background and triggers a notification based on gyroscope and accelerometer data?
I’m new to iOS development so if anything is wrong with my question or post, please excuse me because I’m writing this in good faith, earnestly. I’m trying to learn to be an iOS developer to make an Apple Watch app to help my elderly dad with his blood pressure so as to prevent harmful falls. I want to make an app so that every time he stands (he has low blood pressure), his Watch vibrates. The Watch might be in any sort of state, he’s an old guy so who knows how he uses the Watch, but it will be on and he will be wearing it. I know it would be possible to write an app that vibrates when certain gyroscope / accelerometer conditions are met when the app is active / on the screen. However I need this vibration to happen every time he stands, regardless of what’s happening on his watch. Is this possible? Thank you in advance. Appreciate any responses.
1
1
916
Jun ’22
WidgetKit Watch Complication not displaying Images
My complication code is very similar to that found in the Migrating ClockKit complications to WidgetKit tutorial. Except, I am only interested in displaying the app icon as the complication. I just cannot get any 'custom' images to display in the simulator, nor on a Watch. Image(systemImage: "") work fine, however. Does the image need to be re-sized to a specific resolution? The original image is 1024×1024, I have tried re-sizing this down to multiple smaller resolutions with no success. import WidgetKit import SwiftUI import Intents struct Provider: IntentTimelineProvider { func placeholder(in context: Context) -> SimpleEntry { SimpleEntry(date: Date(), configuration: ConfigurationIntent()) } func getSnapshot(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (SimpleEntry) -> ()) { let entry = SimpleEntry(date: Date(), configuration: configuration) completion(entry) } func getTimeline(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (Timeline<Entry>) -> ()) { var entries: [SimpleEntry] = [] // Generate a timeline consisting of five entries an hour apart, starting from the current date. let currentDate = Date() for hourOffset in 0 ..< 5 { let entryDate = Calendar.current.date(byAdding: .hour, value: hourOffset, to: currentDate)! let entry = SimpleEntry(date: entryDate, configuration: configuration) entries.append(entry) } let timeline = Timeline(entries: entries, policy: .atEnd) completion(timeline) } func recommendations() -> [IntentRecommendation<ConfigurationIntent>] { return [ IntentRecommendation(intent: ConfigurationIntent(), description: "Treadmill Assistant") ] } } struct SimpleEntry: TimelineEntry { let date: Date let configuration: ConfigurationIntent } struct Tread_Cadence_ComplicationEntryView : View { var entry: Provider.Entry var body: some View { Image("AppIcon") //.resizable() //.frame(width: 50, height: 50) //.scaledToFill() } } @main struct Tread_Cadence_Complication: Widget { let kind: String = "Tread_Cadence_Complication" var body: some WidgetConfiguration { IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: Provider()) { entry in Tread_Cadence_ComplicationEntryView(entry: entry) } .configurationDisplayName("Treadmill Assistant") .description("Opens Treadmill Assistant.") } } struct Tread_Cadence_Complication_Previews: PreviewProvider { static var previews: some View { Tread_Cadence_ComplicationEntryView(entry: SimpleEntry(date: Date(), configuration: ConfigurationIntent())) .previewContext(WidgetPreviewContext(family: .accessoryRectangular)) } }
Replies
2
Boosts
2
Views
1.9k
Activity
Oct ’22
What is the callback for widgetURL on WKExtensionDelegate? I tried handleUserActivity, but it failed to be called.
The demo code is as follows.      case .accessoryRectangular:       ZStack() {         AccessoryWidgetBackground()         Text(entry.date, style: .time)       }       .widgetURL(URL(string: "demo://test")) I didn't get any useful information on the related documentation. Am I missing something?
Replies
3
Boosts
2
Views
1.5k
Activity
Oct ’22
Neither getCurrentTimelineEntry nor getLocalizableSampleTemplate get called by Complication Controller
I have an iPhone with Watch Project, I was getting good results on my Complications but lately they don't want to update… When I build and run on my iPhone the new Watch build gets transferred to the paired watch and is running there fine. Almost: it refuses to update the Complications. After Watch restart I only get ----- My server correctly tells me that I have two active complications on the current watchFace and I am calling server.reloadTimeline(for:) on both of them but the getCurrentTimelineEntry function never gets executed by the server. Neither does the getLocalizableSampleTemplate When I remove the App from the Watch, restart the Watch and then put the App back on the Watch using the iPhone's Watch App -- then it works, but only about 3 minutes after starting the Watch App on the Watch. During these 3 minutes my app's complications are only --. I can't ship it like this… My hunch is that somewhere the complication controller crashes, but it doesn't take my app down with it and thus my complications don't work any more. All other apps' complications do update alright though. Now my question is: is that a bug in Xcode, in WatchOS, or in my code? Will this happen when I first deploy my app on the App Store or will it be an issue with updates via App Store? Is this only relevant for my "local" build? Any hints where to hunt this bug?
Replies
1
Boosts
0
Views
1.8k
Activity
Oct ’22
Can't Load Image on Apple Watch Complications with New iOS 16 Widget
Image("sticker5")             .resizable()             .frame(width: 47, height: 47)             .scaledToFill() sticker5 is a picture with 94px * 94px. This is the size recommended by guideline. The Error is ComplicationsExtension[403:17806] [archiving] Widget archival failed due to image being too large [2] - (94, 94). We don't want to use low pixel images. That would look terrible. Please Help!
Replies
3
Boosts
1
Views
2.1k
Activity
Sep ’22
watchOS error
Hello, I am getting this error in the console when I run my code but I am not sure what it means: 2022-08-04 15:45:16.959881+0200 HFI WatchKit Extension[427:31640] [View] +[UIView flush] is deprecated, use +[CATransaction flush] instead.
Replies
2
Boosts
0
Views
1.5k
Activity
Sep ’22
WatchOS9 - Widgetkit complications do not appear on simulator
Hi, I followed excactly the steps in https://developer.apple.com/videos/play/wwdc2022/10050 to add Widgetkit for watchOS to my existing iOS Widgets. Both widgets do work for iOS, but on my Apple Watch, my widget is invisible to be set as a complication. Any idea what I'm doing wrong? ... @available(iOSApplicationExtension 16.0, *) struct MyWidget: Widget {  private let kind: String = "MyWidget"     var body: some WidgetConfiguration {   return IntentConfiguration(kind: kind, intent: WidgetConfigurationIntent.self, provider: Provider()) { entry in    MyWidgetComponent(entry: entry)   }   .configurationDisplayName("widget_name_description".localized())   .description("widget_name_description".localized())   .supportedFamilies([.accessoryCircular, .accessoryRectangular, .accessoryInline])  } } @main struct MyAppWidgets: WidgetBundle {  #if os(watchOS)  var body: some Widget {   return MyWidget()  }  #else  var body: some Widget {   if #available(iOS 16.0, *) {    return WidgetBundleBuilder.buildBlock(OtherIosWidget(), MyWidget())   } else {    return OtherIosWidget()   }  }  #endif } ...
Replies
2
Boosts
0
Views
1.9k
Activity
Sep ’22
watchOS 9 complications - where do they go?
I have an app with Home Screen widgets, and new Lock Screen widgets, and I'm trying to get my complications to work on the Watch. The widgets are running off dynamic intents, taking a list of items from user defaults and providing that list for the user to choose when they add a Home Screen or Lock Screen widget. This works fine. In the "Complications and widgets: Reloaded" video from WWDC2022 at about 7:00 the guy tells you to duplicate the widget extension, rename it, and set it to run on watchOS. I ended up with these targets: Main App (embeds Widget, Intents Handler and Watch App) Widget Intents Handler Watch App (embeds Complications) Complications (new, copy of Widget) At about 8:30 he adds the supported families for the Watch to his EmojiRangersWidget WidgetConfiguration, so it looks like the code for the accessory widgets is used for both Lock Screen widgets and complications? Should I be putting all my complications views in the Widget target, something like this? @main struct WidgetEntry: Widget { public var body: some WidgetConfiguration { IntentConfiguration(kind: kWidgetKind, intent: DynamicItemSelectionIntent.self, provider: Provider() ) { entry in WidgetEntryView(entry: entry) } .configurationDisplayName("abc") .description("def") #if os(watchOS) .supportedFamilies([.accessoryCircular, .accessoryInline, .accessoryRectangular, .accessoryCorner]) #else .supportedFamilies([.accessoryCircular, .accessoryInline, .accessoryRectangular, .systemSmall, .systemMedium]) #endif } } struct WidgetEntryView: View { var entry: Provider.Entry @Environment(\.widgetFamily) var family @ViewBuilder var body: some View { #if os(watchOS) switch family { case .accessoryCircular, .accessoryCorner, .accessoryInline, .accessoryRectangular: ComplicationView(item: entry.item) @unknown default: UnknownComplicationView(item: entry.item) } #else switch family { case .accessoryCircular, .accessoryInline, .accessoryRectangular: LockScreenWidgetView(item: entry.item) case .systemSmall: SmallWidgetView(item: entry.item) case .systemMedium, .systemLarge, .systemExtraLarge: MediumWidgetView(item: entry.item) @unknown default: UnknownWidgetView(item: entry.item) } #endif } } I've previously been told by an Apple engineer on these forums: "The complication code should be in the watch app target. That's where watchOS 7 and 8 will look for complications, and where watchOS 9 will look for old ClockKit complications for migration to their WidgetKit counterparts." I'm no longer supporting watchOS 7/8, but does this mean that watchOS 7/8 will look for old complications in there to migrate to the new stuff into the Widget target? I asked a couple of follow-up questions but they never got answered ¯\_(ツ)_/¯ Apple make this stuff so unnecessarily complex, even though their videos make it look so easy. How many times have we all paused their videos to see exactly what code they're writing and where they're putting it? There's practically zero help out there - these forums are full of questions and few answers. Xcode should have much better documentation and help to guide you through this. It takes so long to get anything done because there just isn't the information we need.
Replies
1
Boosts
0
Views
2.2k
Activity
Sep ’22
Apple Watch WidgetKit extension app group issue
Does Apple Watch WidgetKit extension, support app group for data sharing, as currently we get nil values for any stored data.
Replies
2
Boosts
1
Views
1.2k
Activity
Sep ’22
Adding watchOS complications in Xcode 14 results in CoreData API Misuse error
In Xcode 14 beta 6, when I add complication placeholders in the watchOS Assets.xcassets, it gives me the CoreData API Misuse error as I add them. Does anyone here have any idea on how to resolve the CoreData API Misuse error?
Replies
1
Boosts
1
Views
971
Activity
Aug ’22
WatchKit: Complications update failure
Hello, My AppleWatch app supports complications on X-Large and Modular WatchFaces. I use common data models for the complication families. I reload complications by calling server's reloadTimeline() and as the result my datasource's getCurrentTimelineEntry() is called. After that I get my complication on X-Large and Modular Faces updated. But sometimes complication on X-Large watchface is not updated on reloadTimeline() call or updated in a couple of minutes after the call. Though Modular complications works fine and do not have problems. Does anyone have similar problem with updates of X-Large complication?
Replies
0
Boosts
0
Views
485
Activity
Aug ’22
Please, eli5 me the flow to update AppleWatch complications in background, using data from iOS companion app
My god I feel so dumb. Please help. I have: an iOS app that displays calendar/reminders list (using EventKit data) a set of iOS widgets that also display these lists, but in a widget form the data fetch logic is shared, as well as most of the UI (everything's in SwiftUI) I'm trying to: create a WatchOS app and a a set of watch complications, to display calendars/reminders on the watch IMPORTANT: iOS app is the source of truth for all the data (it need to be post-processed after fetching from EventKit) Here's what works/flow fine (I understand how it works): iOS app updates its data upon launch (or EventKit update message). All good. iOS widgets update their data when iOS asks them to provide a new timeline. Widgets just reach out into EventKit directly on iPhone, and are done with everything (same device, enough processing power, direct access). All good. Watch app (as far as I understand), upon launch, would just need to send a request for data message to the iOS companion app, and iOS companion app would then just "push" the data back to the watch app (after post-processing it into a proper dictionary). So, I'm mostly good with it as well, I think. Watch app could update complications once it is launched and received data from iOS companion app (right?…) And here's where I'm stuck: I can't for the life of me to figure out what would be the flow to update Watch complications automatically in the background, using data from the iOS app's source of truth. I would assume it might be something like: watchOS requests a complication to provide its timeline (at whatever time it decides to do that - I can only be partially in control of the timing) complication, in turn, um…… calls the WatchOS app? (right?……) and requests the data required to build the timeline from the watch app once watch app receives that request from complication, it: sends request for data message to the companion iOS app receives the data from iOS app in a form of dictionary rebuilds the complication's timeline with the data it received from the iOS app Questions: Does the above flow sounds right at all? There does seem to be a lot of messages flowing around and between… Is it how it's supposed to be? What would be the very best approach to this situation? A simple flow outline would help immensely. I tried to look through the documentation and I'm feeling completely worn out… I can't connect the pieces and I just can't find the right place to start so I can untangle the logic (what starts when, request data from where, how) Any guidance is appreciated. I think I'm probably missing something very basic, but I have no idea what exactly :( Thanks! PS: I would like to support watchOS 8+, iOS 15+, so I guess newest additions to watchOS 9 are not applicable. I build everything in SwiftUI.
Replies
0
Boosts
1
Views
802
Activity
Aug ’22
How to support VoiceOver on Apple Watch complication
Anyone dealt before with Apple Watch complications accessibility? I'm using CLKComplicationTemplateGraphicCornerGaugeText to display custom data but VoiceOver adds degrees (º) after saying the value. I've tried with accessibilityLabel on CLKTextProvider but doesn't fix it. Any idea? Thanks in advance!
Replies
1
Boosts
1
Views
1.8k
Activity
Aug ’22
HomeScreenWidgetsUnsupportedError
When developing widgets and complications using the new iOS16 and watchOS9 widget kit, I am getting the error: HomeScreenWidgetsUnsupportedError "The targeted preview device does not support launching home screen widgets" while trying to build a preview of a view for my widget. How can I fix this?
Replies
0
Boosts
0
Views
585
Activity
Aug ’22
Solution
This is the solution that worked for me delete watch from find my iPhone forget Apple watch option in Bluetooth reinstall watch app start the setup process and you should be able to pair and the update will start. I hope this helps you!
Replies
0
Boosts
0
Views
772
Activity
Jul ’22
Apple Watch Complications without an WatchOS App
Can you support complications on the apple watch if you only have an iOS application? In other words, is there any way to get complications on the apple watch for my app without having to support a full apple watch application?
Replies
1
Boosts
1
Views
828
Activity
Jul ’22
Pairing Apple Watch
Hello! i recently received an Apple Watch Series 3 and although I can get it to pair, I can’t get it to update. It keeps coming up with a screen that says to make sure my iPhone is updated (which it is to the latest IOS). HELP! I cannot finish setting it up until I update the apple watch
Replies
2
Boosts
2
Views
575
Activity
Jul ’22
What if an Apple Watch could protect us from mosquito bites?
One of our latest innovation and patented technology can be used in mobile devices like the Apple Watch to protect the environment from being attacked and bit by mosquitos. By modelling sensor structures this technology influences behavior patterns of mosquitoes and other insects. This allows mosquitos to be kept away without being affected. Using existing IoT hardware already available on-board, in addition to software-based algorithms, the Apple Watch could be a best fit for this application. I would appreciate if we had the opportunity to set up a personal discussion with the Apple Watch engineers.
Replies
0
Boosts
0
Views
1.4k
Activity
Jul ’22
Calendar widget goes to 2019 when entered
Anyone else having an issue with iOS 14 calendar widget? When I select the widget, instead of going to today’s date/year, it goes to the correct day, but wrong year. It goes to 2019. Very annoying!!
Replies
13
Boosts
0
Views
4.7k
Activity
Jul ’22
I just want to show [Second] for timer app on watch complication
I could make countdown on watch complication by using [.timer]. However its showing [Hour], [Minute] and [Second], and I just want to show [Second] instead of [Hour] and [Minute]. Lets say if I set the time with [5 minutes] then I would like to make it showing [300] instead of [5:00]. So what will be the best code I should write? Please kindly advise.
Replies
0
Boosts
0
Views
696
Activity
Jun ’22
Is it possible to make an Apple Watch app that runs in the background and triggers a notification based on gyroscope and accelerometer data?
I’m new to iOS development so if anything is wrong with my question or post, please excuse me because I’m writing this in good faith, earnestly. I’m trying to learn to be an iOS developer to make an Apple Watch app to help my elderly dad with his blood pressure so as to prevent harmful falls. I want to make an app so that every time he stands (he has low blood pressure), his Watch vibrates. The Watch might be in any sort of state, he’s an old guy so who knows how he uses the Watch, but it will be on and he will be wearing it. I know it would be possible to write an app that vibrates when certain gyroscope / accelerometer conditions are met when the app is active / on the screen. However I need this vibration to happen every time he stands, regardless of what’s happening on his watch. Is this possible? Thank you in advance. Appreciate any responses.
Replies
1
Boosts
1
Views
916
Activity
Jun ’22