{"id":410771,"date":"2024-06-29T21:34:50","date_gmt":"2024-06-29T21:34:50","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=410771"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=410771","title":{"rendered":"<span>\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u043d\u0435\u0434\u0435\u043b\u0438 (\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430) \u2013 #3<\/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-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u0441 \u0440\u0443\u0431\u0440\u0438\u043a\u043e\u0439 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437, \u0441\u043e\u0431\u0440\u0430\u043b \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u0449\u0438\u043a\u043e\u0432 \u0437\u0430 2 \u043d\u0435\u0434\u0435\u043b\u0438.<\/p>\n<p><strong>Android ?<\/strong><\/p>\n<p><a href=\"https:\/\/t.me\/mobile_native\/300\" rel=\"noopener noreferrer nofollow\">\u2022 \u0417\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c: \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 TiRecycler<\/a><br \/><a href=\"https:\/\/t.me\/mobile_native\/303\" rel=\"noopener noreferrer nofollow\">\u2022 Custom Canvas Animations in Jetpack Compose<\/a><br \/><a href=\"https:\/\/medium.com\/androiddevelopers\/now-in-android-61-special-google-i-o-2022-edition-18b953084650\" rel=\"noopener noreferrer nofollow\">\u2022 Special Google I\/O 2022 Edition<\/a><br \/><a href=\"https:\/\/developers.google.com\/ml-kit\/code-scanner\" rel=\"noopener noreferrer nofollow\">\u2022 Scan code without camera permissions<\/a><br \/><a href=\"https:\/\/medium.com\/codex\/kotlins-most-powerful-tool-1265732544ad\" rel=\"noopener noreferrer nofollow\">\u2022 Do you use Kotlin\u2019s most powerful tool?<\/a><br \/><a href=\"https:\/\/rustore.ru\/\" rel=\"noopener noreferrer nofollow\">\u2022 VK \u043f\u0440\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u041c\u0438\u043d\u0446\u0438\u0444\u0440\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044e \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/667776\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041c\u043d\u043e\u0433\u043e\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 BDSM: \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c Gradle \u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0431\u044b\u0432\u0430\u044e\u0442?<\/a><br \/><a href=\"https:\/\/medium.com\/kayvan-kaseb\/some-best-practices-for-android-app-architecture-8abb925ca78d\" rel=\"noopener noreferrer nofollow\">\u2022 Some Best Practices for Android App Architecture<\/a><br \/><a href=\"https:\/\/rajat-chauhan.medium.com\/15-best-android-libraries-for-2022-c73df0c68c02\" rel=\"noopener noreferrer nofollow\">\u2022 15 Best Android Libraries for 2022<\/a><br \/><a href=\"https:\/\/techhype.io\/articles\/strategies-for-managing-gradle-dependencies\/\" rel=\"noopener noreferrer nofollow\">\u2022 Strategies for managing Gradle dependencies<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/667026\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0417\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u0441\u0435\u0442\u044c \u0441 Clean Architecture \u0438 MVVM. Boilerplate \u0447. 2<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/667006\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c Android \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/665806\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 UI \u0432 Android. \u041d\u0435 \u0432\u0441\u0435 \u0442\u0430\u043a \u0441\u043b\u043e\u0436\u043d\u043e<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/globalsign\/blog\/666046\/\" rel=\"noopener noreferrer nofollow\">\u2022 Chrome \u043d\u0430 Android \u0441\u043b\u043e\u043c\u0430\u043b \u0447\u0443\u0436\u0438\u0435 MitM-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c<\/a><br \/><a href=\"https:\/\/blog.frankel.ch\/kotlin-context-receivers\/\" rel=\"noopener noreferrer nofollow\">\u2022 Toying with Kotlin&#8217;s context receivers<\/a><br \/><a href=\"https:\/\/medium.com\/okcredit\/how-we-reduced-our-anr-by-three-times-d9ae0b41ad94\" rel=\"noopener noreferrer nofollow\">\u2022 Deep dive into Android ANR | OkCredit<\/a><br \/><a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/05\/take-part-in-the-new-ui-preview-for-your-jetbrains-ide\/\" rel=\"noopener noreferrer nofollow\">\u2022 Take Part in the New UI Preview for Your JetBrains IDE<\/a><br \/><a href=\"https:\/\/proandroiddev.com\/cleaner-way-to-interact-between-composable-and-viewmodel-in-jetpack-compose-14c8b3a74bbe\" rel=\"noopener noreferrer nofollow\">\u2022 A cleaner way to interact between Composable and ViewModel in Jetpack Compose<\/a><br \/><a href=\"https:\/\/medium.com\/yazio-engineering\/speeding-up-kotlin-multiplatform-61ebf8dae560\" rel=\"noopener noreferrer nofollow\">\u2022 Speeding up Kotlin Multiplatform<\/a><br \/><a href=\"https:\/\/blog.devgenius.io\/jetpack-compose-clean-architecture-with-rorty-app-e7532da06719\" rel=\"noopener noreferrer nofollow\">\u2022 Jetpack Compose Clean Architecture with Rorty App<\/a><br \/><a href=\"https:\/\/medium.com\/@kumar__\/5-awesome-jetpack-compose-custom-progress-indicator-designs-ca76c5c0b87e\" rel=\"noopener noreferrer nofollow\">\u2022 5 Awesome Jetpack Compose Custom Progress Indicator Designs<\/a><br \/><a href=\"https:\/\/medium.com\/backyard-programmers\/detect-swipe-direction-on-jetpack-compose-to-trigger-bottomsheetscaffold-8d9116c8107c\" rel=\"noopener noreferrer nofollow\">\u2022 Detect Swipe Direction on Jetpack Compose to trigger BottomSheetScaffold<\/a><br \/><a href=\"https:\/\/medium.com\/androiddevelopers\/spot-your-ui-jank-using-cpu-profiler-in-android-studio-9a4c41a54dab\" rel=\"noopener noreferrer nofollow\">\u2022 Spot your UI jank using CPU profiler in Android Studio<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/664168\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041a\u0430\u043a \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/><a href=\"https:\/\/www.valueof.io\/blog\/motionlayout-in-compose-motion-scene-json5\" rel=\"noopener noreferrer nofollow\">\u2022 Using MotionLayout in Compose<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/663968\/\" rel=\"noopener noreferrer nofollow\">\u2022 SOLID \u2013 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u0430 \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u044b<\/a><br \/><a href=\"https:\/\/medium.com\/androiddevelopers\/measure-and-improve-performance-with-macrobenchmark-560abd0aa5bb\" rel=\"noopener noreferrer nofollow\">\u2022 Measure and improve performance with Macrobenchmark<\/a><br \/><a href=\"https:\/\/www.youtube.com\/watch?v=R2395u7SdcI\" rel=\"noopener noreferrer nofollow\">\u2022 The Suspend &amp; Inline Mystery | Kotlin Tips 2022 &#8212; YouTube<\/a><br \/><a href=\"https:\/\/maxkim.eu\/full-guide-to-testing-android-applications-in-2022\" rel=\"noopener noreferrer nofollow\">\u2022 Full Guide to Testing Android Applications in 2022<\/a><br \/><a href=\"https:\/\/medium.com\/@cybercoder.naj\/compose-navigation-in-3-minutes-5cff3c57c34e\" rel=\"noopener noreferrer nofollow\">\u2022 Compose Navigation in 3 Minutes<\/a><br \/><a href=\"https:\/\/proandroiddev.com\/jetpack-compose-under-the-hood-touch-events-c237ce1ff755\" rel=\"noopener noreferrer nofollow\">\u2022 Jetpack Compose under the hood: Touch Events<\/a><\/p>\n<p><strong>iOS ?<\/strong><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/668318\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0421 30 \u0438\u044e\u043d\u044f Apple \u043d\u0435 \u043f\u0443\u0441\u0442\u0438\u0442 \u0432 AppStore \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/sbermarket\/blog\/665512\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e: \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0421\u0431\u0435\u0440\u041c\u0430\u0440\u043a\u0435\u0442\u0435<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/666436\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0417\u043e\u043b\u043e\u0442\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u201cweak self\u201d<\/a><br \/><a href=\"https:\/\/www.donnywals.com\/debugging-network-traffic-with-proxyman\/\" rel=\"noopener noreferrer nofollow\">\u2022 Debugging Network Traffic With Proxyman<\/a><br \/><a href=\"https:\/\/towardsdev.com\/a-deep-dive-into-swift-reference-counting-5428eb755c1\" rel=\"noopener noreferrer nofollow\">\u2022 A deep dive into Swift reference counting<\/a><br \/><a href=\"https:\/\/www.avanderlee.com\/swift\/memory-leaks-unit-tests\/\" rel=\"noopener noreferrer nofollow\">\u2022 Memory leaks prevention using an autoreleasepool in unit tests\u00a0<\/a><br \/><a href=\"https:\/\/swdevnotes.com\/swift\/2022\/map-on-collections-in-swift\/\" rel=\"noopener noreferrer nofollow\">\u2022 Map on collections in Swift<\/a><br \/><a href=\"https:\/\/www.swiftjectivec.com\/calling-private-ios-apis-using-nsinvocation\/\" rel=\"noopener noreferrer nofollow\">\u2022 Calling Private APIs in iOS<\/a><br \/><a href=\"https:\/\/www.polpiella.dev\/scripting-in-swift-git-hooks\" rel=\"noopener noreferrer nofollow\">\u2022 Scripting in Swift: Git Hooks<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/665790\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u044f\u0436\u0435\u043b\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043a Xcode \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 Swift Package Manager<\/a><br \/><a href=\"https:\/\/www.avanderlee.com\/swiftui\/markdown-text\/\" rel=\"noopener noreferrer nofollow\">\u2022 Markdown rendering using Text in SwiftUI &#8212; SwiftLee<\/a><br \/><a href=\"https:\/\/www.raywenderlich.com\/32611432-vision-framework-tutorial-for-ios-contour-detection\" rel=\"noopener noreferrer nofollow\">\u2022 Vision Framework Tutorial for iOS: Contour Detection<\/a><br \/><a href=\"https:\/\/useyourloaf.com\/blog\/core-data-saving-changes\/\" rel=\"noopener noreferrer nofollow\">\u2022 Core Data Saving Changes<\/a><br \/><a href=\"http:\/\/swiftwithmajid.com\/2022\/05\/18\/mastering-timelineview-in-swiftui\/\" rel=\"noopener noreferrer nofollow\">\u2022 Mastering TimelineView in SwiftUI<\/a><br \/><a href=\"http:\/\/swiftwithmajid.com\/2022\/05\/25\/the-power-of-accessibilityChildren-view-modifier-in-swiftui\/\" rel=\"noopener noreferrer nofollow\">\u2022 The power of accessibilityChildren view modifier in SwiftUI<\/a><br \/><a href=\"https:\/\/www.donnywals.com\/closures-in-swift-explained\/\" rel=\"noopener noreferrer nofollow\">\u2022 Closures in Swift explained<\/a><br \/><a href=\"https:\/\/medium.com\/devtechie\/100-swiftui-recipes-by-devtechie-com-26a4bea15e95\" rel=\"noopener noreferrer nofollow\">\u2022 100 SwiftUI Recipes<\/a><br \/><a href=\"https:\/\/betterprogramming.pub\/design-a-beautiful-loading-screen-for-your-ios-app-3a8c144d107\" rel=\"noopener noreferrer nofollow\">\u2022 Design a Beautiful Loading Screen for Your iOS App<\/a><br \/><a href=\"https:\/\/betterprogramming.pub\/how-to-boost-your-ios-code-performance-by-reducing-collection-type-initialisation-564bffee94a3\" rel=\"noopener noreferrer nofollow\">\u2022 How To Boost Your iOS Code Performance by Reducing Collection Type Initialisation<\/a><br \/><a href=\"https:\/\/betterprogramming.pub\/16-useful-extensions-for-swiftui-88aae6ff8909\" rel=\"noopener noreferrer nofollow\">\u2022 16 Useful Extensions for SwiftUI<\/a><br \/><a href=\"https:\/\/github.com\/ochococo\/Design-Patterns-In-Swift\" rel=\"noopener noreferrer nofollow\">\u2022 Design Patterns implemented in Swift<\/a><\/p>\n<p><strong>\u041a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \/ \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 ?<\/strong><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/company\/swordfish_security\/blog\/667422\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041d\u0435\u043b\u0435\u0433\u043a\u0438\u0439 \u043f\u0443\u0442\u044c \u043a \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/surfstudio\/blog\/666448\/\" rel=\"noopener noreferrer nofollow\">\u2022 Flutter 3: \u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e (\u043f\u0435\u0440\u0435\u0432\u043e\u0434)<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/surfstudio\/blog\/667990\/\" rel=\"noopener noreferrer nofollow\">\u2022 Dart 2.17: \u041f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f<\/a><br \/><a href=\"https:\/\/medium.com\/ymedialabs-innovation\/kmp-ios-developers-and-production-c754fa958d38\" rel=\"noopener noreferrer nofollow\">\u2022 KMP, iOS Developers and Production<\/a><br \/><a href=\"https:\/\/blog.protein.tech\/kotlin-lazy-property-thread-safety-modes-explained-f9384ad4024f\" rel=\"noopener noreferrer nofollow\">\u2022 Kotlin \u2014 Lazy Thread-safety modes explained<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/friflex\/blog\/665686\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041a\u0430\u043a \u043d\u0430 Flutter-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 Google-\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 Huawei-\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/friflex\/blog\/666578\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Flutter-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439: \u0433\u0430\u0439\u0434 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 Flutter<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/667424\/\" rel=\"noopener noreferrer nofollow\">\u2022 11 \u0432\u0435\u0449\u0435\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0441\u0442\u0430\u0440\u0442\u043e\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430 Flutter<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/666052\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043e\u043a, \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f Flutter<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/666164\/\" rel=\"noopener noreferrer nofollow\">\u2022 Kotlin Multiplatform Mobile \u2014 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/667308\/\" rel=\"noopener noreferrer nofollow\">\u2022 Go \u0432 API \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0441 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\u043c\u0438<\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/665760\/\" rel=\"noopener noreferrer nofollow\">\u2190 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442<\/a><\/p>\n<p>\u041d\u0443 \u0438 \u043f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 <a href=\"https:\/\/t.me\/+xQYmlzaS8kExZjEy\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c<\/a> \u0432 \u043c\u043e\u0439 \u0442\u0433-\u043a\u0430\u043d\u0430\u043b <a href=\"https:\/\/t.me\/+xQYmlzaS8kExZjEy\" rel=\"noopener noreferrer nofollow\">Mobile Native<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/p>\n<\/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\/668482\/\"> https:\/\/habr.com\/ru\/articles\/668482\/<\/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-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u0441 \u0440\u0443\u0431\u0440\u0438\u043a\u043e\u0439 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437, \u0441\u043e\u0431\u0440\u0430\u043b \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u0449\u0438\u043a\u043e\u0432 \u0437\u0430 2 \u043d\u0435\u0434\u0435\u043b\u0438.<\/p>\n<p><strong>Android ?<\/strong><\/p>\n<p><a href=\"https:\/\/t.me\/mobile_native\/300\" rel=\"noopener noreferrer nofollow\">\u2022 \u0417\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c: \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 TiRecycler<\/a><br \/><a href=\"https:\/\/t.me\/mobile_native\/303\" rel=\"noopener noreferrer nofollow\">\u2022 Custom Canvas Animations in Jetpack Compose<\/a><br \/><a href=\"https:\/\/medium.com\/androiddevelopers\/now-in-android-61-special-google-i-o-2022-edition-18b953084650\" rel=\"noopener noreferrer nofollow\">\u2022 Special Google I\/O 2022 Edition<\/a><br \/><a href=\"https:\/\/developers.google.com\/ml-kit\/code-scanner\" rel=\"noopener noreferrer nofollow\">\u2022 Scan code without camera permissions<\/a><br \/><a href=\"https:\/\/medium.com\/codex\/kotlins-most-powerful-tool-1265732544ad\" rel=\"noopener noreferrer nofollow\">\u2022 Do you use Kotlin\u2019s most powerful tool?<\/a><br \/><a href=\"https:\/\/rustore.ru\/\" rel=\"noopener noreferrer nofollow\">\u2022 VK \u043f\u0440\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u041c\u0438\u043d\u0446\u0438\u0444\u0440\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044e \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/667776\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041c\u043d\u043e\u0433\u043e\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 BDSM: \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c Gradle \u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0431\u044b\u0432\u0430\u044e\u0442?<\/a><br \/><a href=\"https:\/\/medium.com\/kayvan-kaseb\/some-best-practices-for-android-app-architecture-8abb925ca78d\" rel=\"noopener noreferrer nofollow\">\u2022 Some Best Practices for Android App Architecture<\/a><br \/><a href=\"https:\/\/rajat-chauhan.medium.com\/15-best-android-libraries-for-2022-c73df0c68c02\" rel=\"noopener noreferrer nofollow\">\u2022 15 Best Android Libraries for 2022<\/a><br \/><a href=\"https:\/\/techhype.io\/articles\/strategies-for-managing-gradle-dependencies\/\" rel=\"noopener noreferrer nofollow\">\u2022 Strategies for managing Gradle dependencies<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/667026\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0417\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u0441\u0435\u0442\u044c \u0441 Clean Architecture \u0438 MVVM. Boilerplate \u0447. 2<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/667006\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c Android \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/665806\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 UI \u0432 Android. \u041d\u0435 \u0432\u0441\u0435 \u0442\u0430\u043a \u0441\u043b\u043e\u0436\u043d\u043e<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/globalsign\/blog\/666046\/\" rel=\"noopener noreferrer nofollow\">\u2022 Chrome \u043d\u0430 Android \u0441\u043b\u043e\u043c\u0430\u043b \u0447\u0443\u0436\u0438\u0435 MitM-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c<\/a><br \/><a href=\"https:\/\/blog.frankel.ch\/kotlin-context-receivers\/\" rel=\"noopener noreferrer nofollow\">\u2022 Toying with Kotlin&#8217;s context receivers<\/a><br \/><a href=\"https:\/\/medium.com\/okcredit\/how-we-reduced-our-anr-by-three-times-d9ae0b41ad94\" rel=\"noopener noreferrer nofollow\">\u2022 Deep dive into Android ANR | OkCredit<\/a><br \/><a href=\"https:\/\/blog.jetbrains.com\/idea\/2022\/05\/take-part-in-the-new-ui-preview-for-your-jetbrains-ide\/\" rel=\"noopener noreferrer nofollow\">\u2022 Take Part in the New UI Preview for Your JetBrains IDE<\/a><br \/><a href=\"https:\/\/proandroiddev.com\/cleaner-way-to-interact-between-composable-and-viewmodel-in-jetpack-compose-14c8b3a74bbe\" rel=\"noopener noreferrer nofollow\">\u2022 A cleaner way to interact between Composable and ViewModel in Jetpack Compose<\/a><br \/><a href=\"https:\/\/medium.com\/yazio-engineering\/speeding-up-kotlin-multiplatform-61ebf8dae560\" rel=\"noopener noreferrer nofollow\">\u2022 Speeding up Kotlin Multiplatform<\/a><br \/><a href=\"https:\/\/blog.devgenius.io\/jetpack-compose-clean-architecture-with-rorty-app-e7532da06719\" rel=\"noopener noreferrer nofollow\">\u2022 Jetpack Compose Clean Architecture with Rorty App<\/a><br \/><a href=\"https:\/\/medium.com\/@kumar__\/5-awesome-jetpack-compose-custom-progress-indicator-designs-ca76c5c0b87e\" rel=\"noopener noreferrer nofollow\">\u2022 5 Awesome Jetpack Compose Custom Progress Indicator Designs<\/a><br \/><a href=\"https:\/\/medium.com\/backyard-programmers\/detect-swipe-direction-on-jetpack-compose-to-trigger-bottomsheetscaffold-8d9116c8107c\" rel=\"noopener noreferrer nofollow\">\u2022 Detect Swipe Direction on Jetpack Compose to trigger BottomSheetScaffold<\/a><br \/><a href=\"https:\/\/medium.com\/androiddevelopers\/spot-your-ui-jank-using-cpu-profiler-in-android-studio-9a4c41a54dab\" rel=\"noopener noreferrer nofollow\">\u2022 Spot your UI jank using CPU profiler in Android Studio<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/664168\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041a\u0430\u043a \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/><a href=\"https:\/\/www.valueof.io\/blog\/motionlayout-in-compose-motion-scene-json5\" rel=\"noopener noreferrer nofollow\">\u2022 Using MotionLayout in Compose<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/663968\/\" rel=\"noopener noreferrer nofollow\">\u2022 SOLID \u2013 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u0430 \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u044b<\/a><br \/><a href=\"https:\/\/medium.com\/androiddevelopers\/measure-and-improve-performance-with-macrobenchmark-560abd0aa5bb\" rel=\"noopener noreferrer nofollow\">\u2022 Measure and improve performance with Macrobenchmark<\/a><br \/><a href=\"https:\/\/www.youtube.com\/watch?v=R2395u7SdcI\" rel=\"noopener noreferrer nofollow\">\u2022 The Suspend &amp; Inline Mystery | Kotlin Tips 2022 &#8212; YouTube<\/a><br \/><a href=\"https:\/\/maxkim.eu\/full-guide-to-testing-android-applications-in-2022\" rel=\"noopener noreferrer nofollow\">\u2022 Full Guide to Testing Android Applications in 2022<\/a><br \/><a href=\"https:\/\/medium.com\/@cybercoder.naj\/compose-navigation-in-3-minutes-5cff3c57c34e\" rel=\"noopener noreferrer nofollow\">\u2022 Compose Navigation in 3 Minutes<\/a><br \/><a href=\"https:\/\/proandroiddev.com\/jetpack-compose-under-the-hood-touch-events-c237ce1ff755\" rel=\"noopener noreferrer nofollow\">\u2022 Jetpack Compose under the hood: Touch Events<\/a><\/p>\n<p><strong>iOS ?<\/strong><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/668318\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0421 30 \u0438\u044e\u043d\u044f Apple \u043d\u0435 \u043f\u0443\u0441\u0442\u0438\u0442 \u0432 AppStore \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/sbermarket\/blog\/665512\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e: \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0421\u0431\u0435\u0440\u041c\u0430\u0440\u043a\u0435\u0442\u0435<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/666436\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0417\u043e\u043b\u043e\u0442\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u201cweak self\u201d<\/a><br \/><a href=\"https:\/\/www.donnywals.com\/debugging-network-traffic-with-proxyman\/\" rel=\"noopener noreferrer nofollow\">\u2022 Debugging Network Traffic With Proxyman<\/a><br \/><a href=\"https:\/\/towardsdev.com\/a-deep-dive-into-swift-reference-counting-5428eb755c1\" rel=\"noopener noreferrer nofollow\">\u2022 A deep dive into Swift reference counting<\/a><br \/><a href=\"https:\/\/www.avanderlee.com\/swift\/memory-leaks-unit-tests\/\" rel=\"noopener noreferrer nofollow\">\u2022 Memory leaks prevention using an autoreleasepool in unit tests\u00a0<\/a><br \/><a href=\"https:\/\/swdevnotes.com\/swift\/2022\/map-on-collections-in-swift\/\" rel=\"noopener noreferrer nofollow\">\u2022 Map on collections in Swift<\/a><br \/><a href=\"https:\/\/www.swiftjectivec.com\/calling-private-ios-apis-using-nsinvocation\/\" rel=\"noopener noreferrer nofollow\">\u2022 Calling Private APIs in iOS<\/a><br \/><a href=\"https:\/\/www.polpiella.dev\/scripting-in-swift-git-hooks\" rel=\"noopener noreferrer nofollow\">\u2022 Scripting in Swift: Git Hooks<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/665790\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u044f\u0436\u0435\u043b\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043a Xcode \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 Swift Package Manager<\/a><br \/><a href=\"https:\/\/www.avanderlee.com\/swiftui\/markdown-text\/\" rel=\"noopener noreferrer nofollow\">\u2022 Markdown rendering using Text in SwiftUI &#8212; SwiftLee<\/a><br \/><a href=\"https:\/\/www.raywenderlich.com\/32611432-vision-framework-tutorial-for-ios-contour-detection\" rel=\"noopener noreferrer nofollow\">\u2022 Vision Framework Tutorial for iOS: Contour Detection<\/a><br \/><a href=\"https:\/\/useyourloaf.com\/blog\/core-data-saving-changes\/\" rel=\"noopener noreferrer nofollow\">\u2022 Core Data Saving Changes<\/a><br \/><a href=\"http:\/\/swiftwithmajid.com\/2022\/05\/18\/mastering-timelineview-in-swiftui\/\" rel=\"noopener noreferrer nofollow\">\u2022 Mastering TimelineView in SwiftUI<\/a><br \/><a href=\"http:\/\/swiftwithmajid.com\/2022\/05\/25\/the-power-of-accessibilityChildren-view-modifier-in-swiftui\/\" rel=\"noopener noreferrer nofollow\">\u2022 The power of accessibilityChildren view modifier in SwiftUI<\/a><br \/><a href=\"https:\/\/www.donnywals.com\/closures-in-swift-explained\/\" rel=\"noopener noreferrer nofollow\">\u2022 Closures in Swift explained<\/a><br \/><a href=\"https:\/\/medium.com\/devtechie\/100-swiftui-recipes-by-devtechie-com-26a4bea15e95\" rel=\"noopener noreferrer nofollow\">\u2022 100 SwiftUI Recipes<\/a><br \/><a href=\"https:\/\/betterprogramming.pub\/design-a-beautiful-loading-screen-for-your-ios-app-3a8c144d107\" rel=\"noopener noreferrer nofollow\">\u2022 Design a Beautiful Loading Screen for Your iOS App<\/a><br \/><a href=\"https:\/\/betterprogramming.pub\/how-to-boost-your-ios-code-performance-by-reducing-collection-type-initialisation-564bffee94a3\" rel=\"noopener noreferrer nofollow\">\u2022 How To Boost Your iOS Code Performance by Reducing Collection Type Initialisation<\/a><br \/><a href=\"https:\/\/betterprogramming.pub\/16-useful-extensions-for-swiftui-88aae6ff8909\" rel=\"noopener noreferrer nofollow\">\u2022 16 Useful Extensions for SwiftUI<\/a><br \/><a href=\"https:\/\/github.com\/ochococo\/Design-Patterns-In-Swift\" rel=\"noopener noreferrer nofollow\">\u2022 Design Patterns implemented in Swift<\/a><\/p>\n<p><strong>\u041a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \/ \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 ?<\/strong><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/company\/swordfish_security\/blog\/667422\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041d\u0435\u043b\u0435\u0433\u043a\u0438\u0439 \u043f\u0443\u0442\u044c \u043a \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/surfstudio\/blog\/666448\/\" rel=\"noopener noreferrer nofollow\">\u2022 Flutter 3: \u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e (\u043f\u0435\u0440\u0435\u0432\u043e\u0434)<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/surfstudio\/blog\/667990\/\" rel=\"noopener noreferrer nofollow\">\u2022 Dart 2.17: \u041f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f<\/a><br \/><a href=\"https:\/\/medium.com\/ymedialabs-innovation\/kmp-ios-developers-and-production-c754fa958d38\" rel=\"noopener noreferrer nofollow\">\u2022 KMP, iOS Developers and Production<\/a><br \/><a href=\"https:\/\/blog.protein.tech\/kotlin-lazy-property-thread-safety-modes-explained-f9384ad4024f\" rel=\"noopener noreferrer nofollow\">\u2022 Kotlin \u2014 Lazy Thread-safety modes explained<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/friflex\/blog\/665686\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041a\u0430\u043a \u043d\u0430 Flutter-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 Google-\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 Huawei-\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/friflex\/blog\/666578\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Flutter-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439: \u0433\u0430\u0439\u0434 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 Flutter<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/667424\/\" rel=\"noopener noreferrer nofollow\">\u2022 11 \u0432\u0435\u0449\u0435\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0441\u0442\u0430\u0440\u0442\u043e\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430 Flutter<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/post\/666052\/\" rel=\"noopener noreferrer nofollow\">\u2022 \u041d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043e\u043a, \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f Flutter<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/666164\/\" rel=\"noopener noreferrer nofollow\">\u2022 Kotlin Multiplatform Mobile \u2014 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/a><br \/><a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/667308\/\" rel=\"noopener noreferrer nofollow\">\u2022 Go \u0432 API \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0441 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\u043c\u0438<\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/665760\/\" rel=\"noopener noreferrer nofollow\">\u2190 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442<\/a><\/p>\n<p>\u041d\u0443 \u0438 \u043f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 <a href=\"https:\/\/t.me\/+xQYmlzaS8kExZjEy\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c<\/a> \u0432 \u043c\u043e\u0439 \u0442\u0433-\u043a\u0430\u043d\u0430\u043b <a href=\"https:\/\/t.me\/+xQYmlzaS8kExZjEy\" rel=\"noopener noreferrer nofollow\">Mobile Native<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/p>\n<\/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\/668482\/\"> https:\/\/habr.com\/ru\/articles\/668482\/<\/a><br \/><\/br><\/br><\/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-410771","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/410771","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=410771"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/410771\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=410771"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=410771"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=410771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}