{"id":17230,"date":"2026-02-02T10:34:28","date_gmt":"2026-02-02T10:34:28","guid":{"rendered":"https:\/\/bestkora.com\/IosDeveloper\/?page_id=17230"},"modified":"2026-05-23T13:43:03","modified_gmt":"2026-05-23T13:43:03","slug":"ios-swiftui-2025","status":"publish","type":"page","link":"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/","title":{"rendered":"iOS SwiftUI 2025"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 <strong><a href=\"https:\/\/cs193p.sites.stanford.edu\">CS193p &#8212; &#171;Developing&nbsp; Application for iOS with SwiftUI&#187;<\/a><\/strong>&nbsp;(&#171;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI&#187;) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f <strong>iPhone<\/strong> \u0438 <strong>iPad<\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <strong>SwiftUI<\/strong>. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u2014 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p \u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0435 \u0441 2010 \u0433\u043e\u0434\u0430.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041d\u0438\u0436\u0435 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b <a href=\"https:\/\/cs193p.stanford.edu\" title=\"\"><strong>\u043a\u0443\u0440\u0441\u0430 CS193p (\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c SwiftUI) \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 (\u0432\u0435\u0441\u043d\u0430 2025 \u0433\u043e\u0434\u0430)<\/strong><\/a>. \u042d\u0442\u043e\u0442 \u043a\u0443\u0440\u0441 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0430 \u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442 \u0441 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041a\u0443\u0440\u0441 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b \u0434\u043e \u0432\u044b\u0445\u043e\u0434\u0430 iOS 26 \u0438 Xcode 26, \u043d\u043e \u043a\u043e\u0434, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0443\u0440\u0441\u0430, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0441 \u043d\u0438\u043c\u0438. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 Xcode 26, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u2014 \u044d\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 LLM, \u0430 \u0432 iOS 26 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f Liquid Glass \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432 \u044d\u0442\u0438\u0445 \u0432\u0438\u0434\u0435\u043e \u0435\u0451 \u043d\u0435\u0442.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0430\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u0438\u0445 \u0432\u0438\u0434\u0435\u043e, \u043d\u043e \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u0432 \u0432\u0430\u0448\u0435\u043c \u0441\u0442\u0440\u0435\u043c\u043b\u0435\u043d\u0438\u0438 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u0438\u043c\u0438!<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">P.S. \u0412 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0445 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442\u0430\u0445 \u041b\u0435\u043a\u0446\u0438\u0439 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u043f\u043e\u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u043f\u043e\u043b\u044f\u0445, \u043a\u0430\u0441\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 Xcode 26 \u0438 iOS 26.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041a\u043e\u0434, \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0449\u0438\u0439 \u041b\u0435\u043a\u0446\u0438\u0438, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 1. \u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e&nbsp;SwiftUI.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043a\u0443\u0440\u0441. \u041e\u0441\u043d\u043e\u0432\u044b <strong>SwiftUI<\/strong> \u0438 <strong>Xcode<\/strong>, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e <strong><span style=\"color: #680da1;\">Views<\/span><\/strong>. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u0434\u0430\u0435\u0442 \u043e\u0431\u0437\u043e\u0440 \u043a\u0443\u0440\u0441\u0430, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f (\u0443\u043c\u0435\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u044a\u0435\u043c \u043a\u043e\u0434\u0430, \u043e\u043f\u044b\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0443\u0440\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u00ab\u043d\u0430\u0440\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u00bb, \u0433\u0434\u0435 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u043e\u0434\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (<strong>CodeBreaker)<\/strong> \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 6-7 \u043d\u0435\u0434\u0435\u043b\u044c, \u0430 \u043d\u0435 \u0438\u0437\u0443\u0447\u0430\u044e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u043c \u043a\u043e\u0434\u0430. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041e\u043d \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0432\u0441\u0435\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 <strong>Xcode<\/strong> \u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442 \u0441 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 SwiftUI <strong><span style=\"color: #680da1;\">View<\/span><\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u044e \u0441 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u043c Lego, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0435 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> (<strong><span style=\"color: #680da1;\">Text<\/span><\/strong>, <strong><span style=\"color: #680da1;\">Image<\/span><\/strong>, <strong><span style=\"color: #680da1;\">Circle<\/span><\/strong>) \u0441 \u043a\u0443\u0431\u0438\u043a\u0430\u043c\u0438 Lego, \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> (<strong><span style=\"color: #680da1;\">ContentView<\/span><\/strong>) \u0441 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438 Lego, View-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b (<strong><span style=\"color: #680da1;\">VStack<\/span><\/strong>) \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u043e \u0441\u0431\u043e\u0440\u0443 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 Lego, \u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> \u2014 \u0441 \u00ab\u043c\u0435\u0448\u043a\u0430\u043c\u0438 Lego\u00bb . <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041b\u0435\u043a\u0446\u0438\u044f \u0442\u0430\u043a\u0436\u0435 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u044b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 Swift, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b <strong><span style=\"color: #680da1;\">struct<\/span><\/strong>, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 <strong><span style=\"color: #680da1;\">var<\/span><\/strong> \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e <strong><span style=\"color: #680da1;\">some View<\/span><\/strong> \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=kCjDulwChRQ&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=3&amp;pp=iAQB\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong><\/a>.<br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1Xj-eaQoHDKfX1dQUpmBfpbD4U_WJmS9BXWzl8TpdXz0\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 1.<\/a><\/strong><br><a href=\"https:\/\/cs193p.stanford.edu\/sites\/g\/files\/sbiybj16636\/files\/media\/file\/2025r1.pdf\"><strong><span style=\"color:#a30016\" class=\"has-inline-color\">\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 1<\/span><\/strong>.<\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 2. \u0411\u043e\u043b\u044c\u0448\u0435 \u043e&nbsp;SwiftUI. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Code Breaker.<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 SwiftUI \u0441 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c <strong><span style=\"color: #680da1;\">\u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 View<\/span><\/strong>, \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u043f\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f UI, \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 <strong><span style=\"color: #680da1;\">View<\/span><\/strong>. \u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">\u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 View<\/span><\/strong> \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0446\u0435\u043f\u043e\u0447\u0435\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0435 <strong><span style=\"color: #680da1;\">View<\/span><\/strong>, \u0441 <span style=\"font-weight: 400;\">\u0442\u0430\u043a\u0438\u043c\u0438<\/span><\/span> <span style=\"font-weight: 400;\">\u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438,  \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">.font()<\/span><\/strong>, <strong><span style=\"color: #680da1;\">.foregroundStyle()<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">.padding()<\/span><\/strong>. \u041e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442\u0441\u044f, \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">\u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b View<\/span><\/strong> \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u0445 <strong><span style=\"color: #680da1;\">View<\/span><\/strong> \u043a \u0438\u0445 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0417\u0430\u0442\u0435\u043c \u043b\u0435\u043a\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Code Breaker, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u0444\u0438\u0448\u0435\u043a <strong><span style=\"color: #680da1;\">pegs<\/span><\/strong> \u0432 \u0438\u0433\u0440\u0435, \u0430 \u0437\u0430\u0442\u0435\u043c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043c\u0430\u0440\u043a\u0435\u0440\u043e\u0432 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <strong><span style=\"color: #680da1;\">Shapes<\/span><\/strong> \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438, \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">.fill()<\/span><\/strong>, <strong><span style=\"color: #680da1;\">.stroke()<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">.opacity()<\/span><\/strong>. \u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 <strong>\u0432\u0435\u0434\u0443\u0442 \u0441\u0435\u0431\u044f \u043a\u0430\u043a<\/strong> <strong><span style=\"color: #680da1;\">View<\/span><\/strong>, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">View<\/span><\/strong> \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 <strong><span style=\"color: #680da1;\">enum<\/span><\/strong> (\u0434\u043b\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">.exact<\/span><\/strong>, <strong><span style=\"color: #680da1;\">.inexact<\/span><\/strong>, <strong><span style=\"color: #680da1;\">.nomatch<\/span><\/strong>). <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">count(where:)<\/span><\/strong> \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432. \u0412 \u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0433\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=63UHypFKRRM&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1yCEeZIIdbIv8bcDuukXVIEUpL17c1IkSXSh20YKU1_Y\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 2.<\/a><\/strong><br><a href=\"https:\/\/cs193p.stanford.edu\/sites\/g\/files\/sbiybj16636\/files\/media\/file\/2025a1.pdf\"><strong><span style=\"color:#a30016\" class=\"has-inline-color\">\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 1<\/span><\/strong>.<\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 3. \u041c\u043e\u0434\u0435\u043b\u044c \u0438 UI; \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0422\u0418\u041f\u043e\u0432 \u0432 Swift.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043a\u0443\u0440\u0441. \u041e\u0441\u043d\u043e\u0432\u044b <strong>SwiftUI<\/strong> \u0438 <strong>Xcode<\/strong>, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e <strong><span style=\"color: #680da1;\">Views<\/span><\/strong>. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u0434\u0430\u0435\u0442 \u043e\u0431\u0437\u043e\u0440 \u043a\u0443\u0440\u0441\u0430, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f (\u0443\u043c\u0435\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u044a\u0435\u043c \u043a\u043e\u0434\u0430, \u043e\u043f\u044b\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0443\u0440\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u00ab\u043d\u0430\u0440\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u00bb, \u0433\u0434\u0435 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u043e\u0434\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (<strong>CodeBreaker)<\/strong> \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 6-7 \u043d\u0435\u0434\u0435\u043b\u044c, \u0430 \u043d\u0435 \u0438\u0437\u0443\u0447\u0430\u044e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u043c \u043a\u043e\u0434\u0430. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041e\u043d \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0432\u0441\u0435\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 <strong>Xcode<\/strong> \u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442 \u0441 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 SwiftUI <strong><span style=\"color: #680da1;\">View<\/span><\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u044e \u0441 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u043c Lego, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0435 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> (<strong><span style=\"color: #680da1;\">Text<\/span><\/strong>, <strong><span style=\"color: #680da1;\">Image<\/span><\/strong>, <strong><span style=\"color: #680da1;\">Circle<\/span><\/strong>) \u0441 \u043a\u0443\u0431\u0438\u043a\u0430\u043c\u0438 Lego, \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> (<strong><span style=\"color: #680da1;\">ContentView<\/span><\/strong>) \u0441 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438 Lego, View-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b (<strong><span style=\"color: #680da1;\">VStack<\/span><\/strong>) \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u043e \u0441\u0431\u043e\u0440\u0443 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 Lego, \u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> \u2014 \u0441 \u00ab\u043c\u0435\u0448\u043a\u0430\u043c\u0438 Lego\u00bb . <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041b\u0435\u043a\u0446\u0438\u044f \u0442\u0430\u043a\u0436\u0435 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u044b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 Swift, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b <strong><span style=\"color: #680da1;\">struct<\/span><\/strong>, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 <strong><span style=\"color: #680da1;\">var<\/span><\/strong> \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e <strong><span style=\"color: #680da1;\">some View<\/span><\/strong> \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=B42CuI0RO7Y&amp;list=PL2ZNhbGJfUX6iw_HEkg8lpv9-yuWxiXX_&amp;index=4\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong><\/a>.<br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1tuRSpgHjEn31zLvVPnB7UPs4Pb89gxWZTCk8tjrjoHk\/edit?usp=sharing\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 3.<\/a><\/strong><br><a href=\"https:\/\/cs193p.stanford.edu\/sites\/g\/files\/sbiybj16636\/files\/media\/file\/2025r2.pdf\"><strong><span style=\"color:#a30016\" class=\"has-inline-color\">\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 2<\/span><\/strong>.<\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 4. \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u041c\u043e\u0434\u0435\u043b\u0438 CodeBreaker.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u044c CodeBreaker \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u043d\u0435\u0439 UI. \u041f\u043e\u043f\u0443\u0442\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f <strong><span style=\"color: #680da1;\">@State<\/span><\/strong>, <strong><span style=\"color: #680da1;\">Optional<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">onTapGesture<\/span><\/strong>. CodeBreaker \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0438\u0433\u0440\u044b!<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u042d\u0442\u0430 \u043b\u0435\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u041c\u043e\u0434\u0435\u043b\u0438 \u0438 UI \u0432 CodeBreaker. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u041c\u043e\u0434\u0435\u043b\u044c \u0438\u0433\u0440\u044b CodeBreaker, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0430\u044f <strong><span style=\"color: #680da1;\">CodeBreaker<\/span><\/strong> (\u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u0433\u0440\u043e\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430), <strong><span style=\"color: #680da1;\">Code<\/span><\/strong> (\u0441 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c <strong><span style=\"color: #680da1;\">enum Kind<\/span><\/strong> \u0434\u043b\u044f \u0442\u0438\u043f\u043e\u0432 <strong><span style=\"color: #680da1;\">Code master\/guess\/attempt<\/span><\/strong> ) \u0438 <strong><span style=\"color: #680da1;\">Peg<\/span><\/strong> (\u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c  \u0422\u0418\u041f\u0430 \u0434\u043b\u044f <strong><span style=\"color: #680da1;\">Color<\/span><\/strong>). <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0417\u0430\u0442\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f <strong><span style=\"color: #680da1;\">CodeBreakerView<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u043e\u043f\u043b\u043e\u0449\u0435\u043d\u0438\u0435\u043c \u041c\u043e\u0434\u0435\u043b\u0438. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442: \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0444\u0430\u0439\u043b\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">@State<\/span><\/strong> \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f UI, \u043f\u043e\u043c\u0435\u0442\u043a\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">mutating<\/span><\/strong> \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445 <strong><span style=\"color: #680da1;\">struct<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c\u0438, \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">Optional<\/span><\/strong> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #680da1;\">if-let<\/span><\/strong> , \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b <strong><span style=\"color: #680da1;\">nil<\/span><\/strong> \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0438 multi-touch \u0432\u0432\u043e\u0434 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #680da1;\">onTapGesture()<\/span><\/strong>. <br>\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a SwiftUI \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 UI \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u041c\u043e\u0434\u0435\u043b\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f Tap-\u0446\u0438\u043a\u043b \u0432\u044b\u0431\u043e\u0440\u0430 <strong><span style=\"color: #680da1;\">Peg<\/span><\/strong>. \u041e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u041c\u043e\u0434\u0435\u043b\u0438 \u043e\u0442 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 UI. <br>\u041a \u043a\u043e\u043d\u0446\u0443 \u043b\u0435\u043a\u0446\u0438\u0438 CodeBreaker \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0439 \u0438\u0433\u0440\u043e\u0439.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=IvOF3Bmk-94&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=3&amp;pp=iAQB0gcJCRUKAYcqIYzv\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1ajqSMQMcXvOphhp0ivtKEp-wodeVVxgr09srMUMahbE\/edit?usp=sharing\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 4.<\/a><\/strong><br><a href=\"https:\/\/cs193p.stanford.edu\/sites\/g\/files\/sbiybj16636\/files\/media\/file\/2025a2.pdf\"><strong><span style=\"color:#a30016\" class=\"has-inline-color\">\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 2.<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 5. Layout (\u041c\u0430\u043a\u0435); \u041f\u043e\u0442\u043e\u043a \u0414\u0430\u043d\u043d\u044b\u0445 (Data Flow).<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041a\u0430\u043a SwiftUI \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b UI \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 &#8212; Layout. <br>\u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443  <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> \u0432 <span style=\"font-weight: 400;\">SwiftUI<\/span><\/span> \u043f<span style=\"font-weight: 400;\">\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. <br>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u0435 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong>, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">HStack \/ VStack<\/span><\/strong>, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0434\u043b\u044f <strong>\u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u0445 <\/strong> <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> (\u0442\u0435\u043a\u0441\u0442 <strong><span style=\"color: #680da1;\">Text<\/span><\/strong>, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">Image<\/span><\/strong>), \u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u043b\u044f <strong>\u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u0445<\/strong> (\u043a\u0440\u0443\u0433 <strong><span style=\"color: #680da1;\">Circle<\/span><\/strong>, \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a <strong><span style=\"color: #680da1;\">Rectangle<\/span><\/strong>). <br>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 Layout \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 <\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">Spacer<\/span><\/strong> \u0434\u043b\u044f \u0433\u0438\u0431\u043a\u043e\u0433\u043e \u043e\u0442\u0441\u0442\u0443\u043f\u0430, <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">layoutPriority()<\/span><\/strong> \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">&#171;\u043b\u0435\u043d\u0438\u0432\u044b\u0435&#187; \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b (<strong><span style=\"color: #680da1;\">LazyVStack<\/span><\/strong>, <strong><span style=\"color: #680da1;\">LazyHGrid<\/span><\/strong>) \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043d\u0430\u0431\u043e\u0440\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">Form<\/span><\/strong>, <strong><span style=\"color: #680da1;\">List<\/span><\/strong>, <strong><span style=\"color: #680da1;\">Grid<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">ViewThatFits<\/span><\/strong>.<\/span><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041e\u0431\u044a\u044f\u0441\u043d\u044f\u044e\u0442\u0441\u044f <strong><span style=\"color: #680da1;\">View<\/span><\/strong> \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b <strong><span style=\"color: #680da1;\">ZStack<\/span><\/strong>: <strong><span style=\"color: #680da1;\">overlay \/ background<\/span><\/strong>, \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0441 \u0446\u0432\u0435\u0442\u043d\u044b\u043c \u0444\u043e\u043d\u043e\u043c \u0438 \u0442\u043e, \u043a\u0430\u043a \u0442\u0430\u043a\u0438\u0435 <strong><span style=\"color: #680da1;\">View<\/span><\/strong> \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b, \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">.padding<\/span><\/strong>, \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 Layout. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong><span style=\"color: #680da1;\">map()<\/span><\/strong> \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0437\u0430\u0445\u0432\u0430\u0442 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong><span style=\"color: #680da1;\">matchAgainst()<\/span><\/strong> \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043c\u0435\u0441\u0442\u043e \u0446\u0438\u043a\u043b\u043e\u0432 <strong><span style=\"color: #680da1;\">for<\/span><\/strong>, \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u044f \u043c\u043e\u0449\u044c \u0438 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u0432 Swift.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=u6cgk1W6EXE&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=5\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/11nMumVeH5VSwlS-KqMfsAJhHJwWuHUd_OzG0XXvhzME\/edit?usp=sharing\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 5.<\/a><\/strong><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 6. \u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f Data Flow.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u042d\u0442\u0430 \u043b\u0435\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f\u043c \u0438 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435<strong> Data Flow<\/strong> \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0432 SwiftUI. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 &#171;\u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b&#187; \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 peg, \u0443\u043b\u0443\u0447\u0448\u0430\u044e\u0449\u0438\u0439 \u0432\u0432\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u00ab\u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e Tap\u00bb. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u0435\u043c\u044b \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442: <\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u043c &#171;\u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0432 \u0444\u0430\u0439\u043b&#187; (<span style=\"font-weight: 400;\"><strong>Extract to File<\/strong><\/span><\/span>)<span style=\"font-weight: 400;\">, <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">PegView<\/span><\/strong> \u043a\u0430\u043a \u043c\u043d\u043e\u0433\u043e\u0440\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430,<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 <strong>\/\/ MARK <\/strong>\u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430, <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e <strong><span style=\"color: #680da1;\">@State<\/span><\/strong> \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u043e\u0440\u0430 <strong><span style=\"color: #680da1;\">selection<\/span><\/strong><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"> \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043e\u043a <strong><span style=\"color: #680da1;\">Button<\/span><\/strong> \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c\u0438 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0435\u0442\u043e\u043a. <\/span><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 <strong>Data Flow<\/strong> \u043e\u0442 \u0432\u0432\u043e\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0447\u0435\u0440\u0435\u0437 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> \u0434\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f <strong>\u041c\u043e\u0434\u0435\u043b\u0438<\/strong>, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044f, \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">Views<\/span><\/strong> \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <strong>\u041c\u043e\u0434\u0435\u043b\u0438<\/strong>. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0446\u0438\u043a\u043b <strong><span style=\"color: #680da1;\">ForEach<\/span><\/strong> \u0431\u0435\u0437 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 <strong><span style=\"color: #680da1;\">indices<\/span><\/strong>, \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b, \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">extension<\/span><\/strong> \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong><span style=\"color: #680da1;\">Color.gray()<\/span><\/strong> \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u044f\u0440\u043a\u043e\u0441\u0442\u0438 <strong><span style=\"color: #680da1;\">brightness<\/span><\/strong>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 <strong><span style=\"color: #680da1;\">CGFloat<\/span><\/strong> (\u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f) \u0438 <strong><span style=\"color: #680da1;\">Double<\/span><\/strong> (\u0434\u043b\u044f \u043e\u0431\u0449\u0438\u0445 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439). <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f <span style=\"font-weight: 400;\">\u0442\u0430\u043a\u0438\u0435 <\/span>\u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b <strong>SwiftUI<\/strong>, \u043a\u0430\u043a \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 &#171;\u0445\u0432\u043e\u0441\u0442\u043e\u0432\u044b\u0445&#187; \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f\u043c\u0438, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b <strong><span style=\"color: #680da1;\">guard<\/span><\/strong> \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 <strong><span style=\"color: #680da1;\">@State<\/span><\/strong> \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c UI, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 <strong>\u041c\u043e\u0434\u0435\u043b\u0438<\/strong>.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=tvVj6MSBhBA&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=6\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1o6jxG05bdYIUpQMMXqGEOUk_Gl4ZugUfSrmFARcr400\/edit?usp=sharing\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 6.<\/a><\/strong><br><a href=\"https:\/\/cs193p.stanford.edu\/sites\/g\/files\/sbiybj16636\/files\/media\/file\/2025a3.pdf\"><strong><span style=\"color:#a30016\" class=\"has-inline-color\">\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 3.<\/span><\/strong><\/a><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL6.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 7. Generic \u0438 Views; \u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">Generics \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 <strong><span style=\"color: #680da1;\">View<\/span><\/strong> \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b. <br>\u0420\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 CodeView \u0434\u043b\u044f \u043f\u0440\u0438\u0435\u043c\u0430 \u043b\u044e\u0431\u044b\u0445 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 <strong><span style=\"color: #680da1;\">View<\/span><\/strong> (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <strong><span style=\"color: #680da1;\">MatchMarkers<\/span><\/strong> \u0438\u043b\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u00abGuess\u00bb) \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <strong>Generics<\/strong> \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438 <strong><span style=\"color: #680da1;\">(AncillaryView: View)<\/span><\/strong>. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong><span style=\"color: #680da1;\">@Binding<\/span><\/strong> \u0432  <strong><span style=\"color: #680da1;\">init View<\/span><\/strong>, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 <strong><span style=\"color: #680da1;\">@ViewBuilder<\/span><\/strong> \u0434\u043b\u044f \u0433\u0438\u0431\u043a\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">@escaping<\/span><\/strong> \u0434\u043b\u044f \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u043e\u043b\u044c\u0448\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0414\u0440\u0443\u0433\u0438\u0435 \u0442\u0435\u043c\u044b \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 <strong><span style=\"color: #680da1;\">fileprivate<\/span><\/strong> \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b <strong><span style=\"color: #680da1;\">structs<\/span><\/strong>, \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 &#171;\u0445\u0432\u043e\u0441\u0442\u043e\u0432\u044b\u0445&#187; \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f\u043c\u0438, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f Generic \u0422\u0418\u041f\u043e\u0432 \u0441 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438 <strong><span style=\"color: #680da1;\">where<\/span><\/strong> \u0438 \u0442\u043e, \u043a\u0430\u043a \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432 SwiftUI <strong><span style=\"color: #680da1;\">View<\/span><\/strong>, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">VStack<\/span><\/strong>, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b.. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/span> \u043d\u0430 \u0441\u043b\u0430\u0439\u0434\u0430\u0445.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=RYemrq0e7KM&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=6&amp;pp=iAQB\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1ltHKfrJ2rUgoUwTRkOrLnzsyf3gqIp10D3bZhsnArfY\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 7.<\/a><\/strong><br><a href=\"https:\/\/cs193p.stanford.edu\/sites\/g\/files\/sbiybj16636\/files\/media\/file\/2025r3.pdf\"><strong><span style=\"color:#a30016\" class=\"has-inline-color\">\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 3.<\/span><\/strong><\/a><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL7.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 8. \u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0410\u043d\u0438\u043c\u0430\u0446\u0438\u0438.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u044f\u0432\u043d\u0430\u044f (explicit) \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #680da1;\">withAnimation()<\/span><\/strong>, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f <strong><span style=\"color: #680da1;\">extension<\/span><\/strong> \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b <strong><span style=\"color: #680da1;\">Animation<\/span><\/strong> \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0435\u0439 \u043f\u0443\u0442\u0435\u043c \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0414\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0432 <strong>CodeBreaker<\/strong> \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u200b\u200b\u043a\u043d\u043e\u043f\u043a\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 &#171;Restart&#187;. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f <strong><span style=\"color: #680da1;\">.animation (nil)<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">.transaction()<\/span><\/strong> \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044c \u0441\u043a\u0440\u044b\u0442\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438\u0433\u0440\u044b, \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 <strong><span style=\"color: #680da1;\">transitions<\/span><\/strong> \u043c\u0435\u0436\u0434\u0443 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong>, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">.move()<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">.offset()<\/span><\/strong>, \u0434\u043b\u044f \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043a\u043e\u043b\u044c\u0436\u0435\u043d\u0438\u044e \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041e\u0431\u0441\u0443\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 <strong><span style=\"color: #680da1;\">transactions<\/span><\/strong> \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u0438\u0432 \u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. <br>\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438.<span style=\"font-weight: 400;\">.<\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=OZK7_p1G8Pw&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=5&amp;pp=iAQB0gcJCRUKAYcqIYzv\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1hZGa0eqAjXv08YU5XAMNCpkneBGxOZID4S6qE-h67zk\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 8.<\/a><\/strong><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL8.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 9. Elapsed Time; \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b Protocols.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0411\u043e\u043b\u044c\u0448\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438.<br> \n\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 Swift. \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e <strong><span style=\"color: #680da1;\">ElapsedTimeView<\/span><\/strong> \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0442\u0435\u0440\u0430\u043c\u0438, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0444\u043e\u0440\u043c\u0430\u0442\u0442\u0435\u0440\u043e\u043c <strong><span style=\"color: #680da1;\">.offset<\/span><\/strong> \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 <strong><span style=\"color: #680da1;\">protocol<\/span><\/strong>, \u0432\u0430\u0436\u043d\u043e\u0433\u043e \u0430\u0441\u043f\u0435\u043a\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0442\u0438\u043f\u043e\u0432 Swift. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=o3D3rqh-IVA&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=4&amp;pp=iAQB\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1cxqwgi6_H66kSQQh6E-oISvmp6g4Um1QWeCBvF1aLok\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 9.<\/a><\/strong><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL9.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 10. List \u0438 Navigation.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <strong>Code Breaker<\/strong> \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043e \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0433\u0440. \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong>. <br>\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e <strong><span style=\"color: #680da1;\">View GameChooser<\/span><\/strong> \u0441 <strong><span style=\"color: #680da1;\">List<\/span><\/strong>, \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">@State<\/span><\/strong> \u043d\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u0433\u0440\u044b CodeBreaker \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0442\u0435\u043c\u0430\u043c\u0438 (<strong>Mastermind<\/strong>, <strong>Earth Tones<\/strong>, <strong>Undersea<\/strong>). <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u043a\u0430\u043a <strong><span style=\"color: #680da1;\">List<\/span><\/strong> \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 <strong><span style=\"color: #680da1;\">ScrollView<\/span><\/strong>, <strong><span style=\"color: #680da1;\">ForEach<\/span><\/strong> \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0438 \u0432 \u043c\u043e\u0449\u043d\u043e\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u043e\u0435 <strong><span style=\"color: #680da1;\">View<\/span><\/strong> \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. <br>\u041f\u043e\u043f\u0443\u0442\u043d\u043e \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d <strong><span style=\"color: #680da1;\">ForEach<\/span><\/strong> \u0441 \u043f\u0440\u044f\u043c\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u043f\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0447\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044f \u0442\u0440\u0435\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c <strong><span style=\"color: #680da1;\">ForEach<\/span><\/strong> (\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0445\u0435\u0448\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c). <br>\u0422\u0430\u043a\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 <strong><span style=\"color: #680da1;\">Hashable<\/span><\/strong> \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0422\u0418\u041f\u043e\u0432 (\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <strong><span style=\"color: #680da1;\">enum Code<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">enum Match<\/span><\/strong>), \u0441\u0438\u043d\u0442\u0435\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 <strong><span style=\"color: #680da1;\">Identifiable<\/span><\/strong> \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=NnJ91M9PRYo&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=3&amp;pp=iAQB0gcJCRUKAYcqIYzv\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1VJ12zajQYIrXLNdf6m5xrb5-5-oviAjt9hGIQiobeVI\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 10.<\/a><\/strong><br><a href=\"https:\/\/cs193p.stanford.edu\/sites\/g\/files\/sbiybj16636\/files\/media\/file\/2025a4.pdf\"><strong><span style=\"color:#a30016\" class=\"has-inline-color\">\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e 4.<\/span><\/strong><\/a><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL10.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 11. iPad; Sheets.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0417\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <strong>Code Breaker <\/strong>\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 (<strong>iPhone<\/strong>, <strong>iPad<\/strong>, <strong>Mac<\/strong>) \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #680da1;\">NavigationSplitView<\/span><\/strong>. <br>\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">NavigationStack<\/span><\/strong> \u0432 <strong><span style=\"color: #680da1;\">NavigationSplitView<\/span><\/strong> \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 Views \u0440\u044f\u0434\u043e\u043c \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u044d\u043a\u0440\u0430\u043d\u0430\u0445. <br>\u041f\u043e\u043f\u0443\u0442\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 <strong>Size Classes <\/strong>(<strong><span style=\"color: #680da1;\">.compact<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">.regular<\/span><\/strong>), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0445 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #680da1;\">navigationTitle()<\/span><\/strong>.<br> \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c <strong><span style=\"color: #680da1;\">selection<\/span><\/strong> \u0432 \u0441\u043f\u0438\u0441\u043a\u0430\u0445 <strong><span style=\"color: #680da1;\">List<\/span><\/strong> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #680da1;\">@Binding<\/span><\/strong>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">@Bindable<\/span><\/strong> \u0434\u043b\u044f <strong><span style=\"color: #680da1;\">@Observable<\/span><\/strong> \u0441\u0432\u043e\u0439\u0441\u0442\u0432. <br>\u041e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0443\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445 UI \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 <strong><span style=\"color: #680da1;\">frame<\/span><\/strong>. <br>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 <strong><span style=\"color: #680da1;\">Sheet<\/span><\/strong> \u0434\u043b\u044f \u043c\u043e\u0434\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=PXcl5cjVNT0&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=2&amp;pp=iAQB0gcJCRUKAYcqIYzv\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1JV2KE-eEGPaGgNkVIS6tTrFxrsf3tqRHY2cAW6Ew4RU\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 11.<\/a><\/strong><br><a href=\"https:\/\/cs193p.stanford.edu\/sites\/g\/files\/sbiybj16636\/files\/media\/file\/2025r4_0.pdf\"><strong><span style=\"color:#a30016\" class=\"has-inline-color\">\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 4.<\/span><\/strong><\/a><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL11.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 12. \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 CodeBreaker.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0438 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 <strong><span style=\"color: #680da1;\">View<\/span><\/strong> \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. <br>\u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f <strong><span style=\"color: #680da1;\">PegChoicesChooserView<\/span><\/strong> \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438 \u0446\u0432\u0435\u0442\u043e\u0432 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0444\u0438\u0448\u0435\u043a <strong><span style=\"color: #680da1;\">pegs<\/span><\/strong>. <br>\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c <strong><span style=\"color: #680da1;\">sheet<\/span><\/strong> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043e\u043a <strong><span style=\"color: #680da1;\">Binding<\/span><\/strong> \u043a <strong><span style=\"color: #680da1;\">isPresented<\/span><\/strong> \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0438\u0433\u0440 \u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <strong><span style=\"color: #680da1;\">@Bindable<\/span><\/strong> \u0434\u043b\u044f <strong><span style=\"color: #680da1;\">@Observable<\/span><\/strong> \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. <br>\u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0433\u0438\u0431\u043a\u0438\u0439 UI, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0438\u0433\u0440, \u0442\u0430\u043a \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">Optional<\/span><\/strong> \u0434\u043b\u044f \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 <strong><span style=\"color: #680da1;\">@ViewBuilder<\/span><\/strong> \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f <strong><span style=\"color: #680da1;\">dismiss sheet<\/span><\/strong>. <br>\u041e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0443\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 UI \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043c\u043e\u0434\u0430\u043b\u044c\u043d\u044b\u0445 <strong><span style=\"color: #680da1;\">Views<\/span><\/strong>.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=gNok5P7HLCw&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=1&amp;pp=iAQB\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/19l5ySbY0YJVZal91BCom6ZjyjrAosv-UcXkjLwurARk\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 12.<\/a><\/strong><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL12.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 13. SwiftData.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong>SwiftData<\/strong> \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. <br>\u041f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u043a\u0430\u043a \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c <strong>\u041c\u043e\u0434\u0435\u043b\u044c<\/strong> \u0438\u0437 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 <strong><span style=\"color: #680da1;\">struct<\/span><\/strong> \u0432 <strong><span style=\"color: #680da1;\">@Model<\/span><\/strong> \u043a\u043b\u0430\u0441\u0441\u044b <strong><span style=\"color: #680da1;\">class<\/span><\/strong>. \u041e\u0431\u044a\u044f\u0441\u043d\u044f\u044e\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0422\u0418\u041f\u044b <strong><span style=\"color: #680da1;\">@Model<\/span><\/strong> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 <strong><span style=\"color: #680da1;\">vars<\/span><\/strong> (\u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b, \u0434\u0440\u0443\u0433\u0438\u0435 <strong><span style=\"color: #680da1;\">@Model<\/span><\/strong> , <strong><span style=\"color: #680da1;\">Codable<\/span><\/strong>, \u043c\u0430\u0441\u0441\u0438\u0432\u044b <strong><span style=\"color: #680da1;\">Arrays<\/span><\/strong>), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 <strong><span style=\"color: #680da1;\">@Relationship<\/span><\/strong> \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">@Transient<\/span><\/strong> \u0434\u043b\u044f \u043d\u0435\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. <br>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 <strong><span style=\"color: #680da1;\">ModelContainer<\/span><\/strong> \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438 #Preview, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">@Environment(\\.modelContext)<\/span><\/strong> \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">FetchDescriptors<\/span><\/strong> \u0441 #Predicates \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443. <br>\u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <strong><span style=\"color: #680da1;\">try\/catch<\/span><\/strong>, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0422\u0418\u041f\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u041c\u043e\u0434\u0435\u043b\u044c\u044e \u0438 UI Views, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0437\u0430\u043f\u0440\u0435\u0442 \u043d\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430\u0445). <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=k9wjAdgUY0A&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=13&amp;pp=iAQB\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/147QRLOcIYvqE63xwNb8C9O7pgx5qY2eTi0w60_-rf88\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 13.<\/a><\/strong><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL13.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 14. \u0411\u043e\u043b\u044c\u0448\u0435 SwiftData.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041b\u0435\u043a\u0446\u0438\u044f 14 \u043a\u0443\u0440\u0441\u0430 CS193p 2025 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0443\u0433\u043b\u0443\u0431\u043b\u0451\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u043e <strong><span style=\"color: #680da1;\">SwiftData<\/span><\/strong> \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 <strong>CodeBreaker<\/strong>. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u2014 \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u0438 \u043a\u0430\u043a \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 \u0431\u0430\u0437\u0435. <br><strong>\u041a\u0440\u0430\u0442\u043a\u043e \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044e: <\/strong><\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">@Model<\/span><\/strong> \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0430\u0437\u0435. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 <strong><span style=\"color: #680da1;\">ModelContainer<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">ModelContext<\/span><\/strong>. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0433\u0440 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 <strong><span style=\"color: #680da1;\">@Query<\/span><\/strong> \u0438 <strong><span style=\"color: #680da1;\">#Predicate<\/span><\/strong> \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u043c \u0438\u0433\u0440\u0430\u043c. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f SwiftUI <strong><span style=\"color: #680da1;\">Views<\/span><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 <strong><span style=\"color: #680da1;\">SwiftData<\/span><\/strong>. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0445 <strong><span style=\"color: #680da1;\">#Preview <\/span><\/strong> \u0434\u043b\u044f <strong><span style=\"color: #680da1;\">Views<\/span><\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b SwiftUI + <strong><span style=\"color: #680da1;\">SwiftData <\/span><\/strong>. <\/span><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><strong>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f \u043b\u0435\u043a\u0446\u0438\u0438<\/strong>: <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">SwiftData<\/span><\/strong> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0447\u0442\u0438 \u00ab\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u00bb \u0432 SwiftUI \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441 UI \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 Data Flow. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438: <\/strong><\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">@Model<\/span><\/strong> <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">@Query<\/span><\/strong> <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">#Predicate<\/span><\/strong> <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">ModelContext<\/span><\/strong> <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">ModelContainer<\/span><\/strong> <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">SwiftUI<\/span><\/strong> previews \u0441 in-memory database <\/span><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u0441\u043b\u0435 \u043b\u0435\u043a\u0446\u0438\u0438: \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0442\u0435\u0440\u044f\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f, \u0443\u043c\u0435\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0433\u0440 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0438\u0441\u043a\/\u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u043d\u0438\u043c.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=1PDZl0LPryw&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=14&amp;pp=iAQB\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1yV8stSJWU342CKHQjdtdPqGF3oEwj7SdALjQm5eWWWs\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 14.<\/a><\/strong><br><a href=\"https:\/\/cs193p.stanford.edu\/sites\/g\/files\/sbiybj16636\/files\/media\/file\/2025a5.pdf\"><strong><span style=\"color:#a30016\" class=\"has-inline-color\">\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 5.<\/span><\/strong><\/a><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL14.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u041b\u0435\u043a\u0446\u0438\u044f 15. \u0415\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 SwiftData; \u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0435\u043c, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u043e <strong><span style=\"color: #680da1;\">SwiftData<\/span><\/strong>, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u044b\u0445 \u0438\u0433\u0440 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0432\u044f\u0437\u0435\u0439 <strong><span style=\"color: #680da1;\">@Relationship<\/span><\/strong> \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u041b\u0435\u043a\u0446\u0438\u0438 15 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (concurrency) \u0432 Swift \u2014 \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e <strong><span style=\"color: #680da1;\">async\/await<\/span><\/strong>, <strong><span style=\"color: #680da1;\">Task<\/span><\/strong>, <strong><span style=\"color: #680da1;\">actor isolation<\/span><\/strong> \u0438 \u0440\u0430\u0431\u043e\u0442\u0435 UI \u0432 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><strong>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u043c\u044b \u043b\u0435\u043a\u0446\u0438\u0438: <\/strong><\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 Swift Concurrency. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">async<\/span> \u0438 <strong><span style=\"color: #680da1;\">await<\/span>. <\/strong><\/strong><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">Task<\/span><\/strong>. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041f\u043e\u0447\u0435\u043c\u0443 UI \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 <strong><span style=\"color: #680da1;\">MainActor<\/span><\/strong>. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong>Actor isolation <\/strong>\u0438 \u0437\u0430\u0449\u0438\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 <strong>race conditions.<\/strong> <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443: <strong><span style=\"color: #680da1;\">Task { }<\/span><\/strong> <strong><span style=\"color: #680da1;\">Task.detached { }<\/span><\/strong> <\/span><\/li>\n\n\n\n<li>\u0410<span style=\"font-weight: 400;\">\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u0435\u0442\u0438. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041e\u0442\u043c\u0435\u043d\u0430 \u0437\u0430\u0434\u0430\u0447 (<strong><span style=\"color: #680da1;\">task cancellation<\/span><\/strong>). <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041a\u0430\u043a SwiftUI \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 concurrency. <\/span><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0438\u0434\u0435\u0438:<\/strong> <\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">await<\/span><\/strong> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">Actors<\/span><\/strong> \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442 \u043c\u043d\u043e\u0433\u0438\u0435 \u0440\u0443\u0447\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">SwiftUI \u0442\u0435\u0441\u043d\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0441 <strong><span style=\"color: #680da1;\">MainActor<\/span><\/strong>. <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong><span style=\"color: #680da1;\">Task {}<\/span><\/strong> \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 <strong><span style=\"color: #680da1;\">actor context<\/span><\/strong>, \u0430 <strong><span style=\"color: #680da1;\">Task.detached {}<\/span><\/strong> \u2014 \u043d\u0435\u0442. <\/span><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0432 Swift 6 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 <strong><span style=\"color: #680da1;\">await<\/span><\/strong>: \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0435 <strong><span style=\"color: #680da1;\">actor<\/span><\/strong> hops. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=F0nefFT2Uik&amp;list=PLoROMvodv4rPHblRXKsJCQs8TLGpiCTrG&amp;index=15&amp;pp=iAQB\" title=\"\"><strong>\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 YouTube<\/strong>.<\/a><br><strong><a href=\"https:\/\/docs.google.com\/document\/d\/1VvU0bbePfpEhHnKm9-BOFpRAgsjRW9YNERLmqonP1uU\/edit?usp=drive_link\" title=\"\">\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 15.<\/a><\/strong><br><a href=\"https:\/\/web.stanford.edu\/class\/cs193p\/Spring2025\/CodeBreakerL15.zip\"><strong><span style=\"color:#6c36a9\" class=\"has-inline-color\">CodeBreaker \u21b3<\/span><\/strong><\/a><br><span style=\"font-weight: 400;\">\u041a\u043e\u0434 \u043d\u0430 <strong><a href=\"https:\/\/github.com\/BestKora\/CS193P-2025\" title=\"\">GitHub<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 &#8230;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p &#8212; &#171;Developing&nbsp; Application for iOS with SwiftUI&#187;&nbsp;(&#171;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI&#187;) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iPhone \u0438 iPad, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SwiftUI. \u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u2014 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p \u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0435 \u0441 2010 \u0433\u043e\u0434\u0430. \u041d\u0438\u0436\u0435 \u0432\u044b &hellip; <a href=\"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/\">\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,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-17230","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p - &quot;Developing Application for iOS with SwiftUI&quot; (&quot;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI&quot;) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iPhone \u0438 iPad, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SwiftUI. \u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u2014 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p \u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0435 \u0441 2010 \u0433\u043e\u0434\u0430. \u041d\u0438\u0436\u0435 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043a\u0443\u0440\u0441\u0430 CS193p (\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c\" \/>\n\t<meta name=\"robots\" content=\"max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/\" \/>\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=\"iOS SwiftUI 2025 | \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=\"\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p - &quot;Developing Application for iOS with SwiftUI&quot; (&quot;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI&quot;) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iPhone \u0438 iPad, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SwiftUI. \u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u2014 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p \u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0435 \u0441 2010 \u0433\u043e\u0434\u0430. \u041d\u0438\u0436\u0435 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043a\u0443\u0440\u0441\u0430 CS193p (\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-02-02T10:34:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-23T13:43:03+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"iOS SwiftUI 2025 | \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=\"\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p - &quot;Developing Application for iOS with SwiftUI&quot; (&quot;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI&quot;) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iPhone \u0438 iPad, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SwiftUI. \u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u2014 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p \u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0435 \u0441 2010 \u0433\u043e\u0434\u0430. \u041d\u0438\u0436\u0435 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043a\u0443\u0440\u0441\u0430 CS193p (\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/ios-swiftui-2025\\\/#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\\\/ios-swiftui-2025\\\/#listItem\",\"name\":\"iOS SwiftUI 2025\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/ios-swiftui-2025\\\/#listItem\",\"position\":2,\"name\":\"iOS SwiftUI 2025\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#person\",\"name\":\"tatiana.kornilova@gmail.com\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/ios-swiftui-2025\\\/#personImage\",\"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\\\/ios-swiftui-2025\\\/#webpage\",\"url\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/ios-swiftui-2025\\\/\",\"name\":\"iOS SwiftUI 2025 | \\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\":\"\\u0421\\u0442\\u044d\\u043d\\u0444\\u043e\\u0440\\u0434\\u0441\\u043a\\u0438\\u0439 \\u043a\\u0443\\u0440\\u0441 CS193p - \\\"Developing Application for iOS with SwiftUI\\\" (\\\"\\u0420\\u0430\\u0437\\u0440\\u0430\\u0431\\u043e\\u0442\\u043a\\u0430 \\u043f\\u0440\\u0438\\u043b\\u043e\\u0436\\u0435\\u043d\\u0438\\u0439 \\u0434\\u043b\\u044f iOS \\u0441 \\u043f\\u043e\\u043c\\u043e\\u0449\\u044c\\u044e SwiftUI\\\") \\u043e\\u0431\\u044a\\u044f\\u0441\\u043d\\u044f\\u0435\\u0442 \\u043a\\u0430\\u043a \\u0441\\u043e\\u0437\\u0434\\u0430\\u0432\\u0430\\u0442\\u044c \\u043f\\u0440\\u0438\\u043b\\u043e\\u0436\\u0435\\u043d\\u0438\\u044f \\u0434\\u043b\\u044f iPhone \\u0438 iPad, \\u0438\\u0441\\u043f\\u043e\\u043b\\u044c\\u0437\\u0443\\u044f SwiftUI. \\u041f\\u043e\\u043b \\u0425\\u0435\\u0433\\u0430\\u0440\\u0442\\u0438 \\u2014 \\u043f\\u0440\\u0435\\u043f\\u043e\\u0434\\u0430\\u0432\\u0430\\u0442\\u0435\\u043b\\u044c, \\u0432\\u0435\\u0434\\u0443\\u0449\\u0438\\u0439 \\u043a\\u0443\\u0440\\u0441 CS193p \\u0432 \\u0421\\u0442\\u044d\\u043d\\u0444\\u043e\\u0440\\u0434\\u0435 \\u0441 2010 \\u0433\\u043e\\u0434\\u0430. \\u041d\\u0438\\u0436\\u0435 \\u0432\\u044b \\u043d\\u0430\\u0439\\u0434\\u0435\\u0442\\u0435 \\u0441\\u0441\\u044b\\u043b\\u043a\\u0438 \\u043d\\u0430 \\u0432\\u0438\\u0434\\u0435\\u043e \\u0438 \\u0432\\u0441\\u043f\\u043e\\u043c\\u043e\\u0433\\u0430\\u0442\\u0435\\u043b\\u044c\\u043d\\u044b\\u0435 \\u043c\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043b\\u044b \\u043a\\u0443\\u0440\\u0441\\u0430 CS193p (\\u0420\\u0430\\u0437\\u0440\\u0430\\u0431\\u043e\\u0442\\u043a\\u0430 \\u043f\\u0440\\u0438\\u043b\\u043e\\u0436\\u0435\\u043d\\u0438\\u0439 \\u0434\\u043b\\u044f iOS \\u0441 \\u0438\\u0441\\u043f\\u043e\\u043b\\u044c\\u0437\\u043e\\u0432\\u0430\\u043d\\u0438\\u0435\\u043c\",\"inLanguage\":\"ru-RU\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/ios-swiftui-2025\\\/#breadcrumblist\"},\"datePublished\":\"2026-02-02T10:34:28+00:00\",\"dateModified\":\"2026-05-23T13:43:03+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":"iOS SwiftUI 2025 | \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":"\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p - \"Developing Application for iOS with SwiftUI\" (\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI\") \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iPhone \u0438 iPad, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SwiftUI. \u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u2014 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p \u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0435 \u0441 2010 \u0433\u043e\u0434\u0430. \u041d\u0438\u0436\u0435 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043a\u0443\u0440\u0441\u0430 CS193p (\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c","canonical_url":"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/","robots":"max-snippet:-1, max-image-preview:large, max-video-preview:-1","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/#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\/ios-swiftui-2025\/#listItem","name":"iOS SwiftUI 2025"}},{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/#listItem","position":2,"name":"iOS SwiftUI 2025","previousItem":{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper#listItem","name":"Home"}}]},{"@type":"Person","@id":"https:\/\/bestkora.com\/IosDeveloper\/#person","name":"tatiana.kornilova@gmail.com","image":{"@type":"ImageObject","@id":"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/#personImage","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\/ios-swiftui-2025\/#webpage","url":"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/","name":"iOS SwiftUI 2025 | \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":"\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p - \"Developing Application for iOS with SwiftUI\" (\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI\") \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iPhone \u0438 iPad, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SwiftUI. \u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u2014 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p \u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0435 \u0441 2010 \u0433\u043e\u0434\u0430. \u041d\u0438\u0436\u0435 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043a\u0443\u0440\u0441\u0430 CS193p (\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/#website"},"breadcrumb":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/#breadcrumblist"},"datePublished":"2026-02-02T10:34:28+00:00","dateModified":"2026-05-23T13:43:03+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":"iOS SwiftUI 2025 | \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":"\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p - &quot;Developing Application for iOS with SwiftUI&quot; (&quot;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI&quot;) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iPhone \u0438 iPad, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SwiftUI. \u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u2014 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p \u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0435 \u0441 2010 \u0433\u043e\u0434\u0430. \u041d\u0438\u0436\u0435 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043a\u0443\u0440\u0441\u0430 CS193p (\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c","og:url":"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/","article:published_time":"2026-02-02T10:34:28+00:00","article:modified_time":"2026-05-23T13:43:03+00:00","twitter:card":"summary","twitter:title":"iOS SwiftUI 2025 | \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":"\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p - &quot;Developing Application for iOS with SwiftUI&quot; (&quot;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI&quot;) \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f iPhone \u0438 iPad, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SwiftUI. \u041f\u043e\u043b \u0425\u0435\u0433\u0430\u0440\u0442\u0438 \u2014 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 CS193p \u0432 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0435 \u0441 2010 \u0433\u043e\u0434\u0430. \u041d\u0438\u0436\u0435 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043a\u0443\u0440\u0441\u0430 CS193p (\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f iOS \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c"},"aioseo_meta_data":{"post_id":"17230","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"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":"","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":"WebPage","isEnabled":true},"graphs":[]},"schema_type":"default","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":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-02-02 09:39:49","updated":"2026-05-17 08:37:52","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\tiOS SwiftUI 2025\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/bestkora.com\/IosDeveloper"},{"label":"iOS SwiftUI 2025","link":"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2025\/"}],"_links":{"self":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/pages\/17230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/types\/page"}],"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=17230"}],"version-history":[{"count":4,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/pages\/17230\/revisions"}],"predecessor-version":[{"id":17324,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/pages\/17230\/revisions\/17324"}],"wp:attachment":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/media?parent=17230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}