{"id":256859,"date":"2015-05-08T17:08:03","date_gmt":"2015-05-08T13:08:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=256859"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=256859","title":{"rendered":"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f Apple Watch. \u041b\u0438\u0447\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0420\u0430\u043c\u0431\u043b\u0435\u0440.\u041d\u043e\u0432\u043e\u0441\u0442\u0435\u0439"},"content":{"rendered":"<p>     \t24 \u0430\u043f\u0440\u0435\u043b\u044f 2015 \u0433\u043e\u0434\u0430 Apple \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u0436\u0443 \u0443\u043c\u043d\u044b\u0435 \u0447\u0430\u0441\u044b Apple Watch, \u0441\u043f\u0443\u0441\u0442\u044f \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043d\u043e\u043d\u0441\u0430 \u043d\u0430 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u041a\u0430\u043b\u0438\u0444\u043e\u0440\u043d\u0438\u0438. \u0420\u0430\u043c\u0431\u043b\u0435\u0440 \u043d\u0435 \u043c\u043e\u0433 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0435. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0432\u0448\u0438\u0441\u044c \u0441 WatchKit SDK \u0438 <a href=\"https:\/\/developer.apple.com\/watch\/human-interface-guidelines\/\">\u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u0430\u043c\u0438<\/a> \u043d\u0430\u043c \u0441\u0442\u0430\u043b\u043e \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438 \u0432 \u0446\u0435\u043b\u043e\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u043d\u044f\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/068\/6bd\/ca6\/0686bdca6d0f4fa09dc2c5f88b3314d1.png\" alt=\"image\"\/>&nbsp;&nbsp;<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/8a3\/973\/660\/8a3973660e144cf8977a6eaccdbed650.png\" alt=\"image\"\/>&nbsp;&nbsp;<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/2d9\/b2a\/5db\/2d9b2a5db2bc432d829e67ad8c465da3.png\" alt=\"image\"\/>&nbsp;&nbsp;<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/539\/d62\/8cb\/539d628cbe6b4311a3c5ce552b52104a.png\" alt=\"image\"\/>&nbsp;&nbsp;<\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<p>  \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/itunes.apple.com\/ru\/app\/rambler.novosti\/id395455931?mt=8\">\u0420\u0430\u043c\u0431\u043b\u0435\u0440.\u041d\u043e\u0432\u043e\u0441\u0442\u0438<\/a>.<\/p>\n<h4>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f Apple Watch<\/h4>\n<p>  \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0447\u0430\u0441\u043e\u0432 (WatchKit app) \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0442\u0430\u043d\u0434\u0435\u043c\u0435 \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435 (WatchKit extension). \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0441\u0435\u0442\u0438 \u0438 \u0432\u0441\u044f \u043f\u0440\u043e\u0447\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0447\u0430\u0441\u044b. WatchKit app \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u0440\u0430\u043d\u044f\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 UI, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0437\u0432\u0443\u043a\u0438.<\/p>\n<p>  \u0414\u043e \u0432\u044b\u0445\u043e\u0434\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e WatchKit app \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c\u0438 \u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0435\u0437 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0442, \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043e\u0442 Apple. \u0411\u0443\u0434\u0435\u043c \u043d\u0430\u0434\u0435\u044f\u0442\u0441\u044f, \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 WatchKit SDK \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c standalone \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/a6e\/f1a\/239\/a6ef1a23924241d684ecbf53b09401b7.png\" alt=\"image\"\/><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0447\u0430\u0441\u044b \u043d\u0435 \u0441\u043f\u0430\u0440\u0435\u043d\u044b \u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u043c, \u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442 \u043e\u0431 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/48b\/404\/694\/48b40469407e4c9ea8005b7e59bea51d.PNG\" alt=\"image\"\/><\/p>\n<p>  1. \u041f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u043c\u0443\u0437\u044b\u043a\u0438, \u0441 \u0447\u0430\u0441\u043e\u0432. \u041f\u043e\u043a\u0430 \u043d\u0435 \u044f\u0441\u043d\u043e, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u044c \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0443\u0437\u044b\u043a\u0443.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/402\/f08\/7f4\/402f087f41f94d409faa775e092e40c1.PNG\" alt=\"image\"\/><\/p>\n<p>  2. \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0431\u0443\u0434\u0438\u043b\u044c\u043d\u0438\u043a\u0430\u043c\u0438, \u0442\u0430\u0439\u043c\u0435\u0440\u0430\u043c\u0438.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/c02\/aa7\/2fc\/c02aa72fc89b4f36976d7124e0a57830.PNG\" alt=\"image\"\/>&nbsp;&nbsp;&nbsp;<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/aa7\/ce5\/306\/aa7ce530627c499ab52c88f483853a89.PNG\" alt=\"image\"\/>&nbsp;&nbsp;&nbsp;<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/a57\/81e\/ce2\/a5781ece269f4540a8e7ef5a17054216.PNG\" alt=\"image\"\/><\/p>\n<p>  3. \u0414\u043e\u0441\u0442\u0443\u043f \u043a Apple Pay \u0438 Passbook.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/0b9\/cf2\/da7\/0b9cf2da771c4180bc5458c53bc9e6b5.png\" alt=\"image\"\/><\/p>\n<p>  Apple \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0432\u0440\u0435\u043c\u044f \u0438\u043b\u0438 \u0436\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0442 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b. \u0422\u0430\u043a\u0436\u0435, \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <a href=\"http:\/\/www.macrumors.com\/2015\/04\/23\/apple-rejects-app-citing-pebble\/\">\u0443\u043c\u043d\u044b\u0435 \u0447\u0430\u0441\u044b Pebble<\/a>.<\/p>\n<h4>\u0420\u0430\u043c\u0431\u043b\u0435\u0440.\u041d\u043e\u0432\u043e\u0441\u0442\u0438<\/h4>\n<p>  \u041c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u043e\u043b\u043d\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0438\u0445 \u0441\u0432\u043e\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Apple Watch. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u043c, \u043d\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0441 \u043f\u0430\u0440\u043e\u0447\u043a\u043e\u0439 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0435\u0439. \u0412\u0438\u0434\u0438\u043c\u043e, \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0448\u043b\u0438 \u043f\u043e \u0442\u043e\u043c\u0443 \u0436\u0435 \u043f\u0443\u0442\u0438. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f + \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u044b \u0434\u0430\u044e\u0442 \u043e\u0442\u0432\u0435\u0442\u044b \u043b\u0438\u0448\u044c \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u0443\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0433\u0434\u0435 \u043b\u044e\u0434\u0438 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u043f\u043e\u0432\u0435\u0437\u0435\u0442, \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 WatchKit.<\/p>\n<p>  \u041c\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0435, \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0433\u043e \u043e\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430:<\/p>\n<ul>\n<li> \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0447\u0430\u0441\u0430\u0445 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0438\u0445 \u0432 \u043f\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435 <\/li>\n<li> \u0414\u043b\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u043e\u043d\u0430 <\/li>\n<li> \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043d\u0430 \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u2014 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435 <\/li>\n<\/ul>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u0430\u044f: \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u0435\u0441\u0442\u044c, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0438\u0445 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u0436\u0435. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043d\u0430 \u0447\u0430\u0441\u044b. \u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435. WatchKit SDK \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u043a\u043b\u0430\u0441\u0441\u0430 <i>WKInterfaceController<\/i> <b>+ openParentApplication:reply:<\/b>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u0438\u0437 WatchKit extension \u0432 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0441\u0432\u0435\u0436\u0438\u0445 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439. \u0422\u0430\u043a \u0436\u0435, \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043b\u0431\u044d\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u043d\u043e\u0432\u043e\u0441\u0442\u0438. \u0415\u0441\u043b\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e, \u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a background \u0438 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u2014 iOS \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u0438\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e \u0438 \u043f\u0440\u0435\u0436\u0434\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0435\u0433\u043e. \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 <a href=\"http:\/\/www.fiveminutewatchkit.com\/blog\/2015\/3\/11\/one-weird-trick-to-fix-openparentapplicationreply\">\u0442\u0443\u0442<\/a>.<\/p>\n<h4>\u041e\u0431\u043c\u0435\u043d \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u043c \u0438 \u0447\u0430\u0441\u0430\u043c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <a href=\"https:\/\/developer.apple.com\/library\/ios\/documentation\/General\/Conceptual\/ExtensibilityPG\/ExtensionScenarios.html\">App Groups<\/a><\/h4>\n<p>  \u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e, \u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0449\u0435\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 WatchKit extension. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e-\u0443\u0434\u0430\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430. \u041a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 <a href=\"https:\/\/github.com\/developer-anreal\/WatchKitDemo\/tree\/shared-nsuserdefaults\">\u0433\u0438\u0442\u0445\u0430\u0431\u0435<\/a>, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043f\u043e \u0432\u0435\u0442\u043a\u0430\u043c \u2014 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u043e\u0432\u043e\u043c\u0443 \u0441\u043f\u043e\u0441\u043e\u0431\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f App Groups. <\/p>\n<h5>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f NSUserDefaults<\/h5>\n<p>  NSUserDefaults \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u043e\u0440\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u0432 ViewController \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>- (NSUserDefaults *)defaults {     if (_defaults == nil) {         \/\/ group.com.rambler.demo.shared - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0432 Developer Center         _defaults = [[NSUserDefaults alloc] initWithSuiteName:@&quot;group.com.rambler.demo.shared&quot;];     }          return _defaults; }  ...  - (IBAction)add:(id)sender {     [self addListItem:[@&quot;Item #&quot; stringByAppendingString:@(self.list.count + 1).stringValue]]; }  - (IBAction)remove:(id)sender {     [self removeLastListItem]; }  ...  - (void)addListItem:(id)listItem {     [self.list addObject:listItem];     [self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:self.list.count - 1 inSection:0]]                           withRowAnimation:UITableViewRowAnimationAutomatic];     [self.defaults setObject:self.list forKey:@&quot;list&quot;];     [self.defaults synchronize]; }  - (void)removeLastListItem {     if (self.list.count == 0) {         return;     }     [self.list removeLastObject];     [self.tableView deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:self.list.count inSection:0]]                           withRowAnimation:UITableViewRowAnimationAutomatic];     [self.defaults setObject:self.list forKey:@&quot;list&quot;];     [self.defaults synchronize]; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043b\u044f WatchKit extension<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>- (NSUserDefaults *)defaults {     if (_defaults == nil) {         _defaults = [[NSUserDefaults alloc] initWithSuiteName:@&quot;group.com.rambler.demo.shared&quot;];     }          return _defaults; }  ...  - (void)loadList {     [self.defaults synchronize];     self.list = [self.defaults objectForKey:@&quot;list&quot;];     [self updateListView]; }  - (void)updateListView {     if (self.table.numberOfRows) {         [self.table removeRowsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, self.table.numberOfRows)]];     }     if (self.list.count &gt; 0) {         [self.table insertRowsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, self.list.count)]                             withRowType:@&quot;ItemListRowControllerId&quot;];         NSUInteger idx = 0;         for (id item in self.list) {             ItemListRowController *rowController = [self.table rowControllerAtIndex:idx++];             [rowController.label setText:item];         }     } }  - (void)willActivate {     [super willActivate];     [self loadList]; }  - (IBAction)refresh:(id)sender {     [self loadList]; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f, \u043d\u043e \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u0432 \u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<p>  \u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 NSUserDefaults \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 <a href=\"https:\/\/github.com\/developer-anreal\/WatchKitDemo\/tree\/shared-nsuserdefaults\">\u044d\u0442\u043e\u0439 \u0432\u0435\u0442\u043a\u0435<\/a> \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<h5>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f NSFileCoordinator<\/h5>\n<p>  \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 NSFileCoordinator, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u0432 ViewController \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>- (NSFileCoordinator *)fileCoordinator {     if (_fileCoordinator == nil) {         _fileCoordinator = [[NSFileCoordinator alloc] init];     }          return _fileCoordinator; }  - (void)viewDidLoad {     [super viewDidLoad];     [self.fileCoordinator      coordinateReadingItemAtURL:[self presentedItemURL]      options:NSFileCoordinatorReadingWithoutChanges      error:nil      byAccessor:^(NSURL *newURL) {          NSData *data = [NSData dataWithContentsOfURL:newURL];          id object = [NSKeyedUnarchiver unarchiveObjectWithData:data];          self.list = object != nil ? [NSMutableArray arrayWithArray:object] : [@[] mutableCopy];          [self.tableView reloadData];     }]; }  ...  - (IBAction)add:(id)sender {     [self addListItem:[@&quot;Item #&quot; stringByAppendingString:@(self.list.count + 1).stringValue]]; }  - (IBAction)remove:(id)sender {     [self removeLastListItem]; }  #pragma mark Table delegate  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {     return self.list.count; }  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@&quot;ListItemCellId&quot;];     cell.textLabel.text = self.list[indexPath.row];     return cell; }  #pragma mark List actions  - (void)saveListWithCompletion:(void (^)(void))completion {     [self.fileCoordinator      coordinateWritingItemAtURL:[self presentedItemURL]      options:NSFileCoordinatorWritingForReplacing      error:nil      byAccessor:^(NSURL *newURL) {          NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self.list];          [data writeToURL:newURL atomically:YES];          if (completion != nil) {              completion();          }     }]; }  - (void)addListItem:(id)listItem {     [self.list addObject:listItem];     [self saveListWithCompletion:^{         [self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:self.list.count - 1 inSection:0]]                               withRowAnimation:UITableViewRowAnimationAutomatic];     }]; }  - (void)removeLastListItem {     if (self.list.count == 0) {         return;     }     [self.list removeLastObject];     [self saveListWithCompletion:^{         [self.tableView deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:self.list.count inSection:0]]                               withRowAnimation:UITableViewRowAnimationAutomatic];     }]; }  #pragma mark NSFilePresenter impl  - (NSURL *)presentedItemURL {     NSURL *containerURL =         [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@&quot;group.com.rambler.demo.shared&quot;];     return [containerURL URLByAppendingPathComponent:@&quot;list&quot;]; }  - (NSOperationQueue *)presentedItemOperationQueue {     return [NSOperationQueue mainQueue]; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043b\u044f WatchKit extension<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>- (NSFileCoordinator *)fileCoordinator {     if (_fileCoordinator == nil) {         _fileCoordinator = [[NSFileCoordinator alloc] init];     }          return _fileCoordinator; }  - (void)awakeWithContext:(id)context {     [super awakeWithContext:context];     [NSFileCoordinator addFilePresenter:self]; }  - (void)loadList {     [self.fileCoordinator      coordinateReadingItemAtURL:[self presentedItemURL]      options:NSFileCoordinatorReadingWithoutChanges      error:nil      byAccessor:^(NSURL *newURL) {          NSData *data = [NSData dataWithContentsOfURL:newURL];          id object = [NSKeyedUnarchiver unarchiveObjectWithData:data];          self.list = object != nil ? [NSMutableArray arrayWithArray:object] : [@[] mutableCopy];          [self populateListView];      }]; }  - (void)populateListView {     if (self.table.numberOfRows) {         [self.table removeRowsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, self.table.numberOfRows)]];     }     if (self.list.count &gt; 0) {         [self.table insertRowsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, self.list.count)]                             withRowType:@&quot;ItemListRowControllerId&quot;];         NSUInteger idx = 0;         for (id item in self.list) {             ItemListRowController *rowController = [self.table rowControllerAtIndex:idx++];             [rowController.label setText:item];         }     } }  - (void)updateListView:(NSArray *)newList {     NSIndexSet *newItemsIndexSet = [newList indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {         return ![self.list containsObject:obj];     }];     NSIndexSet *removedItemsIndexSet = [self.list indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {         return ![newList containsObject:obj];     }];          [self.table removeRowsAtIndexes:removedItemsIndexSet];          for (id newItem in [newList objectsAtIndexes:newItemsIndexSet]) {         [self.table insertRowsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(self.table.numberOfRows, 1)]                             withRowType:@&quot;ItemListRowControllerId&quot;];         ItemListRowController *rowController = [self.table rowControllerAtIndex:self.table.numberOfRows - 1];         [rowController.label setText:newItem];     } }  - (void)willActivate {     [super willActivate];     [self loadList]; }  - (void)didDeactivate {     [super didDeactivate]; }  - (IBAction)refresh:(id)sender {     [self loadList]; }  #pragma mark NSFilePresenter impl  - (NSURL *)presentedItemURL {     NSURL *containerURL =     [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@&quot;group.com.rambler.demo.shared&quot;];     return [containerURL URLByAppendingPathComponent:@&quot;list&quot;]; }  - (NSOperationQueue *)presentedItemOperationQueue {     return [NSOperationQueue mainQueue]; }  - (void)presentedItemDidChange {     [self.fileCoordinator      coordinateReadingItemAtURL:[self presentedItemURL]      options:NSFileCoordinatorReadingWithoutChanges      error:nil      byAccessor:^(NSURL *newURL) {          NSData *data = [NSData dataWithContentsOfURL:newURL];          id object = [NSKeyedUnarchiver unarchiveObjectWithData:data];          NSArray *newItems = [NSMutableArray arrayWithArray:object];          [self updateListView:newItems];          self.list = newItems;      }]; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d <a href=\"https:\/\/github.com\/developer-anreal\/WatchKitDemo\/tree\/shared-nsfilecoordinator\">\u0437\u0434\u0435\u0441\u044c<\/a><\/p>\n<p>  \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <b> \u2014 (void)presentedItemDidChange<\/b> \u0438\u0437 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 <b>NSFilePresenter<\/b>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442, \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f. \u0417\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u0434\u0435 WatchKit extension \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>  \u0423\u043c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438 \u0438\u0437 Mutual Mobile \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043e\u0431\u0435\u0440\u0442\u043a\u0443 MMWormhole, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 NSFileCoordinator \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 <a href=\"https:\/\/developer.apple.com\/library\/mac\/documentation\/Darwin\/Conceptual\/MacOSXNotifcationOv\/DarwinNotificationConcepts\/DarwinNotificationConcepts.html\">Darwin Notifications<\/a> \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 <a href=\"https:\/\/github.com\/mutualmobile\/MMWormhole\">github<\/a>. <\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044c: \u0438\u0437 \u0447\u0430\u0441\u043e\u0432 \u043d\u0435\u043b\u044c\u0437\u044f \u201c\u0440\u0430\u0437\u0431\u0443\u0434\u0438\u0442\u044c\u201d \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435. \u041c\u044b \u0445\u043e\u0442\u0435\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e Force Touch \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u043e\u0441\u044c \u043c\u0435\u043d\u044e \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435 \u0441 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043d\u043e\u0432\u043e\u0441\u0442\u044c\u044e. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u0435\u0439\u0447\u0430\u0441 SDK \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044d\u0442\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Camera \u0438 iMessage \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435. \u0414\u0443\u043c\u0430\u044e, \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 SDK \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c. Apple \u0432\u0437\u0430\u043c\u0435\u043d \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Handoff \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0421\u043b\u0430\u0431\u0430\u044f, \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c\u0441\u044f, \u0437\u0430\u043c\u0435\u043d\u0430, \u043d\u043e \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041a \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u0440\u0435\u043b\u0438\u0437\u0430 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435, \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e.<\/p>\n<p>  \u041d\u0435 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u0432 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u043c \u0438 \u0447\u0430\u0441\u0430\u043c\u0438 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f Bluetooth \u0438 Wi-Fi. \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043a\u043e\u0433\u0434\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043d\u0430 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u0432\u044f\u0437\u044c, \u0431\u044b\u043b\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043d\u0430 \u0447\u0430\u0441\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0441\u0436\u0430\u0442\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p>  \u041f\u043e\u0437\u0436\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0447\u0430\u0441\u0430\u043c\u0438 \u0431\u044b\u043b\u043e \u0437\u0430\u043c\u0435\u0442\u043d\u043e, \u0447\u0442\u043e UI \u043f\u0440\u0438\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u0435\u0442, \u0430 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u043b\u0433\u043e. \u0415\u0441\u0442\u044c \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043b\u0430\u0433\u043e\u0432 \u2014 \u044d\u0442\u043e \u041f\u041e \u0447\u0430\u0441\u043e\u0432, \u0442.\u043a. \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u0430 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u2014 \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0447\u0430\u0441\u0430\u0445. \u041f\u0440\u0430\u0432\u0434\u0430, \u043a\u044d\u0448 \u043d\u0435 \u0440\u0435\u0437\u0438\u043d\u043e\u0432\u044b\u0439, \u0438 \u043f\u0440\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0447\u0438\u0441\u0442\u0438\u0442\u044c.<\/p>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c, \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0435 \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u0430. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 Apple Watch \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e. \u041d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0442\u0430\u043a \u0436\u0435 \u0436\u0430\u043b\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0447\u0430\u0441\u0442\u044b\u0435 \u043e\u0442\u043a\u0430\u0437\u044b \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Apple Watch, \u043f\u0440\u0438\u0447\u0435\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0431\u044b\u043b\u0438 \u0440\u0430\u0437\u043d\u044b\u043c\u0438:<\/p>\n<ul>\n<li> \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u0430\u043c <\/li>\n<li> \u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Apple Watch \u0434\u0435\u043b\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0431\u0440\u0430\u043c\u043b\u0435\u043d\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441\u0430\u043c\u0438\u0445 \u0447\u0430\u0441\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <a href=\"http:\/\/infinitapps.com\/bezel\/\">Bezel<\/a> <\/li>\n<li> \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 private API <\/li>\n<li> \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 App Store \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u043c <a href=\"https:\/\/developer.apple.com\/app-store\/watch\/\">Apple<\/a> <\/li>\n<\/ul>\n<p>  \u041c\u044b \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u043d\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u0430. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 Apple Watch, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043f\u0440\u043e\u0447\u0435\u0441\u0442\u044c <a href=\"http:\/\/www.fiveminutewatchkit.com\/blog\/2015\/4\/2\/submitting-your-watchkit-app\">\u044d\u0442\u0443<\/a> \u0441\u0442\u0430\u0442\u044c\u044e <\/p>\n<p>  \u0421\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435, \u0447\u0442\u043e Apple \u043f\u0440\u043e\u0449\u0443\u043f\u044b\u0432\u0430\u0435\u0442 \u043f\u0443\u0442\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044f, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c. \u0418 \u0432 \u0441\u043a\u043e\u0440\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 WWDC&#8217;15) \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044f\u0442 \u043d\u043e\u0432\u044b\u0439 SDK.<\/p>\n<h4>\u0421\u0441\u044b\u043b\u043a\u0438 \u043f\u043e \u0442\u0435\u043c\u0435<\/h4>\n<p>  <a href=\"https:\/\/devforums.apple.com\/community\/ios\/watchkit\">\u0424\u043e\u0440\u0443\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432<\/a> (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442)<br \/>  <a href=\"http:\/\/www.fiveminutewatchkit.com\/\">\u041a\u0440\u0430\u0442\u043a\u0438\u0435 \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435<\/a><br \/>  <a href=\"http:\/\/www.watchkitresources.com\/\">\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u043e\u0432 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432<\/a><br \/>  <a href=\"http:\/\/natashatherobot.com\/\">\u0411\u043b\u043e\u0433 \u0441 \u0441\u0435\u0440\u0438\u0435\u0439 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e WatchKit SDK<\/a>     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/257315\/\"> http:\/\/habrahabr.ru\/post\/257315\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t24 \u0430\u043f\u0440\u0435\u043b\u044f 2015 \u0433\u043e\u0434\u0430 Apple \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u0436\u0443 \u0443\u043c\u043d\u044b\u0435 \u0447\u0430\u0441\u044b Apple Watch, \u0441\u043f\u0443\u0441\u0442\u044f \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u043d\u043e\u043d\u0441\u0430 \u043d\u0430 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u041a\u0430\u043b\u0438\u0444\u043e\u0440\u043d\u0438\u0438. \u0420\u0430\u043c\u0431\u043b\u0435\u0440 \u043d\u0435 \u043c\u043e\u0433 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0435. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0432\u0448\u0438\u0441\u044c \u0441 WatchKit SDK \u0438 <a href=\"https:\/\/developer.apple.com\/watch\/human-interface-guidelines\/\">\u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u0430\u043c\u0438<\/a> \u043d\u0430\u043c \u0441\u0442\u0430\u043b\u043e \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438 \u0432 \u0446\u0435\u043b\u043e\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u043d\u044f\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/068\/6bd\/ca6\/0686bdca6d0f4fa09dc2c5f88b3314d1.png\" alt=\"image\"\/>&nbsp;&nbsp;<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/8a3\/973\/660\/8a3973660e144cf8977a6eaccdbed650.png\" alt=\"image\"\/>&nbsp;&nbsp;<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/2d9\/b2a\/5db\/2d9b2a5db2bc432d829e67ad8c465da3.png\" alt=\"image\"\/>&nbsp;&nbsp;<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/files\/539\/d62\/8cb\/539d628cbe6b4311a3c5ce552b52104a.png\" alt=\"image\"\/>&nbsp;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-256859","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/256859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=256859"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/256859\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=256859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=256859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=256859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}