{"id":15526,"date":"2024-04-12T09:59:28","date_gmt":"2024-04-12T09:59:28","guid":{"rendered":"https:\/\/bestkora.com\/IosDeveloper\/?p=15526"},"modified":"2024-08-30T10:19:57","modified_gmt":"2024-08-30T10:19:57","slug":"%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202","status":"publish","type":"post","link":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/","title":{"rendered":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/Q8zmrzr_oONzjT3lRSSUKaH7eGUL1HDcoVSNGuQLD1OK9L0FBhYS3B62sfxTiay8ZKpv8IHE2W2idrc49eEUAhPByhl1ZfZOyvlDBhA-qzB1Hnm1hcb2e_0TcvyT4PaRWeEaLpZ6s9ssZiObX-smrTc\" width=\"592\" height=\"452\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 13 <a style=\"font-weight: 400;\" href=\"https:\/\/cs193p.sites.stanford.edu\/2023\"><strong>\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 CS193P \u0412\u0435\u0441\u043d\u0430 2023<\/strong><\/a><strong style=\"font-weight: 400;\"> <\/strong>&#171;<strong style=\"font-weight: 400;\">\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI<\/strong>&#171;.<br>\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <strong style=\"font-weight: 400;\">Google Doc<\/strong> \u0438 \u0432 \u0432\u0438\u0434\u0435 <strong style=\"font-weight: 400;\">PDF<\/strong>-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b<strong><span style=\"font-weight: 400;\"> <\/span><a href=\"https:\/\/drive.google.com\/drive\/folders\/1pSk06gUK__I-4Pcz-IgE_8Wz5Y6fNmWq?usp=drive_link\" title=\"\">\u0437\u0434\u0435\u0441\u044c<\/a><span style=\"font-weight: 400;\">.<br><\/span><\/strong>\u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 <a style=\"font-weight: 400;\" href=\"https:\/\/github.com\/BestKora\/CS193P_2023\"><strong>GitHub<\/strong><\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u041b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0417\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f <a href=\"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2023\/\"><strong>\u0437\u0434\u0435\u0441\u044c<\/strong><\/a>.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><strong>. . . . . . . . . . . . . <\/strong>.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>TextField<\/strong><strong> \u0438 <\/strong><strong>@Binding<\/strong><strong> \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435, \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435 \u2014 \u044f \u0445\u043e\u0447\u0443 \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043b\u0438\u0442\u0440\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438). <br>\u041a\u0430\u043a \u043c\u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u043b\u0435\u043c? <br>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0432 Swift \u2014 \u044d\u0442\u043e <span style=\"color: #680da1;\">View<\/span> \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 <span style=\"color: #680da1;\">Text<\/span>. \u0412\u043c\u0435\u0441\u0442\u043e <span style=\"color: #680da1;\">Text<\/span> \u043e\u043d\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f <span style=\"color: #680da1;\">TextField<\/span>.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/bN8uBkRWSLG-Y8x8Tq2xpHXsn-VsLgUB54LUQJCdJBvEPS8TSCrPcaW9u0LL_lcxrV8TCI5pypnroJOjEgW8qTJVMY6atj82h3NYz_yE--lQVadKQW2EfW0ENhlmWJZuafb2KiwXHbm7NjY5MTsVcf4\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">TextField<\/span> \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430. <br><mark style=\"background-color:#00000000\" class=\"has-inline-color\"><strong>\u041f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <\/strong><\/mark>\u2014 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c <strong>Placeholder<\/strong> (\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c) \u0442\u0435\u043a\u0441\u0442\u0430 \u0438\u043b\u0438 \u0441\u043b\u043e\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u043e\u043d\u044f\u0442\u044c, \u043e \u0447\u0435\u043c \u043c\u044b \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0441\u0438\u043c. <br><strong>\u0412\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442<\/strong>, \u043e\u043d \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <span style=\"color: #680da1;\">text<\/span> \u2014 \u044d\u0442\u043e \u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f <span style=\"color: #680da1;\">TextField<\/span>.<br>\u0418 \u0435\u0449\u0435 \u044d\u0442\u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 <span style=\"color: #680da1;\">Binding<\/span>.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0415\u0441\u043b\u0438 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <span style=\"color: #680da1;\">TextField<\/span>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c <span style=\"color: #680da1;\">text<\/span> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u201c<strong>Vehicles<\/strong>\u201d. \u041c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c\u0443 \u043f\u043e\u043b\u044e \u201c<strong>Vehicles<\/strong>\u201d \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0438 \u0432\u0441\u044f\u043a\u0438\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u043c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0437\u043d\u0430\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c. <br>\u0418 \u0442\u043e, \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>single source of truth<\/strong>) \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 <span style=\"color: #680da1;\">text<\/span>. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 <span style=\"color: #680da1;\">Binding<\/span>. <br>\u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u044d\u0442\u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <span style=\"color: #680da1;\">text<\/span> \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f <span style=\"color: #680da1;\">TextField<\/span> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 <span style=\"color: #680da1;\">Binding<\/span>. <br><span style=\"color: #680da1;\">TextField<\/span> \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043f\u0438\u044e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043e\u043d \u0445\u043e\u0447\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0432\u0435\u0449\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u043f\u0440\u043e\u0441\u0438\u0442 \u0432\u0430\u0441 \u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u044d\u0442\u043e\u043c\u0443 \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>). <br>\u041d\u0443 a \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>) \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e <span style=\"color: #680da1;\">palette.name<\/span>? <br>\u041e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043d\u0430\u0448\u0435\u0439 <code>ViewModel<\/code>, \u0432 \u043d\u0430\u0448\u0435\u043c <span style=\"color: #680da1;\">PaletteStore<\/span>. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u0448\u0435\u043c\u0443 <span style=\"color: #680da1;\">TextField<\/span> \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u043d\u0430\u0448\u0435\u0439 ViewModel. <br>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u043f\u0430\u043b\u0438\u0442\u0440\u0435 <span style=\"color: #680da1;\">palette<\/span>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043c \u0434\u0430\u043b\u0438 \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043d\u0430\u0448\u0435\u0433\u043e <span style=\"color: #680da1;\">PaletteEditor<\/span>:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/xSSm71dbgsut_Zp5ssrX7LNEJHJvFmdzcBPp-b-EjglbCzdF6i3R8rxHxqdM4XCWnWKTNQ1gw3fy5KDUma_9I7tNRw623_T5hvsL2B69wMoszFX0w5NjI0FGlIF619NWu9Q5pwY-6cHKjCuGnlCzzI4\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421\u0434\u0435\u043b\u0430\u0432 \u044d\u0442\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <span style=\"color: #c3178b;\">var<\/span> <span style=\"color: #680da1;\">@Binding<\/span>, \u043c\u044b \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u0433\u043e, \u043a\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u044d\u0442\u043e\u0442 <span style=\"color: #680da1;\">PaletteEditor<\/span>, \u0434\u0430\u0442\u044c \u043d\u0430\u043c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>) \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u044b <span style=\"color: #680da1;\">palette<\/span>. <br>\u0422\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u0441\u044b\u043b\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u044d\u0442\u0443 \u043f\u0430\u043b\u0438\u0442\u0440\u0443 <span style=\"color: #680da1;\">palette<\/span> \u0433\u0434\u0435 \u0443\u0433\u043e\u0434\u043d\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435 \u0437\u0434\u0435\u0441\u044c, \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 <span style=\"color: #680da1;\">PaletteEditor<\/span>, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043d\u0430 \u043f\u0430\u043b\u0438\u0442\u0440\u0443 \u0432 \u043d\u0430\u0448\u0435\u0439 ViewModel.<br>\u0418 \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 <span style=\"color: #680da1;\">Binding<\/span> \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u0438\u043c\u0435\u043d\u0438 \u043f\u0430\u043b\u0438\u0442\u0440\u044b <span style=\"color: #680da1;\">palette.name<\/span> \u0432 \u043d\u0430\u0448\u0435\u043c <span style=\"color: #680da1;\">TextField<\/span>:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/KRDFrOdMjcgOrY26J-GHvBzbvWKjQxvH83cM0qt4GtmDdM25HXvfjwTg0s5lb-z-Rp-VPePsP13yAtV2RgxBayzTjk72LZM-CYMw-_01Db0I-sBrPAjYdsKY3lfdmo-enFcxb4E7D4qpFgdJuDJJdcw\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u042d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0434\u043b\u044f <span style=\"color: #ff0000;\">$<\/span>, \u0442\u043e \u0435\u0441\u0442\u044c <span style=\"color: #ff0000;\">projectedValue<\/span>, \u0434\u043b\u044f <span style=\"color: #680da1;\">@Binding<\/span> \u2014 \u044d\u0442\u043e \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u0442\u043e\u0439 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0435 <span style=\"color: #680da1;\">@Binding<\/span>. <br>\u0418\u0442\u0430\u043a, <span style=\"color: #ff0000;\">$<\/span><span style=\"color: #680da1;\">palette.name<\/span> \u0437\u0434\u0435\u0441\u044c \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u044d\u0442\u043e\u0439 <span style=\"color: #680da1;\">@Binding<\/span> <span style=\"color: #c3178b;\">var<\/span> <span style=\"color: #680da1;\">palette<\/span>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u043a \u043d\u0430\u0448\u0435\u0439 <code>ViewModel<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <span style=\"color: #680da1;\">TextField<\/span> \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u044f <span style=\"color: #680da1;\">name<\/span> \u043f\u0430\u043b\u0438\u0442\u0440\u044b <span style=\"color: #680da1;\">palette<\/span> \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 <code>ViewModel<\/code>. <br>\u0412\u044b \u0432\u0438\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u0438 <span style=\"color: #ff0000;\">$<\/span>, \u044d\u0442\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 <span style=\"color: #680da1;\">Binding<\/span>, \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u0432\u0441\u044e \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 <span style=\"color: #680da1;\">Views<\/span>.<\/span><\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0418\u0442\u0430\u043a, \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u043c\u0443 <span style=\"color: #680da1;\">PaletteChooser<\/span>:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/WrlqLPkhlV5OAzu3N5rakhC9t1nEQKAu8Yao9sUOBATV-4trXlUZS9n30neOxXBee7FHIsE_qvOWhc9ft2WB-t4zGD_sIxtq57n9RF_oVX1X6S_tGEPLxc1XRTOVEvxtav-Bs4pkg35wEm2o29-ULio\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412\u044b \u0432\u0438\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 <span style=\"color: #680da1;\">Binding<\/span> \u043a<strong> <\/strong>\u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>). \u0417\u0434\u0435\u0441\u044c \u044f \u043f\u0435\u0440\u0435\u0434\u0430\u044e \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>), \u0438 \u044d\u0442\u043e Value \u0422\u0418\u041f, \u0442\u0430\u043a \u0447\u0442\u043e  \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>) \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u042f \u043d\u0435 \u0445\u043e\u0447\u0443 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u0441\u0442\u0438\u043d\u044b\u201d, \u044f \u0445\u043e\u0447\u0443 \u0438\u043c\u0435\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u043d\u0435\u043c\u0443, \u0438 \u044f \u043c\u043e\u0433\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0437\u043d\u0430\u043a <span style=\"color: #ff0000;\">$<\/span>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e <span style=\"color: #680da1;\">store<\/span> \u2014 \u044d\u0442\u043e <span style=\"color: #680da1;\">@EnvironmentObject<\/span>:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/8zvMoncUkqfljQ4popnd31g9D0bderArc-B7THlIpeBv4f__yElR_1G4xa1tXvQMhj07vQhdjuV_-5rOM23cDAnnR77zlvxdKhRNd5pb3VE6STTcjyH_UQBClZwOrvA9FUpjkIg7L_ejF8EP8j0T9ko\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0418 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 <span style=\"color: #680da1;\">Binding<\/span>, <span style=\"color: #ff0000;\">$<\/span>, <span style=\"color: #ff0000;\">projectedValue<\/span>, \u0434\u043b\u044f <span style=\"color: #680da1;\">@EnvironmentObject<\/span>, \u043a\u0430\u043a \u0438 \u0434\u043b\u044f <span style=\"color: #680da1;\">@ObservedObject<\/span>, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u044d\u0442\u043e\u043c\u0443 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0443 <span style=\"color: #680da1;\">store<\/span> \u0438\u043b\u0438 \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <span style=\"color: #c3178b;\">var<\/span> \u0432 ViewModel, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0435\u0433\u043e \u043f\u0430\u043b\u0438\u0442\u0440\u044b <span style=\"color: #680da1;\">palettes<\/span>. \u0412 \u043d\u0430\u0448\u0435\u043c <span style=\"color: #680da1;\">PaletteStore<\/span> \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <span style=\"color: #c3178b;\">var<\/span> <span style=\"color: #680da1;\">palettes<\/span>. \u042d\u0442\u043e \u0434\u0430\u0436\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <span style=\"color: #c3178b;\">var<\/span>, \u043d\u043e \u043c\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043c\u043e\u0436\u0435\u043c \u201c\u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f\u201d <span style=\"color: #680da1;\">Binding<\/span> \u043f\u0440\u044f\u043c\u043e \u043a \u043d\u0435\u0439. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u044f \u0434\u0430\u0436\u0435 \u043c\u043e\u0433\u0443 \u201c\u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f\u201d <span style=\"color: #680da1;\">Binding<\/span> \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430. <br>\u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 <span style=\"color: #680da1;\">Binding<\/span> \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430\u0441\u043a\u0432\u043e\u0437\u044c \u043f\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0435 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0441\u043e\u0437\u0434\u0430\u043b \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 <span style=\"color: #680da1;\">Binding<\/span> \u043a \u044d\u0442\u043e\u043c\u0443 \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0438\u0441\u0442\u0438\u043d\u044b\u201d <span style=\"color: #680da1;\">store<\/span>.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">@EnvironmentObject<\/span> <span style=\"color: #c3178b;\">var<\/span> <span style=\"color: #680da1;\">store<\/span> \u2014 \u044d\u0442\u043e \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>). \u042f \u043f\u0435\u0440\u0435\u0434\u0430\u044e \u044d\u0442\u0443 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 <span style=\"color: #680da1;\">Binding<\/span> \u0441\u0432\u043e\u0435\u043c\u0443 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0443 <span style=\"color: #680da1;\">PaletteEditor<\/span>. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u043c\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0434\u0435\u043b\u0430\u0435\u0442 \u0441 \u044d\u0442\u043e\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u043e\u0439 <span style=\"color: #680da1;\">palette<\/span>, \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u0435\u0435 \u0432 \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435 \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>), \u044d\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u041d\u0415 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0438\u043b\u0438 \u043a\u0430\u043a-\u0442\u043e \u0435\u0449\u0451, \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u201c\u0432\u0436\u0438\u0432\u0443\u044e\u201d \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0441\u0430\u043c\u043e\u043c \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435 \u0438\u0441\u0442\u0438\u043d\u044b\u201d. <br>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u043c\u0443 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0443 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u044d\u0442\u043e. <br>\u041c\u044b \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u0430\u043b\u0438\u0442\u0440\u0443 <strong>Edit<\/strong>. \u0422\u0430\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e <strong>Vehicles<\/strong>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u043f\u0430\u043b\u0438\u0442\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432&nbsp; \u043c\u043e\u0434\u0435\u043b\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u044f \u043c\u0435\u043d\u044f\u044e \u044d\u0442\u043e \u043d\u0430 <strong>Travel<\/strong>. \u0412\u0438\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442? \u0414\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u044f \u0443\u0434\u0430\u043b\u044f\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u043a\u0432\u044b, \u0432\u0441\u0435 \u044d\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043c\u043e\u0434\u0435\u043b\u0438. \u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u0442\u0430\u043c <strong>Travel<\/strong>. \u041c\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u0443 \u0432\u0435\u0449\u044c \u0432 \u041c\u043e\u0434\u0435\u043b\u0438, \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u0441\u0442\u0438\u043d\u044b (<strong>source of truth<\/strong>).<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/7C3811Ek2fryKm54KHKGHDs6FLPZ3v8mdE4u7ANae_phQu5pzIhajFap6da8Yr_68ngACjPArz8UQUKB3elXLwDIDp8RJDSljE5p17oAy-Bjxj_HuxbGxbr4ArNnUIZNKqeIRoUhWF6hhUv4bVxPylg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u044f\u0436\u0435\u043c <span style=\"color: #680da1;\">Binding<\/span> \u043d\u0430\u0448 \u0442\u0435\u043a\u0441\u0442 <span style=\"color: #ff0000;\">\u201cAdd Emojis Here\u201d<\/span>. <br>\u041d\u043e \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u0432 <span style=\"color: #ff0000;\">\u201cAdd Emojis Here\u201d<\/span> \u0432\u043e\u0442 \u0447\u0442\u043e: \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442 \u0432 \u043c\u043e\u0435\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u0435 <span style=\"color: #680da1;\">palette<\/span>. \u041a\u043e\u0433\u0434\u0430 \u044f \u0431\u0443\u0434\u0443 \u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435 <span style=\"color: #680da1;\">TextField<\/span> c <span style=\"color: #ff0000;\">\u201cAdd Emojis Here\u201d<\/span>, \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u043c\u043e\u044e <span style=\"color: #680da1;\">palette.emojis<\/span>. \u041e\u043d\u043e \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u043e\u044e <span style=\"color: #680da1;\">palette.emojis<\/span>. <br>\u042f \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043b UI, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438) \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 <span style=\"color: #680da1;\">palette.emojis<\/span>. <br>\u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438) \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435 <span style=\"color: #680da1;\">TextField<\/span> c <span style=\"color: #ff0000;\">\u201cAdd Emojis Here\u201d<\/span>, a \u0435\u0441\u043b\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u044d\u043c\u043e\u0434\u0437\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c, \u0442\u043e \u043a\u043b\u0438\u043a\u0430\u0435\u043c \u043d\u0430 \u043d\u0435\u043c \u043d\u0438\u0436\u0435, \u0438 \u043e\u043d \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f. <br>\u041c\u043e\u0439 UI \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u043c\u043e\u0435\u0439 <code>ViewModel<\/code>, \u0447\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>) \u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435 <span style=\"color: #680da1;\">TextField<\/span> <span style=\"color: #ff0000;\">\u201cAdd Emojis Here\u201d<\/span> \u0431\u0443\u0434\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f <span style=\"color: #680da1;\">@State<\/span> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <span style=\"color: #c3178b;\">var<\/span>. \u041d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 <span style=\"color: #680da1;\">@State<\/span> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u044f \u0431\u0443\u0434\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u044e \u041c\u043e\u0434\u0435\u043b\u044c <span style=\"color: #680da1;\">palette.emojis<\/span>, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0442\u0443\u0434\u0430 \u044d\u0442\u0438 \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438). <br>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442. <br>\u0412\u043e\u0442 <span style=\"color: #ff0000;\">\u201cAdd Emojis Here\u201d<\/span>, \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u043b\u0435\u043c <span style=\"color: #680da1;\">TextField<\/span> \u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439 <span style=\"color: #ff0000;\">\u201cAdd Emojis Here\u201d<\/span>, a \u0442\u0435\u043a\u0441\u0442\u043e\u043c <span style=\"color: #680da1;\">text<\/span> \u0431\u0443\u0434\u0435\u0442, \u043f\u043e \u0441\u0443\u0442\u0438, <span style=\"color: #ff0000;\">$<\/span><span style=\"color: #680da1;\">emojisToAdd<\/span>. \u0418 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c <span style=\"color: #680da1;\">@State<\/span> <span style=\"color: #c3178b;\">private<\/span> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <span style=\"color: #c3178b;\">var<\/span> <span style=\"color: #680da1;\">emojisToAdd: String<\/span>, \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u2014 \u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u044d\u043c\u043e\u0434\u0437\u0438:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/cEe6uvOCE3gZJDQ0HjZa3RqKfVBwWYbx7t5ZUHFs9shTfF69zeja3qvVqvMTtN2riAMcQ4kdSWAPTGX7eTUm8khJ5P5PEOj-QroPlJSWLOPe6MJjkLmmZ-CXJ1Wtlw_HsB42RQH1cseekuZu81Byf2A\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0411\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0432\u0441\u043b\u0435\u0434 \u0437\u0430 <span style=\"color: #680da1;\">TextField<\/span> \u044f \u043d\u0430\u043f\u0438\u0448\u0443:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/5vzTFkbf4RS7S9M4mjgJpWvBTAyAebO4lOuS1A39-s0gr2URpCDuDJ1evJyV60Hgv4Fo1YxbguOSDOPK_b1_rXI9iIPu2_YqKGhErzIiiRpYUQU4uiysoq1mvyRBwNxy9DImUN6wL5iSKTd3Em87D2A\" alt=\"\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 .onChange<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 <span style=\"color: #680da1;\">.onChange<\/span> \u0432\u0430\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f <span style=\"color: #680da1;\">emojisToAdd<\/span>. \u0417\u0434\u0435\u0441\u044c \u044f \u0431\u0443\u0434\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u0438 \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438). \u042f \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438) \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u043f\u0438\u0441\u043a\u0430, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u043e\u0432\u044b\u0435, \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0442\u0430\u043c. \u042f \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0438 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u043c\u043e\u0434\u0437\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0439\u0434\u0435\u0442\u0435 \u0432 \u043d\u0430\u0448 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438 \u043d\u0430\u0431\u0435\u0440\u0451\u0442\u0435 \u201cHello\u201d, \u0442\u043e \u0432 <span style=\"color: #680da1;\">palette.emojis<\/span> \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f, \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0442\u0430\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438). \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u044f \u0437\u0430\u0445\u043e\u0447\u0443 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u0438\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0451 \u0432 \u043c\u043e\u0438\u0445 \u043f\u0430\u043b\u0438\u0442\u0440\u0430\u0445, \u043d\u043e \u043d\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f. \u041d\u0430 \u044d\u0442\u043e\u043c \u043a\u0443\u0440\u0441\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438).<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u042f \u043d\u0430\u043f\u0438\u0448\u0443 \u0432 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0438 <span style=\"color: #680da1;\">palette.emojis = <\/span><\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/_Rgi2smI8oYe4YZq1DT9l1luFc5dOMpXK9pEuyc4ApgCN6gq2ROADFOs5qPMT5uXdWTg3dHRRJFqUyRHmSR20RfBPdUBeRywtT36wkMjMyLOYJ8BqAqm2zbKTRGlw_yfQA3RFeyWLQ_6KZgcVTMPs60\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435.&nbsp;<br>\u041a\u043e\u0433\u0434\u0430 \u044f \u043f\u0438\u0448\u0443 <span style=\"color: #680da1;\">palette.emojis = <\/span>, \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u043f\u0430\u043b\u0438\u0442\u0440\u0435 <span style=\"color: #680da1;\">palette<\/span> \u0432\u043e ViewModel. \u042f \u043c\u0435\u043d\u044f\u044e \u0437\u0434\u0435\u0441\u044c ViewModel \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 <span style=\"color: #680da1;\">@Binding<\/span> <span style=\"color: #c3178b;\">var<\/span> <span style=\"color: #680da1;\">palette<\/span> \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043f\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0435 \u0434\u043e \u0441\u0430\u043c\u043e\u0433\u043e ViewModel. \u0418 \u044d\u0442\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437\u043c\u0435\u043d\u0438\u0442 ViewModel. \u042f \u043f\u0438\u0448\u0443 <span style=\"color: #680da1;\">palette.emojis = (emojisToAdd + palette.emojis)<\/span>, \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u044b\u0432\u0430\u044e \u0438\u0445, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438) \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <span style=\"color: #680da1;\">.filter { $0.isEmoji}<\/span>. \u041e\u0431 <span style=\"color: #680da1;\">isEmoji<\/span> \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. <br>\u042f \u0442\u0430\u043a\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u044e \u0438\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438, \u043c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c \u043e\u0431 <span style=\"color: #680da1;\">uniqued<\/span>:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/S28QrY4FEU8CVdKU4Rvahm8C-HuiLHuNq6zHMDrJV4iieajB7pY-N0OrPXNRmdgKYL9bDfZNQQgj-PWvtyOheTepQ4zmCDer3iZ_NXQRY0QRx6Kd5AYqqAtn-BeUpqnJJawN0b_XU2dizo4FiV_v26s\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">isEmoji<\/span> \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 Swift. \u042f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043b \u0432 \u043c\u043e\u0451\u043c \u0444\u0430\u0439\u043b\u0435 <strong>Extensions<\/strong>. \u042d\u0442\u043e \u043d\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0441\u0442 \u043d\u0430 \u044d\u043c\u043e\u0434\u0437\u0438, \u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448, \u043e\u043d \u0443\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u043e\u0432). \u0421\u0443\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u044b \u0437\u0434\u0435\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438).<br>\u0412\u0441\u0435 \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u044f \u0442\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u043b? <br>\u042f \u0432\u0437\u044f\u043b <span style=\"color: #680da1;\">emojisToAdd<\/span> \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0438\u0445 \u0432 \u0441\u0432\u043e\u044e \u043f\u0430\u043b\u0438\u0442\u0440\u0443 <span style=\"color: #680da1;\">palette<\/span>, \u0437\u0430\u0442\u0435\u043c \u044f \u0434\u0435\u043b\u0430\u044e \u0438\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438.<\/span><\/p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"background-color:#d8f9f6\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><strong><em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430<\/em><\/strong>. \u0412 <strong>Xcode 15.1<\/strong>&nbsp; \u0438 iOS 17 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 <span style=\"color: #680da1;\">.onChange<\/span> \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435:<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" width=\"678\" height=\"97\" src=\"https:\/\/lh7-us.googleusercontent.com\/mWaqHB0R9xMEXupMOY1qE741bLV00SbRWjA0tXoa6bCkeL3nwmtnY8L8FHbCiGRZcB6YqGMzz0mVi7m4bZOKV-FYQWP8oz0sdUS-KDUqtrTk0qYIDOkRB2r3Y1Ll5yByAlFvEznGO5Nkq8WMYhLCT4I\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u2018<span style=\"color: #680da1;\">onChange (of:perform:)<\/span>\u2019 \u0443\u043f\u0440\u0430\u0437\u0434\u043d\u0435\u043d \u0432 iOS 17.0: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u2018<span style=\"color: #680da1;\">onChange<\/span>\u2019 \u0441 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u043c \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. <br>\u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438:<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">.onChange(of:emojiToAdd) { oldState, newState in<br> &nbsp;.&nbsp; .&nbsp; .&nbsp; .&nbsp; . .&nbsp; .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>}<\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421\u0442\u0430\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <span style=\"color: #680da1;\">oldState<\/span> \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, a \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <span style=\"color: #680da1;\">newState<\/span> \u043c\u044b \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c \u0432 <span style=\"color: #680da1;\">emojiToAdd<\/span>:<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/UEdpxYcq7YVc5yswp2TsnxosOshR0KQFsuUjCsMWaYmIFMtjwUctu8ewO4zOVRGsSkv2uNjthpNKwVby6B_pB3C2asqlymzP3N5U4webN5IGjGbgPMNGUbd1elZ1OvROhgcvMspUbWjrkCkmgVHn7KU\" width=\"548\" height=\"130\"><\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442. <br>\u042d\u0442\u043e \u043f\u0430\u043b\u0438\u0442\u0440\u0430 <strong>Travel (<\/strong>\u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435<strong>)<\/strong>. <br>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0435\u0451 \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438). <br>\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b <strong>Travel <\/strong>\u0441 \u044d\u043c\u043e\u0434\u0437\u0438 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430. <br>\u0413\u0434\u0435 <strong>Travel<\/strong>? <br>\u0412\u043e\u0442 \u043e\u043d. \u0422\u0430\u043c \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430 \u043a\u043e\u0440\u0430\u0431\u043b\u0435\u0439. <br>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0434\u0432\u0430\u0436\u0434\u044b \u0449\u0435\u043b\u043a\u0430\u044e \u0438 \u043f\u0435\u0447\u0430\u0442\u0430\u044e. <br>\u042d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c \u0438\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u044d\u043c\u043e\u0434\u0437\u0438.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/dSbClxLiT47loH2gLYf_-xPQvBSXa5GIxqV8bKDR5sBVIULqbjylRDR1vaJ2qaatV1eFSl5SRmavZ3cW547IgRINbno_EpzBTxbzelWqhmMRL2tsLXkrxS4EKrkLVOU7vdsogqKJbqm6UkWyOtt3WLQ\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u044d\u043c\u043e\u0434\u0437\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u043e\u0432) \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u044b. \u042d\u0442\u043e\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u043e\u0432) \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u0437\u0434\u0435\u0441\u044c, \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435, \u0432 \u0441\u043f\u0438\u0441\u043a\u0435&nbsp; \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u043e\u0432) \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437 \u041c\u043e\u0434\u0435\u043b\u0438. <br>\u041a\u043e\u0433\u0434\u0430 \u044f \u0447\u0442\u043e-\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432 \u041c\u043e\u0434\u0435\u043b\u044c, \u044d\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. <br>\u0412\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u0431\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0451 \u201c\u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u201d <span style=\"color: #680da1;\">Binding<\/span>, \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. <br>\u0412\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u044d\u043c\u043e\u0434\u0437\u0438 \u0432 \u0441\u0432\u043e\u044e \u041c\u043e\u0434\u0435\u043b\u044c, \u0438 \u043e\u043d\u0438 \u0442\u0443\u0442 \u0436\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435. <br>\u041e\u043d\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u0435\u0442\u043a\u0435 \u044d\u043c\u043e\u0434\u0437\u0438 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f, \u043d\u043e \u0438 \u0432 \u0441\u0430\u043c\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 <strong>Travel<\/strong> (\u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435\u0441\u044c \u043f\u043e\u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435). \u042f \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0442\u0443\u0434\u0430 \u044d\u0442\u0438 \u043a\u043e\u0440\u0430\u0431\u043b\u0438.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/XATeSFsLzES2Wpg-NJrIxlu_RYjcTSXo-KT8wU0Ck3SRwsrP01Iq8kSlWVCjAYdKwXHQI9bR9uDF85lHVi4TImXmiwRdjRTF8Irlb3ItUDBqI2ES7ycwQ3ZjbPd438KmKAjXcfK7QKpKTlgxlUk0dt4\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0430\u0448\u0430 \u043f\u0430\u043b\u0438\u0442\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u043e\u0439 \u0432 <span style=\"color: #680da1;\">UserDefaults<\/span>. <br>\u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0443\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043c \u0441\u043d\u043e\u0432\u0430, \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0430\u043b\u0438\u0442\u0440\u0430 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0442\u0430\u043c. <br>\u0410 \u043a\u0430\u043a \u043d\u0430\u0441\u0447\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u043e\u0432)? <br>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0436\u0435\u0441\u0442 <strong>Tap<\/strong> \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f. <br>\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u043e\u0432) \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <span style=\"color: #680da1;\">.onTapGesture<\/span> \u0438 \u044f \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0435\u0439 <span style=\"color: #680da1;\">withAnimation<\/span>. \u042f \u0445\u043e\u0447\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/jjKTNS9NJTsl1WhmXdd2Oz8EyQO3CujJPcAo3asAh2X9alJxhS3neyPLWw2V7jh6AqswRQdw8eHzcSZAszJ4rYqwqaM1lF323w4CV7q3q3Sd0f8LoRTd-a_8mbDECLm8f6ysrHLhkARjI10ecqQw4ic\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u042f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0443 <span style=\"color: #680da1;\">palette.emojis.remove (emoji.first!)<\/span>.<br>\u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0430 <span style=\"color: #680da1;\">emoji<\/span>, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a), \u043d\u043e \u044f \u043f\u0438\u0448\u0443 <span style=\"color: #680da1;\">.first!<\/span>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0438 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 <span style=\"color: #680da1;\">String<\/span>.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">remove<\/span> \u2014 \u044d\u0442\u043e \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b, \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/5xDr8-yhYRubHlPTW6Q1S4yQ98M7_flBhPH5Yuk8SloHV3nPkY7De9JRSpe5oG3P8P9bNWzGWjWuJrPgo3Mcs8LJteS8RvkpplZV9A9VoOGwOOWBtBHiKJTGhwrB-C30SDWMjjWVucvEcWXEMcgp2GQ\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u042f \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a) \u0438\u0437 <span style=\"color: #680da1;\">emojisToAdd<\/span> \u0442\u043e\u0436\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0435\u0433\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0435, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0432\u0430\u043c \u043e\u043d \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/0Y3FCm5eubPBeIpfhOkFXxQUKqJrDkCIBd1BOmpg9CcNFL2pVeO8ypm5dtJ4WjHKyP32QuPQdUlv-qcKS13oxHsPMWEaWVk0oIQaHFDU4zEfI_FUF9klX_pP_zz4wOAXLay6GhKqLjEc4HS2JbI5Lhg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u042f \u0443\u0434\u0430\u043b\u0438\u043b \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a) \u0438\u0437 \u043e\u0431\u043e\u0438\u0445 \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>). <br>\u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u043a\u043e\u0433\u0434\u0430 \u044f \u043f\u0438\u0448\u0443 <span style=\"color: #680da1;\">palette.emojis.remove(emoji.first!)<\/span>, \u044f \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e \u041c\u043e\u0434\u0435\u043b\u044c. <br>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/hjHJ-FLo-loITPZw_-OohVdga6fH-EDavQQ2xwYOWAZ3ty_mevbftvCwPFa5bGNYuuN0xeV_haIYY-EH9cR7Y31FcGu10DEU8aY9VIg3BifuH2RBJdpqfpY2lT0wVYr3cmq6Nx2z9cdGjEUpnlxqlAk\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412\u043e\u0442 \u043d\u0430\u0448\u0430 \u043f\u0430\u043b\u0438\u0442\u0440\u0430 <strong>Travel <\/strong>(\u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435), \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043b\u043e\u0434\u043a\u0438. <br>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0443\u0431\u0435\u0440\u0435\u043c \u043b\u043e\u0434\u043a\u0438. <br>\u0423 \u043d\u0430\u0441 \u043d\u0435\u0442 \u043b\u043e\u0434\u043e\u043a. \u0412\u0438\u0434\u0438\u0442\u0435? \u041c\u044b \u0438\u0445 \u0443\u0431\u0440\u0430\u043b\u0438. <br>\u042f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0441\u044c \u0441\u044e\u0434\u0430 \u0438 \u044f \u043f\u0435\u0440\u0435\u0434\u0443\u043c\u0430\u043b, \u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0435\u043b \u044d\u0442\u0443 \u043b\u043e\u0434\u043a\u0443.&nbsp;<br>\u0415\u0441\u0442\u044c \u043b\u043e\u0434\u043a\u0430, \u043e\u043d\u0430 \u043e\u043f\u044f\u0442\u044c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u043b\u0430\u0441\u044c \u0442\u0430\u043c. \u0418 \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u043b\u043e\u0434\u043a\u0430. <br>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044f \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0445\u043e\u0447\u0443 \u044d\u0442\u0438\u0445 \u043b\u043e\u0434\u043e\u043a. \u042d\u0442\u043e \u0443\u0434\u0430\u043b\u0438\u043b\u043e \u0438\u0445 \u043e\u0442\u0442\u0443\u0434\u0430.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u042d\u0442\u043e \u043d\u0435 \u043b\u0443\u0447\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u044d\u043c\u043e\u0434\u0437\u0438 (\u0441\u043c\u0430\u0439\u043b\u0438\u043a). <br>\u042f \u0432\u044b\u0431\u0440\u0430\u043b \u044d\u0442\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c , \u043a\u0430\u043a \u043c\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u041c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0432\u0441\u044e\u0434\u0443, \u0438 \u043e\u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0435\u0437\u0434\u0435. <br>\u042d\u0442\u043e \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0446\u0435\u043b\u043e\u0433\u043e \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>). \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0435 \u044d\u0442\u043e\u0442 \u201c\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u0441\u0442\u0438\u043d\u044b\u201d (<strong>source of truth<\/strong>), \u0442\u043e \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \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. <br>\u041d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0438\u043b\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\"><strong>. . . . . . . . . . . . . <\/strong>.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>P.S.&nbsp; iOS 17 \u0420\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 UI: Observation <\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u0427\u0442\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 &nbsp;<span style=\"color: #680da1;\">@Observable<\/span>?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041c\u0430\u043a\u0440\u043e\u0441 <span style=\"color: #680da1;\">@Observable<\/span> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 <code>Model<\/code> \u0438\u043b\u0438 <code>ViewModel<\/code> \u0442\u0430\u043a, \u043a\u0430\u043a \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435. \u0423 \u0432\u0430\u0441 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438\u043b\u0438 \u0422\u0418\u041f\u044b \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u0435 \u0422\u0418\u041f\u044b \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 \u201c\u043c\u0430\u0442\u0440\u0435\u0448\u043a\u0438\u201d. <strong>\u041e\u0431\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e (\u0434\u043b\u044f <span style=\"color: #680da1;\">@Observable<\/span><strong> ): \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f, <span style=\"color: #680da1;\">View<\/span><strong> \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0441\u044f.<\/strong><\/strong><\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041d\u0430 \u041b\u0435\u043a\u0446\u0438\u0438 12 \u044d\u0442\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 \u0432 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043c\u0430\u043a\u0440\u043e\u0441 <span style=\"color: #680da1;\">@Observable<\/span> \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 <code>ViewModel<\/code> \u043a\u043b\u0430\u0441\u0441\u0430 <span style=\"color: #c3178b;\">class<\/span> <span style=\"color: #680da1;\">PaletteStore<\/span>. <br>\u041d\u0430 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 <span style=\"color: #680da1;\">PalleteManager<\/span> \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 <span style=\"color: #680da1;\">[PaletteStore]<\/span>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <span style=\"color: #680da1;\">@Observable<\/span>, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u0430 <span style=\"color: #680da1;\">ObservableObject<\/span>, \u043e \u0447\u0435\u043c \u041f\u043e\u043b \u0425\u0430\u0433\u044d\u0440\u0442\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u0432 \u043a\u043e\u043d\u0446\u0435 \u041b\u0435\u043a\u0446\u0438\u0438 13.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.18.21.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"790\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.18.21-1024x790.png\" alt=\"\" class=\"wp-image-15554\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.18.21-1024x790.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.18.21-300x232.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.18.21-768x593.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.18.21-1536x1186.png 1536w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.18.21-389x300.png 389w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.18.21.png 1640w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412 <span style=\"color: #680da1;\">EditablePaletteList<\/span> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <span style=\"color: #680da1;\">@Bindable<\/span> \u0434\u043b\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 <span style=\"color: #680da1;\">store<\/span>:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.23.10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"465\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.23.10-1024x465.png\" alt=\"\" class=\"wp-image-15555\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.23.10-1024x465.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.23.10-300x136.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.23.10-768x349.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.23.10-1536x697.png 1536w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.23.10-500x227.png 500w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.23.10.png 1626w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u0441\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043f\u0430\u043b\u0438\u0442\u0440 \u0432 <span style=\"color: #680da1;\">Emoji_ArtApp<\/span> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 <span style=\"color: #680da1;\">@State<\/span> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 <span style=\"color: #c3178b;\">var<\/span> :<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.31.20.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"533\" src=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.31.20-1024x533.png\" alt=\"\" class=\"wp-image-15558\" style=\"width:614px;height:auto\" srcset=\"https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.31.20-1024x533.png 1024w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.31.20-300x156.png 300w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.31.20-768x400.png 768w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.31.20-1536x799.png 1536w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.31.20-500x260.png 500w, https:\/\/bestkora.com\/IosDeveloper\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-13-at-16.31.20.png 1680w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412 <span style=\"color: #680da1;\">PaletteChooser<\/span>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u0437 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 <span style=\"color: #680da1;\">PaletteStore<\/span> \u043f\u0430\u043b\u0438\u0442\u0440\u0443 <span style=\"color: #680da1;\">palette<\/span> \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 <span style=\"color: #680da1;\">PaletteEditor<\/span>, \u043c\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043f\u0430\u043b\u0438\u0442\u0440 \u0432 \u0432\u0438\u0434\u0435 <span style=\"color: #680da1;\">@Environment (PaletteStore.self)<\/span> <span style=\"color: #c3178b;\">var<\/span> <span style=\"color: #680da1;\">store<\/span>, \u0442\u0430\u043a \u043a\u0430\u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043f\u0430\u043b\u0438\u0442\u0440 <span style=\"color: #680da1;\">PaletteStore<\/span> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <span style=\"color: #680da1;\">@Observable<\/span>. A \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0430\u043b\u0438\u0442\u0440\u0443 <span style=\"color: #680da1;\">palette<\/span>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <span style=\"color: #680da1;\">@Observable<\/span> \u0438 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 <span style=\"color: #680da1;\">Binding<\/span>, \u0442\u043e \u0435\u0441\u0442\u044c <span style=\"color: #680da1;\">$store.palettes[store.cursorIndex]<\/span>. <br>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/Kiq9rO6-YNz0NM_oLPsmfNb7vg6855fvhwUQt9EDL5Fy_X9Dea3lLqOayJP8pd7CMwMh2j4olFUQ0TnGHe-4ZaTz03-l925-azYeh2AYjTV047Zn9OgpTT27U9UBKaZ7QG6ZcVSrLdDxSw28-TCnNT0\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 <strong>Apple<\/strong> \u043f\u043e \u201c<a href=\"https:\/\/developer.apple.com\/documentation\/swiftui\/migrating-from-the-observable-object-protocol-to-the-observable-macro\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 ObservableObject \u043a \u043c\u0430\u043a\u0440\u043e\u0441\u0443 @Observable<\/a>\u201d :<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0415\u0441\u043b\u0438 <span style=\"color: #680da1;\">View<\/span> \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 <span style=\"color: #680da1;\">Binding<\/span> \u043a <span style=\"color: #680da1;\">Observable<\/span> \u0422\u0418\u041f\u0443, \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 <span style=\"color: #680da1;\">ObservedObject<\/span> \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u043e\u0439 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <span style=\"color: #680da1;\">@Bindable<\/span>. \u042d\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <span style=\"color: #680da1;\">Binding<\/span> \u043a <span style=\"color: #680da1;\">Observable<\/span> \u0422\u0418\u041f\u0443, \u0447\u0442\u043e\u0431\u044b <span style=\"color: #680da1;\">View<\/span>, \u043e\u0436\u0438\u0434\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 <span style=\"color: #680da1;\">Binding<\/span>, \u043c\u043e\u0433 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c <span style=\"color: #680da1;\">Observable<\/span> \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0434 <span style=\"color: #680da1;\">@Bindable<\/span> <span style=\"color: #c3178b;\">var<\/span> <span style=\"color: #680da1;\">store = store<\/span> \u0432 <span style=\"color: #c3178b;\">var<\/span> <span style=\"color: #680da1;\">body<\/span>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 \u043a <span style=\"color: #680da1;\">store.palettes[store.cursorIndex]<\/span>:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/B6jwu3YwW0HsQA-9QPMgbjq1akvLNGbIoB3cPIfbZZwmEGdu3HV1-nkYmia4PY9bWU3dFm_CChln01ChFTDLwm_1v7cDJ8vFhveIq6rGc3GJMKNRZwoPkKiSgaF-qGD0_dkNQs_L7Io5Ju8unXsdUi8\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 <span style=\"color: #680da1;\">PaletteList<\/span> \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c <span style=\"color: #680da1;\">@EnvironmentObject<\/span> \u043d\u0430 <span style=\"color: #680da1;\">@Environment<\/span>:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/QhW3de_zflYKDFj3tzK2HOpyNbVbSdZuTHrwpqWbsC-lbn0ixl7O9HgaHsVjFI6vweCt0uUqU4I0hjexcBGqDWwN-9FlwQDFsDkPCCtUHr7PJENRyY90DMHzQNxncq3eMTUVkSagWxdKXUhRFf_TIXc\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430\u0445 <strong>Preview<\/strong> \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c <span style=\"color: #680da1;\">.environmentObject(paletteStore)<\/span> \u043d\u0430 <span style=\"color: #680da1;\">.environment(paletteStore)<\/span>:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/y9ZTDs0acYb5JLA3MABP3YA9ijcJIqqYyskjArZNtJXRiO6FJqtP9BOYiPKKKZ5UWghXB-h7g9WMpdum8rlpgrYlcqfhqTcRoCYXXgG1OCqrQoAj8mboCmb03F3xUklDmVw8hSSRppvO5Pgqiqlpxkk\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0412\u0441\u0451 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043d\u044e\u0430\u043d\u0441\u043e\u0432. <br>\u0415\u0441\u0442\u044c \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u0435 \u0432\u0438\u0434\u0435\u043e, \u043f\u043e\u044f\u0441\u043d\u044f\u044e\u0449\u0435\u0435 \u044d\u0442\u0443 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, &#8212; <a href=\"https:\/\/www.youtube.com\/watch?v=DAq-eA98O4g&amp;t=642s\"><strong>Nested Observables in SwiftUI<\/strong><\/a>.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u043e\u0434 \u043d\u0430 <a href=\"https:\/\/github.com\/BestKora\/CS193P_2023\">Github<\/a>  <strong>EmojiArt L13 <\/strong>\u0438<strong> EmojiArt L!3 Observation palettes<\/strong>.<br>\u041d\u0430 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043a \u0414\u043e\u043c\u0430\u0448\u043d\u0435\u043c\u0443 \u0417\u0430\u0434\u0430\u043d\u0438\u044e \u2116 6<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 <span style=\"color: #680da1;\">Menu<\/span> \u0432 <span style=\"color: #680da1;\">.contextMenu<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043f\u0430\u043b\u0438\u0442\u0440\u044b <span style=\"color: #680da1;\">PaletteEditor<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041c\u043e\u0434\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 <span style=\"color: #680da1;\">.sheet<\/span> \u0438 <span style=\"color: #680da1;\">.popover<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0424\u043e\u0440\u043c\u0430 <span style=\"color: #680da1;\">Form<\/span> \u0438 \u0441\u0435\u043a\u0446\u0438\u0438 <span style=\"color: #680da1;\">Section<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0428\u0440\u0438\u0444\u0442\u044b <span style=\"color: #680da1;\">.font<\/span> \u0432 <span style=\"color: #680da1;\">.sheet<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">TextField<\/span> \u0438 <span style=\"color: #680da1;\">@Binding<\/span> \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 <span style=\"color: #680da1;\">.onChange<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">@FocusState<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Preview c <span style=\"color: #680da1;\">@Binding<\/span> \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u0430\u043b\u0438\u0442\u0440 <span style=\"color: #680da1;\">PaletteList<\/span> <\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">NavigationStack<\/span>, <span style=\"color: #680da1;\">NavigationLink<\/span>, <span style=\"color: #680da1;\">.navigationDestination<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">.navigationTitle<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u043b\u0438\u0442\u0440<span style=\"color: #680da1;\"> EditablePaletteList<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">NavigationSplitView<\/span> \u0438 <span style=\"color: #680da1;\">PaletteManager<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">List<\/span> \u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c <span style=\"color: #680da1;\">selection:<\/span>. <span style=\"color: #680da1;\">Hashable<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">.detail<\/span> \u0438 <span style=\"color: #680da1;\">.content<\/span><\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><span style=\"color: #680da1;\">NavigationStack<\/span> \u0432\u043d\u0443\u0442\u0440\u0438 <span style=\"color: #680da1;\">NavigationSplitView<\/span><\/span><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <strong>Google Doc<\/strong> \u0438 \u0432 \u0432\u0438\u0434\u0435 <strong>PDF<\/strong>-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b <strong><a href=\"https:\/\/drive.google.com\/drive\/folders\/1pSk06gUK__I-4Pcz-IgE_8Wz5Y6fNmWq?usp=drive_link\" title=\"\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/strong><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">\u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u041b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0417\u0430\u0434\u0430\u043d\u0438\u0439 <a href=\"https:\/\/cs193p.sites.stanford.edu\/2023\"><strong>\u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 CS193P \u0412\u0435\u0441\u043d\u0430 2023<\/strong><\/a><strong> <\/strong>&#171;<strong>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI<\/strong>&#187; \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f <a href=\"https:\/\/bestkora.com\/IosDeveloper\/ios-swiftui-2023\/\"><strong>\u0437\u0434\u0435\u0441\u044c<\/strong><\/a>.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0421\u0442\u044d\u043d\u0444\u043e\u0440\u0434\u0441\u043a\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 CS193P \u0412\u0435\u0441\u043d\u0430 2023 &#171;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SwiftUI&#171;.\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Google Doc \u0438 \u0432 \u0432\u0438\u0434\u0435 PDF-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0437\u0434\u0435\u0441\u044c.\u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 &hellip; <a href=\"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/\">\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[91,97,9,101,14,54],"tags":[104,92,99,31,56],"class_list":["post-15526","post","type-post","status-publish","format-standard","hentry","category-ios-16","category-ios-17","category-lecture","category-stanford-cs193p-2023","category-swift","category-swiftui","tag-cs193p-spring-2023","tag-ios-16","tag-ios-17","tag-swift","tag-swiftui"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Google Doc \u0438 \u0432 \u0432\u0438\u0434\u0435 PDF-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0437\u0434\u0435\u0441\u044c.\u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 GitHub. \u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u041b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0417\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0437\u0434\u0435\u0441\u044c. . . . . . . . . . . . . . . TextField \u0438 @Binding\" \/>\n\t<meta name=\"robots\" content=\"max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n\t<meta name=\"author\" content=\"tatiana.kornilova@gmail.com\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/\" \/>\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=\"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023. | \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=\"\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Google Doc \u0438 \u0432 \u0432\u0438\u0434\u0435 PDF-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0437\u0434\u0435\u0441\u044c.\u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 GitHub. \u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u041b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0417\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0437\u0434\u0435\u0441\u044c. . . . . . . . . . . . . . . TextField \u0438 @Binding\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-04-12T09:59:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-08-30T10:19:57+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023. | \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=\"\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Google Doc \u0438 \u0432 \u0432\u0438\u0434\u0435 PDF-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0437\u0434\u0435\u0441\u044c.\u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 GitHub. \u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u041b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0417\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0437\u0434\u0435\u0441\u044c. . . . . . . . . . . . . . . TextField \u0438 @Binding\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#article\",\"name\":\"\\u041b\\u0435\\u043a\\u0446\\u0438\\u044f 13. \\u041f\\u0440\\u0435\\u0434\\u0441\\u0442\\u0430\\u0432\\u043b\\u044f\\u044e\\u0449\\u0438\\u0435 (Presenting) Views. \\u041d\\u0430\\u0432\\u0438\\u0433\\u0430\\u0446\\u0438\\u044f. CS193P Spring 2023. | \\u041e\\u0431\\u0443\\u0447\\u0430\\u044e\\u0449\\u0438\\u0439 \\u043a\\u0443\\u0440\\u0441 \\u043f\\u043e \\u0440\\u0430\\u0437\\u0440\\u0430\\u0431\\u043e\\u0442\\u043a\\u0435 iOS+Swift \\u043f\\u0440\\u0438\\u043b\\u043e\\u0436\\u0435\\u043d\\u0438\\u0439.\",\"headline\":\"\\u041b\\u0435\\u043a\\u0446\\u0438\\u044f 13. \\u041f\\u0440\\u0435\\u0434\\u0441\\u0442\\u0430\\u0432\\u043b\\u044f\\u044e\\u0449\\u0438\\u0435 (Presenting) Views. \\u041d\\u0430\\u0432\\u0438\\u0433\\u0430\\u0446\\u0438\\u044f. CS193P Spring 2023.\",\"author\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/lh7-us.googleusercontent.com\\\/Q8zmrzr_oONzjT3lRSSUKaH7eGUL1HDcoVSNGuQLD1OK9L0FBhYS3B62sfxTiay8ZKpv8IHE2W2idrc49eEUAhPByhl1ZfZOyvlDBhA-qzB1Hnm1hcb2e_0TcvyT4PaRWeEaLpZ6s9ssZiObX-smrTc\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#articleImage\"},\"datePublished\":\"2024-04-12T09:59:28+00:00\",\"dateModified\":\"2024-08-30T10:19:57+00:00\",\"inLanguage\":\"ru-RU\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#webpage\"},\"articleSection\":\"iOS 16, iOS 17, Lecture, Stanford CS193P 2023, Swift, SwiftUI, CS193P Spring 2023, iOS 16, iOS 17, Swift, SwiftUI\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/category\\\/lecture\\\/#listItem\",\"name\":\"Lecture\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/category\\\/lecture\\\/#listItem\",\"position\":2,\"name\":\"Lecture\",\"item\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/category\\\/lecture\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#listItem\",\"name\":\"\\u041b\\u0435\\u043a\\u0446\\u0438\\u044f 13. \\u041f\\u0440\\u0435\\u0434\\u0441\\u0442\\u0430\\u0432\\u043b\\u044f\\u044e\\u0449\\u0438\\u0435 (Presenting) Views. \\u041d\\u0430\\u0432\\u0438\\u0433\\u0430\\u0446\\u0438\\u044f. CS193P Spring 2023.\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#listItem\",\"position\":3,\"name\":\"\\u041b\\u0435\\u043a\\u0446\\u0438\\u044f 13. \\u041f\\u0440\\u0435\\u0434\\u0441\\u0442\\u0430\\u0432\\u043b\\u044f\\u044e\\u0449\\u0438\\u0435 (Presenting) Views. \\u041d\\u0430\\u0432\\u0438\\u0433\\u0430\\u0446\\u0438\\u044f. CS193P Spring 2023.\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/category\\\/lecture\\\/#listItem\",\"name\":\"Lecture\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#person\",\"name\":\"tatiana.kornilova@gmail.com\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/33ccc19059014d8a7849c3621afa2b66a5f3e50ac7291c91c30ff35df5747628?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"tatiana.kornilova@gmail.com\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/#author\",\"url\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/\",\"name\":\"tatiana.kornilova@gmail.com\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/33ccc19059014d8a7849c3621afa2b66a5f3e50ac7291c91c30ff35df5747628?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"tatiana.kornilova@gmail.com\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#webpage\",\"url\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/\",\"name\":\"\\u041b\\u0435\\u043a\\u0446\\u0438\\u044f 13. \\u041f\\u0440\\u0435\\u0434\\u0441\\u0442\\u0430\\u0432\\u043b\\u044f\\u044e\\u0449\\u0438\\u0435 (Presenting) Views. \\u041d\\u0430\\u0432\\u0438\\u0433\\u0430\\u0446\\u0438\\u044f. CS193P Spring 2023. | \\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\":\"\\u041f\\u043e\\u043b\\u043d\\u044b\\u0439 \\u0440\\u0443\\u0441\\u0441\\u043a\\u043e\\u044f\\u0437\\u044b\\u0447\\u043d\\u044b\\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 \\u041b\\u0435\\u043a\\u0446\\u0438\\u0438 13 \\u0432 \\u0444\\u043e\\u0440\\u043c\\u0430\\u0442\\u0435 Google Doc \\u0438 \\u0432 \\u0432\\u0438\\u0434\\u0435 PDF-\\u0444\\u0430\\u0439\\u043b\\u0430, \\u043a\\u043e\\u0442\\u043e\\u0440\\u044b\\u0439 \\u043c\\u043e\\u0436\\u043d\\u043e \\u0441\\u043a\\u0430\\u0447\\u0430\\u0442\\u044c \\u0438 \\u0438\\u0441\\u043f\\u043e\\u043b\\u044c\\u0437\\u043e\\u0432\\u0430\\u0442\\u044c offline, \\u0434\\u043e\\u0441\\u0442\\u0443\\u043f\\u043d\\u044b \\u0437\\u0434\\u0435\\u0441\\u044c.\\u041a\\u043e\\u0434 \\u043d\\u0430\\u0445\\u043e\\u0434\\u0438\\u0442\\u0441\\u044f \\u043d\\u0430 GitHub. \\u0421 \\u043f\\u043e\\u043b\\u043d\\u044b\\u043c \\u043f\\u0435\\u0440\\u0435\\u0447\\u043d\\u0435\\u043c \\u041b\\u0435\\u043a\\u0446\\u0438\\u0439 \\u0438 \\u0414\\u043e\\u043c\\u0430\\u0448\\u043d\\u0438\\u0445 \\u0417\\u0430\\u0434\\u0430\\u043d\\u0438\\u0439 \\u043d\\u0430 \\u0440\\u0443\\u0441\\u0441\\u043a\\u043e\\u043c \\u044f\\u0437\\u044b\\u043a\\u0435 \\u043c\\u043e\\u0436\\u043d\\u043e \\u043f\\u043e\\u0437\\u043d\\u0430\\u043a\\u043e\\u043c\\u0438\\u0442\\u044c\\u0441\\u044f \\u0437\\u0434\\u0435\\u0441\\u044c. . . . . . . . . . . . . . . TextField \\u0438 @Binding\",\"inLanguage\":\"ru-RU\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/bestkora.com\\\/IosDeveloper\\\/author\\\/tatiana-lornilovagmail-com\\\/#author\"},\"datePublished\":\"2024-04-12T09:59:28+00:00\",\"dateModified\":\"2024-08-30T10:19:57+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":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023. | \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":"\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Google Doc \u0438 \u0432 \u0432\u0438\u0434\u0435 PDF-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0437\u0434\u0435\u0441\u044c.\u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 GitHub. \u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u041b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0417\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0437\u0434\u0435\u0441\u044c. . . . . . . . . . . . . . . TextField \u0438 @Binding","canonical_url":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/","robots":"max-snippet:-1, max-image-preview:large, max-video-preview:-1","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#article","name":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023. | \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 iOS+Swift \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.","headline":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023.","author":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/#author"},"publisher":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/lh7-us.googleusercontent.com\/Q8zmrzr_oONzjT3lRSSUKaH7eGUL1HDcoVSNGuQLD1OK9L0FBhYS3B62sfxTiay8ZKpv8IHE2W2idrc49eEUAhPByhl1ZfZOyvlDBhA-qzB1Hnm1hcb2e_0TcvyT4PaRWeEaLpZ6s9ssZiObX-smrTc","@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#articleImage"},"datePublished":"2024-04-12T09:59:28+00:00","dateModified":"2024-08-30T10:19:57+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#webpage"},"isPartOf":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#webpage"},"articleSection":"iOS 16, iOS 17, Lecture, Stanford CS193P 2023, Swift, SwiftUI, CS193P Spring 2023, iOS 16, iOS 17, Swift, SwiftUI"},{"@type":"BreadcrumbList","@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper#listItem","position":1,"name":"Home","item":"https:\/\/bestkora.com\/IosDeveloper","nextItem":{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/category\/lecture\/#listItem","name":"Lecture"}},{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/category\/lecture\/#listItem","position":2,"name":"Lecture","item":"https:\/\/bestkora.com\/IosDeveloper\/category\/lecture\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#listItem","name":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023."},"previousItem":{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#listItem","position":3,"name":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023.","previousItem":{"@type":"ListItem","@id":"https:\/\/bestkora.com\/IosDeveloper\/category\/lecture\/#listItem","name":"Lecture"}}]},{"@type":"Person","@id":"https:\/\/bestkora.com\/IosDeveloper\/#person","name":"tatiana.kornilova@gmail.com","image":{"@type":"ImageObject","@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/33ccc19059014d8a7849c3621afa2b66a5f3e50ac7291c91c30ff35df5747628?s=96&d=mm&r=g","width":96,"height":96,"caption":"tatiana.kornilova@gmail.com"}},{"@type":"Person","@id":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/#author","url":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/","name":"tatiana.kornilova@gmail.com","image":{"@type":"ImageObject","@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/33ccc19059014d8a7849c3621afa2b66a5f3e50ac7291c91c30ff35df5747628?s=96&d=mm&r=g","width":96,"height":96,"caption":"tatiana.kornilova@gmail.com"}},{"@type":"WebPage","@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#webpage","url":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/","name":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023. | \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":"\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Google Doc \u0438 \u0432 \u0432\u0438\u0434\u0435 PDF-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0437\u0434\u0435\u0441\u044c.\u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 GitHub. \u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u041b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0417\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0437\u0434\u0435\u0441\u044c. . . . . . . . . . . . . . . TextField \u0438 @Binding","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/#website"},"breadcrumb":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/#breadcrumblist"},"author":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/#author"},"creator":{"@id":"https:\/\/bestkora.com\/IosDeveloper\/author\/tatiana-lornilovagmail-com\/#author"},"datePublished":"2024-04-12T09:59:28+00:00","dateModified":"2024-08-30T10:19:57+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":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023. | \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":"\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Google Doc \u0438 \u0432 \u0432\u0438\u0434\u0435 PDF-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0437\u0434\u0435\u0441\u044c.\u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 GitHub. \u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u041b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0417\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0437\u0434\u0435\u0441\u044c. . . . . . . . . . . . . . . TextField \u0438 @Binding","og:url":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/","article:published_time":"2024-04-12T09:59:28+00:00","article:modified_time":"2024-08-30T10:19:57+00:00","twitter:card":"summary","twitter:title":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023. | \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":"\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\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 \u041b\u0435\u043a\u0446\u0438\u0438 13 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Google Doc \u0438 \u0432 \u0432\u0438\u0434\u0435 PDF-\u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c offline, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0437\u0434\u0435\u0441\u044c.\u041a\u043e\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 GitHub. \u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u043d\u0435\u043c \u041b\u0435\u043a\u0446\u0438\u0439 \u0438 \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0417\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0437\u0434\u0435\u0441\u044c. . . . . . . . . . . . . . . TextField \u0438 @Binding"},"aioseo_meta_data":{"post_id":"15526","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":"Article","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":null,"created":"2024-04-12 09:52:19","updated":"2026-02-22 20:11:13","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bestkora.com\/IosDeveloper\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bestkora.com\/IosDeveloper\/category\/lecture\/\" title=\"Lecture\">Lecture<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023.\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/bestkora.com\/IosDeveloper"},{"label":"Lecture","link":"https:\/\/bestkora.com\/IosDeveloper\/category\/lecture\/"},{"label":"\u041b\u0435\u043a\u0446\u0438\u044f 13. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 (Presenting) Views. \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f. CS193P Spring 2023.","link":"https:\/\/bestkora.com\/IosDeveloper\/%d0%bb%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-13-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-views-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-cs193p-spring-202\/"}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/posts\/15526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/comments?post=15526"}],"version-history":[{"count":4,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/posts\/15526\/revisions"}],"predecessor-version":[{"id":15666,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/posts\/15526\/revisions\/15666"}],"wp:attachment":[{"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/media?parent=15526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/categories?post=15526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bestkora.com\/IosDeveloper\/wp-json\/wp\/v2\/tags?post=15526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}