{"id":2572,"date":"2017-12-25T15:15:19","date_gmt":"2017-12-25T11:15:19","guid":{"rendered":"https:\/\/blog.alwawee.ru\/?p=2572"},"modified":"2017-12-25T16:20:48","modified_gmt":"2017-12-25T12:20:48","slug":"appcode-vs-xcode","status":"publish","type":"post","link":"https:\/\/blog.alwawee.ru\/?p=2572","title":{"rendered":"AppCode vs XCode"},"content":{"rendered":"<p>AppCode has features that are not present in Xcode. At a minimum, AppCode will be a good addition to XCode.<\/p>\n<p>The full list of features is <a href=\"https:\/\/www.jetbrains.com\/objc\/features\/\">here<\/a>.<\/p>\n<p>Here I will show examples of using AppCode features. Inspired by <a href=\"https:\/\/blog.jetbrains.com\/objc\/2015\/07\/5-favorite-appcode-shortcuts-by-pawel-dudek\/\">this article<\/a>, that was very usefull for me.<\/p>\n<p><strong>1. Quick Fix feature in AppCode is more convenient. Refactoring to Modern Objective C syntax using Quick Fix (Alt + Enter).<\/strong><\/p>\n<p>Before:<\/p>\n<pre>\r\n- (NSDictionary *)convertToDicForCC\r\n{\r\n    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:self.deviceId,@\"id\",nil];\r\n    [dict setObject:self.parentId forKey:@\"parent_id\"];\r\n    [dict setObject:self.deviceName forKey:@\"name\"];\r\n    [dict setObject:[REDeviceUtils stringDeviceFromType:self.devType] forKey:@\"device_type\"];\r\n    [dict setObject:[REDeviceUtils viewNameFromViewType:self.viewType] forKey:@\"device_view\"];\r\n    [dict setObject:self.roomName forKey:@\"room\"];\r\n    [dict setObject:self.moduleName forKey:@\"module\"];\r\n    [dict setObject:self.modelName forKey:@\"model\"];\r\n    [dict setObject:[NSString stringWithFormat: @\"%i\", self.floorId] forKey:@\"floor\"];\r\n    [dict setObject:[NSNumber numberWithBool:self.hidden] forKey:@\"hidden\"];\r\n    [dict setObject:@(self.order) forKey:@\"order\"];\r\n    return dict;\r\n}\r\n<\/pre>\n<p>After:<\/p>\n<pre>\r\n- (NSDictionary *)convertToDicForCC\r\n{\r\n    NSMutableDictionary *dict = [@{@\"id\": self.deviceId} mutableCopy];\r\n    dict[@\"parent_id\"] = self.parentId;\r\n    dict[@\"name\"] = self.deviceName;\r\n    dict[@\"device_type\"] = [REDeviceUtils stringDeviceFromType:self.devType];\r\n    dict[@\"device_view\"] = [REDeviceUtils viewNameFromViewType:self.viewType];\r\n    dict[@\"room\"] = self.roomName;\r\n    dict[@\"module\"] = self.moduleName;\r\n    dict[@\"model\"] = self.modelName;\r\n    dict[@\"floor\"] = [NSString stringWithFormat:@\"%i\", self.floorId];\r\n    dict[@\"hidden\"] = @(self.hidden);\r\n    dict[@\"order\"] = @(self.order);\r\n    return dict;\r\n}\r\n<\/pre>\n<p><strong>2. Simplifying expressions using Quick Fix.<\/strong><br \/>\nBefore:<\/p>\n<pre>\r\n- (BOOL)countTimers\r\n{\r\n    [self readTimers];\r\n    \r\n    return (self.filteredOnTimerArray.count > 0 || self.filteredOffTimerArray.count > 0\r\n            || self.localTimerOnArray.count > 0 || self.localTimerOffArray.count > 0) ? YES : NO;\r\n}\r\n<\/pre>\n<p>After:<\/p>\n<pre>\r\n- (BOOL)countTimers\r\n{\r\n    [self readTimers];\r\n    \r\n    return self.filteredOnTimerArray.count > 0 || self.filteredOffTimerArray.count > 0\r\n            || self.localTimerOnArray.count > 0 || self.localTimerOffArray.count > 0;\r\n}\r\n<\/pre>\n<p><strong>3. AppCode can generate code for you. Use Command + N. <\/strong><br \/>\nGenerated code &#8211; isEqual and hash methods for a class that has properties &#8211; objectID, name, selected:<\/p>\n<pre>\r\n- (BOOL)isEqual:(id)other {\r\n    if (other == self)\r\n        return YES;\r\n    if (!other || ![[other class] isEqual:[self class]])\r\n        return NO;\r\n\r\n    return [self isEqualToObject:other];\r\n}\r\n\r\n- (BOOL)isEqualToObject:(REBaseObject *)object {\r\n    if (self == object)\r\n        return YES;\r\n    if (object == nil)\r\n        return NO;\r\n    if (self.objectID != object.objectID)\r\n        return NO;\r\n    if (self.name != object.name && ![self.name isEqualToString:object.name])\r\n        return NO;\r\n    if (self.selected != object.selected)\r\n        return NO;\r\n    return YES;\r\n}\r\n\r\n- (NSUInteger)hash {\r\n    NSUInteger hash = (NSUInteger) self.objectID;\r\n    hash = hash * 31u + [self.name hash];\r\n    hash = hash * 31u + self.selected;\r\n    return hash;\r\n}\r\n<\/pre>\n<p>Description method generated for a class with many properties: <\/p>\n<pre>\r\n- (NSString *)description {\r\n    NSMutableString *description = [NSMutableString stringWithFormat:@\"<%@: \", NSStringFromClass([self class])];\r\n    [description appendFormat:@\"self.roomDic=%@\", self.roomDic];\r\n    [description appendFormat:@\", self.UID=%@\", self.UID];\r\n    [description appendFormat:@\", self.homeID=%@\", self.homeID];\r\n    [description appendFormat:@\", self.name=%@\", self.name];\r\n    [description appendFormat:@\", self.owner=%d\", self.owner];\r\n    [description appendFormat:@\", self.hasCC=%d\", self.hasCC];\r\n    [description appendFormat:@\", self.isAlarmed=%d\", self.isAlarmed];\r\n    [description appendFormat:@\", self.users=%@\", self.users];\r\n    [description appendFormat:@\", self.hasWIFISockets=%d\", self.hasWIFISockets];\r\n    [description appendString:@\">\"];\r\n    return description;\r\n}\r\n<\/pre>\n<p><strong>4. Imports do not block other code and are folded. Typos in names are shown and renaming works better than in XCode.<\/strong><br \/>\nThese are small features, but very useful. Here defered should be renamed to deferred.<br \/>\n<a href=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.46.21.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.46.21.png\" alt=\"\" width=\"1301\" height=\"332\" class=\"aligncenter size-full wp-image-2584\" srcset=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.46.21.png 1301w, https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.46.21-300x77.png 300w, https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.46.21-768x196.png 768w, https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.46.21-1024x261.png 1024w\" sizes=\"auto, (max-width: 1301px) 100vw, 1301px\" \/><\/a><\/p>\n<p><strong>5. Unused imports and properties are shown. <\/strong><br \/>\nXCode doesn&#8217;t do that.<br \/>\n<a href=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.54.56.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.54.56.png\" alt=\"\" width=\"436\" height=\"198\" class=\"aligncenter size-full wp-image-2588\" srcset=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.54.56.png 436w, https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-14.54.56-300x136.png 300w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/a><\/p>\n<p><strong>6. Scroll from source feature in project navigator. <\/strong><br \/>\nYou can open a source file by name as in XCode, but after that you can also navigate to that source file in a project tree in one click.<br \/>\n<a href=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-15.07.39.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2017\/12\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2017-12-25-\u0432-15.07.39.png\" alt=\"\" width=\"210\" height=\"202\" class=\"aligncenter size-full wp-image-2590\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>AppCode has features that are not present in Xcode. At a minimum, AppCode will be a good addition to XCode. The full list of features is here. Here I will show examples of using AppCode features. Inspired by this article, that was very usefull for me. 1. Quick Fix feature in AppCode is more convenient. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[196,26,197],"class_list":["post-2572","post","type-post","status-publish","format-standard","hentry","category-ios","tag-appcode","tag-objective-c-2","tag-xcode"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AppCode vs XCode - Denis Kutlubaev<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.alwawee.ru\/?p=2572\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AppCode vs XCode - Denis Kutlubaev\" \/>\n<meta property=\"og:description\" content=\"AppCode has features that are not present in Xcode. At a minimum, AppCode will be a good addition to XCode. The full list of features is here. Here I will show examples of using AppCode features. Inspired by this article, that was very usefull for me. 1. Quick Fix feature in AppCode is more convenient. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.alwawee.ru\/?p=2572\" \/>\n<meta property=\"og:site_name\" content=\"Denis Kutlubaev\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/alwaweemobile\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-25T11:15:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-25T12:20:48+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blog.alwawee.com\/?attachment_id=1982\" \/>\n<meta name=\"author\" content=\"Denis Kutlubaev\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Denis Kutlubaev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2572#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2572\"},\"author\":{\"name\":\"Denis Kutlubaev\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#\\\/schema\\\/person\\\/58f1f1f57155b48afab83ba53b3e26a7\"},\"headline\":\"AppCode vs XCode\",\"datePublished\":\"2017-12-25T11:15:19+00:00\",\"dateModified\":\"2017-12-25T12:20:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2572\"},\"wordCount\":194,\"commentCount\":0,\"keywords\":[\"AppCode\",\"Objective-C\",\"XCode\"],\"articleSection\":[\"iOS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2572#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2572\",\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2572\",\"name\":\"AppCode vs XCode - Denis Kutlubaev\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#website\"},\"datePublished\":\"2017-12-25T11:15:19+00:00\",\"dateModified\":\"2017-12-25T12:20:48+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#\\\/schema\\\/person\\\/58f1f1f57155b48afab83ba53b3e26a7\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2572#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2572\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=2572#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.alwawee.ru\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AppCode vs XCode\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#website\",\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/\",\"name\":\"Denis Kutlubaev\",\"description\":\"iOS Development\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.alwawee.ru\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#\\\/schema\\\/person\\\/58f1f1f57155b48afab83ba53b3e26a7\",\"name\":\"Denis Kutlubaev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg\",\"caption\":\"Denis Kutlubaev\"},\"description\":\"iOS Developer, creator of Tornado Browser and many other popular apps\",\"sameAs\":[\"http:\\\/\\\/dennis.alwawee.com\"],\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AppCode vs XCode - Denis Kutlubaev","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.alwawee.ru\/?p=2572","og_locale":"en_US","og_type":"article","og_title":"AppCode vs XCode - Denis Kutlubaev","og_description":"AppCode has features that are not present in Xcode. At a minimum, AppCode will be a good addition to XCode. The full list of features is here. Here I will show examples of using AppCode features. Inspired by this article, that was very usefull for me. 1. Quick Fix feature in AppCode is more convenient. [&hellip;]","og_url":"https:\/\/blog.alwawee.ru\/?p=2572","og_site_name":"Denis Kutlubaev","article_publisher":"https:\/\/www.facebook.com\/alwaweemobile","article_published_time":"2017-12-25T11:15:19+00:00","article_modified_time":"2017-12-25T12:20:48+00:00","og_image":[{"url":"http:\/\/blog.alwawee.com\/?attachment_id=1982","type":"","width":"","height":""}],"author":"Denis Kutlubaev","twitter_misc":{"Written by":"Denis Kutlubaev","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.alwawee.ru\/?p=2572#article","isPartOf":{"@id":"https:\/\/blog.alwawee.ru\/?p=2572"},"author":{"name":"Denis Kutlubaev","@id":"https:\/\/blog.alwawee.ru\/#\/schema\/person\/58f1f1f57155b48afab83ba53b3e26a7"},"headline":"AppCode vs XCode","datePublished":"2017-12-25T11:15:19+00:00","dateModified":"2017-12-25T12:20:48+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.alwawee.ru\/?p=2572"},"wordCount":194,"commentCount":0,"keywords":["AppCode","Objective-C","XCode"],"articleSection":["iOS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.alwawee.ru\/?p=2572#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.alwawee.ru\/?p=2572","url":"https:\/\/blog.alwawee.ru\/?p=2572","name":"AppCode vs XCode - Denis Kutlubaev","isPartOf":{"@id":"https:\/\/blog.alwawee.ru\/#website"},"datePublished":"2017-12-25T11:15:19+00:00","dateModified":"2017-12-25T12:20:48+00:00","author":{"@id":"https:\/\/blog.alwawee.ru\/#\/schema\/person\/58f1f1f57155b48afab83ba53b3e26a7"},"breadcrumb":{"@id":"https:\/\/blog.alwawee.ru\/?p=2572#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.alwawee.ru\/?p=2572"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.alwawee.ru\/?p=2572#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.alwawee.ru\/"},{"@type":"ListItem","position":2,"name":"AppCode vs XCode"}]},{"@type":"WebSite","@id":"https:\/\/blog.alwawee.ru\/#website","url":"https:\/\/blog.alwawee.ru\/","name":"Denis Kutlubaev","description":"iOS Development","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.alwawee.ru\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.alwawee.ru\/#\/schema\/person\/58f1f1f57155b48afab83ba53b3e26a7","name":"Denis Kutlubaev","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg","caption":"Denis Kutlubaev"},"description":"iOS Developer, creator of Tornado Browser and many other popular apps","sameAs":["http:\/\/dennis.alwawee.com"],"url":"https:\/\/blog.alwawee.ru\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts\/2572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2572"}],"version-history":[{"count":19,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts\/2572\/revisions"}],"predecessor-version":[{"id":2594,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts\/2572\/revisions\/2594"}],"wp:attachment":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}