{ "id": "148705", "key": "TIMOB-19004", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "16925", "description": "WatchKit Support--all going into 5.0 now", "name": "Release 5.0.0", "archived": true, "released": true, "releaseDate": "2015-09-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-08-15T09:55:41.000+0000", "created": "2015-06-11T21:43:38.000+0000", "epic": { "id": 149396, "key": "TIMOB-19145", "name": "iOS: iOS 9 Updates", "summary": "iOS: iOS9 Updates", "color": { "key": "color_1" }, "done": false }, "priority": { "name": "High", "id": "2" }, "labels": [ "IOS9", "watchkit" ], "versions": [], "issuelinks": [ { "id": "48680", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "150436", "key": "TIDOC-2283", "fields": { "summary": "iOS9: Guidelines to integrate watchOS2 with titanium app", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "48702", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "150298", "key": "TIDOC-2277", "fields": { "summary": "Update iOS Watch and Extension guide", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-21T19:27:24.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "Support Watch Connectivity, so that a watchOS2 app can communication with a Titanium application.\r\n\r\nBelow is the pre-release documentation on this framework:\r\nhttps://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-DontLinkElementID_1\r\n\r\nhttps://developer.apple.com/library/prerelease/ios/documentation/WatchConnectivity/Reference/WCSession_class/index.html#//apple_ref/doc/uid/TP40015237\r\n\r\nSample code:\r\nhttps://developer.apple.com/library/prerelease/ios/samplecode/Lister/Introduction/Intro.html#//apple_ref/doc/uid/TP40014701", "attachment": [], "flagged": false, "summary": "iOS9: Support Watch Connectivity", "creator": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 464, "state": "closed", "name": "2015 Sprint 17 SDK", "startDate": "2015-08-15T00:30:59.243Z", "endDate": "2015-08-29T00:30:00.000Z", "completeDate": "2015-08-31T08:10:47.969Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "355920", "author": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Spoke with the Apple engineers about the best way to implement while at WWDC.\r\n\r\nTheir recommendations in the context of the kind of app structure Ti is composted as:\r\n\r\n1. Create a singleton in TiApp.m\r\n2. Create the singleton in didFinishLaunchingWithOptions. In the case of Ti, we will need to make sure the app is booted\r\n\r\nFor #2, I would recommend requiring in an external class containing the WCSessionDelegate methods for the singleton.\r\n\r\nThe biggest engineering problem will be to make sure Ti has booted, otherwise the events will not be raised to JS. This most likely will require the delegate receiving methods being wrapped in a backgroundTask.", "updateAuthor": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-06-25T04:09:58.000+0000", "updated": "2015-06-25T04:09:58.000+0000" }, { "id": "359979", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PR Here: https://github.com/appcelerator/titanium_mobile/pull/7028\r\nTitanium test project here: https://github.com/cheekiatng/Titanium-WatchOS2-Sample-App\r\n\r\nh4. Steps to test\r\n1. in project directory of demo app, *ti build -p ios -I 9.0 --launch-watch-app*\r\n2. Click status me.\r\n3. Send message from phone app when watch app is in foreground\r\n4. Send app context from phone app when watch app is in background\r\n5. Send user info from phone app when watch app is in background\r\n6. Send file from phone app when watch app is in background\r\n7. Repeat steps 4 - 6 when watch app is in foreground.\r\n8. Repeat steps 3 - 7, but this time, from the watch app to the phone app.\r\n9. Delete watch app\r\n\r\nh4. Expected Result\r\n2. *isWatchAppInstalled = true, isReachable = true, isPaired = true, isComplicationEnabled = false*\r\n3. message seen on watch app\r\n4. Bring watch app to foreground to verify that app context is shown on watch app\r\n5. Bring watch app to foreground to verify that user info is shown on watch app. Phone app would also trigger event that user info is sent. (watchSessionFinishedUserInfoTransfer)\r\n6. Bring watch app to foreground to verify that an image is shown on watch app. Phone app would also trigger event that file is sent. (watchSessionFinishedFileTransfer)\r\n7. Expected to see the same results as 4 - 6\r\n8. Expected same outcome as watch app on phone app\r\n9. Event \"watchStateChanged\" triggered\r\n\r\n*Note*: Also expect to see event \"watchReachabilityChanged\" triggered when watch app transits between foreground and background.\r\n", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-08-15T07:37:21.000+0000", "updated": "2015-08-15T09:53:56.000+0000" }, { "id": "359981", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PR Merged.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-08-15T09:55:20.000+0000", "updated": "2015-08-15T09:55:20.000+0000" }, { "id": "359982", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "*Note:* To create a watch OS 2 and titanium Project, follow these steps:\r\n1. Create a new project: ti create --type app --name foo --id com.appc.foo --platforms all --url http://foo --workspace-dir .\r\n2. cd into the project: cd foo\r\n3. Add a WatchKit 2 app: ti create --type applewatch --name bar --template watchos2\r\n4. Build the app: ti build -p ios -I 9.0 --launch-watch-app", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-08-15T09:57:58.000+0000", "updated": "2015-08-15T09:57:58.000+0000" }, { "id": "361025", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PR here for parameter change and addition of activate method: \r\nhttps://github.com/appcelerator/titanium_mobile/pull/7067\r\nPR Merged.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-08-25T04:00:32.000+0000", "updated": "2015-08-25T04:25:23.000+0000" }, { "id": "414347", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as fixed.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-21T19:27:24.000+0000", "updated": "2017-03-21T19:27:24.000+0000" } ], "maxResults": 12, "total": 12, "startAt": 0 } } }