{"id":361238,"date":"2024-05-21T01:09:34","date_gmt":"2024-05-21T01:09:34","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=361238"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=361238","title":{"rendered":"<span>\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e #516 (20 \u2014 26 \u043d\u043e\u044f\u0431\u0440\u044f)<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u0412 \u043d\u0430\u0448\u0435\u0439 \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 SwiftUI \u0438 \u0442\u044b\u0441\u044f\u0447\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c App Clip, Kotlin \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, OpenStreetMap \u0432 Flutter, 18 \u043b\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 Google, \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435 Platform Engineer, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u21161 \u0432 App Store, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u0443\u0436\u0435 7 \u043b\u0435\u0442 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435!<\/p>\n<p>  <b>\u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043d\u0430 \u043d\u0430\u0448 Telegram-\u043a\u0430\u043d\u0430\u043b <a href=\"https:\/\/t.me\/apptractor\">Mobile Insights<\/a>, \u0433\u0434\u0435 \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0410 \u0432 <a href=\"https:\/\/t.me\/code_insight\">IT Insights<\/a> \u2014 \u043c\u043d\u043e\u0433\u043e \u043e\u0431 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445.<\/b><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/i8\/zp\/gk\/i8zpgk7estxujykawitelerdyia.png\" data-src=\"https:\/\/habrastorage.org\/webt\/i8\/zp\/gk\/i8zpgk7estxujykawitelerdyia.png\"\/><a name=\"habracut\"><\/a><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/f19\/30a\/c49\/f1930ac4945596eb9707bc7a01bc5bdc.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f19\/30a\/c49\/f1930ac4945596eb9707bc7a01bc5bdc.png\"\/> <b>iOS<\/b><\/p>\n<p>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/otladka-predstavleniy-swiftui-chto-vyzyvaet-izmeneniya.html\">\u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 SwiftUI: \u0447\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f?<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/lamoda\/articles\/775162\/\">ChatGPT-4 \u0432 \u043f\u043e\u043c\u043e\u0449\u044c: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c AI \u0432 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/dododev\/articles\/775128\/\">App Clip \u0438 \u0442\u044b\u0441\u044f\u0447\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/stroki-v-swift-vyglyadyat-odinakovo-no-ne-yavlyayutsya-takovymi.html\">\u0421\u0442\u0440\u043e\u043a\u0438 \u0432 Swift \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u043d\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0432\u044b\u043c\u0438?<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/swift-uroki-actor.html\">Swift-\u0443\u0440\u043e\u043a\u0438: Actor<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/776196\/\">\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438 \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0441 Async\/Await<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/kak-poluchit-mezhdunarodnyy-offer-ios-razrabotchiku.html\">\u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0439 \u043e\u0444\u0444\u0435\u0440 iOS-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/techhype\/voprosy-s-sobesedovaniy-chto-takoe-semafor-v-swift.html\">\u0412\u043e\u043f\u0440\u043e\u0441\u044b \u0441 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0421\u0435\u043c\u0430\u0444\u043e\u0440 \u0432 Swift<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/devices\/vypusk-apple-vision-pro-sostoitsya-gde-to-v-marte.html\">\u0412\u044b\u043f\u0443\u0441\u043a Apple Vision Pro \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u00ab\u0433\u0434\u0435-\u0442\u043e \u0432 \u043c\u0430\u0440\u0442\u0435\u00bb<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/povarennaya-kniga-swiftui-nastroyka-prozrachnosti.html\">\u041f\u043e\u0432\u0430\u0440\u0435\u043d\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430 SwiftUI: \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/jackmorris.xyz\/posts\/2023\/11\/06\/distributing-work-between-actors\/\">Distributing Work Between Actors<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/damian.fyi\/swift\/2023\/11\/13\/swift-strings-look-identical-but-aren't.html\">Swift strings look identical but aren\u2019t<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/tanaschita.com\/20231120-migration-with-swiftdata\/\">How to migrate to a new schema with SwiftData in iOS<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/wanlutfi.dev\/2023\/11\/20\/ensuring-app-ui-correctness-using-snapshot-tests\/\">Ensuring App UI Correctness Using Snapshot Tests<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/david.y4ng.fr\/the-alternative-to-swiftui-spacer\/\">The alternative to SwiftUI\u2019s Spacer<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/www.createwithswift.com\/animating-numeric-text-in-swiftui-with-the-content-transition-modifier\/\">Animating numeric text in SwiftUI with the Content Transition modifier<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/blorenzop.medium.com\/typealias-26baa57d81ae\">Typealias in Swift: 3 use cases<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/swift2931.medium.com\/destroy-dependency-injection-in-swift-caa092e30954\">Destroy dependency injection in Swift<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/betterprogramming.pub\/deploy-coreml-models-on-the-server-with-vapor-48809a853fae\">Deploy CoreML Models on the Server with Vapor<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/blog.devgenius.io\/enum-guru-swift-enum-in-depth-5b89463a1ed5\">enum Guru: Swift enum in depth<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/nilcoalescing.com\/blog\/ObservationFrameworkOutsideOfSwiftUI\/\">Using Observation framework outside of SwiftUI<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/swiftwithmajid.com\/2023\/11\/21\/scoped-animations-in-swiftui\/\">Scoped animations in SwiftUI<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/useyourloaf.com\/blog\/swiftui-splitview-compact-column-control\/\">SwiftUI SplitView Compact Column Control<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@matheusqcardoso98\/swift-reference-types-and-retain-cycles-weak-vs-unowned-memory-1-ad8f1f667780\">Reference types and Retain cycles (Weak vs. Unowned)<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/idn-engineering\/swift-uitableview-prefetching-a-guide-to-smoother-scrolling-a12251e2e774\">Swift UITableView Prefetching: A Guide to Smoother Scrolling<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/seraleev.notion.site\/Our-developer-account-was-removed-by-Apple-and-they-haven-t-paid-out-108-878-b61192711c74487480373badc70d42c0\">Our developer account was removed by Apple, and they haven\u2019t paid out $108,878<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/holyswift.app\/conquering-the-climbing-stairs-challenge-with-swift-a-dynamic-programming-approach\/\">Conquering the Climbing Stairs Challenge with Swift: A Dynamic Programming Approach<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@andrewjosephmuniz\/my-thought-process-behind-my-muaythaijournal-app-028180af7809\">From Concept to App Store: The Making of MuayThaiJournal<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/www.roger.ml\/p\/oslog\">Replacing your logging framework with OSLog<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=Bo1b2qVVg-M\">Automatic Component Sizing \u2014 SwiftUI for iOS 17<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/techhype.io\/media\/simple-drop-down-picker-swiftui\/\">Simple Drop Down Picker \u2013 SwiftUI<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/techhype.io\/media\/swiftui-new-observation-framework\/\">SwiftUI: New Observation Framework<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=qlMxrwJfHaE\">SwiftUI Tooltips with TipKit (Popover &amp; Inline Tips)<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=4nj0mVE3R08\">8 Tips to Design a Great Paywall<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=CrWqfCDmPVI\">SwiftData Lightweight Migrations<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=K8VnH2eEnK4\">Swipe Actions For ScrollView \u2014 No Gestures! \u2014 iOS 17 Scroll APIs<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=ZsKrB6ztf1s\">How to Make a Color Picker with ScrollView, Scroll Position and Visual Effects<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\" data-src=\"https:\/\/habrastorage.org\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\"\/> <a href=\"https:\/\/apptractor.ru\/info\/github\/kingfisher.html\">Kingfisher: \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\" data-src=\"https:\/\/habrastorage.org\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\"\/> <a href=\"https:\/\/apptractor.ru\/info\/github\/acknowlist.html\">AcknowList: \u0441\u043f\u0438\u0441\u043e\u043a \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439<\/a><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/e1a\/3cf\/2a8\/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e1a\/3cf\/2a8\/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png\"\/> <b>Android<\/b><\/p>\n<p>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/774872\/\">Kotlin \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c: \u043d\u044e\u0430\u043d\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/775288\/\">\u041f\u0438\u0448\u0435\u043c Kotlin DSL \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u043e\u0432 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/novye-api-dlya-adaptivnyh-maketov-v-jetpack-compose.html\">\u041d\u043e\u0432\u044b\u0435 API \u0434\u043b\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445 \u043c\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 Jetpack Compose<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/alfa\/articles\/775180\/\">API vs ABI: \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u0432\u0438\u0434\u044f\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u0448\u044c \u0432\u0441\u0435<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/776344\/\">\u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c MVVM \u0438 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u043e\u0432 \u0432 Android. \u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043c\u0430\u043b\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/ppr\/articles\/775306\/\">\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 Ktlint \u0434\u043b\u044f Kotlin \u0432 Android<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/kak-ustroen-android-v-umnyh-kolonkah-yandeksa.html\">\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d Android \u0432 \u0443\u043c\u043d\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u0445 \u042f\u043d\u0434\u0435\u043a\u0441\u0430<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/top-10-voprosov-dlya-senior-android-sobesedovanie-s-razborom-otvetov-i-materialami.html\">\u0422\u043e\u043f-10 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0434\u043b\u044f Senior Android: \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/analytics\/gde-ostanovitsya-kotlin-yazyk-postavil-novyy-rekord-v-indekse-tiobe.html\">\u0413\u0434\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f Kotlin: \u044f\u0437\u044b\u043a \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u043a\u043e\u0440\u0434 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0435 TIOBE<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/dev.to\/charlietap\/making-my-concurrent-algorithm-6000-better-24oo\">Making my concurrent algorithm 6000% better<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/joebirch.co\/android\/jetpack-compose-material-components-for-android-tv-cards\/\">Jetpack Compose + Material Components for Android TV: Cards<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/alexzh.com\/not-all-ui-tests-are-the-same\/\">Not all UI tests are the same<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/itnext.io\/exercises-in-futility-one-time-events-in-android-ddbdd7b5bd1c\">Exercises in futility: One-time events in Android<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@AlexanderObregon\/java-memory-leaks-detection-and-prevention-25d1c09eaebe\">Java Memory Leaks: Detection and Prevention<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@mega-blog\/making-tdd-a-habit-in-android-development-part-1-ed9f2d81f50d\">Making TDD a Habit in Android Development<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/proandroiddev.com\/how-to-add-content-descriptions-in-compose-a-guide-for-android-devs-5eacd75b4672\">How to Add Content Descriptions in Compose<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/proandroiddev.com\/migration-from-kapt-to-ksp-685715de214a\">Migration from Kapt to KSP<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@Nek.12\/viewmodel-events-as-state-are-an-antipattern-35ff4fbc6fb6\">ViewModel: Events as State are an Antipattern<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@dugguRK\/top-10-android-memory-leak-causes-9cdd8cbd5489\">Top 10 Android Memory Leak Causes<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/rezaramesh.medium.com\/mastering-camera2-api-in-kotlin-a-comprehensive-guide-with-examples-43282f6e68bb\">Mastering Camera2 API in Kotlin: A Comprehensive Guide with Examples<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/stackademic\/mastering-kotlins-invoke-operator-simplifying-code-and-enhancing-readability-940d3a5bf0e9\">Mastering Kotlin\u2019s Invoke Operator: Simplifying Code and Enhancing Readability<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/proandroiddev.com\/law-of-demeter-with-examples-in-kotlin-6e1cf75e3f94\">Law of Demeter with examples in Kotlin<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@KaushalVasava\/in-app-update-in-android-2023-c47beb1e3a7e\">In-App Update in Android 2023<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@skydoves\/build-video-calling-for-your-android-whatsapp-clone-with-jetpack-compose-8dbb1924844e\">Build Video Calling for Your Android WhatsApp Clone With Jetpack Compose<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@azazakram007\/how-to-create-an-animated-splash-screen-for-android-a-step-by-step-guide-39cc27baaff4\">How to Create an Animated Splash Screen for Android: A Step-by-Step Guide<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.droidcon.com\/content\/?filter_postyear=2023&amp;amp;filter_post_event_tag=droidcon-london\">droidcon London 2023 Videos<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/techhype.io\/media\/how-to-migrate-an-android-project-to-kotlin-multiplatform-kmp\/\">How to Migrate an Android Project to Kotlin Multiplatform (KMP)<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=aqwKZLs24fo\">Firebase Demo Day Recap, Flutter 3.16, and more dev news!<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=bzhmgkuR0dU\">A Team of 20 to Publish an App?! \u2014 THIS New Google Play Policy Change is CRAZY<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/youtu.be\/EjD5TQxHM5A\">Custom Savers<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/youtu.be\/08rqvVHjeBo\">Circuit \u2013 Android App Architecture Masterclass with Zac and Josh from Slack<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\" data-src=\"https:\/\/habrastorage.org\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\"\/> <a href=\"https:\/\/apptractor.ru\/info\/github\/reorderable.html\">Reorderable: \u0442\u0430\u0441\u043a\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 (Lazy)Column \u0438 (Lazy)Row<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\" data-src=\"https:\/\/habrastorage.org\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\"\/> <a href=\"https:\/\/apptractor.ru\/info\/github\/exposed.html\">Exposed: SQL-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f Kotlin<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\" data-src=\"https:\/\/habrastorage.org\/files\/967\/16b\/cb9\/96716bcb926741e79bb1c284a88083ca.png\"\/> <a href=\"https:\/\/apptractor.ru\/info\/github\/capturable.html\">Capturable: \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 Bitmap \u0438\u0437 Composable<\/a><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ma\/lx\/8h\/malx8hbgozt6lee8rmxmg96_s6a.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ma\/lx\/8h\/malx8hbgozt6lee8rmxmg96_s6a.png\"\/> <b>\u041a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430<\/b><\/p>\n<p>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/775476\/\">\u041a\u0430\u043a \u043c\u044b \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0442 styled-components \u0432 React Native \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/friflex\/articles\/776002\/\">OpenStreetMap \u0432 Flutter-\u043f\u0440\u043e\u0435\u043a\u0442\u0435: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 flutter_map, \u043a\u0430\u043a \u0435\u0433\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u0438 \u0447\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/775928\/\">\u041a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c Flutter \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 iOS \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 Codemagic: \u0427\u0430\u0441\u0442\u044c 2<\/a>\u00a0+ <a href=\"https:\/\/habr.com\/ru\/articles\/775298\/\">\u0427\u0430\u0441\u0442\u044c 1<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/surfstudio\/articles\/775714\/\">Flutter 3.16: \u043e\u0431\u0437\u043e\u0440 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 Surf<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/www.forbes.com\/sites\/forbes-engineering\/2023\/11\/13\/forbes-mobile-app-shifts-to-kotlin-multiplatform\/\">Forbes Mobile App Shifts To Kotlin Multiplatform<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/flutter-senior\/the-new-lint-in-dart-3-2-287dbddede51\">The new lint in Dart 3.2<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/flutter\/major-steps-this-year-on-the-journey-to-multiplatform-development-b9218b17f0f7\">Major steps this year on the journey to multiplatform development<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@sahaj.blup\/top-12-flutter-open-source-projects-c27fd21fdad9\">Top 12 Flutter Open source projects<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@flutterwtf\/flutter-interview-questions-and-answers-top-30-for-pros-0cdbf1d40ebd\">Flutter Interview Questions and Answers: Top 30 for Pros!<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/www.kodeco.com\/40019922-flutter-networking-tutorial-getting-started\">Flutter Networking Tutorial: Getting Started<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@samra.sajjad0001\/memory-management-in-flutter-best-practices-and-pitfalls-8223a88803df\">Memory Management in Flutter: Best Practices and Pitfalls<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@aslam.develop912\/utilizing-js-library-for-flutter-web-c683c590927f\">Utilizing JS Library for Flutter Web<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/@nikunj09\/native-ui-components-in-react-native-part-1-d3d459046e96\">Native UI Components in React<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/medium.com\/alan\/our-journey-from-react-native-to-expo-for-mobile-app-development-at-alan-%EF%B8%8F-3b1569e8ab7c\">Our journey from React Native to Expo for mobile app development at Alan<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=bz4cQeaXmsI\">The State of Kotlin Multiplatform<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=zE2LIAUisRI\">Getting Started With KMP: Build Apps for iOS and Android With Shared Logic and Native UIs<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=IGuVIRZzVTk\">Build Apps for iOS, Android, and Desktop With Compose Multiplatform<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=PctmP21EDFA\">Flutter Responsive UI: Crafting Dynamic Layouts for Every Device<\/a><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/708\/1c6\/34e\/7081c634ec176ab6b953d9d19e82a09a.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/708\/1c6\/34e\/7081c634ec176ab6b953d9d19e82a09a.png\"\/> <b>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/b><\/p>\n<p>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/776108\/\">\u0420\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043e 18 \u0433\u043e\u0434\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 Google<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/kak-spotify-otslezhivaet-razmery-prilozheniy.html\">\u041a\u0430\u043a Spotify \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/sberbank\/articles\/775840\/\">\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438: \u0441\u0434\u0435\u043b\u0430\u0439 \u0441\u0430\u043c vs \u0432\u043e\u0437\u044c\u043c\u0438 \u0433\u043e\u0442\u043e\u0432\u043e\u0435<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/myslim-kak-platform-engineer.html\">\u041c\u044b\u0441\u043b\u0438\u043c \u043a\u0430\u043a Platform Engineer<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/productivity_inside\/articles\/775648\/\">\u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/otus\/articles\/775640\/\">\u041b\u0435\u0432 \u0422\u043e\u043b\u0441\u0442\u043e\u0439 \u043e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435: \u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/774610\/\">\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/tracer-alternativa-crashlytics-drugoy-vzglyad-na-analitiku-oshibok-v-prilozheniyah.html\">Tracer \u2014 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 Crashlytics: \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/kak-kachat-milliony-fotografiy-v-sutki-vyderzhat-kratnyy-rost-i-ne-umeret.html\">\u041a\u0430\u043a \u043a\u0430\u0447\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0432 \u0441\u0443\u0442\u043a\u0438, \u0432\u044b\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u0440\u0430\u0442\u043d\u044b\u0439 \u0440\u043e\u0441\u0442 \u0438 \u043d\u0435 \u0443\u043c\u0435\u0440\u0435\u0442\u044c?<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/naskolko-realen-rossiyskiy-ayfon-razgovor-s-maksimom-gorsheninym.html\">\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0435\u043d \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0430\u0439\u0444\u043e\u043d: \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0441 \u041c\u0430\u043a\u0441\u0438\u043c\u043e\u043c \u0413\u043e\u0440\u0448\u0435\u043d\u0438\u043d\u044b\u043c.<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/podlodka-347-razvitie-produkta-ot-0-do-1.html\">Podlodka #347: \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043e\u0442 0 \u0434\u043e 1<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/analytics\/issledovanie-the-state-of-developer-ecosystem-2023-ot-jetbrains.html\">\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 The State of Developer Ecosystem 2023 \u043e\u0442 JetBrains<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/magic-research-solo-razrabotchik-zarabotal-bolee-150-000-sdelav-vsego-2-soobscheniya-na-reddit.html\">Magic Research: \u0441\u043e\u043b\u043e-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u043e\u043b\u0435\u0435 $150,000, \u0441\u0434\u0435\u043b\u0430\u0432 \u0432\u0441\u0435\u0433\u043e 2 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430 Reddit<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/gamemaker-otmenil-podpisku-dlya-indi-razrabotchikov.html\">GameMaker \u043e\u0442\u043c\u0435\u043d\u0438\u043b \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443 \u0434\u043b\u044f \u0438\u043d\u0434\u0438-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/prezhde-chem-pytatsya-chto-to-sdelat-ubedites-chto-vy-mozhete-sdelat-to-chto-nichego-ne-delaet.html\">\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/umnyy-kod-eto-veroyatno-hudshiy-kod-kotoryy-vy-mozhete-napisat.html\">\u0423\u043c\u043d\u044b\u0439 \u043a\u043e\u0434 \u2014 \u044d\u0442\u043e, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0445\u0443\u0434\u0448\u0438\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/overreacted.io\/goodbye-clean-code\/\">Goodbye, Clean Code<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/doordash.engineering\/2023\/10\/19\/how-doordash-standardized-and-improved-microservices-caching\/\">How DoorDash Standardized and Improved Microservices Caching<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/jack-vanlightly.com\/blog\/2023\/11\/14\/the-architecture-of-serverless-data-systems\">The Architecture Of Serverless Data Systems<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/shiftmag.dev\/code-quality-good-enough-2034\/\">It\u2019s OK if your code is just good enough<\/a><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/509\/dc9\/bde\/509dc9bde69347ecbe0c21ff2973d7e7.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/509\/dc9\/bde\/509dc9bde69347ecbe0c21ff2973d7e7.jpg\" data-blurred=\"true\"\/> <b>\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430, \u043c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433 \u0438 \u043c\u043e\u043d\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u044f<\/b><\/p>\n<p>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/775938\/\">\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u0430\u0433\u0430-\u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0438 \u043a\u0430\u043a \u0435\u0435 \u043d\u0430\u0439\u0442\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/776064\/\">\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0438 F2P \u0438\u0433\u0440 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/apps\/kompaniya-sunbird-zakryla-svoe-prilozhenie-dlya-obmena-soobscheniyami-s-imessage.html\">\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Sunbird \u0437\u0430\u043a\u0440\u044b\u043b\u0430 \u0441\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u0441 iMessage<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/sekretnaya-sdelka-google-pozvolila-spotify-polnostyu-oboyti-platu-za-polzovanie-google-play.html\">\u0421\u0435\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u0441\u0434\u0435\u043b\u043a\u0430 Google \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 Spotify \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0431\u043e\u0439\u0442\u0438 \u043f\u043b\u0430\u0442\u0443 \u0437\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Google Play<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/auditoriya-rustore-dostigla-22-5-milliona-polzovateley-v-mesyats.html\">\u0410\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044f RuStore \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u0430 22.5 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043c\u0435\u0441\u044f\u0446<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/apps\/rooms.html\">Rooms, \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 3D-\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u0443\u044e\u0442\u043d\u0430\u044f \u0438\u0433\u0440\u0430\u00bb, \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 App Store<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/measure\/app-store-analytics\/v-app-store-prilozheniem-1-stali-raskraski-kotorye-ne-obnovlyalis-uzhe-7-let.html\">\u0412 App Store \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u21161 \u0441\u0442\u0430\u043b\u0438 \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u0443\u0436\u0435 7 \u043b\u0435\u0442<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/techhype.io\/news\/good-games-dont-die-can-legacy-titles-save-the-mobile-game-industry\/\">Good games don\u2019t die \u2013 Can legacy titles save the mobile game industry?<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/www.adjust.com\/resources\/ebooks\/skadnetwork-4-ios\/\">Mastering SKAN 4: The essentials for iOS success<\/a><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/853\/812\/9f5\/8538129f5e7b404a720121cb9c3814db.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/853\/812\/9f5\/8538129f5e7b404a720121cb9c3814db.jpg\" data-blurred=\"true\"\/> <b>AI, \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, IoT<\/b><\/p>\n<p>  \u2022 <a href=\"https:\/\/habr.com\/ru\/articles\/774926\/\">\u0427\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c Raspberry PI \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438?<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/772186\/\">KC868-AM: \u043c\u0438\u043d\u0438 \u043c\u044b \u0438\u043b\u0438 ESP32 IO Expansion Board<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/learn\/opublikovan-kurs-generativnyy-ii-dlya-nachinayuschih-ot-microsoft.html\">\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043a\u0443\u0440\u0441 \u00ab\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0418\u0418 \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445\u00bb \u043e\u0442 Microsoft<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/u1\/ia\/gtu1iaz0-ajkbqpeq8n6dmql4zq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=hDKCxebp88A\">Machine Learning with Python and Scikit-Learn \u2013 Full Course<\/a><\/p>\n<p>  \u2190 <a href=\"https:\/\/habr.com\/ru\/companies\/productivity_inside\/articles\/774984\/\">\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442<\/a>. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u043b\u0438 \u0432\u044b \u043d\u0430\u0448\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443 \u2014 \u043f\u0440\u0438\u0448\u043b\u0438\u0442\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432 <a href=\"mailto:lbogolubov@gmail.com\">\u043f\u043e\u0447\u0442\u0443<\/a>.<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/776552\/\"> https:\/\/habr.com\/ru\/articles\/776552\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u0412 \u043d\u0430\u0448\u0435\u0439 \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 SwiftUI \u0438 \u0442\u044b\u0441\u044f\u0447\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c App Clip, Kotlin \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, OpenStreetMap \u0432 Flutter, 18 \u043b\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 Google, \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435 Platform Engineer, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u21161 \u0432 App Store, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u0443\u0436\u0435 7 \u043b\u0435\u0442 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435!<\/p>\n<p>  <b>\u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043d\u0430 \u043d\u0430\u0448 Telegram-\u043a\u0430\u043d\u0430\u043b <a href=\"https:\/\/t.me\/apptractor\">Mobile Insights<\/a>, \u0433\u0434\u0435 \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0410 \u0432 <a href=\"https:\/\/t.me\/code_insight\">IT Insights<\/a> \u2014 \u043c\u043d\u043e\u0433\u043e \u043e\u0431 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445.<\/b><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/i8\/zp\/gk\/i8zpgk7estxujykawitelerdyia.png\" data-src=\"https:\/\/habrastorage.org\/webt\/i8\/zp\/gk\/i8zpgk7estxujykawitelerdyia.png\"\/><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-361238","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/361238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=361238"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/361238\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=361238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=361238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=361238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}