{"id":4965,"date":"2017-12-21T12:35:55","date_gmt":"2017-12-21T11:35:55","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=4965"},"modified":"2023-09-04T10:41:23","modified_gmt":"2023-09-04T08:41:23","slug":"xamarin-przeglad-komercyjnych-projektow-pod-wzgledem-wspoldzielenia-kodu","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/xamarin-przeglad-komercyjnych-projektow-pod-wzgledem-wspoldzielenia-kodu\/","title":{"rendered":"Xamarin. Przegl\u0105d komercyjnych projekt\u00f3w pod wzgl\u0119dem wsp\u00f3\u0142dzielenia kodu."},"content":{"rendered":"\n<p>Mijaj\u0105 w\u0142a\u015bnie dwa lata odk\u0105d postanowi\u0142em rozpocz\u0105\u0107 prac\u0119 z platform\u0105 Xamarin. Pomy\u015bla\u0142em, \u017ce jest to dobra okazja, \u017ceby sprawdzi\u0107 jak wygl\u0105da, tak chwalony przez tw\u00f3rc\u00f3w tego ekosystemu, wysoki poziom wsp\u00f3\u0142dzielenia kodu mi\u0119dzy systemami.<\/p>\n\n\n\n<p>Jako \u017ce za przyk\u0142ady pos\u0142u\u017c\u0105 mi projekty w kt\u00f3rych uczestniczy\u0142em ja i moi koledzy, b\u0119d\u0105 to systemy Android oraz iOS w projektach typu Xamarin.Native oraz Xamarin.Forms.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Metoda liczenia<\/h2>\n\n\n\n<p>Dane, kt\u00f3re pos\u0142u\u017cy\u0142y do por\u00f3wnania, to policzona w projektach liczba linii kodu oraz plik\u00f3w, z uwzgl\u0119dnieniem przestrzeni nazw do kt\u00f3rej nale\u017c\u0105. Jako, \u017ce interesuje nas g\u0142\u00f3wnie nak\u0142ad pracy dla programisty potrzebny do napisania aplikacji, to w obliczeniach zosta\u0142y pomini\u0119te pliki generowane&nbsp; przez IDE np. designer.cs czy linie b\u0119d\u0105ce komentarzami, lini\u0105 pust\u0105 czy \u201eusing\u2019iem\u201d. Dodatkowo cz\u0119\u015b\u0107 wsp\u00f3lna nie uwzgl\u0119dnia WebApi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Projekt 1<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-tabelka-Software-Development-1.png\"><img decoding=\"async\" width=\"295\" height=\"104\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-tabelka-Software-Development-1.png\" alt=\"Projekt 1 tabela\" class=\"wp-image-4984\"\/><\/a><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-linie-Software-Development.png\"><img decoding=\"async\" width=\"379\" height=\"190\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-linie-Software-Development.png\" alt=\"Wykres ko\u0142owy - Linie: Shared 42%, Android 31%, iOS 27%\" class=\"wp-image-4968\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-linie-Software-Development.png 379w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-linie-Software-Development-300x150.png 300w\" sizes=\"(max-width: 379px) 100vw, 379px\" \/><\/a><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-linie-Software-Development.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-pliki-Software-Development.png\" alt=\"Wykres ko\u0142owy - Pliki: Shared 55%, Android 25%, iOS 20%\" class=\"wp-image-4968\"\/><\/a><\/figure>\n\n\n\n<p>Xamarin: Native<br>Typ: Biznes \u2013 wiadomo\u015bci<br>Cechy: animacje, media spo\u0142eczno\u015bciowe, odtwarzanie wideo<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Projekt 2<\/strong><\/h3>\n\n\n\n<p>Xamarin: Native<br>Typ: Rozrywka \u2013 quizy, wiadomo\u015bci<br>Cechy: animacje, du\u017ca interakcja u\u017cytkownika, media spo\u0142eczno\u015bciowe, powiadomienia<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt2-tabelka-Software-Development.png\" alt=\"Projekt 2 tabela\" class=\"wp-image-4984\"\/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-linie-Software-Development.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt2-wspoldzielone-linie-Software-Development.png\" alt=\"Wykres ko\u0142owy - Linie: Shared 58%, Android 11%, iOS 21%\" class=\"wp-image-4968\"\/><\/a><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-pliki-Software-Development.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt2-wspoldzielone-pliki-Software-Development.png\" alt=\"Wykres ko\u0142owy - Pliki: Shared 63%, Android 19%, iOS 18%\" class=\"wp-image-4971\"\/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Projekt 3<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt3-tabelka-Software-Development.png\" alt=\"Projekt 3 tabela\" class=\"wp-image-4984\"\/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-linie-Software-Development.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt3-wspoldzielone-linie-Software-Development.png\" alt=\"Wykres ko\u0142owy - Linie: Shared 37%, Android 35%, iOS 25%\" class=\"wp-image-4968\"\/><\/a><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-pliki-Software-Development.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt3-wspoldzielone-pliki-Software-Development.png\" alt=\"Wykres ko\u0142owy - Pliki: Shared 49%, Android 26%, iOS 25%\" class=\"wp-image-4971\"\/><\/a><\/figure>\n\n\n\n<p>Xamarin: Native<br>Typ: U\u017cytkowa\u00a0\u2013 pogoda<br>Cechy: animacje, du\u017ca interakcja u\u017cytkownika, wykorzystanie aparatu, lokalizacja<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Projekt 4<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt4-tabelka-Software-Development.png\" alt=\"Projekt 4 tabela\" class=\"wp-image-4984\"\/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-linie-Software-Development.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt4-wspoldzielone-linie-Software-Development.png\" alt=\"Wykres ko\u0142owy - Linie: Shared 86%, Android 7%, iOS 7%\" class=\"wp-image-4968\"\/><\/a><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-pliki-Software-Development.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt4-wspoldzielone-pliki-Software-Development.png\" alt=\"Wykres ko\u0142owy - Pliki: Shared 84%, Android 9%, iOS 7%\" class=\"wp-image-4971\"\/><\/a><\/figure>\n\n\n\n<p>Xamarin: Forms<br>Typ: U\u017cytkowa \u2013 segregacja \u015bmieci<br>Cechy: dane tabelaryczne, lokalizacja, mapy<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Projekt 5<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt5-tabelka-Software-Development.png\" alt=\"Projekt 5 tabela\" class=\"wp-image-4984\"\/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-linie-Software-Development.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt5-wspoldzielone-linie-Software-Development.png\" alt=\"Wykres ko\u0142owy - Linie: Shared 77%, Android 11%, iOS 12%\" class=\"wp-image-4968\"\/><\/a><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt1-wspoldzielone-pliki-Software-Development.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/Xamarin-Projekt5-wspoldzielone-pliki-Software-Development.png\" alt=\"Wykres ko\u0142owy - Pliki: Shared 74%, Android 15%, iOS 11%\" class=\"wp-image-4971\"\/><\/a><\/figure>\n\n\n\n<p>Xamarin: Forms<br>Typ: U\u017cytkowa\u00a0\u2013 zarz\u0105dzanie alarmami<br>Cechy: prezentacja danych, powiadomienia<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Xamarin.Forms<\/h2>\n\n\n\n<p>Pierwsze trzy projekty s\u0105 typu Xamarin.Native, a pozosta\u0142e dwa typu Xamarin.Forms. Niebieski kolor na wykresach oznacza dane wsp\u00f3lne dla projekt\u00f3w Android oraz iOS i wida\u0107, \u017ce wyra\u017an\u0105 przewag\u0119 pod tym wzgl\u0119dem maj\u0105 projekty typu Xamarin.Forms. Microsoft twierdzi, \u017ce w tym przypadku wsp\u00f3lny kod mo\u017ce wynosi\u0107 do 95%. Nam uda\u0142o si\u0119 uzyska\u0107 ok 75% &#8211; 85%, co uwa\u017cam za dobry wynik.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Xamarin.Native<\/h2>\n\n\n\n<p>Je\u015bli chodzi o projekty Xamarin.Native, \u201egwarancja\u201d opiewa na ok 70%. Tutaj w por\u00f3wnaniu do Xamarin.Forms sytuacja troch\u0119 si\u0119 komplikuje. Tylko Projekt 2 ma podobne proporcje liczby linii kodu do plik\u00f3w \u2013 tak jak projekty 4 i 5. Mo\u017cemy zauwa\u017cy\u0107, \u017ce w projektach 1 i 3 te proporcje s\u0105 mniejsze o ok 13%. Wszystkie natomiast projekty 1,2,3 maj\u0105 co najmniej 50% wsp\u00f3lnych plik\u00f3w. Oceniam, \u017ce w tym wypadku uzyskali\u015bmy ok 40% &#8211; 60% cz\u0119\u015bci wsp\u00f3lnych.<\/p>\n\n\n\n<p>Warto r\u00f3wnie\u017c zauwa\u017cy\u0107, \u017ce we wszystkich pi\u0119ciu projektach pozosta\u0142e kolory, czyli Android oraz iOS, s\u0105 sobie praktycznie r\u00f3wne.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wnioski<\/h2>\n\n\n\n<p>Podsumowuj\u0105c, projekty Xamarin.Native, kt\u00f3re s\u0105 lepsze dla aplikacji wymagaj\u0105cych animacji czy r\u00f3\u017cnorakiej interakacji u\u017cytkownika, b\u0105d\u017a API dedykowanego systemowi, posiadaj\u0105 mniej wsp\u00f3lnego kodu, gdy\u017c specyficzne zachowania sytem\u00f3w trzeba napisa\u0107 osobno dla ka\u017cdej z platform Android i iOS. Mimo wszystko wi\u0119cej ni\u017c po\u0142owa aplikacji to cz\u0119\u015b\u0107 wsp\u00f3lna.<br>Xamarin.Forms \u015bwietnie nadaje si\u0119 do aplikacji, kt\u00f3re maj\u0105 prezentowa\u0107 statyczn\u0105 zawarto\u015b\u0107 \u2013 czyli tak\u0105, kt\u00f3ra si\u0119 nie animuje, nie rusza itd. Takie zachowania oraz mechanizmy potrzebne do ich realizacji nie s\u0105 podobne dla Android\u2019a i iOS\u2019a, przez co nie daj\u0105 si\u0119 \u0142atwo uwsp\u00f3lni\u0107. Reasumuj\u0105c musz\u0119 przyzna\u0107, \u017ce Xamarin spe\u0142nia pok\u0142adane w nim nadzieje i pozwala na du\u017c\u0105 oszcz\u0119dno\u015b\u0107 czasu i pieni\u0119dzy. Co wi\u0119cej, nadaje si\u0119 do praktycznie ka\u017cdego typu aplikacji. Wystarczy tylko mie\u0107 za\u0142o\u017cenia i oczekiwania dobrze dobrane do typu Xamarina, kt\u00f3rego si\u0119 wykorzysta do napisania aplikacji. Bior\u0105c pod uwag\u0119 powy\u017csze mog\u0119 sobie pogratulowa\u0107, poniewa\u017c decyzja o wybraniu tej technologi by\u0142a w\u0142a\u015bciwa.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;4965&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;9&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;3&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;2&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;3\\\/5&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;Xamarin. Przegl\u0105d komercyjnych projekt\u00f3w pod wzgl\u0119dem wsp\u00f3\u0142dzielenia kodu.&quot;,&quot;width&quot;:&quot;95&quot;,&quot;_legend&quot;:&quot;{score}\\\/5&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 95px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            3\/5    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Mijaj\u0105 w\u0142a\u015bnie dwa lata odk\u0105d postanowi\u0142em rozpocz\u0105\u0107 prac\u0119 z platform\u0105 Xamarin. Pomy\u015bla\u0142em, \u017ce jest to dobra okazja, \u017ceby sprawdzi\u0107 jak &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/xamarin-przeglad-komercyjnych-projektow-pod-wzgledem-wspoldzielenia-kodu\/\">Continued<\/a><\/p>\n","protected":false},"author":145,"featured_media":5028,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1318],"tags":[287,464,521,275,413],"class_list":["post-4965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-zarzadzanie-projektami","tag-software-development","tag-android","tag-ios","tag-mobile","tag-xamarin"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2017\/12\/blog_share_4-e1514449162693.jpg","category_names":["Zarz\u0105dzanie projektami"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/4965"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/145"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=4965"}],"version-history":[{"count":3,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/4965\/revisions"}],"predecessor-version":[{"id":23925,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/4965\/revisions\/23925"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/5028"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=4965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=4965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=4965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}