{"id":11421,"date":"2019-11-01T18:13:33","date_gmt":"2019-11-01T18:13:33","guid":{"rendered":"https:\/\/bestkora.com\/IosDeveloper\/?p=11421"},"modified":"2019-12-11T15:37:38","modified_gmt":"2019-12-11T15:37:38","slug":"fetching-remote-async-api-with-apple-combine-framework","status":"publish","type":"post","link":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/","title":{"rendered":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine."},"content":{"rendered":"<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-09.54.10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11530 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-09.54.10.png\" alt=\"\" width=\"1326\" height=\"730\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-09.54.10.png 1326w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-09.54.10-300x165.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-09.54.10-768x423.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-09.54.10-1024x564.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-09.54.10-500x275.png 500w\" sizes=\"auto, (max-width: 1326px) 100vw, 1326px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><span style=\"color: #0000ff;\"><strong>Combine<\/strong><\/span> &#8212; \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 <strong>Swift<\/strong> \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c <strong>Apple<\/strong>, \u0432\u043a\u043b\u044e\u0447\u0430\u044f <strong>Xcode 11<\/strong>. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e\u00a0<span style=\"color: #0000ff;\"><strong>\u0421ombine<\/strong><\/span>\u00a0\u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <strong><span style=\"color: #0000ff;\">values<\/span><\/strong> \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041e\u043d \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u043a\u043e\u0434, \u043e\u0442\u043a\u0430\u0437\u0430\u0432\u0448\u0438\u0441\u044c \u043e\u0442 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 <strong><span style=\"color: #0000ff;\">callbacks<\/span><\/strong>. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u041d\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 <strong><span style=\"color: #0000ff;\">\u0421ombine<\/span><\/strong>\u00a0\u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u043e\u0440\u0430\u0445 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0442\u0430\u043a\u0438\u043c \u0443\u0436 \u043f\u0440\u043e\u0441\u0442\u044b\u043c. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 &#171;\u0438\u0433\u0440\u043e\u043a\u0430\u043c\u0438&#187; <strong><span style=\"color: #0000ff;\">\u0421ombine<\/span><\/strong>\u00a0\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043a\u0430\u043a &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0438&#187; <strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong>, &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0438&#187;<strong><span style=\"color: #0000ff;\"> Subscribers<\/span> <\/strong>\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b <strong><span style=\"color: #0000ff;\">Operators<\/span><\/strong>. \u0415\u0441\u0442\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0438 \u0434\u0440\u0443\u0433\u0438\u0435, \u043d\u043e \u0431\u0435\u0437 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 3-\u0445 \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044c \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043b\u043e\u0433\u0438\u043a\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u00a0<strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f<\/span><\/span>\u00a0\u0441 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u043e\u0433\u043e \u043e\u0431\u0437\u043e\u0440\u0430 \u044d\u0442\u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u043e\u043d\u044f\u0442\u0438\u0439. \u0410 \u0434\u0430\u043b\u0435\u0435 \u043d\u0430\u0441 \u0436\u0434\u0435\u0442 \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u0441\u044e\u0440\u043f\u0440\u0438\u0437 \u043e\u0442 <strong>Apple<\/strong>. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e&#187;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439&#187; <strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong>, &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u043e\u0432&#187;<strong><span style=\"color: #0000ff;\"> Subscribers<\/span> <\/strong>\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432\u00a0<strong><span style=\"color: #0000ff;\">Operators<\/span><\/strong>\u00a0\u043b\u0438\u0431\u043e \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u0441\u0430\u043c\u043e\u043c <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>, \u043b\u0438\u0431\u043e \u043e\u043d\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043a \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043a\u043b\u0430\u0441\u0441\u0430\u043c <strong><span style=\"color: #0000ff;\">UISession<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">Timer<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">NotificationCenter<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">CoreData<\/span><\/strong>. \u0418 \u044d\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u043c \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0447\u0438\u0442\u0430\u0435\u043c\u044b\u043c. \u0412\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u044d\u0442\u043e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0438\u0437 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0441\u0435\u0439\u0447\u0430\u0441 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00a0<strong><a href=\"https:\/\/developers.themoviedb.org\/3\/getting-started\/introduction?source=post_page-----f7c067c7bb3----------------------\">TMDb<\/a><\/strong>. \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c\u00a0 \u0434\u0432\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f: <strong><span style=\"color: #0000ff;\">UIKit<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">SwiftUI<\/span><\/strong>, \u0438 \u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-18.08.35.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11544 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-18.08.35.png\" alt=\"\" width=\"1860\" height=\"1418\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-18.08.35.png 1860w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-18.08.35-300x229.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-18.08.35-768x585.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-18.08.35-1024x781.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-18.08.35-394x300.png 394w\" sizes=\"auto, (max-width: 1860px) 100vw, 1860px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442 \u0412\u0430\u043c \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435\u00a0<strong><span style=\"color: #0000ff;\">\u0421ombine<\/span><\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0445 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CombineFetchAPI\">Github<\/a><\/strong><span style=\"color: #000000;\">.<\/span><\/span><\/p>\n<p><!--more--><\/p>\n<p><span style=\"font-weight: 400;\">\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0434\u0435\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 <strong><span style=\"color: #000080;\">Combine<\/span><\/strong>. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0412\u00a0<span style=\"color: #0000ff;\"><strong>Combine <\/strong><span style=\"color: #000000;\">\u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442<\/span><\/span>:<\/span><\/p>\n<h1><span style=\"font-weight: 400;\"><strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">&#171;\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187;<\/span><\/span> <span style=\"color: #0000ff;\">Publisher<\/span>.<\/strong> <\/span><\/h1>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-16.49.08.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11511 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-16.49.08.png\" alt=\"\" width=\"1122\" height=\"596\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-16.49.08.png 1122w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-16.49.08-300x159.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-16.49.08-768x408.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-16.49.08-1024x544.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-16.49.08-500x266.png 500w\" sizes=\"auto, (max-width: 1122px) 100vw, 1122px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">&#171;\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u0438&#187; <strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong> &#8212; \u044d\u0442\u043e \u0422\u0418\u041f\u042b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">values<\/span><\/strong> \u0432\u0441\u0435\u043c, \u043a\u0442\u043e \u044d\u0442\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f. \u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\"> \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432<\/span><\/span> <strong><span style=\"color: #0000ff;\">Combine \u0432 \u0432\u0438\u0434\u0435<\/span><\/strong>\u00a0\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u00a0<span style=\"color: #0000ff;\"><strong>protocol<\/strong><\/span>, \u0430 \u043d\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0422\u0418\u041f\u0410. \u0423 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u00a0<strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u00a0\u0435\u0441\u0442\u044c \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\u00a0<strong>Generic<\/strong>\u00a0\u0422\u0418\u041f\u042b\u00a0<\/span><\/span>\u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">Output<\/span><\/strong> \u0438 \u043e\u0448\u0438\u0431\u043a\u0438 <strong><span style=\"color: #0000ff;\">Failure<\/span><\/strong>.\u00a0<span style=\"color: #0000ff;\"><span style=\"color: #000000;\">&#171;\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187;, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0422\u0418\u041f\u00a0<\/span><strong>Never<\/strong><\/span>\u00a0\u0434\u043b\u044f \u043e\u0448\u0438\u0431\u043a\u0438 <strong><span style=\"color: #0000ff;\">Failure<\/span><\/strong>.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.09.34.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11513 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.09.34.png\" alt=\"\" width=\"1036\" height=\"634\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.09.34.png 1036w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.09.34-300x184.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.09.34-768x470.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.09.34-1024x627.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.09.34-490x300.png 490w\" sizes=\"auto, (max-width: 1036px) 100vw, 1036px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.14.56.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11514 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.14.56.png\" alt=\"\" width=\"1384\" height=\"760\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.14.56.png 1384w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.14.56-300x165.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.14.56-768x422.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.14.56-1024x562.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-17.14.56-500x275.png 500w\" sizes=\"auto, (max-width: 1384px) 100vw, 1384px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Apple<\/strong> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439&#187; <strong><span style=\"color: #0000ff;\"> Publishers<\/span><\/strong>: <strong><span style=\"color: #0000ff;\">Just<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">Empty<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">Deferred<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">Sequence<\/span><\/strong>, <strong><span style=\"color: #0000ff;\"><strong>@Published<\/strong><\/span><\/strong> \u0438 \u0442.\u0434. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0442\u0430\u043a\u0436\u0435 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0438&#187; \u043a \u043a\u043b\u0430\u0441\u0441\u0430\u043c <strong><span style=\"color: #0000ff;\">Foundation<\/span><\/strong>: <strong><span style=\"color: #0000ff;\">URLSession<\/span><\/strong>,\u00a0<strong><span style=\"color: #0000ff;\">NotificationCenter<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">Timer<\/span><\/strong>.<\/span><\/p>\n<h1><span style=\"font-weight: 400;\"><strong>&#171;\u041f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a&#187; <span style=\"color: #0000ff;\">Subscriber<\/span><\/strong>. <\/span><\/h1>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.16.44.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11515 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.16.44.png\" alt=\"\" width=\"1392\" height=\"720\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.16.44.png 1392w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.16.44-300x155.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.16.44-768x397.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.16.44-1024x530.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.16.44-500x259.png 500w\" sizes=\"auto, (max-width: 1392px) 100vw, 1392px\" \/><\/a>\u042d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b <span style=\"color: #0000ff;\"><strong>protocol<\/strong><\/span>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">value<\/span><\/strong> \u043e\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;.\u00a0\u0423 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435<strong>\u00a0Generic<\/strong> \u0422\u0418\u041f\u042b \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">Input<\/span><\/strong> \u0438 \u043e\u0448\u0438\u0431\u043a\u0438 <strong><span style=\"color: #0000ff;\">Failure<\/span><\/strong>. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0422\u0418\u041f\u042b &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <span style=\"color: #0000ff;\"><strong>Publisher<\/strong><\/span> \u0438 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430&#187; <strong><span style=\"color: #0000ff;\">Subscriber<\/span><\/strong> \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.25.54.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11516 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.25.54.png\" alt=\"\" width=\"1356\" height=\"754\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.25.54.png 1356w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.25.54-300x167.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.25.54-768x427.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.25.54-1024x569.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.25.54-500x278.png 500w\" sizes=\"auto, (max-width: 1356px) 100vw, 1356px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0414\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <span style=\"color: #0000ff;\"><strong>Publisher<\/strong><\/span> \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430&#187; <strong><span style=\"color: #0000ff;\">Subscribers<\/span><\/strong>: <\/span><span style=\"font-weight: 400;\"><strong><span style=\"color: #0000ff;\">sink<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">assign<\/span><\/strong><span style=\"color: #000000;\">:<\/span><\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-16.50.08.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11587 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-16.50.08.png\" alt=\"\" width=\"1408\" height=\"770\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-16.50.08.png 1408w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-16.50.08-300x164.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-16.50.08-768x420.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-16.50.08-1024x560.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-16.50.08-500x273.png 500w\" sizes=\"auto, (max-width: 1408px) 100vw, 1408px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">&#171;\u041f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a&#187;\u00a0<strong><span style=\"color: #0000ff;\">sink<\/span> <\/strong>\u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0434\u0432\u0443\u0445 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f\u0445: \u043e\u0434\u043d\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435, <strong><span style=\"color: #0000ff;\">receiveValue<\/span><\/strong>, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">values<\/span><\/strong>, \u0432\u0442\u043e\u0440\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435, <strong><span style=\"color: #0000ff;\">receiveCompletion<\/span><\/strong>, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 &#171;\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438&#187; ( \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438\u043b\u0438 \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439).<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-15.51.55-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11534 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-15.51.55-1.png\" alt=\"\" width=\"1214\" height=\"754\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-15.51.55-1.png 1214w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-15.51.55-1-300x186.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-15.51.55-1-768x477.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-15.51.55-1-1024x636.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-15.51.55-1-483x300.png 483w\" sizes=\"auto, (max-width: 1214px) 100vw, 1214px\" \/><\/a><\/p>\n<h1><span style=\"font-weight: 400;\">&#171;\u041f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a&#187; <strong><span style=\"color: #0000ff;\">assign<\/span><\/strong> \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">value<\/span> <\/strong>\u043f\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043a \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 <strong>key Path<\/strong>.<\/span><\/h1>\n<h1><span style=\"font-weight: 400;\"><strong><span style=\"color: #000000;\">&#171;\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430&#187;<\/span><span style=\"color: #0000ff;\"> Subscription<\/span><\/strong>.<\/span><\/h1>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.29.50.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11517 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.29.50.png\" alt=\"\" width=\"1390\" height=\"714\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.29.50.png 1390w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.29.50-300x154.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.29.50-768x394.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.29.50-1024x526.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.29.50-500x257.png 500w\" sizes=\"auto, (max-width: 1390px) 100vw, 1390px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0421\u043d\u0430\u0447\u0430\u043b\u0430 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong> \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442&#187;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443&#187; <strong><span style=\"color: #0000ff;\">Subscription<\/span> <\/strong>&#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0443&#187; <strong><span style=\"color: #0000ff;\">Subscriber<\/span><\/strong> \u0447\u0435\u0440\u0435\u0437 \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434 <strong><span style=\"color: #0000ff;\">receive (subscription:)<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.25.48.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11518 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.25.48.png\" alt=\"\" width=\"1404\" height=\"726\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.25.48.png 1404w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.25.48-300x155.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.25.48-768x397.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.25.48-1024x530.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.25.48-500x259.png 500w\" sizes=\"auto, (max-width: 1404px) 100vw, 1404px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e, <strong><span style=\"color: #0000ff;\">Subscription<\/span><\/strong>\u00a0\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">values<\/span> <\/strong>&#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u043c&#187; <strong><span style=\"color: #0000ff;\">Subscribers<\/span> <\/strong>\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0443\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.45.57.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11520 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.45.57.png\" alt=\"\" width=\"1358\" height=\"746\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.45.57.png 1358w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.45.57-300x165.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.45.57-768x422.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.45.57-1024x563.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.45.57-500x275.png 500w\" sizes=\"auto, (max-width: 1358px) 100vw, 1358px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u043e\u0439&#187; <strong><span style=\"color: #0000ff;\">Subscription<\/span><\/strong>, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0435\u0451 <strong><span style=\"color: #0000ff;\">cancel ( )<\/span><\/strong> \u043c\u0435\u0442\u043e\u0434:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.46.32.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11521 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.46.32.png\" alt=\"\" width=\"1372\" height=\"638\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.46.32.png 1372w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.46.32-300x140.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.46.32-768x357.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.46.32-1024x476.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-18.46.32-500x233.png 500w\" sizes=\"auto, (max-width: 1372px) 100vw, 1372px\" \/><\/a><\/p>\n<h1><span style=\"font-weight: 400;\"><strong><span style=\"color: #000000;\">&#171;\u0421\u0443\u0431\u044a\u0435\u043a\u0442&#187;<\/span><span style=\"color: #0000ff;\"> Subject<\/span><\/strong>.<\/span><\/h1>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.49.46.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11522 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.49.46.png\" alt=\"\" width=\"1416\" height=\"766\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.49.46.png 1416w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.49.46-300x162.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.49.46-768x415.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.49.46-1024x554.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-19.49.46-500x270.png 500w\" sizes=\"auto, (max-width: 1416px) 100vw, 1416px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u042d\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b <span style=\"color: #0000ff;\"><strong>protocol<\/strong><\/span>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u043e\u0431\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043a\u0430\u043a \u0434\u043b\u044f&#187;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f&#187;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430&#187;.\u00a0 \u041f\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443, &#171;\u0441\u0443\u0431\u044a\u0435\u043a\u0442&#187;<strong><span style=\"color: #0000ff;\">Subject<\/span><\/strong>\u00a0&#8212; \u044d\u0442\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187;\u00a0<strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">Input<\/span><\/strong> \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b &#171;\u0432\u043f\u0440\u044b\u0441\u043a\u0438\u0432\u0430\u0442\u044c&#187; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">values<\/span><\/strong> \u0432 \u043f\u043e\u0442\u043e\u043a (<strong>stream<\/strong>) \u043f\u0443\u0442\u0435\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 <strong><span style=\"color: #0000ff;\">send()<\/span><\/strong>. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u0438 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong> \u041c\u043e\u0434\u0435\u043b\u0438.<\/span><\/p>\n<h1><span style=\"font-weight: 400;\"><strong>\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440<\/strong> <strong><span style=\"color: #0000ff;\">Operator<\/span><\/strong>.<\/span><\/h1>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-20.04.06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11528 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-20.04.06.png\" alt=\"\" width=\"1414\" height=\"662\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-20.04.06.png 1414w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-20.04.06-300x140.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-20.04.06-768x360.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-20.04.06-1024x479.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-20.04.06-500x234.png 500w\" sizes=\"auto, (max-width: 1414px) 100vw, 1414px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\"> \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong> \u043f\u0443\u0442\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/span><\/span>, \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u0434\u0430\u0436\u0435 \u043f\u0443\u0442\u0435\u043c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <strong><span style=\"color: #0000ff;\">values<\/span><\/strong>\u00a0\u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 <strong>upstream<\/strong> &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439&#187; <strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong>.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-17.13.46.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11529 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-17.13.46.png\" alt=\"\" width=\"1382\" height=\"766\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-17.13.46.png 1382w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-17.13.46-300x166.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-17.13.46-768x426.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-17.13.46-1024x568.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-15-at-17.13.46-500x277.png 500w\" sizes=\"auto, (max-width: 1382px) 100vw, 1382px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0412\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445 \u0438\u043c\u0435\u043d \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432: <strong><span style=\"color: #0000ff;\">compactMap<\/span><\/strong>,<strong><span style=\"color: #0000ff;\"> map<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">filter<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">dropFirst,<\/span> <span style=\"color: #0000ff;\">append<\/span><\/strong>.<\/span><\/p>\n<h1>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432 <strong><span style=\"color: #0000ff;\">Foundation<\/span><\/strong> &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0438&#187; <strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong>.<\/h1>\n<p><span style=\"font-weight: 400;\"><strong>Apple<\/strong> \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0436\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong> \u0432\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435\u00a0<strong><span style=\"color: #0000ff;\">Foundation<\/span><\/strong>, \u0442\u043e \u0435\u0441\u0442\u044c&#187;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439&#187; <strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong>, \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447, \u043a\u0430\u043a \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #0000ff;\">URLSession<\/span><\/strong>, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #0000ff;\">Notification<\/span><\/strong>, \u0442\u0430\u0439\u043c\u0435\u0440 <strong><span style=\"color: #0000ff;\">Timer<\/span><\/strong> \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <strong><span style=\"color: #0000ff;\">KVO<\/span><\/strong>. \u042d\u0442\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u00a0<strong><span style=\"color: #0000ff;\">Combine\u00a0<\/span><\/strong>\u0432 \u043d\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442.<br \/>\n\u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c, \u043c\u043e\u0436\u043d\u043e\u00a0\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e\u00a0<strong><a href=\"https:\/\/theswiftdev.com\/2019\/10\/31\/the-ultimate-combine-framework-tutorial-in-swift\/\">&#171;The ultimate Combine framework tutorial in Swift&#187;<\/a><\/strong>.<\/span><\/p>\n<h1>\u0427\u0442\u043e \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <span style=\"color: #0000ff;\">Combine<\/span>?<\/h1>\n<p><span style=\"font-weight: 400;\">\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong> \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430\u00a0<strong><a href=\"https:\/\/developers.themoviedb.org\/3\/getting-started\/introduction?source=post_page-----f7c067c7bb3----------------------\">TMDb API<\/a>.<\/strong> \u0412\u043e\u0442 \u0447\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u0438\u0437\u0443\u0447\u0430\u0442\u044c:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>\u00a0\u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0441 <strong><span style=\"color: #0000ff;\">promise<\/span><\/strong> \u0434\u043b\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: \u043b\u0438\u0431\u043e <strong><span style=\"color: #0000ff;\">value<\/span><\/strong>, \u043b\u0438\u0431\u043e \u043e\u0448\u0438\u0431\u043a\u0438.<\/span><\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;<strong><span style=\"color: #0000ff;\"> URLSession.datataskPublisher<\/span><\/strong>\u00a0\u0434\u043b\u044f &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 <strong><span style=\"color: #0000ff;\">data<\/span><\/strong>, \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c\u044b\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u00a0<strong><span style=\"color: #0000ff;\">URL<\/span><\/strong>.<\/span><\/span><\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430<strong><span style=\"color: #0000ff;\"> tryMap<\/span><\/strong> \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445\u00a0<strong><span style=\"color: #0000ff;\">data<\/span><\/strong>\u00a0\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0440\u0443\u0433\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong>.<\/span><\/span><\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430<strong><span style=\"color: #0000ff;\">\u00a0decode<\/span><\/strong>\u00a0\u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445\u00a0<strong><span style=\"color: #0000ff;\">data<\/span><\/strong>\u00a0\u0432 <strong><span style=\"color: #0000ff;\">Decodable<\/span> <\/strong>\u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0438\u0435 \u0435\u0433\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0446\u0435\u043f\u043e\u0447\u043a\u0438 &#171;\u0432\u043d\u0438\u0437 \u043f\u043e \u0442\u0435\u0447\u0435\u043d\u0438\u044e&#187;.<\/span><\/span><\/span><\/li>\n<li><span style=\"font-weight: 400;\">\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <strong><span style=\"color: #0000ff;\">sink<\/span><\/strong> \u0434\u043b\u044f &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; \u043d\u0430 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <strong><span style=\"color: #0000ff;\">assign<\/span><\/strong>\u00a0\u0434\u043b\u044f &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; \u043d\u0430 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong>\u00a0\u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">value<\/span><\/strong> \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443<strong> key Path<\/strong>.<\/span><\/li>\n<\/ul>\n<h1>\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442<\/h1>\n<p><span style=\"font-weight: 400;\">\u041f\u0440\u0435\u0436\u0434\u0435, \u0447\u0435\u043c \u043c\u044b \u043d\u0430\u0447\u043d\u0435\u043c, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <strong>API<\/strong> \u043a\u043b\u044e\u0447 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 <strong><a href=\"https:\/\/developers.themoviedb.org\/3\/getting-started\/introduction?source=post_page-----f7c067c7bb3----------------------\">TMDb<\/a><\/strong>. \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f <a href=\"https:\/\/github.com\/alfianlosari\/CombineFetchAPIStarter\"><strong>GitHub<\/strong><\/a>.<\/span><br \/>\n<span style=\"font-weight: 400;\">\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u044b \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 <strong>API<\/strong> \u043a\u043b\u044e\u0447 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <strong><span style=\"color: #0000ff;\">class\u00a0MovieStore<\/span><\/strong> \u0432 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0435 <strong><span style=\"color: #0000ff;\">let apiKey<\/span><\/strong>.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-14.20.33.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11427 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-14.20.33.png\" alt=\"\" width=\"1072\" height=\"398\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-14.20.33.png 1072w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-14.20.33-300x111.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-14.20.33-768x285.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-14.20.33-1024x380.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-14.20.33-500x186.png 500w\" sizes=\"auto, (max-width: 1072px) 100vw, 1072px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">1. \u0412\u043d\u0443\u0442\u0440\u0438 \u0444\u0430\u0439\u043b\u0430\u00a0<strong><em>Movie.swift<\/em><\/strong>\u00a0\u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f <strong>\u041c\u043e\u0434\u0435\u043b\u0438<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. <\/span><span style=\"font-weight: 400;\">\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <strong><span style=\"color: #0000ff;\">struct\u00a0MoviesResponse<\/span> <\/strong>\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b <strong><span style=\"color: #0000ff;\">\u0421odable<\/span><\/strong>, \u0438 \u043c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u044d\u0442\u0438\u043c \u043f\u0440\u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438<strong> JSON<\/strong> \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 <strong>\u041c\u043e\u0434\u0435\u043b\u044c<\/strong>. \u0412 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435\u00a0<strong><span style=\"color: #0000ff;\">MoviesResponse\u00a0<\/span><\/strong>\u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <strong><span style=\"color: #0000ff;\">results<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u00a0<strong><span style=\"color: #0000ff;\">Decodable<\/span><\/strong>\u00a0\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0444\u0438\u043b\u044c\u043c\u043e\u0432 <strong><span style=\"color: #0000ff;\">[Movie]<\/span><\/strong>. \u0418\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0430 \u043d\u0430\u0441 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442:<\/span><\/li>\n<\/ul>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-15.47.30.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11428 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-15.47.30.png\" alt=\"\" width=\"1106\" height=\"720\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-15.47.30.png 1106w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-15.47.30-300x195.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-15.47.30-768x500.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-15.47.30-1024x667.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-15.47.30-461x300.png 461w\" sizes=\"auto, (max-width: 1106px) 100vw, 1106px\" \/><\/a><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">2. \u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">enum MovieStoreAPIError<\/span><\/strong> \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b<strong><span style=\"color: #0000ff;\"> Error<\/span><\/strong>. \u041d\u0430\u0448\u0435 <strong>API<\/strong> \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043e\u0448\u0438\u0431\u043e\u043a:<span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u043e\u0448\u0438\u0431\u043e\u043a\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f <strong>URL<\/strong><\/span><\/span> <strong><span style=\"color: #0000ff;\">urlError<\/span><\/strong>,\u00a0 \u043e\u0448\u0438\u0431\u043e\u043a\u00a0 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">decodingError<\/span><\/strong> \u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 <strong><span style=\"color: #0000ff;\">responseError<\/span><\/strong>.<\/span><\/li>\n<\/ul>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-16.14.40.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11429 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-16.14.40.png\" alt=\"\" width=\"906\" height=\"278\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-16.14.40.png 906w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-16.14.40-300x92.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-16.14.40-768x236.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-16.14.40-500x153.png 500w\" sizes=\"auto, (max-width: 906px) 100vw, 906px\" \/><\/a><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">3. \u0412 \u043d\u0430\u0448\u0435\u043c <strong>API<\/strong> \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u00a0<strong><span style=\"color: #0000ff;\">MovieService<\/span><\/strong>\u00a0\u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c <strong><span style=\"color: #0000ff;\">fetchMovies (from endpoint: Endpoint)<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0444\u0438\u043b\u044c\u043c\u044b <strong><span style=\"color: #0000ff;\">[M<\/span><span style=\"color: #0000ff;\">ovie]<\/span>\u00a0<\/strong>\u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong><span style=\"color: #0000ff;\">endpoint<\/span><\/strong>. \u0421\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 <strong><span style=\"color: #0000ff;\">Endpoint<\/span><\/strong>\u00a0&#8212; \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">enum<\/span><\/strong>,\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <strong>endpoint<\/strong>\u00a0\u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\u00a0<strong><a href=\"https:\/\/developers.themoviedb.org\/3\/getting-started\/introduction?source=post_page-----f7c067c7bb3----------------------\">TMDb API<\/a><\/strong>\u00a0\u0441 \u0446\u0435\u043b\u044c\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0442\u0430\u043a\u0438\u0445 \u0444\u0438\u043b\u044c\u043c\u043e\u0432, \u043a\u0430\u043a <strong><span style=\"color: #0000ff;\">nowPlaying<\/span><\/strong>\u00a0(\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435), <strong><span style=\"color: #0000ff;\">popular<\/span><\/strong> (\u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435), <strong><span style=\"color: #0000ff;\">topRated<\/span><\/strong> (\u0442\u043e\u043f\u043e\u0432\u044b\u0435) \u0438 <strong><span style=\"color: #0000ff;\">upcoming<\/span><\/strong> (\u0441\u043a\u043e\u0440\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435).<\/span><\/li>\n<\/ul>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-13.52.47.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11450 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-13.52.47.png\" alt=\"\" width=\"1068\" height=\"610\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-13.52.47.png 1068w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-13.52.47-300x171.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-13.52.47-768x439.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-13.52.47-1024x585.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-13.52.47-500x286.png 500w\" sizes=\"auto, (max-width: 1068px) 100vw, 1068px\" \/><\/a><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">4. \u041a\u043b\u0430\u0441\u0441 <strong><span style=\"color: #0000ff;\">MovieStore<\/span><\/strong>\u00a0&#8212; \u044d\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b <strong><span style=\"color: #0000ff;\">MovieService<\/span><\/strong> \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430\u00a0<strong><a href=\"https:\/\/developers.themoviedb.org\/3\/getting-started\/introduction?source=post_page-----f7c067c7bb3----------------------\">TMDb API<\/a><\/strong>. \u0412\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u00a0<strong><span style=\"color: #0000ff;\">fetchMovies (&#8230;)<\/span><\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>.<\/span><\/li>\n<\/ul>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-17.00.04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11432 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-17.00.04.png\" alt=\"\" width=\"1122\" height=\"244\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-17.00.04.png 1122w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-17.00.04-300x65.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-17.00.04-768x167.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-17.00.04-1024x223.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-03-at-17.00.04-500x109.png 500w\" sizes=\"auto, (max-width: 1122px) 100vw, 1122px\" \/><\/a><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">5. \u041a\u043b\u0430\u0441\u0441 <strong><span style=\"color: #0000ff;\">MovieListViewController<\/span><\/strong> &#8212; \u044d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 <strong><span style=\"color: #0000ff;\">ViewController<\/span><\/strong> \u043a\u043b\u0430\u0441\u0441, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <strong><span style=\"color: #0000ff;\">sink<\/span><\/strong> &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443&#187; \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 <strong><span style=\"color: #0000ff;\">fetchMovies (&#8230;)<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">,<\/span><\/span><span style=\"color: #000000;\">\u00a0<\/span>\u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0431\u043d\u043e\u0432\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 <strong>TableView<\/strong>\u00a0\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 <span style=\"color: #0000ff;\"><strong>movies<\/strong><\/span>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043d\u043e\u0432\u044b\u0439<strong><span style=\"color: #0000ff;\">\u00a0DiffableDataSourceSnapshot\u00a0<\/span><\/strong> <strong>API<\/strong>.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\u041f\u0440\u0435\u0436\u0434\u0435, \u0447\u0435\u043c \u043c\u044b \u043d\u0430\u0447\u043d\u0435\u043c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0437\u0443\u0447\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f <strong>API<\/strong> \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/span><\/p>\n<h2>&#171;\u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0441\u044f&#187; \u043d\u0430 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e\u00a0<strong><span style=\"color: #0000ff;\">sink<\/span><\/strong> \u0438 \u0435\u0433\u043e\u00a0\u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439.<\/h2>\n<p><span style=\"font-weight: 400;\">\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f&#187; \u043d\u0430 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong> &#8212; \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <strong><span style=\"color: #0000ff;\">sink<\/span><\/strong>\u00a0\u0441 \u0435\u0433\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f\u043c\u0438, \u043e\u0434\u043d\u043e \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432\u0441\u044f\u043a\u0438\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">value<\/span><\/strong>, \u0430 \u0434\u0440\u0443\u0433\u043e\u0435<strong> &#8212;\u00a0<\/strong>\u043a\u043e\u0433\u0434\u0430 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187; \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <strong><span style=\"color: #0000ff;\">values<\/span><\/strong>.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-04-at-22.32.00.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11437 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-04-at-22.32.00.png\" alt=\"\" width=\"912\" height=\"294\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-04-at-22.32.00.png 912w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-04-at-22.32.00-300x97.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-04-at-22.32.00-768x248.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-04-at-22.32.00-500x161.png 500w\" sizes=\"auto, (max-width: 912px) 100vw, 912px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u0432 <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>\u00a0\u043a\u0430\u0436\u0434\u0430\u044f &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430&#187; \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <strong><span style=\"color: #0000ff;\">Cancellable<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u044b \u043f\u043e\u043a\u0438\u043d\u0435\u043c \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442.\u00a0\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443&#187; \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <strong><span style=\"color: #0000ff;\">values<\/span><\/strong>, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443&#187; \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435\u00a0<strong><span style=\"color: #0000ff;\">subscription1<\/span><\/strong>. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u043d\u0430\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">values (7,8,3,4)<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">.<\/span><\/span><\/span><\/p>\n<h1><strong><span style=\"color: #0000ff;\">Future\u00a0<\/span><\/strong>\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <span style=\"color: #0000ff;\">P<\/span><strong><span style=\"color: #0000ff;\">romise<span style=\"color: #000000;\"> \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e<\/span>\u00a0<\/span><\/strong>&#171;\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442&#187;\u00a0 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: \u043b\u0438\u0431\u043e\u00a0<strong><span style=\"color: #0000ff;\">value<\/span><\/strong>, \u043b\u0438\u0431\u043e \u043e\u0448\u0438\u0431\u043a\u0443 <span style=\"color: #0000ff;\">Failure<\/span>.<\/h1>\n<p><span style=\"font-weight: 400;\">\u0412\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong> &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187; <strong><span style=\"color: #0000ff;\">Future<\/span><\/strong> \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0422\u0418\u041f\u0410 <strong><span style=\"color: #0000ff;\">Result<\/span><\/strong> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f. \u0423 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212; <strong><span style=\"color: #0000ff;\">Promise<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0422\u0418\u041f\u0430\u00a0<strong><span style=\"color: #0000ff;\">(Result&lt;Output, Failure&gt;) -&gt; Void<\/span><\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187;\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-20.44.56.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11546 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-20.44.56.png\" alt=\"\" width=\"986\" height=\"634\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-20.44.56.png 986w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-20.44.56-300x193.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-20.44.56-768x494.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-20.44.56-467x300.png 467w\" sizes=\"auto, (max-width: 986px) 100vw, 986px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u043c\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span><\/strong> \u0441 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0422\u0418\u041f\u0410 <strong><span style=\"color: #0000ff;\">Int<\/span><\/strong> \u0438 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0422\u0418\u041f\u0410 <strong><span style=\"color: #0000ff;\">Never<\/span><\/strong>. \u0412\u043d\u0443\u0442\u0440\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>\u00a0 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <strong><span style=\"color: #0000ff;\">DispatchQueue.main.asyncAfter ( &#8230; )<\/span><\/strong>, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u043d\u0430 <strong><span style=\"color: #0000ff;\">2<\/span> <\/strong>\u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0438 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u043c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u0412\u043d\u0443\u0442\u0440\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c <strong><span style=\"color: #0000ff;\">Promise<\/span> <\/strong>\u0441 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c <strong><span style=\"color: #0000ff;\">promise (.success( &#8230; ))<\/span>\u00a0<\/strong>\u0432 \u0432\u0438\u0434\u0435 \u0446\u0435\u043b\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<strong><span style=\"color: #0000ff;\"> Int<\/span><\/strong> \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043c\u0435\u0436\u0434\u0443 <strong><span style=\"color: #0000ff;\">0<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">100<\/span><\/strong>. \u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u0432\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 \u043d\u0430 <strong><span style=\"color: #0000ff;\">future<\/span><\/strong> &#8212; <strong><span style=\"color: #0000ff;\">cancellable<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">cancellable1<\/span><\/strong> &#8212; \u0438 \u043e\u0431\u0435 \u0434\u0430\u044e\u0442 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0445\u043e\u0442\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong><em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 1.<\/em><\/strong> \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187; <strong><span style=\"color: #0000ff;\">Future<\/span> <\/strong>\u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f\u043c\u0438&#187;:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">&#171;\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187;\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>\u00a0\u0432\u0441\u0435\u0433\u0434\u0430 &#171;\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442&#187; \u041e\u0414\u041d\u041e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (<strong><span style=\"color: #0000ff;\">value<\/span><\/strong> \u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443) \u0438 \u043d\u0430 \u044d\u0442\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443. <\/span><\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">&#171;\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187;\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>\u00a0\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u043c <strong><span style=\"color: #0000ff;\">class<\/span><\/strong> (<strong>reference type<\/strong>) \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439&#187; \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 <strong><span style=\"color: #0000ff;\">struct<\/span><\/strong> ( <strong>value type<\/strong>), \u0438 \u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">Promise<\/span>,<\/strong>\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>. \u0422\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">Promise<\/span><\/strong>\u00a0<\/span>\u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a&#187; <strong><span style=\"color: #0000ff;\">subscriber<\/span><\/strong>\u00a0\u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043e\u0434\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>. &#171;\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187;\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>\u00a0\u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430&#187;, \u043a\u0430\u043a \u044d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0438&#187;\u00a0<strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong>.\u00a0\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442 &#171;<strong>Hello from inside the future!<\/strong>&#187; \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">&#171;\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187; <strong><span style=\"color: #0000ff;\">Future<\/span><\/strong> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>eager<\/strong> (\u043d\u0435\u0442\u0435\u0440\u043f\u0435\u043b\u0438\u0432\u044b\u043c) &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u043c&#187; \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 <span style=\"color: #0000ff;\"><strong>lazy<\/strong><\/span> &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439&#187; (&#171;\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442&#187; \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187;) . \u041b\u0438\u0448\u044c \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span> <\/strong>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0439 <strong><span style=\"color: #0000ff;\">Promise<\/span><\/strong>, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0438 \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0438 \u0431\u0443\u0434\u0443\u0449\u0438\u043c &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u043c&#187;. \u0418\u0437 \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f<span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0435&#187; <strong><span style=\"color: #0000ff;\">sink<\/span> <\/strong> \u043a \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044e<strong><span style=\"color: #0000ff;\"> future<\/span>\u00a0<\/strong>\u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435&#187;\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435&#187; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u00a0<strong><span style=\"color: #0000ff;\">6<\/span><\/strong>, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0435, \u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435), \u0445\u043e\u0442\u044f \u0432 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435<strong><span style=\"color: #0000ff;\"> Int<\/span><\/strong> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/span><\/span><\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\u0422\u0430\u043a\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430&#187;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span>\u00a0<\/strong>\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e-\u0437\u0430\u0442\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438 \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c &#171;\u0441\u0435\u0440\u0432\u0435\u0440&#187; \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u044b\u0445 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a&#187;.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0415\u0441\u043b\u0438 \u0432\u0430\u0441 \u0442\u0430\u043a\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">Future<\/span><\/strong> \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0432\u0430\u0448 <strong><span style=\"color: #0000ff;\">Future\u00a0<\/span><\/strong>\u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0441\u044f<strong><span style=\"color: #0000ff;\"> lazy<\/span><\/strong> \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432\u044b \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438 \u043d\u043e\u0432\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 <strong><span style=\"color: #0000ff;\">Int<\/span><\/strong> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0442\u043e \u0432\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 &#171;\u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c&#187; <strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>\u00a0\u0432 <strong><span style=\"color: #0000ff;\">Deferred<\/span><\/strong>\u00a0:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-21.14.36.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11548 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-21.14.36.png\" alt=\"\" width=\"1000\" height=\"692\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-21.14.36.png 1000w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-21.14.36-300x208.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-21.14.36-768x531.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-16-at-21.14.36-434x300.png 434w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>\u00a0\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0432 <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u043a &#171;\u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0433\u043e&#187; \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;.<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\"><span style=\"font-weight: 400;\"><strong><em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 2.\u00a0<\/em><\/strong>\u041d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e\u00a0<strong><span style=\"color: #0000ff;\">sink<\/span><\/strong>\u00a0\u043a <strong>\u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u043c\u0443<\/strong> &#171;\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044e&#187;. \u041c\u0435\u0442\u043e\u0434 <strong><span style=\"color: #0000ff;\">sink<\/span><\/strong>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <strong><span style=\"color: #0000ff;\">AnyCancellable<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043d\u0435 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e <strong>Swift<\/strong> \u0440\u0430\u0437\u0440\u0443\u0448\u0438\u0442 <strong><span style=\"color: #0000ff;\">AnyCancellable<\/span><\/strong>\u00a0\u043a \u0442\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u043e\u043a\u0438\u043d\u0435\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 (<strong>scope<\/strong>), \u0447\u0442\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 <strong>main thread<\/strong>. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e <strong><span style=\"color: #0000ff;\">AnyCancellable\u00a0<\/span><\/strong>\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0443\u0448\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0435\u0436\u0434\u0435, \u0447\u0435\u043c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0441 P<strong><span style=\"color: #0000ff;\">romise<\/span><\/strong> \u0441\u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u043d\u0430 <strong>main thread<\/strong>. \u041a\u043e\u0433\u0434\u0430 <strong><span style=\"color: #0000ff;\">AnyCancellable<\/span><\/strong> \u0440\u0430\u0437\u0440\u0443\u0448\u0430\u0435\u0442\u0441\u044f, \u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434 <strong><span style=\"color: #0000ff;\">cancel<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0430\u043d\u043d\u0443\u043b\u0438\u0440\u0443\u0435\u0442 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443&#187;. \u00a0\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u043d\u0430\u0448\u0438 <strong><span style=\"color: #0000ff;\">sink<\/span><\/strong> &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; \u043a <strong><span style=\"color: #0000ff;\">future<\/span> <\/strong>\u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 <strong><span style=\"color: #0000ff;\">cancellable<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">cancellable1<\/span><\/strong>\u00a0\u0438\u043b\u0438 \u0432 <strong><span style=\"color: #0000ff;\">Set&lt;AnyCancellable&gt; ( )<\/span><\/strong>.<\/span><\/li>\n<\/ul>\n<h1>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <span style=\"color: #0000ff;\">Combine<\/span>\u00a0\u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 <strong><span style=\"color: #0000ff;\">movies<\/span><\/strong>\u00a0\u0441 \u0441\u0430\u0439\u0442\u0430 TMDb<\/h1>\n<p><span style=\"font-weight: 400;\">\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u044b \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0435 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u0442\u0435 \u043a \u0444\u0430\u0439\u043b\u0443 <strong><em>MovieStore.swift<\/em><\/strong>\u00a0\u0438 \u043c\u0435\u0442\u043e\u0434\u0443\u00a0<strong><span style=\"color: #0000ff;\">fetchMovies<\/span><\/strong>\u00a0\u0441 \u043f\u0443\u0441\u0442\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-19.56.08.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11444 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-19.56.08.png\" alt=\"\" width=\"1008\" height=\"336\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-19.56.08.png 1008w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-19.56.08-300x100.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-19.56.08-768x256.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-19.56.08-500x167.png 500w\" sizes=\"auto, (max-width: 1008px) 100vw, 1008px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430\u00a0<strong><span style=\"color: #0000ff;\">fetchMovies<\/span><\/strong>\u00a0\u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b, \u0437\u0430\u0434\u0430\u0432\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0443<strong><span style=\"color: #0000ff;\">\u00a0endpoint<\/span><\/strong> \u0422\u0418\u041f\u0410<strong><span style=\"color: #0000ff;\"> Endpoin<\/span><\/strong>t. \u0422\u0418\u041f\u00a0 <strong><span style=\"color: #0000ff;\">Endpoint<\/span><\/strong> &#8212; \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">enum<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">nowPlaying\u00a0<\/span><\/strong>(\u0442\u0435\u043a\u0443\u0449\u0438\u0435), <strong><span style=\"color: #0000ff;\">upcoming<\/span><\/strong> (\u0441\u043a\u043e\u0440\u043e \u0432\u044b\u0439\u0434\u0443\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d), <span style=\"color: #0000ff;\"><strong>popular<\/strong><\/span> (\u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435),\u00a0 <strong><span style=\"color: #0000ff;\">topRated<\/span><\/strong> (\u0442\u043e\u043f\u043e\u0432\u044b\u0435):<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.01.25.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11445 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.01.25.png\" alt=\"\" width=\"896\" height=\"272\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.01.25.png 896w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.01.25-300x91.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.01.25-768x233.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.01.25-500x152.png 500w\" sizes=\"auto, (max-width: 896px) 100vw, 896px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 <strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>\u00a0\u0441 <strong>callback<\/strong> \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u043c. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 <strong><span style=\"color: #0000ff;\">Future <\/span><\/strong>\u043c\u044b \u0437\u0430\u0442\u0435\u043c \u0432\u0435\u0440\u043d\u0435\u043c.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-18.52.30.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11453 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-18.52.30.png\" alt=\"\" width=\"1282\" height=\"570\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-18.52.30.png 1282w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-18.52.30-300x133.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-18.52.30-768x341.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-18.52.30-1024x455.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-18.52.30-500x222.png 500w\" sizes=\"auto, (max-width: 1282px) 100vw, 1282px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0412\u043d\u0443\u0442\u0440\u0438\u00a0<strong>callback<\/strong> \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043c\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c <strong>URL<\/strong> \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430<strong><span style=\"color: #0000ff;\">\u00a0endpoint<\/span><\/strong>\u00a0\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<span style=\"color: #0000ff;\"><strong>generateURL (with endpoint:Endpoint)<\/strong> <\/span> :<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.22.44.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11447 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.22.44.png\" alt=\"\" width=\"1076\" height=\"376\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.22.44.png 1076w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.22.44-300x105.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.22.44-768x268.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.22.44-1024x358.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-05-at-20.22.44-500x175.png 500w\" sizes=\"auto, (max-width: 1076px) 100vw, 1076px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0415\u0441\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e <strong>URL<\/strong> \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c <strong><span style=\"color: #0000ff;\">promise (.failure ( .urlError (&#8230; ))<\/span><\/strong>, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">URLSession.dataTaskPublisher<\/span><\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0414\u043b\u044f &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e <strong>URL<\/strong>\u00a0\u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 \u043a\u043b\u0430\u0441\u0441<strong><span style=\"color: #0000ff;\"> URLSession<\/span><\/strong> \u043c\u0435\u0442\u043e\u0434 <strong><span style=\"color: #0000ff;\">datataskPublisher<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 <strong><span style=\"color: #0000ff;\">URL<\/span><\/strong> \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong>\u00a0\u0441 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 <strong><span style=\"color: #0000ff;\">Output<\/span><\/strong> \u0422\u0418\u041f\u0410 \u043a\u043e\u0440\u0442\u0435\u0436\u0430 <strong><span style=\"color: #0000ff;\">(data: Data, response: URLResponse)<\/span><\/strong> \u0438 \u043e\u0448\u0438\u0431\u043a\u0438 <strong><span style=\"color: #0000ff;\">Failure<\/span><\/strong> \u0422\u0418\u041f\u0410 <strong><span style=\"color: #0000ff;\">URLError<\/span><\/strong>.<br \/>\n<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.04.02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11454 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.04.02.png\" alt=\"\" width=\"1268\" height=\"634\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.04.02.png 1268w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.04.02-300x150.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.04.02-768x384.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.04.02-1024x512.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.04.02-500x250.png 500w\" sizes=\"auto, (max-width: 1268px) 100vw, 1268px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0414\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong> \u0432 \u0434\u0440\u0443\u0433\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440<strong><span style=\"color: #0000ff;\"> tryMap<\/span><\/strong>.\u00a0\u041f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 <strong><span style=\"color: #0000ff;\">map<\/span><\/strong>, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <strong><span style=\"color: #0000ff;\">tryMap<\/span><\/strong> \u043c\u043e\u0436\u0435\u0442 &#171;\u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c&#187; <strong><span style=\"color: #0000ff;\">throws<\/span><\/strong> \u043e\u0448\u0438\u0431\u043a\u0443 <strong><span style=\"color: #0000ff;\">Error<\/span><\/strong> \u0432\u043d\u0443\u0442\u0440\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430\u043c \u043d\u043e\u0432\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0448\u0430\u0433\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <strong><span style=\"color: #0000ff;\">tryMap<\/span><\/strong> \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u043e\u0434\u0430\u00a0<strong><span style=\"color: #0000ff;\">status\u0421ode<\/span><\/strong> <strong>http<\/strong> \u043e\u0442\u0432\u0435\u0442\u0430 <strong><span style=\"color: #0000ff;\">response<\/span><\/strong>, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 <strong><span style=\"color: #0000ff;\">200<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">300<\/span><\/strong>. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c <strong><span style=\"color: #0000ff;\">throws<\/span> <\/strong>\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438\u00a0<strong><span style=\"color: #0000ff;\">responseError<\/span><\/strong> \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">enum\u00a0MovieStoreAPIError<\/span><\/strong>. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 (\u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u0442 \u043e\u0448\u0438\u0431\u043e\u043a) \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 <strong><span style=\"color: #0000ff;\">data<\/span><\/strong>\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0432 \u0446\u0435\u043f\u043e\u0447\u043a\u0435\u00a0&#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044e&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong>.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.38.56.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11455 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.38.56.png\" alt=\"\" width=\"1274\" height=\"934\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.38.56.png 1274w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.38.56-300x220.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.38.56-768x563.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.38.56-1024x751.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-19.38.56-409x300.png 409w\" sizes=\"auto, (max-width: 1274px) 100vw, 1274px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0448\u0430\u0433\u0435 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <strong><span style=\"color: #0000ff;\">decode<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 <strong>JSON<\/strong> \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e <strong><span style=\"color: #0000ff;\">tryMap<\/span><\/strong>\u00a0&#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; \u0432 \u041c\u043e\u0434\u0435\u043b\u044c <strong><span style=\"color: #0000ff;\">MovieResponse<\/span> <\/strong>\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #0000ff;\">JSONDecoder<\/span><\/strong>.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.12.21.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11457 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.12.21.png\" alt=\"\" width=\"1298\" height=\"1018\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.12.21.png 1298w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.12.21-300x235.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.12.21-768x602.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.12.21-1024x803.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.12.21-383x300.png 383w\" sizes=\"auto, (max-width: 1298px) 100vw, 1298px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">&#8230;<\/span><\/span><strong><span style=\"color: #0000ff;\"> jsonDecoder\u00a0<\/span><\/strong>\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b :<br \/>\n<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.17.04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11458 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.17.04.png\" alt=\"\" width=\"1184\" height=\"286\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.17.04.png 1184w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.17.04-300x72.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.17.04-768x186.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.17.04-1024x247.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.17.04-500x121.png 500w\" sizes=\"auto, (max-width: 1184px) 100vw, 1184px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0430\u0441\u044c \u043d\u0430\u00a0<strong>main thread<\/strong>, \u043c\u044b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440<strong><span style=\"color: #0000ff;\"> receive(on:)<\/span><\/strong> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u0435\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong><span style=\"color: #0000ff;\">RunLoop.main<\/span><\/strong>.\u00a0 \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0443&#187; \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">value<\/span> <\/strong>\u043d\u0430 <strong>main<\/strong> \u043f\u043e\u0442\u043e\u043a\u0435.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.52.09.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11459 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.52.09.png\" alt=\"\" width=\"1276\" height=\"992\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.52.09.png 1276w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.52.09-300x233.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.52.09-768x597.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.52.09-1024x796.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-21.52.09-386x300.png 386w\" sizes=\"auto, (max-width: 1276px) 100vw, 1276px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041d\u0430\u043a\u043e\u043d\u0435\u0446 \u043c\u044b \u0434\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043d\u0430\u0448\u0435\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439, \u0438 \u0442\u0430\u043c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <strong><span style=\"color: #0000ff;\">sink<\/span> <\/strong>\u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187;<strong><span style=\"color: #0000ff;\"> subscription<\/span><\/strong> \u043d\u0430 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e\u00a0<strong>upstream<\/strong>\u00a0&#171;\u0446\u0435\u043f\u043e\u0447\u043a\u0443&#187; &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439&#187;\u00a0<strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong>. \u0414\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 <strong><span style=\"color: #0000ff;\">Sink<\/span><\/strong> \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0434\u0432\u0435 \u0432\u0435\u0449\u0438, \u0445\u043e\u0442\u044f \u043e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0438\u0445 &#8212; \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\"><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435<\/span><strong> receiveValue:<\/strong>\u00a0<\/span>. \u0411\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u044f\u043a\u0438\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430&#187; <strong><span style=\"color: #0000ff;\">subscription<\/span><\/strong> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">value<\/span><\/strong> \u043e\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong>.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u00a0<\/span><strong>receiveCompletion:<\/strong><\/span> (\u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435). \u0411\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187; <strong><span style=\"color: #0000ff;\">Publisher<\/span><\/strong> \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">value<\/span><\/strong>, \u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">completion<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u0433\u043e, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 &#171;\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f&#187; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u0430 \u0438\u043b\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">\u0412\u043d\u0443\u0442\u0440\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">receiveValue<\/span><\/strong>, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c <strong><span style=\"color: #0000ff;\">promise<\/span><\/strong> \u0441 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c .<strong><span style=\"color: #0000ff;\">success<\/span><\/strong> \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c <strong><span style=\"color: #0000ff;\">$0.results<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0444\u0438\u043b\u044c\u043c\u043e\u0432\u00a0 <strong><span style=\"color: #0000ff;\">movies<\/span><\/strong>. \u0412\u043d\u0443\u0442\u0440\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">receiveCompletion<\/span><\/strong>\u00a0\u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0443 <strong><span style=\"color: #0000ff;\">completion<\/span><\/strong> \u043e\u0448\u0438\u0431\u043a\u0430 <strong><span style=\"color: #0000ff;\">error<\/span><\/strong>, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443\u00a0<strong><span style=\"color: #0000ff;\">promise<\/span><\/strong> \u0441 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c .<strong><span style=\"color: #0000ff;\">failure<\/span><\/strong>.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-13.53.36.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11591 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-13.53.36.png\" alt=\"\" width=\"1274\" height=\"1182\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-13.53.36.png 1274w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-13.53.36-300x278.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-13.53.36-768x713.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-13.53.36-1024x950.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-13.53.36-323x300.png 323w\" sizes=\"auto, (max-width: 1274px) 100vw, 1274px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0447\u0442\u043e \u043c\u044b \u0437\u0434\u0435\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, &#171;\u0432\u044b\u0431\u0440\u043e\u0448\u0435\u043d\u043d\u044b\u0435&#187; \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 &#171;\u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439&#187;.<\/span><\/p>\n<h2>\u0417\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; <strong><span style=\"color: #0000ff;\">subscription<\/span><\/strong> \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435\u00a0\u00a0<strong><span style=\"color: #0000ff;\">Set&lt;AnyCancellable&gt;<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">\u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430&#187; <strong><span style=\"color: #0000ff;\">subscription<\/span><\/strong> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f\u00a0<strong><span style=\"color: #0000ff;\">Cancellable<\/span><\/strong>,\u00a0 \u042d\u0442\u043e\u0442 \u0422\u0418\u041f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0435\u0442 \u0438 \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong><span style=\"color: #0000ff;\">fetchMovies<\/span><\/strong>. \u0427\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u00a0&#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; <strong><span style=\"color: #0000ff;\">subscription<\/span><\/strong>\u00a0\u0438 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443&#187; <strong><span style=\"color: #0000ff;\">subscription<\/span><\/strong>\u00a0\u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<strong><span style=\"color: #0000ff;\">fetchMovies<\/span><\/strong> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u00a0<strong><span style=\"color: #0000ff;\">subscriptions<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0438\u043c\u0435\u0435\u0442 \u0422\u0418\u041f\u00a0<strong><span style=\"color: #0000ff;\">Set&lt;AnyCancellable&gt;<\/span><\/strong>\u00a0\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u00a0<strong><span style=\"color: #0000ff;\">.store (in:\u00a0&amp;self.subscriptions)<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438&#187; \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u00a0\u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong><span style=\"color: #0000ff;\">fetchMovies<\/span><\/strong>\u00a0\u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443.\u00a0\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-20.33.02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11467 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-20.33.02.png\" alt=\"\" width=\"1284\" height=\"1278\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-20.33.02.png 1284w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-20.33.02-150x150.png 150w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-20.33.02-300x300.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-20.33.02-768x764.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-20.33.02-1024x1019.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-20.33.02-301x300.png 301w\" sizes=\"auto, (max-width: 1284px) 100vw, 1284px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041d\u0430 \u044d\u0442\u043e\u043c \u043c\u044b \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430<strong><span style=\"color: #0000ff;\"> fetchMovies<\/span><\/strong> \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00a0<strong><a href=\"https:\/\/developers.themoviedb.org\/3\/getting-started\/introduction?source=post_page-----f7c067c7bb3----------------------\">TMDb<\/a><\/strong>\u00a0\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>. \u041c\u0435\u0442\u043e\u0434\u00a0<strong><span style=\"color: #0000ff;\">fetchMovies<\/span><\/strong> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong><span style=\"color: #0000ff;\">from<\/span><\/strong> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">enum<\/span><\/strong>\u00a0<strong><span style=\"color: #0000ff;\">Endpoint<\/span><\/strong>, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0444\u0438\u043b\u044c\u043c\u044b \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442:\u00a0<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #0000ff;\">.nowPlaying<\/span><\/strong>\u00a0 &#8212; \u0444\u0438\u043b\u044c\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0434\u0443\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435,<\/span><\/li>\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #0000ff;\">.upcoming<\/span><\/strong>\u00a0&#8212; \u0444\u0438\u043b\u044c\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u043e\u0440\u043e \u0432\u044b\u0439\u0434\u0443\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d,<\/span><\/li>\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #0000ff;\">.popular<\/span><\/strong>\u00a0&#8212; \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b,<\/span><\/li>\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #0000ff;\">.topRated<\/span><\/strong>\u00a0 &#8212; \u0442\u043e\u043f\u043e\u0432\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b, \u0442\u043e \u0435\u0441\u0442\u044c \u0441 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u043e\u043c.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 <strong>API<\/strong> \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u00a0<strong><span style=\"color: #0000ff;\">UIKit<\/span> <\/strong>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0432 \u0432\u0438\u0434\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <strong>Table View Controller<\/strong> :<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.13.32.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11469 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.13.32.png\" alt=\"\" width=\"1580\" height=\"1612\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.13.32.png 1580w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.13.32-294x300.png 294w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.13.32-768x784.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.13.32-1004x1024.png 1004w\" sizes=\"auto, (max-width: 1580px) 100vw, 1580px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0438 \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u043e\u0432\u043e\u0433\u043e \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u00a0<strong><span style=\"color: #0000ff;\">SwiftUI<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.14.51.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11470 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.14.51.png\" alt=\"\" width=\"1688\" height=\"1602\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.14.51.png 1688w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.14.51-300x285.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.14.51-768x729.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.14.51-1024x972.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-09-at-21.14.51-316x300.png 316w\" sizes=\"auto, (max-width: 1688px) 100vw, 1688px\" \/><\/a><\/p>\n<h2>&#171;\u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0441\u044f&#187; \u043d\u0430 \u0444\u0438\u043b\u044c\u043c\u044b <span style=\"color: #0000ff;\"><strong>movies<\/strong><\/span> \u0438\u0437 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e View Controller \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438\u00a0<span style=\"color: #0000ff;\"><strong>movies\u00a0<\/strong><\/span>\u0442\u0430\u0431\u043b\u0438\u0446\u0443 Table View.<\/h2>\n<p><span style=\"font-weight: 400;\">\u041c\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u0444\u0430\u0439\u043b <strong><em>MovieListViewController.swift<\/em><\/strong> \u0438 \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <strong><span style=\"color: #0000ff;\">viewDidLoad<\/span> <\/strong>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 <strong><span style=\"color: #0000ff;\">fetchMovies<\/span><\/strong>.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.45.11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11472 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.45.11.png\" alt=\"\" width=\"1324\" height=\"746\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.45.11.png 1324w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.45.11-300x169.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.45.11-768x433.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.45.11-1024x577.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.45.11-500x282.png 500w\" sizes=\"auto, (max-width: 1324px) 100vw, 1324px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0412\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430\u00a0<strong><span style=\"color: #0000ff;\">fetchMovies\u00a0<\/span><\/strong>\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 <strong><span style=\"color: #0000ff;\">movieAPI<\/span><\/strong> \u0438 \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434<strong><span style=\"color: #0000ff;\"> fetchMovies<\/span><\/strong> \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <strong><span style=\"color: #0000ff;\">.nowPlaying<\/span> <\/strong>\u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u00a0<strong><span style=\"color: #0000ff;\">endpoint\u00a0<\/span><\/strong>\u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong><span style=\"color: #0000ff;\">from<\/span><\/strong><\/span><span style=\"font-weight: 400;\">. \u0422\u043e \u0435\u0441\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0444\u0438\u043b\u044c\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0434\u0443\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0430\u0445 \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u043e\u0432.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.50.30.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11473 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.50.30.png\" alt=\"\" width=\"1156\" height=\"416\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.50.30.png 1156w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.50.30-300x108.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.50.30-768x276.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.50.30-1024x368.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-19.50.30-500x180.png 500w\" sizes=\"auto, (max-width: 1156px) 100vw, 1156px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041c\u0435\u0442\u043e\u0434\u00a0<strong><span style=\"color: #0000ff;\">movieAPI.<\/span><\/strong><strong><span style=\"color: #0000ff;\">fetchMovies<\/span><\/strong>\u00a0<strong><span style=\"color: #0000ff;\">(from:.nowPlaying)<\/span><\/strong> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Future<\/span><\/strong>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0441\u044f&#187; \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e\u00a0<strong><span style=\"color: #0000ff;\">sink<\/span><\/strong>, \u0438 \u0441\u043d\u0430\u0431\u0436\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u0432\u0443\u043c\u044f \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f\u043c\u0438. \u0412 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0438 <strong><span style=\"color: #0000ff;\">receiveCompletion<\/span> <\/strong>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 <strong><span style=\"color: #0000ff;\">error<\/span><\/strong> \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u044d\u043a\u0441\u0442\u0440\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e <strong><span style=\"color: #0000ff;\">alert<\/span><\/strong> \u0441 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435.<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.06.44.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11474 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.06.44.png\" alt=\"\" width=\"1028\" height=\"380\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.06.44.png 1028w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.06.44-300x111.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.06.44-768x284.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.06.44-1024x379.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.06.44-500x185.png 500w\" sizes=\"auto, (max-width: 1028px) 100vw, 1028px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"> \u0412 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0438\u00a0<strong><span style=\"color: #0000ff;\">receiveValue<\/span><\/strong>\u00a0\u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 <strong><span style=\"color: #0000ff;\">generateSnapshot<\/span><\/strong> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b <strong><span style=\"color: #0000ff;\">movies<\/span><\/strong>. <\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.08.45.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11475 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.08.45.png\" alt=\"\" width=\"1074\" height=\"218\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.08.45.png 1074w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.08.45-300x61.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.08.45-768x156.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.08.45-1024x208.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-20.08.45-500x101.png 500w\" sizes=\"auto, (max-width: 1074px) 100vw, 1074px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0424\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<strong><span style=\"color: #0000ff;\">generateSnapshot<\/span><\/strong>\u00a0\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 <strong><span style=\"color: #0000ff;\">NSDiffableDataSourceSnapshot<\/span><\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043d\u0430\u0448\u0438 <strong><span style=\"color: #0000ff;\">movies<\/span><\/strong>, \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 <strong><span style=\"color: #0000ff;\">snapshot\u00a0<\/span><\/strong>\u043a\u00a0<strong><span style=\"color: #0000ff;\"> diffableDataSource<\/span>\u00a0<\/strong>\u043d\u0430\u0448\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a <strong><span style=\"color: #0000ff;\">UIKit<\/span> <\/strong>\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f\u043c\u0438&#187; <strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong> \u0438 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u043c\u0438&#187; \u0438\u0437 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u00a0<strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 <strong><span style=\"color: #0000ff;\">UIKit<\/span> <\/strong>\u0438\u00a0<strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>, \u043d\u043e \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0422\u0418\u041f\u0410<strong><span style=\"color: #0000ff;\"> Endpoint<\/span> <\/strong>\u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 &#8212; \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435, \u0432\u044b\u0441\u043e\u043a\u043e-\u0440\u0435\u0439\u0442\u0438\u043d\u0433\u043e\u0432\u044b\u0435 \u0438\u043b\u0438 \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435\u00a0 \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f.\u00a0 \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043b\u044e\u0431\u043e\u0439 <strong>UI<\/strong> \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u00a0<strong><span style=\"color: #0000ff;\">Endpoint<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong>Stepper<\/strong> \u0438\u043b\u0438 <strong>Segmented Control<\/strong>, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u042d\u0442\u043e \u043e\u0431\u0449\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0438 \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c\u00a0 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <span style=\"color: #0000ff;\"><strong>UIKit<\/strong><\/span>, \u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u0442\u043e \u043d\u043e\u0432\u043e\u043c\u0443 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c\u0443 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 <span style=\"color: #0000ff;\"><strong>SwiftUI<\/strong><\/span>.<\/span><\/span><\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <strong><span style=\"color: #0000ff;\">UIKit\u00a0<\/span><\/strong>\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CombineFetchAPI\">Github<\/a><\/strong> \u0432 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>CombineFetchAPICompleted-UIKit<\/strong>.<\/span><\/p>\n<h2>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <span style=\"color: #0000ff;\">SwiftUI<\/span> \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0444\u0438\u043b\u044c\u043c\u043e\u0432\u00a0<span style=\"color: #0000ff;\"><strong>movies<\/strong><\/span>.<\/h2>\n<p><span style=\"font-weight: 400;\">\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <strong>CombineFetchAPI-MY<\/strong> \u0441\u043e<strong><span style=\"color: #0000ff;\"> SwiftUI<\/span><\/strong> \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u043d\u044e <strong>File<\/strong>-&gt; <strong>New<\/strong> -&gt; <strong>Project<\/strong>\u00a0\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d <strong>Single View<\/strong>\u00a0<strong>App<\/strong> \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 <strong>iOS<\/strong>:<br \/>\n<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-14.46.28.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11480 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-14.46.28.png\" alt=\"\" width=\"1468\" height=\"1056\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-14.46.28.png 1468w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-14.46.28-300x216.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-14.46.28-768x552.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-14.46.28-1024x737.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-14.46.28-417x300.png 417w\" sizes=\"auto, (max-width: 1468px) 100vw, 1468px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0417\u0430\u0442\u0435\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u043c\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f <strong>UI<\/strong> &#8212; <strong><span style=\"color: #0000ff;\">SwiftUI<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-15.23.26.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11482 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-15.23.26.png\" alt=\"\" width=\"1482\" height=\"1070\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-15.23.26.png 1482w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-15.23.26-300x217.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-15.23.26-768x554.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-15.23.26-1024x739.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-15.23.26-416x300.png 416w\" sizes=\"auto, (max-width: 1482px) 100vw, 1482px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u0434\u0430\u0451\u043c \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0432 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0444\u0430\u0439\u043b \u041c\u043e\u0434\u0435\u043b\u0438 <strong><em>Movie.swift<\/em> <\/strong>\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c \u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0435<strong> Model<\/strong>, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u00a0<strong><a href=\"https:\/\/developers.themoviedb.org\/3\/getting-started\/introduction\">TMDb API <\/a><\/strong>\u0444\u0430\u0439\u043b\u044b <em><strong>MovieStore.swift<\/strong><\/em>,\u00a0<em><strong>MovieStoreAPIError.swift<\/strong><\/em> \u0438\u00a0<em><strong>MovieService.swift<\/strong><\/em>, \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c \u0438\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043f\u0430\u043f\u043a\u0430\u0445 <strong>MovieService<\/strong> \u0438 <strong>Protocol<\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.00.14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11484 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.00.14.png\" alt=\"\" width=\"1440\" height=\"834\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.00.14.png 1440w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.00.14-300x174.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.00.14-768x445.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.00.14-1024x593.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.00.14-500x290.png 500w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0412<strong><span style=\"color: #0000ff;\"> SwiftUI<\/span><\/strong> \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u041c\u043e\u0434\u0435\u043b\u044c \u0431\u044b\u043b\u0430 <span style=\"color: #0000ff;\"><strong>Codable<\/strong><\/span>, \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0435\u0451 <strong>JSON<\/strong> \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0438 <strong><span style=\"color: #0000ff;\">Identifiable<\/span><\/strong>, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430\u00a0\u0444\u0438\u043b\u044c\u043c\u043e\u0432 <strong><span style=\"color: #0000ff;\">[Movie]<\/span> <\/strong>\u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430\u00a0<strong><span style=\"color: #0000ff;\">List<\/span><\/strong>.\u00a0 \u041c\u043e\u0434\u0435\u043b\u0438 \u0432\u00a0<strong><span style=\"color: #0000ff;\">SwiftUI<\/span><\/strong> \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u044b\u0442\u044c <strong><span style=\"color: #0000ff;\">Equatable<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">Hashable<\/span><\/strong>, \u043a\u0430\u043a \u044d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u00a0<strong><span style=\"color: #0000ff;\">UIKit<\/span><\/strong> <strong>API<\/strong>\u00a0\u0434\u043b\u044f <strong><span style=\"color: #0000ff;\">UITableViewDiffableDataSource<\/span><\/strong> \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c <strong><span style=\"color: #0000ff;\">UIKit<\/span><\/strong> \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<strong><span style=\"color: #0000ff;\"> struct Movie<\/span><\/strong> \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438\u00a0<strong><span style=\"color: #0000ff;\">Equatable<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">Hashable<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11485 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.10.png\" alt=\"\" width=\"984\" height=\"378\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.10.png 984w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.10-300x115.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.10-768x295.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.10-500x192.png 500w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/a><\/p>\n<p><strong>.\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .\u00a0 .<\/strong><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.22.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11486 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.22.png\" alt=\"\" width=\"1110\" height=\"608\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.22.png 1110w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.22-300x164.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.22-768x421.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.22-1024x561.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-17.15.22-500x274.png 500w\" sizes=\"auto, (max-width: 1110px) 100vw, 1110px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0415\u0441\u0442\u044c \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f <strong><a href=\"https:\/\/nshipster.com\/identifiable\/\">Identifiable<\/a><\/strong>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0438 \u0441\u0445\u043e\u0434\u0441\u0442\u0432\u043e \u043c\u0435\u0436\u0434\u0443 <strong>Swift<\/strong> \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438 <strong><span style=\"color: #0000ff;\">Identifiable<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">Hashable<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">Equatable<\/span><\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #0000ff;\">SwiftUI<\/span><\/strong>, \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u043c\u0435\u043d\u044f\u0435\u043c <strong><span style=\"color: #0000ff;\">endpoint<\/span><\/strong> \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0444\u0438\u043b\u044c\u043c\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-19.19.42.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11594 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-19.19.42.png\" alt=\"\" width=\"2110\" height=\"1424\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-19.19.42.png 2110w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-19.19.42-300x202.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-19.19.42-768x518.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-19.19.42-1024x691.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-21-at-19.19.42-445x300.png 445w\" sizes=\"auto, (max-width: 2110px) 100vw, 2110px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0422\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 <strong><span style=\"color: #0000ff;\">UIKit<\/span><\/strong>, \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e\u00a0\u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<strong><span style=\"color: #0000ff;\">movieAPI.<\/span><\/strong><strong><span style=\"color: #0000ff;\">fetchMovies (from endpoint: Endpoint)<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439\u00a0<strong><span style=\"color: #0000ff;\">endpoint<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\"> \u0438\u00a0<\/span><\/span><span style=\"color: #000000;\">\u0432<\/span>\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Future&lt;[Movie, MovieStoreAPIError]&gt;<\/span><\/strong>. \u0415\u0441\u043b\u0438 \u043c\u044b \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 <strong><span style=\"color: #0000ff;\">Endpoint<\/span><\/strong>, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 <strong><span style=\"color: #0000ff;\">case<\/span><\/strong>\u00a0\u0432 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438\u00a0<strong><span style=\"color: #0000ff;\">Endpoint <\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0443\u0436\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0444\u0438\u043b\u044c\u043c\u043e\u0432\u00a0<\/span><\/span>\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 <strong><span style=\"color: #0000ff;\">index<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-22.36.06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11477 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-22.36.06.png\" alt=\"\" width=\"1052\" height=\"1228\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-22.36.06.png 1052w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-22.36.06-257x300.png 257w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-22.36.06-768x896.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-10-at-22.36.06-877x1024.png 877w\" sizes=\"auto, (max-width: 1052px) 100vw, 1052px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e\u0439 \u043d\u0430\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 <strong><span style=\"color: #0000ff;\">movies<\/span><\/strong>, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 <strong><span style=\"color: #0000ff;\">indexEndPoint<\/span><\/strong> \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">Endpoint<\/span><\/strong>. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0432\u00a0<strong>View Model<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u043b\u0430\u0441\u0441\u043e\u043c <strong><span style=\"color: #0000ff;\">final class MoviesViewModel<\/span><\/strong>, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b<strong><span style=\"color: #0000ff;\"> ObservableObject<\/span><\/strong>. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b\u00a0<em><strong>\u00a0<\/strong><\/em><span style=\"color: #000000;\"><em><strong>MoviesViewModel.swift<\/strong><\/em> \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439<strong>\u00a0View Model<\/strong>:<\/span><\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.27.58.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11599 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.27.58.png\" alt=\"\" width=\"1028\" height=\"368\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.27.58.png 1028w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.27.58-300x107.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.27.58-768x275.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.27.58-1024x367.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.27.58-500x179.png 500w\" sizes=\"auto, (max-width: 1028px) 100vw, 1028px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0412 \u044d\u0442\u043e\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435 \u0443 \u043d\u0430\u0441 \u0434\u0432\u0430 <strong><span style=\"color: #0000ff;\">@Published<\/span><\/strong> \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430: <\/span><span style=\"font-weight: 400;\">\u043e\u0434\u043d\u043e<strong><span style=\"color: #0000ff;\">\u00a0@Published var indexEndpoint: Int<\/span><\/strong> &#8212; \u0432\u0445\u043e\u0434\u043d\u043e\u0435,\u00a0\u0434\u0440\u0443\u0433\u043e\u0435\u00a0<strong><span style=\"color: #0000ff;\">@Published var movies: [Movie]<\/span><\/strong>\u00a0&#8212; \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0435. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438\u00a0<span style=\"color: #0000ff;\"><strong>@Published<\/strong><\/span>\u00a0\u043f\u0435\u0440\u0435\u0434 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c\u00a0<span style=\"color: #0000ff;\"><strong>var indexEndpoint: Int<\/strong>\u00a0<\/span>\u043c\u044b\u00a0 \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438 \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u00a0<span style=\"color: #0000ff;\"><strong>indexEndpoint<\/strong><\/span>, \u0438 \u043a\u0430\u043a \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f <span style=\"color: #0000ff;\"><strong>$indexEndpoint<\/strong><\/span>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u041f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 <span style=\"color: #0000ff;\"><strong>MoviesViewModel<\/strong><\/span> \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0442\u044f\u043d\u0443\u0442\u044c \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043e\u0442 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0 <strong><span style=\"color: #0000ff;\">$indexEndpoint<\/span>\u00a0<\/strong>\u0434\u043e \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; \u0422\u0418\u041f\u0410\u00a0<span style=\"color: #0000ff;\"><strong>AnyPublisher&lt;[Movie], Never&gt;<\/strong><\/span>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u043d\u0430\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong><span style=\"color: #0000ff;\">movieAPI.fetchMovies (from: Endpoint (index: indexPoint))<\/span><\/strong>\u00a0\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <span style=\"color: #0000ff;\"><strong>flatMap<\/strong><\/span>.<\/span><\/span><\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-22-at-19.49.37-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11600 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-22-at-19.49.37-1.png\" alt=\"\" width=\"1258\" height=\"1012\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-22-at-19.49.37-1.png 1258w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-22-at-19.49.37-1-300x241.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-22-at-19.49.37-1-768x618.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-22-at-19.49.37-1-1024x824.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-22-at-19.49.37-1-373x300.png 373w\" sizes=\"auto, (max-width: 1258px) 100vw, 1258px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u0414\u0430\u043b\u0435\u0435 \u043c\u044b &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0441\u044f&#187; \u043d\u0430 \u044d\u0442\u043e\u0433\u043e \u0432\u043d\u043e\u0432\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430&#187;\u00a0<strong><span style=\"color: #0000ff;\">assing (to: \\.movies, on: self)<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\"> \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u043e\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0443\u00a0<span style=\"color: #0000ff;\"><strong>movies<\/strong><\/span>.\u00a0 \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443&#187;\u00a0<span style=\"color: #0000ff;\"><strong>assing (to: \\.movies, on: self)<\/strong>\u00a0<\/span> \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c&#187; \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443, \u0442\u043e \u0435\u0441\u0442\u044c \u0438\u043c\u0435\u0435\u0442 \u0422\u0418\u041f \u043e\u0448\u0438\u0431\u043a\u0438 <strong><span style=\"color: #0000ff;\">Never<\/span><\/strong>. \u041a\u0430\u043a \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f? \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <strong><span style=\"color: #0000ff;\">replaceError(with: [ ])<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043c\u0435\u043d\u0438\u0442 \u043b\u044e\u0431\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430 \u043f\u0443\u0441\u0442\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0444\u0438\u043b\u044c\u043c\u043e\u0432\u00a0<span style=\"color: #0000ff;\"><strong>movies<\/strong><\/span>.<\/span><\/span><\/span><\/span><\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0430\u0448\u0435\u0433\u043e <strong><span style=\"color: #0000ff;\">SwiftUI<\/span><\/strong> \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043a\u0430\u0445.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c <strong>View Model<\/strong> \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0444\u0438\u043b\u044c\u043c\u043e\u0432, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e <strong>UI<\/strong>. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u0444\u0430\u0439\u043b <em><strong>ContentView.swift<\/strong><\/em>\u00a0\u043d\u0430\u0448\u0443\u00a0<strong>View Model<\/strong> \u043a\u0430\u043a <strong><span style=\"color: #0000ff;\">@EnvironmentObject<\/span> <\/strong>\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <strong><span style=\"color: #0000ff;\">var moviesViewModel<\/span> <\/strong>\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043c <strong><span style=\"color: #0000ff;\">Text(&#171;Hello, World!&#187;)<\/span><\/strong><br \/>\n\u043d\u0430 <strong><span style=\"color: #0000ff;\">Text(&#171;\\(moviesViewModel.indexEndpoint)&#187;)<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 <strong><span style=\"color: #0000ff;\">indexEndpoint<\/span>\u00a0<\/strong>\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432. <\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.52.49.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11554 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.52.49.png\" alt=\"\" width=\"1054\" height=\"754\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.52.49.png 1054w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.52.49-300x215.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.52.49-768x549.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.52.49-1024x733.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.52.49-419x300.png 419w\" sizes=\"auto, (max-width: 1054px) 100vw, 1054px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u043d\u0430\u0448\u0435\u0439\u00a0\u00a0<strong>View Model<\/strong>\u00a0\u0438\u043d\u0434\u0435\u043a\u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438\u00a0<strong><span style=\"color: #0000ff;\">indexEndpoint = 2<\/span><\/strong>\u00a0, \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u044b \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0444\u0438\u043b\u044c\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0439\u0434\u0443\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d (<strong>Upcoming<\/strong>):<br \/>\n<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-11.24.07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11552 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-11.24.07.png\" alt=\"\" width=\"1984\" height=\"1190\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-11.24.07.png 1984w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-11.24.07-300x180.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-11.24.07-768x461.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-11.24.07-1024x614.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-11.24.07-500x300.png 500w\" sizes=\"auto, (max-width: 1984px) 100vw, 1984px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0417\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u043c <strong>UI<\/strong> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u043c, \u043a\u0430\u043a\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c. \u042d\u0442\u043e\u00a0<strong><span style=\"color: #0000ff;\">Stepper<\/span><\/strong>\u00a0:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.57.05.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11555 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.57.05.png\" alt=\"\" width=\"1998\" height=\"1192\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.57.05.png 1998w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.57.05-300x179.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.57.05-768x458.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.57.05-1024x611.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-12.57.05-500x298.png 500w\" sizes=\"auto, (max-width: 1998px) 100vw, 1998px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">&#8230; \u0438\u00a0<strong><span style=\"color: #0000ff;\">Picker<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-13.00.58.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11556 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-13.00.58.png\" alt=\"\" width=\"1986\" height=\"1184\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-13.00.58.png 1986w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-13.00.58-300x179.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-13.00.58-768x458.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-13.00.58-1024x610.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-13.00.58-500x298.png 500w\" sizes=\"auto, (max-width: 1986px) 100vw, 1986px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041e\u0431\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">$moviesViewModel.indexEndpoint<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u00a0\u043d\u0430\u0448\u0435\u0439 <strong>View<\/strong> <strong>Model<\/strong>, \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445 (\u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043a\u0430\u043a\u043e\u0433\u043e) \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0443\u044e \u043d\u0430\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0444\u0438\u043b\u044c\u043c\u043e\u0432:<\/span><\/span><\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.09.10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11498 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.09.10.png\" alt=\"\" width=\"1264\" height=\"920\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.09.10.png 1264w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.09.10-300x218.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.09.10-768x559.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.09.10-1024x745.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.09.10-412x300.png 412w\" sizes=\"auto, (max-width: 1264px) 100vw, 1264px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0417\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #0000ff;\">List<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">ForEach<\/span><\/strong> \u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u043c\u0430 <strong><span style=\"color: #0000ff;\">movie<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.16.51.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11499 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.16.51.png\" alt=\"\" width=\"2016\" height=\"1400\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.16.51.png 2016w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.16.51-300x208.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.16.51-768x533.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.16.51-1024x711.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.16.51-432x300.png 432w\" sizes=\"auto, (max-width: 2016px) 100vw, 2016px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0421\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 <strong><span style=\"color: #0000ff;\">moviesViewModel<span class=\"s1\">.<\/span>movies<\/span><\/strong>\u00a0\u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u0431\u0435\u0440\u0435\u043c \u0438\u0437 \u043d\u0430\u0448\u0435\u0439 <strong>View Model<\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.28.26.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11500 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.28.26.png\" alt=\"\" width=\"1038\" height=\"1244\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.28.26.png 1038w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.28.26-250x300.png 250w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.28.26-768x920.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-13.28.26-854x1024.png 854w\" sizes=\"auto, (max-width: 1038px) 100vw, 1038px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041c\u044b \u041d\u0415 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">$moviesViewModel.movies<\/span><\/strong><span style=\"color: #000000;\"> \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c<\/span><strong><span style=\"color: #0000ff;\"> $<\/span><\/strong>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u043d\u0438\u0447\u0435\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u00a0<strong><span style=\"color: #0000ff;\">moviesViewModel.movies<\/span><\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u0438\u043d\u043e\u043f\u043e\u0441\u0442\u0435\u0440 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0444\u0438\u043b\u044c\u043c\u0430, <strong>URL<\/strong>\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 <strong><span style=\"color: #0000ff;\">Movie<\/span>:<\/strong><\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-14.04.14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11501 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-14.04.14.png\" alt=\"\" width=\"1314\" height=\"934\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-14.04.14.png 1314w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-14.04.14-300x213.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-14.04.14-768x546.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-14.04.14-1024x728.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-13-at-14.04.14-422x300.png 422w\" sizes=\"auto, (max-width: 1314px) 100vw, 1314px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041c\u044b \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u043c \u044d\u0442\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443 <a href=\"https:\/\/twitter.com\/Dimillian\"><strong>Thomas Ricouard<\/strong><\/a> \u0438\u0437 \u0435\u0433\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/github.com\/Dimillian\/MovieSwiftUI\/blob\/1d0ebdcb33f1164a3eba8b52a3f212ef0aef1dd9\/MovieSwift\/MovieSwift\/binding\/ImageLoader.swift\"><strong>MovieSwiftUI<\/strong><\/a>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0422\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 <strong><span style=\"color: #0000ff;\">movies<\/span><\/strong>, \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f <strong><span style=\"color: #0000ff;\">UIImage<\/span> <\/strong>\u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0435\u0440\u0432\u0438\u0441 <strong><span style=\"color: #0000ff;\">ImageService<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong> \u043c\u0435\u0442\u043e\u0434 <strong><span style=\"color: #0000ff;\">fetchImage<\/span><\/strong>, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187;\u00a0<strong><span style=\"color: #0000ff;\">AnyPublisher<span class=\"s1\">&lt;<\/span>UIImage<span class=\"s1\">?, <\/span>Never<\/span><\/strong><span class=\"s1\"><strong><span style=\"color: #0000ff;\">&gt;<\/span><\/strong> :<\/span><\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.10.59.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11598 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.10.59.png\" alt=\"\" width=\"1272\" height=\"932\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.10.59.png 1272w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.10.59-300x220.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.10.59-768x563.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.10.59-1024x750.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.10.59-409x300.png 409w\" sizes=\"auto, (max-width: 1272px) 100vw, 1272px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">&#8230; \u0438 <strong><span style=\"color: #0000ff;\">final class\u00a0<span class=\"s1\">ImageLoader<\/span>: ObservableObject<\/span><\/strong>, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b<strong><span style=\"color: #0000ff;\">\u00a0ObservableObject<\/span><\/strong>\u00a0\u0441<strong><span style=\"color: #0000ff;\"> @Published<\/span> <\/strong>\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c <strong><span style=\"color: #0000ff;\">image: UIImage?<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.46.36.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11601 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.46.36.png\" alt=\"\" width=\"1168\" height=\"1204\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.46.36.png 1168w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.46.36-291x300.png 291w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.46.36-768x792.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-23-at-17.46.36-993x1024.png 993w\" sizes=\"auto, (max-width: 1168px) 100vw, 1168px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u00a0<strong><span style=\"color: #0000ff;\"> ObservableObject<\/span><\/strong>\u00a0&#8212; \u044d\u0442\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u00a0\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <strong><span style=\"color: #0000ff;\">objectWillChange<\/span><\/strong>. <strong><span style=\"color: #0000ff;\">SwiftUI<\/span> <\/strong>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0447\u0442\u043e-\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c, \u0438 \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e, \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 <strong><span style=\"color: #0000ff;\">Views<\/span><\/strong>, \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u0442 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. \u041e\u0431\u044b\u0447\u043d\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u00a0<strong><span style=\"color: #0000ff;\">objectWillChange<\/span><\/strong>,\u00a0 \u0430 \u0432\u0441\u0435\u00a0<strong><span style=\"color: #0000ff;\">@Published<\/span><\/strong> \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u044e\u0442 \u0435\u0433\u043e \u043e\u0431 \u044d\u0442\u043e\u043c. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u00a0<strong><span style=\"color: #0000ff;\">objectWillChange\u00a0<\/span><\/strong>\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u043e \u043f\u0440\u043e\u0438\u0441\u0448\u0435\u0434\u0448\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445. \u0423 \u043d\u0430\u0441 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0412 \u043a\u043b\u0430\u0441\u0441\u0435 <strong><span style=\"color: #0000ff;\">ImageLoader<\/span> <\/strong>\u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 <strong><span style=\"color: #0000ff;\">@Published<\/span><\/strong> \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <strong><span style=\"color: #0000ff;\">var image:UIImage?<\/span><\/strong>. \u041e\u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u043e\u0441\u0442\u0440\u043e\u0443\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u043c \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c,\u00a0\u041f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 <strong><span style=\"color: #0000ff;\">ImageLoader<\/span><\/strong>, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">$image<\/span><\/strong> \u0438 \u043f\u0440\u0438 &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0435&#187; \u043d\u0430 \u043d\u0435\u0433\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong><span style=\"color: #0000ff;\">loadImage()<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0435 \u043d\u0430\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 poster \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 size \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u0435\u0433\u043e\u00a0<strong><span style=\"color: #0000ff;\">@Published<\/span><\/strong> \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443\u00a0<strong><span style=\"color: #0000ff;\">var image:UIImage?<\/span><\/strong>. \u041e\u0431 \u044d\u0442\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u043c\u044b \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u0435\u043c\u00a0\u00a0<strong><span style=\"color: #0000ff;\">objectWillChange<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">.<\/span><\/span><\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0443 \u043d\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 <strong><span style=\"color: #0000ff;\">imageLoader<\/span><\/strong> \u043a\u043b\u0430\u0441\u0441\u0430\u00a0<strong><span style=\"color: #0000ff;\">ImageLoader<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.22.06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11506 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.22.06.png\" alt=\"\" width=\"1180\" height=\"664\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.22.06.png 1180w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.22.06-300x169.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.22.06-768x432.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.22.06-1024x576.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.22.06-500x281.png 500w\" sizes=\"auto, (max-width: 1180px) 100vw, 1180px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435<strong><span style=\"color: #0000ff;\"> View<\/span><\/strong> \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043a\u0438\u043d\u043e\u043f\u043e\u0441\u0442\u0435\u0440\u0430 <strong><span style=\"color: #0000ff;\">MoviePosterImage<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.50.34.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11507 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.50.34.png\" alt=\"\" width=\"1056\" height=\"900\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.50.34.png 1056w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.50.34-300x256.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.50.34-768x655.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.50.34-1024x873.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-12.50.34-352x300.png 352w\" sizes=\"auto, (max-width: 1056px) 100vw, 1056px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">&#8230; \u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u0432 \u043d\u0430\u0448\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c <strong><span style=\"color: #0000ff;\">ContentView<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.11.38.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11509 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.11.38.png\" alt=\"\" width=\"1344\" height=\"1568\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.11.38.png 1344w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.11.38-257x300.png 257w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.11.38-768x896.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.11.38-878x1024.png 878w\" sizes=\"auto, (max-width: 1344px) 100vw, 1344px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.09.14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11508 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.09.14.png\" alt=\"\" width=\"2280\" height=\"1426\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.09.14.png 2280w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.09.14-300x188.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.09.14-768x480.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.09.14-1024x640.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-14-at-13.09.14-480x300.png 480w\" sizes=\"auto, (max-width: 2280px) 100vw, 2280px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <strong><span style=\"color: #0000ff;\">Swift<\/span><span style=\"color: #0000ff;\"><strong>UI<\/strong><\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u00a0\u0431\u0435\u0437 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a\u00a0<\/span><\/span>\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CombineFetchAPI\">Github<\/a><\/strong> \u0432 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>CombineFetchAPI-NOError<\/strong>.<\/span><\/p>\n<h1>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432.<\/h1>\n<p><span style=\"font-weight: 400;\">\u0414\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043c\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0438 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u0441 \u0441\u0430\u0439\u0442\u0430\u00a0<strong><a href=\"https:\/\/developers.themoviedb.org\/3\/getting-started\/introduction?source=post_page-----f7c067c7bb3----------------------\">TMDb<\/a><\/strong>. \u0425\u043e\u0442\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u043d\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<strong><span style=\"color: #0000ff;\">movieAPI.<\/span><\/strong><strong><span style=\"color: #0000ff;\">fetchMovies (from endpoint: Endpoint)<\/span><\/strong>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a<span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u00a0<\/span><\/span><span style=\"color: #000000;\">\u0432<\/span>\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f&#187; <strong><span style=\"color: #0000ff;\">Future&lt;[Movie, MovieStoreAPIError]&gt;<\/span><\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0447\u0435\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043d\u0430\u0448\u0443 <strong>View Model<\/strong> \u0435\u0449\u0435 \u043e\u0434\u043d\u043e <strong><span style=\"color: #0000ff;\">@Published<\/span><\/strong> \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u00a0<strong><span style=\"color: #0000ff;\">moviesError: MovieStoreAPIError?<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443. \u042d\u0442\u043e <strong><span style=\"color: #0000ff;\">Optional<\/span><\/strong>\u00a0\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e\u0435 <strong><span style=\"color: #0000ff;\">nil<\/span><\/strong>, \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044e \u043e\u0448\u0438\u0431\u043a\u0438:<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.17.29.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11557 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.17.29.png\" alt=\"\" width=\"1116\" height=\"408\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.17.29.png 1116w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.17.29-300x110.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.17.29-768x281.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.17.29-1024x374.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.17.29-500x183.png 500w\" sizes=\"auto, (max-width: 1116px) 100vw, 1116px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443\u00a0<strong><span style=\"color: #0000ff;\">moviesError<\/span><\/strong>, \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043a\u043b\u0430\u0441\u0441\u0430 <strong><span style=\"color: #0000ff;\">MoviesViewModel<\/span> <\/strong>\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430&#187; <strong><span style=\"color: #0000ff;\">sink<\/span><\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.38.35.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11558 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.38.35.png\" alt=\"\" width=\"1264\" height=\"530\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.38.35.png 1264w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.38.35-300x126.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.38.35-768x322.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.38.35-1024x429.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.38.35-500x210.png 500w\" sizes=\"auto, (max-width: 1264px) 100vw, 1264px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041e\u0448\u0438\u0431\u043a\u0443\u00a0<strong><span style=\"color: #0000ff;\">moviesError<\/span><\/strong>\u00a0\u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0430 <strong>UI<\/strong>, \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u0430 <strong><span style=\"color: #0000ff;\">nil<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u00a0&#8230;<\/span><\/span><\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.12.13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11563 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.12.13.png\" alt=\"\" width=\"2136\" height=\"1402\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.12.13.png 2136w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.12.13-300x197.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.12.13-768x504.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.12.13-1024x672.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.12.13-457x300.png 457w\" sizes=\"auto, (max-width: 2136px) 100vw, 2136px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<\/span><\/span> <strong><span style=\"color: #0000ff;\">AlertView:<\/span><\/strong><\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.49.26.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11564 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.49.26.png\" alt=\"\" width=\"1116\" height=\"830\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.49.26.png 1116w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.49.26-300x223.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.49.26-768x571.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.49.26-1024x762.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-14.49.26-403x300.png 403w\" sizes=\"auto, (max-width: 1116px) 100vw, 1116px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041c\u044b \u0438\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443, \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0431\u0440\u0430\u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 <strong>API<\/strong> \u043a\u043b\u044e\u0447:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.21.18.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11565 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.21.18.png\" alt=\"\" width=\"1064\" height=\"676\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.21.18.png 1064w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.21.18-300x191.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.21.18-768x488.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.21.18-1024x651.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.21.18-472x300.png 472w\" sizes=\"auto, (max-width: 1064px) 100vw, 1064px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <strong><span style=\"color: #0000ff;\">Swift<\/span><span style=\"color: #0000ff;\">UI<\/span><\/strong><span style=\"color: #0000ff;\"><span style=\"color: #000000;\">\u00a0\u0441 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u043e\u0448\u0438\u0431\u043e\u043a\u00a0<\/span><\/span>\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CombineFetchAPI\">Github<\/a><\/strong> \u0432 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>CombineFetchAPI-Error<\/strong><\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 <strong><span style=\"color: #0000ff;\">Future&lt;[Movie],MovieStoreAPIError&gt;<\/span><\/strong>, \u0430 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0439\u00a0<strong><span style=\"color: #0000ff;\">AnyPublisher<\/span><\/strong><span class=\"s1\"><strong><span style=\"color: #0000ff;\">&lt;[Movie], Never&gt;<\/span><\/strong> \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <strong><span style=\"color: #0000ff;\">fetchMoviesLight<\/span><\/strong>:<\/span><\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.34.36.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11566 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.34.36.png\" alt=\"\" width=\"1236\" height=\"428\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.34.36.png 1236w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.34.36-300x104.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.34.36-768x266.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.34.36-1024x355.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-16.34.36-500x173.png 500w\" sizes=\"auto, (max-width: 1236px) 100vw, 1236px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a (<strong><span style=\"color: #0000ff;\">Never<\/span><\/strong>) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e &#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430&#187;<strong><span style=\"color: #0000ff;\"> assign(to: \\.movies, on: self)<\/span> <\/strong>:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.31.27.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11568 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.31.27.png\" alt=\"\" width=\"1138\" height=\"340\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.31.27.png 1138w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.31.27-300x90.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.31.27-768x229.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.31.27-1024x306.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.31.27-500x149.png 500w\" sizes=\"auto, (max-width: 1138px) 100vw, 1138px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u0412\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u0438 \u043f\u0440\u0435\u0436\u0434\u0435:<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.45.19.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11569 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.45.19.png\" alt=\"\" width=\"2046\" height=\"1600\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.45.19.png 2046w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.45.19-300x235.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.45.19-768x601.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.45.19-1024x801.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-17-at-18.45.19-384x300.png 384w\" sizes=\"auto, (max-width: 2046px) 100vw, 2046px\" \/><\/a><\/p>\n<h1>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h1>\n<p><span style=\"font-weight: 400;\">\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong> \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <strong><span style=\"color: #0000ff;\">values<\/span><\/strong>, \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u043b\u0435\u0433\u043a\u043e. \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong>, &#8212; \u043c\u043e\u0449\u043d\u044b\u0435 \u0438 \u0433\u0438\u0431\u043a\u0438\u0435. <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u0443\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0438 <strong>upstream<\/strong> &#171;\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439&#187; <strong><span style=\"color: #0000ff;\">Publishers<\/span><\/strong>, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445\u00a0&#171;\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u043e\u0432&#187;\u00a0 <strong><span style=\"color: #0000ff;\"> Subscribers<\/span><\/strong>. <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong> \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435, \u0447\u0435\u043c <strong><span style=\"color: #0000ff;\">Foundation<\/span><\/strong>, \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 <strong><span style=\"color: #0000ff;\">Foundation<\/span><\/strong> \u0438 \u0438\u043c\u0435\u0435\u0442 \u043f\u043e\u0442\u0440\u044f\u0441\u0430\u044e\u0449\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-11.43.34.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11581 size-full\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-11.43.34.png\" alt=\"\" width=\"1116\" height=\"576\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-11.43.34.png 1116w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-11.43.34-300x155.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-11.43.34-768x396.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-11.43.34-1024x529.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-20-at-11.43.34-500x258.png 500w\" sizes=\"auto, (max-width: 1116px) 100vw, 1116px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><strong><span style=\"color: #0000ff;\">SwiftUI<\/span><\/strong> \u0442\u0430\u043a\u0436\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u044f\u0437\u0430\u043d \u043d\u0430 <strong><span style=\"color: #0000ff;\">Combine<\/span><\/strong> \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u0432\u043e\u0438\u043c\u00a0<strong><span style=\"color: #0000ff;\">@ObservableObject<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">@Binding<\/span><\/strong> \u0438 <strong><span style=\"color: #0000ff;\">@EnvironmentObject<\/span><\/strong>.<br \/>\n<strong>iOS<\/strong> \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0434\u0430\u0432\u043d\u043e \u0436\u0434\u0430\u043b\u0438 \u043e\u0442 <strong>Apple<\/strong> \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443 \u044d\u0442\u043e \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0421\u0441\u044b\u043b\u043a\u0438:<\/span><\/p>\n<p class=\"ej b ek er ar\"><strong><a href=\"https:\/\/medium.com\/@alfianlosari\/fetching-remote-async-api-with-apple-combine-framework-f7c067c7bb3\">Fetching Remote Async API with Apple Combine Framework<\/a><\/strong><\/p>\n<p class=\"title style-scope ytd-video-primary-info-renderer\"><strong><a href=\"https:\/\/www.youtube.com\/watch?v=fejmsuxoIvA\">try! Swift NYC 2019 &#8212; Getting Started with Combine<\/a><\/strong><\/p>\n<p><span style=\"font-weight: 400;\"><strong><a href=\"https:\/\/theswiftdev.com\/2019\/10\/31\/the-ultimate-combine-framework-tutorial-in-swift\/\">&#171;The ultimate Combine framework tutorial in Swift&#187;<\/a><\/strong>.<\/span><\/p>\n<p><a href=\"https:\/\/store.raywenderlich.com\/products\/combine-asynchronous-programming-with-swift\"><strong>Combine: Asynchronous Programming with Swift<\/strong><\/a><\/p>\n<h1 class=\"fa b fb fi ez\"><a href=\"https:\/\/medium.com\/flawless-app-stories\/visualize-combine-magic-with-swiftui-part-1-3a56e2a461b3\">Visualize Combine Magic with SwiftUI Part 1 ()<\/a><\/h1>\n<p class=\"et b eu fb es\"><strong><a href=\"https:\/\/medium.com\/better-programming\/visualize-combine-magic-with-swiftui-part-2-2c613370388b\">Visualize Combine Magic with SwiftUI \u2013 Part 2 (Operators, subscribing, and canceling in Combine)<\/a><\/strong><\/p>\n<p class=\"fa b fb fi ez\"><a href=\"https:\/\/medium.com\/flawless-app-stories\/visualize-combine-magic-with-swiftui-part-3-a3f0cc42bcc8\"><strong>Visualize Combine Magic with SwiftUI Part 3 (See Combine Merge and Append in Action)<\/strong><\/a><\/p>\n<p class=\"dv b dw ed du\"><strong><a href=\"https:\/\/medium.com\/@kevinminority\/visualize-combine-magic-with-swiftui-part-4-6d0c5678f89e\">Visualize Combine Magic with SwiftUI \u2014 Part 4<\/a><\/strong><\/p>\n<h1 class=\"fa b fb fi ez\"><a href=\"https:\/\/medium.com\/flawless-app-stories\/visualize-combine-magic-with-swiftui-part-5-2783adddbd1d\">Visualize Combine Magic with SwiftUI \u2014 Part 5<\/a><\/h1>\n<p class=\"et b eu fb es\"><strong><a href=\"https:\/\/medium.com\/better-programming\/getting-started-with-the-combine-framework-in-swift-36fe4ff6e568\">Getting Started With the Combine Framework in Swift<\/a><\/strong><\/p>\n<p class=\"post-full-title\"><strong><a href=\"https:\/\/www.vadimbulavin.com\/map-flatmap-switchtolatest-in-combine-framework\/\">Transforming Operators in Swift Combine Framework: Map vs FlatMap vs SwitchToLatest<\/a><\/strong><\/p>\n<p class=\"post-title\"><a href=\"https:\/\/www.thomasvisser.me\/2019\/07\/06\/combine-future\/\"><strong>Combine&#8217;s Future<\/strong><\/a><\/p>\n<p><strong><a href=\"https:\/\/heckj.github.io\/swiftui-notes\/\">Using Combine<\/a><\/strong><\/p>\n<p><strong><a href=\"https:\/\/theswiftdev.com\/2019\/08\/15\/urlsession-and-the-combine-framework\/\">URLSession and the Combine framework<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Combine &#8212; \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 Swift \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c Apple, \u0432\u043a\u043b\u044e\u0447\u0430\u044f Xcode 11. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e\u00a0\u0421ombine\u00a0\u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 values \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041e\u043d \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u043a\u043e\u0434, \u043e\u0442\u043a\u0430\u0437\u0430\u0432\u0448\u0438\u0441\u044c \u043e\u0442 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 callbacks. \u041d\u043e &hellip; <a href=\"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/\">\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60,55],"tags":[],"class_list":["post-11421","post","type-post","status-publish","format-standard","hentry","category-combine","category-ios-13"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 Apple \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0421ombine \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 TMDb.\" \/>\n\t<meta name=\"robots\" content=\"max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n\t<meta name=\"author\" content=\"tatiana.kornilova@gmail.com\"\/>\n\t<meta name=\"keywords\" content=\"combine,apple,publisher,subscriber,subject,cancellable,anycancellable,receivecompletion,receivevalue,future,promise,assing(to:,on:),sink,swiftui,observableobject,view model,erasetoanypublisher,objectwillchange,identifiable\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"ru_RU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"\u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. | \u0420\u0443\u0441\u0441\u043a\u0438\u0439 \u043d\u0435\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u043b\u0435\u043a\u0446\u0438\u0439 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u043e\u0433\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430 &quot; \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439&quot; 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 , 2023,  2024,  2025  \u0438 2026 \u0433\u0433., \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0435\u0439 \u043a\u0443\u0440\u0441\u043e\u0432 \u043a \u043d\u043e\u0432\u044b\u043c \u0432\u0435\u0440\u0441\u0438\u044f\u043c Swift, Objective-C \u0438 iOS.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine. | \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 Apple \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0421ombine \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 TMDb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-01T18:13:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-12-11T15:37:38+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine. | \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.\" \/>\n\t\t<meta name=\"twitter:description\" content=\"\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 Apple \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0421ombine \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 TMDb.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#article\",\"name\":\"API \\u0434\\u043b\\u044f \\u0443\\u0434\\u0430\\u043b\\u0435\\u043d\\u043d\\u043e\\u0439 \\u0430\\u0441\\u0438\\u043d\\u0445\\u0440\\u043e\\u043d\\u043d\\u043e\\u0439 \\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0438 \\u0441 \\u043f\\u043e\\u043c\\u043e\\u0449\\u044c\\u044e Apple Combine. | \\u041e\\u0431\\u0443\\u0447\\u0430\\u044e\\u0449\\u0438\\u0439 \\u043a\\u0443\\u0440\\u0441 \\u043f\\u043e \\u0440\\u0430\\u0437\\u0440\\u0430\\u0431\\u043e\\u0442\\u043a\\u0435 iOS+Swift \\u043f\\u0440\\u0438\\u043b\\u043e\\u0436\\u0435\\u043d\\u0438\\u0439.\",\"headline\":\"API \\u0434\\u043b\\u044f \\u0443\\u0434\\u0430\\u043b\\u0435\\u043d\\u043d\\u043e\\u0439 \\u0430\\u0441\\u0438\\u043d\\u0445\\u0440\\u043e\\u043d\\u043d\\u043e\\u0439 \\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0438 \\u0441 \\u043f\\u043e\\u043c\\u043e\\u0449\\u044c\\u044e Apple Combine.\",\"author\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/Screenshot-2019-11-11-at-09.54.10.png\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#articleImage\",\"width\":1326,\"height\":730},\"datePublished\":\"2019-11-01T18:13:33+00:00\",\"dateModified\":\"2019-12-11T15:37:38+00:00\",\"inLanguage\":\"ru-RU\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#webpage\"},\"articleSection\":\"Combine, iOS 13\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/category\\\/ios-13\\\/#listItem\",\"name\":\"iOS 13\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/category\\\/ios-13\\\/#listItem\",\"position\":2,\"name\":\"iOS 13\",\"item\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/category\\\/ios-13\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#listItem\",\"name\":\"API \\u0434\\u043b\\u044f \\u0443\\u0434\\u0430\\u043b\\u0435\\u043d\\u043d\\u043e\\u0439 \\u0430\\u0441\\u0438\\u043d\\u0445\\u0440\\u043e\\u043d\\u043d\\u043e\\u0439 \\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0438 \\u0441 \\u043f\\u043e\\u043c\\u043e\\u0449\\u044c\\u044e Apple Combine.\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#listItem\",\"position\":3,\"name\":\"API \\u0434\\u043b\\u044f \\u0443\\u0434\\u0430\\u043b\\u0435\\u043d\\u043d\\u043e\\u0439 \\u0430\\u0441\\u0438\\u043d\\u0445\\u0440\\u043e\\u043d\\u043d\\u043e\\u0439 \\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0438 \\u0441 \\u043f\\u043e\\u043c\\u043e\\u0449\\u044c\\u044e Apple Combine.\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/category\\\/ios-13\\\/#listItem\",\"name\":\"iOS 13\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#person\",\"name\":\"tatiana.kornilova@gmail.com\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/33ccc19059014d8a7849c3621afa2b66a5f3e50ac7291c91c30ff35df5747628?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"tatiana.kornilova@gmail.com\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/#author\",\"url\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/\",\"name\":\"tatiana.kornilova@gmail.com\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/33ccc19059014d8a7849c3621afa2b66a5f3e50ac7291c91c30ff35df5747628?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"tatiana.kornilova@gmail.com\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#webpage\",\"url\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/\",\"name\":\"API \\u0434\\u043b\\u044f \\u0443\\u0434\\u0430\\u043b\\u0435\\u043d\\u043d\\u043e\\u0439 \\u0430\\u0441\\u0438\\u043d\\u0445\\u0440\\u043e\\u043d\\u043d\\u043e\\u0439 \\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0438 \\u0441 \\u043f\\u043e\\u043c\\u043e\\u0449\\u044c\\u044e Apple Combine. | \\u041e\\u0431\\u0443\\u0447\\u0430\\u044e\\u0449\\u0438\\u0439 \\u043a\\u0443\\u0440\\u0441 \\u043f\\u043e \\u0440\\u0430\\u0437\\u0440\\u0430\\u0431\\u043e\\u0442\\u043a\\u0435 iOS+Swift \\u043f\\u0440\\u0438\\u043b\\u043e\\u0436\\u0435\\u043d\\u0438\\u0439.\",\"description\":\"\\u0418\\u0437\\u0443\\u0447\\u0435\\u043d\\u0438\\u0435 Apple \\u0444\\u0440\\u0435\\u0439\\u043c\\u0432\\u043e\\u0440\\u043a\\u0430 \\u0421ombine \\u043d\\u0430 \\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\u0435 \\u0430\\u0441\\u0438\\u043d\\u0445\\u0440\\u043e\\u043d\\u043d\\u043e\\u0439 \\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u043e\\u0439 \\u0438\\u043d\\u0444\\u043e\\u0440\\u043c\\u0430\\u0446\\u0438\\u0438 \\u043e \\u0444\\u0438\\u043b\\u044c\\u043c\\u0430\\u0445 \\u0438\\u0437 \\u0431\\u0430\\u0437\\u044b \\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 TMDb.\",\"inLanguage\":\"ru-RU\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/fetching-remote-async-api-with-apple-combine-framework\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/#author\"},\"datePublished\":\"2019-11-01T18:13:33+00:00\",\"dateModified\":\"2019-12-11T15:37:38+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#website\",\"url\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/\",\"name\":\"\\u041e\\u0431\\u0443\\u0447\\u0430\\u044e\\u0449\\u0438\\u0439 \\u043a\\u0443\\u0440\\u0441 \\u043f\\u043e \\u0440\\u0430\\u0437\\u0440\\u0430\\u0431\\u043e\\u0442\\u043a\\u0435 iOS+Swift \\u043f\\u0440\\u0438\\u043b\\u043e\\u0436\\u0435\\u043d\\u0438\\u0439.\",\"description\":\"\\u0420\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439 \\u043d\\u0435\\u0430\\u0432\\u0442\\u043e\\u0440\\u0438\\u0437\\u043e\\u0432\\u0430\\u043d\\u043d\\u044b\\u0439 \\u043a\\u043e\\u043d\\u0441\\u043f\\u0435\\u043a\\u0442 \\u043b\\u0435\\u043a\\u0446\\u0438\\u0439 \\u0421\\u0442\\u044d\\u043d\\u0444\\u043e\\u0440\\u0434\\u0441\\u043a\\u043e\\u0433\\u043e \\u0443\\u043d\\u0438\\u0432\\u0435\\u0440\\u0441\\u0438\\u0442\\u0435\\u0442\\u0430 \\\" \\u0420\\u0430\\u0437\\u0440\\u0430\\u0431\\u043e\\u0442\\u043a\\u0430 iOS \\u043f\\u0440\\u0438\\u043b\\u043e\\u0436\\u0435\\u043d\\u0438\\u0439\\\" 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 , 2023,  2024,  2025  \\u0438 2026 \\u0433\\u0433., \\u0441\\u043e\\u043f\\u0440\\u043e\\u0432\\u043e\\u0436\\u0434\\u0430\\u0435\\u043c\\u044b\\u0439 \\u0440\\u0435\\u0448\\u0435\\u043d\\u0438\\u044f\\u043c\\u0438 \\u0437\\u0430\\u0434\\u0430\\u043d\\u0438\\u0439 \\u0438 \\u0434\\u043e\\u043f\\u043e\\u043b\\u043d\\u0435\\u043d\\u0438\\u044f\\u043c\\u0438, \\u0441\\u0432\\u044f\\u0437\\u0430\\u043d\\u043d\\u044b\\u043c\\u0438 \\u0441 \\u0430\\u0434\\u0430\\u043f\\u0442\\u0430\\u0446\\u0438\\u0435\\u0439 \\u043a\\u0443\\u0440\\u0441\\u043e\\u0432 \\u043a \\u043d\\u043e\\u0432\\u044b\\u043c \\u0432\\u0435\\u0440\\u0441\\u0438\\u044f\\u043c Swift, Objective-C \\u0438 iOS.\",\"inLanguage\":\"ru-RU\",\"publisher\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine. | \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.","description":"\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 Apple \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0421ombine \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 TMDb.","canonical_url":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/","robots":"max-snippet:-1, max-image-preview:large, max-video-preview:-1","keywords":"combine,apple,publisher,subscriber,subject,cancellable,anycancellable,receivecompletion,receivevalue,future,promise,assing(to:,on:),sink,swiftui,observableobject,view model,erasetoanypublisher,objectwillchange,identifiable","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#article","name":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine. | \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.","headline":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine.","author":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/#author"},"publisher":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-11-at-09.54.10.png","@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#articleImage","width":1326,"height":730},"datePublished":"2019-11-01T18:13:33+00:00","dateModified":"2019-12-11T15:37:38+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#webpage"},"isPartOf":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#webpage"},"articleSection":"Combine, iOS 13"},{"@type":"BreadcrumbList","@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper#listItem","position":1,"name":"Home","item":"https:\/\/bestkora.com\/IosDeveloper","nextItem":{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/category\/ios-13\/#listItem","name":"iOS 13"}},{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/category\/ios-13\/#listItem","position":2,"name":"iOS 13","item":"https:\/\/bestkora.com\/IosDeveloper\/category\/ios-13\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#listItem","name":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine."},"previousItem":{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#listItem","position":3,"name":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine.","previousItem":{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/category\/ios-13\/#listItem","name":"iOS 13"}}]},{"@type":"Person","@id":"https:\/\/bestkora.com\/IosDeveloper\/#person","name":"tatiana.kornilova@gmail.com","image":{"@type":"ImageObject","@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/33ccc19059014d8a7849c3621afa2b66a5f3e50ac7291c91c30ff35df5747628?s=96&d=mm&r=g","width":96,"height":96,"caption":"tatiana.kornilova@gmail.com"}},{"@type":"Person","@id":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/#author","url":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/","name":"tatiana.kornilova@gmail.com","image":{"@type":"ImageObject","@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/33ccc19059014d8a7849c3621afa2b66a5f3e50ac7291c91c30ff35df5747628?s=96&d=mm&r=g","width":96,"height":96,"caption":"tatiana.kornilova@gmail.com"}},{"@type":"WebPage","@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#webpage","url":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/","name":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine. | \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.","description":"\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 Apple \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0421ombine \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 TMDb.","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/#website"},"breadcrumb":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/#breadcrumblist"},"author":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/#author"},"creator":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/#author"},"datePublished":"2019-11-01T18:13:33+00:00","dateModified":"2019-12-11T15:37:38+00:00"},{"@type":"WebSite","@id":"https:\/\/bestkora.com\/IosDeveloper\/#website","url":"https:\/\/bestkora.com\/IosDeveloper\/","name":"\u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.","description":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439 \u043d\u0435\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u043b\u0435\u043a\u0446\u0438\u0439 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u043e\u0433\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430 \" \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439\" 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 , 2023,  2024,  2025  \u0438 2026 \u0433\u0433., \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0435\u0439 \u043a\u0443\u0440\u0441\u043e\u0432 \u043a \u043d\u043e\u0432\u044b\u043c \u0432\u0435\u0440\u0441\u0438\u044f\u043c Swift, Objective-C \u0438 iOS.","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/#person"}}]},"og:locale":"ru_RU","og:site_name":"\u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. | \u0420\u0443\u0441\u0441\u043a\u0438\u0439 \u043d\u0435\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u043b\u0435\u043a\u0446\u0438\u0439 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u043e\u0433\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430 &quot; \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439&quot; 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 , 2023,  2024,  2025  \u0438 2026 \u0433\u0433., \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0435\u0439 \u043a\u0443\u0440\u0441\u043e\u0432 \u043a \u043d\u043e\u0432\u044b\u043c \u0432\u0435\u0440\u0441\u0438\u044f\u043c Swift, Objective-C \u0438 iOS.","og:type":"article","og:title":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine. | \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.","og:description":"\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 Apple \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0421ombine \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 TMDb.","og:url":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/","article:published_time":"2019-11-01T18:13:33+00:00","article:modified_time":"2019-12-11T15:37:38+00:00","twitter:card":"summary","twitter:title":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine. | \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.","twitter:description":"\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 Apple \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0421ombine \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 TMDb."},"aioseo_meta_data":{"post_id":"11421","title":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine. | #site_title","description":"\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435\u00a0Apple \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0421ombine\u00a0\u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435  \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0438\u043b\u044c\u043c\u0430\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00a0TMDb.","keywords":[{"label":"Combine","value":"Combine"},{"label":"Apple","value":"Apple"},{"label":"Publisher","value":"Publisher"},{"label":"Subscriber","value":"Subscriber"},{"label":"Subject","value":"Subject"},{"label":"Cancellable","value":"Cancellable"},{"label":"AnyCancellable","value":"AnyCancellable"},{"label":"receiveCompletion","value":"receiveCompletion"},{"label":"receiveValue","value":"receiveValue"},{"label":"Future","value":"Future"},{"label":"Promise","value":"Promise"},{"label":"assing(to:","value":"assing(to:"},{"label":"on:)","value":"on:)"},{"label":"sink","value":"sink"},{"label":"SwiftUI","value":"SwiftUI"},{"label":"ObservableObject","value":"ObservableObject"},{"label":"View Model","value":"View Model"},{"label":"eraseToAnyPublisher","value":"eraseToAnyPublisher"},{"label":"objectWillChange","value":"objectWillChange"},{"label":"Identifiable","value":"Identifiable"}],"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-21 06:31:48","updated":"2026-02-22 20:04:42","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bestkora.com\/IosDeveloper\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bestkora.com\/IosDeveloper\/category\/ios-13\/\" title=\"iOS 13\">iOS 13<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAPI \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine.\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/bestkora.com\/IosDeveloper"},{"label":"iOS 13","link":"https:\/\/bestkora.com\/IosDeveloper\/category\/ios-13\/"},{"label":"API \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Apple Combine.","link":"https:\/\/bestkora.com\/IosDeveloper\/fetching-remote-async-api-with-apple-combine-framework\/"}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/posts\/11421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/comments?post=11421"}],"version-history":[{"count":5,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/posts\/11421\/revisions"}],"predecessor-version":[{"id":11624,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/posts\/11421\/revisions\/11624"}],"wp:attachment":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/media?parent=11421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/categories?post=11421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/tags?post=11421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}