Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to share data between iPhone and Apple Watch using groups?

i am new to Watchkit development and unable to find solution to share data between iPhone and iWatch, please help me i am looking to share data using groups.

like image 978
miral shah Avatar asked Dec 05 '22 23:12

miral shah


2 Answers

We can pass the data between iPhone & iWatch using groups.

Basically iWatch can not do any processing and we need to share the data. We can share data using the NSUserDefaults.

But for that you need to enable Appp Groups from capabilities section in both your project target and your iwatch app target, as showed below

App Groups

Below is the sample code to achieve that.

In your viewController or appDelegate file add following code

 NSUserDefaults *myDefaults = [[NSUserDefaults alloc]
                               initWithSuiteName:@"group.test.yourapp"];
[myDefaults setObject:@"aadil" forKey:@"name"];

Basically you are setting the value "aadil" for "name" variable.

Next step is to write code to retrieve that as below

 NSUserDefaults *myDefaults = [[NSUserDefaults alloc]
                               initWithSuiteName:@"group.test.yourapp"];
[myDefaults objectForKey:@"name"];

Hope this helps :)

like image 190
Aadil Keshwani Avatar answered Jan 02 '23 06:01

Aadil Keshwani


WARNING! It's not working with WatchOS 2 anymore, use methods from WatchConnectivity Framework. The best is updateApplicationContext: which always keep the latest data alive. From Apple doc:

Watch apps that shared data with their iOS apps using a shared group container must be redesigned to handle data differently. In watchOS 2, each process must manage its own copy of any shared data in the local container directory. For data that is actually shared and updated by both apps, this requires using the Watch Connectivity framework to move that data between them.

like image 28
BootMaker Avatar answered Jan 02 '23 07:01

BootMaker