{"id":337911,"date":"2022-09-05T03:00:06","date_gmt":"2022-09-05T03:00:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=337911"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=337911","title":{"rendered":"<span>\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 #455 (29 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 \u2014 4 \u0441\u0435\u043d\u0442\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\u043e\u0432\u043e\u043c \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0435 \u043d\u043e\u0432\u044b\u0435 \u0432\u0438\u0434\u0436\u0435\u0442\u044b \u0438 \u043f\u0430\u0442\u0447\u0438\u043d\u0433 \u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0430, Cross device SDK \u0438 \u043d\u043e\u0432\u044b\u0439 Flutter, Code Review \u0434\u043b\u044f \u0434\u0436\u0443\u043d\u0438\u043e\u0440\u043e\u0432, \u043f\u043e\u0431\u0435\u0434\u0430 \u041a\u043e\u0441\u0442\u0430 \u042d\u043b\u0435\u0444\u0442\u0435\u0440\u0438\u0443, \u043d\u043e\u0432\u044b\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0438 \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430\u0445 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435!<br \/>  \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c! <\/p>\n<p>  <i>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u043a \u043d\u0430\u0448\u0435\u043c\u0443 Telegram-\u043a\u0430\u043d\u0430\u043b\u0443 <b><a href=\"https:\/\/t.me\/apptractor\">Mobile Insights<\/a><\/b>, \u0433\u0434\u0435 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.<\/i><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/en\/nr\/0v\/ennr0vfqsd0ydiqzzphsvzgsmo8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/en\/nr\/0v\/ennr0vfqsd0ydiqzzphsvzgsmo8.jpeg\" data-blurred=\"true\"\/><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\/sozdaem-vidzhety-dlya-ekrana-blokirovki-na-swiftui.html\">\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u0438\u0434\u0436\u0435\u0442\u044b \u0434\u043b\u044f \u044d\u043a\u0440\u0430\u043d\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430 SwiftUI<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/layout-protocol-novye-vozmozhnosti-swiftui.html\">Layout Protocol: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 SwiftUI<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/analytics\/ispolzovanie-apple-appkit-mac-catalyst-i-swiftui-v-macos.html\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Apple AppKit, Mac Catalyst \u0438 SwiftUI \u0432 macOS<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/686234\/\">User-Defined \u0432 iOS \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/zhizn-so-swiftui.html\">\u0416\u0438\u0437\u043d\u044c \u0441\u043e SwiftUI<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/v-xcode-cloud-zarabotala-podpiska.html\">\u0412 Xcode Cloud \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/kosta-elefteriu-uladil-sudebnoe-delo-s-apple.html\">\u041a\u043e\u0441\u0442\u0430 \u042d\u043b\u0435\u0444\u0442\u0435\u0440\u0438\u0443 \u0443\u043b\u0430\u0434\u0438\u043b \u0441\u0443\u0434\u0435\u0431\u043d\u043e\u0435 \u0434\u0435\u043b\u043e \u0441 Apple<\/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:\/\/stevenpcurtis.medium.com\/custom-uiviewcontroller-animations-easy-swift-ios-guide-dade01c9b848\">Custom UIViewController Animations \u2014 EASY iOS Guide<\/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:\/\/uxdesign.cc\/designing-for-scalable-dynamic-type-in-ios-5d3e2ae554eb\">Designing for scalable Dynamic Type in iOS for accessibility<\/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\/@liyicky\/how-to-make-an-mvvm-swift-ui-app-742d78f6d03f\">How to make an MVVM Swift UI App<\/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\/@guylis\/discover-whether-a-view-is-visible-on-the-screen-the-ios-challenge-763056ad66ac\">Discover whether a view is visible on the screen \u2014 the iOS challenge<\/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:\/\/mikhailov-al.medium.com\/area-under-notch-a6c243a821bb\">Area under Notch<\/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\/realm\/build-offline-first-mobile-apps-by-caching-api-results-in-realm-e62063e1ce54\">Build Offline-First Mobile Apps by Caching API Results in Realm<\/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\/@agung1991putra\/fixing-dependency-problem-in-a-complex-modularized-ios-app-a664569d4726\">Fixing Dependency Problem in a Complex Modularized iOS App<\/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:\/\/susuthapa19961227.medium.com\/apple-silicon-and-the-library-incompatibility-problem-for-ios-development-8c2d875283f2\">Apple Silicon and the library incompatibility problem for iOS 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:\/\/ohmyswift.com\/blog\/2022\/08\/28\/how-to-add-a-loader-to-an-uibutton\/\">How to add a loader to an UIButton<\/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.raywenderlich.com\/34699757-swiftui-view-modifiers-tutorial-for-ios\">SwiftUI View Modifiers Tutorial for 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:\/\/paigeshin1991.medium.com\/swift-combine-basic-2-minutes-tutorial-how-to-become-the-ios-developer-that-market-needs-76fdca728198\">Swift Combine Basic 2 Minutes Tutorial<\/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\/new-mapkit-configurations-with-swiftui\/\">New MapKit Configurations with 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\/2022\/08\/30\/lock-screen-widgets-in-swiftui\/\">Lock screen widgets 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:\/\/forceunwrap.com\/probably-the-best-guide-to-swift-timer\/\">Probably the best guide to Swift Timer<\/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:\/\/rensbr.eu\/blog\/swiftui-diffing\/\">SwiftUI\u2019s diffing algorithm<\/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:\/\/paigeshin1991.medium.com\/swiftui-how-to-create-blureffect-introducing-2-ways-a43eeee49559\">SwiftUI, How to create BlurEffect. Introducing 2 ways.<\/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\/swiggy-bytes\/handling-multiple-caches-in-app-cf1e98b74e3b\">Handling multiple caches in App<\/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\/@stevenpcurtis\/animate-a-uibarbuttonitem-using-swift-882ae3284753\">Animate a UIBarButtonItem using 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:\/\/medium.com\/appcoda-tutorials\/how-to-use-navigationsplitview-in-swiftui-for-ios-16-2645e90b71d0\">How to Use NavigationSplitView in SwiftUI<\/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\/swiftnewkit.html\">SwiftNEWKit: \u00ab\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e\u00bb \u043d\u0430 SwiftUI<\/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\/company\/sberbank\/blog\/685142\/\">\u041f\u0430\u0442\u0447\u0438\u043c \u0431\u0430\u0439\u0442-\u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043b\u043e\u0433\u043e\u0432 \u0432 Android. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/cross-device-sdk.html\">Google \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Cross device SDK<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/685440\/\">Note&amp;Noty \u2014 \u043f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 Android<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/685874\/\">\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0438\u043a\u0440\u043e\u0444\u0440\u0438\u0437\u044b<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/youla\/blog\/685888\/\">\u041e\u043f\u044b\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 MVI \u0432 Android \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/vtb\/blog\/685608\/\">\u041a\u0430\u043a \u043c\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0412\u0422\u0411 \u041e\u043d\u043b\u0430\u0439\u043d \u0441 \u043c\u043d\u043e\u0433\u043e\u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043d\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0435\u0439 \u0432 2 \u0440\u0430\u0437\u0430<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/moex\/blog\/684518\/\">\u041f\u0440\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0440\u0435\u043b\u0438\u0437\u044b \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/surfstudio\/blog\/685980\/\">\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0441 Quartz \u0438 Spring Boot<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/google-razreshil-storonnie-platezhi-v-play-v-rossii.html\">Google \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043b \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0438 \u0432 Play \u0432 \u0420\u043e\u0441\u0441\u0438\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/deploy\/app-stores\/v-rustore-zarabotali-vstroennye-pokupki-i-podpiski.html\">\u0412 RuStore \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\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:\/\/medium.com\/androiddevelopers\/mad-about-media-f536f7d601c\">MAD about Media<\/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\/dependencies-injection-jetpack-compose-using-hilt-bd4f76ac6c22\">Exploring Jetpack Composes\u2019 Dependencies Injection Using Hilt<\/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\/@valikblazhko\/few-steps-to-new-level-security-play-integrity-api-for-android-apps-8c699624ed5d\">Few steps to new level security \u2014 Play Integrity API for Android apps<\/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\/acmvit\/jetpack-compose-build-better-apps-faster-23869369f476\">Jetpack Compose: Build Better Apps Faster<\/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\/microsoft-mobile-engineering\/clean-android-webview-caching-9b871b3579f3\">Clean Android WebView 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:\/\/oguzhanaslann.medium.com\/what-is-kotlin-sam-c6cfee64b00d\">What is Kotlin SAM ?<\/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\/@mustafayanik\/how-to-implement-in-app-update-structure-on-android-a43c8c9169ec\">How to implement In-App-Update Structure on 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:\/\/betterprogramming.pub\/how-to-use-kotlins-built-in-functions-to-measure-code-execution-time-1759b2ac90aa\">How To Use Kotlin\u2019s Built-In Functions To Measure Code Execution Time<\/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:\/\/p-mishra2905.medium.com\/viewstub-in-android-a207fbe607a2\">ViewStub 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:\/\/www.infoq.com\/articles\/james-ward-java-jvm-languages\/\">Java Champion James Ward on the State of Java and JVM Languages<\/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\/using-version-catalog-on-android-projects-82d88d2f79e5\">Using Version Catalog on Android 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\/@zephyr.ventum\/how-to-ace-any-android-interview-like-a-boss-in-202x-4ab847cdeb31\">How to ace any Android Interview like a BOSS in 202X?<\/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\/memobank\/how-we-implemented-a-state-machine-framework-d9bd12200f57\">How we implemented a state machine framework<\/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\/androiddevelopers\/monitoring-app-performance-ebf9af4ebe36\">Monitoring App Performance<\/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\/switching-from-springboot-to-ktor-a-first-impression-1c4776970f39\">First Impressions When Switching From Spring Boot to Ktor<\/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\/bobble-engineering\/integrate-autofill-with-keyboards-or-input-method-editors-c715ee4b7e1\">Integrate autofill with keyboards (or Input Method Editors)<\/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:\/\/is.gd\/XdUssn\">Begin your android automation testing using Appium, JUnit5, and Kotlin in 5 minutes on Windows or Linux!<\/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:\/\/android-developers.googleblog.com\/2022\/08\/wear-os-tiles-material-library-build-tiles-fast.html\">Wear OS Tiles Material Library: Build Tiles, Fast.<\/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\/kotlin-algorithms-and-design-patterns-algoritmy-struktury-i-patterny.html\">Kotlin Algorithms and Design Patterns: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b<\/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\/android-image-cropper.html\">Android Image Cropper: \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \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\/kalendar.html\">Kalendar: \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c \u0434\u043b\u044f Compose<\/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\/company\/otus\/blog\/685506\/\">\u041f\u0435\u0440\u0432\u044b\u0435 \u0448\u0430\u0433\u0438 \u0432 Unity \u0441 OpenXR<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/686180\/\">Flutter Flame: \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u043c \u0432 32 \u0440\u0430\u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f\u043c\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/685524\/\">Skia \u2014 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f 2D \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0434\u043b\u044f React Native<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/vyshel-flutter-3-3.html\">\u0412\u044b\u0448\u0435\u043b Flutter 3.3<\/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\/simform-engineering\/basics-of-game-development-using-flame-bee1b8cf7320\">Basics of Game Development using Flame<\/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\/react-native-rocket\/building-a-hand-drawing-app-with-react-native-skia-and-gesture-handler-9797f5f7b9b4\">Building a Hand Drawing App with React Native Skia and Gesture Handler<\/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.flutterdevs.com\/adapter-design-patterns-for-dart-flutter-3e449e5f67b3\">Adapter Design Patterns For Dart &amp; Flutter<\/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:\/\/codingwithtashi.medium.com\/flutter-best-practices-cc2cd1ee5441\">Flutter best practices<\/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:\/\/tomicriedel.medium.com\/e3761417f085\">Flutter FVM \u2014 Boost your Flutter productivity by 100%<\/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\/announcing-flutter-3-3-at-flutter-vikings-6f213e068793\">Announcing Flutter 3.3 at Flutter Vikings<\/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:\/\/web.dev\/learn\/pwa\/\">Learn PWA<\/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\/icerock\/how-to-use-kotlin-multiplatform-viewmodel-in-swiftui-and-jetpack-compose-8158e98c091d\">How to use Kotlin Multiplatform ViewModel in SwiftUI and Jetpack Compose<\/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\/wonderous.html\">Wonderous: \u043b\u0443\u0447\u0448\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043d\u0430 Flutter<\/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:\/\/apptractor.ru\/info\/articles\/scrum-podvel-razrabotchikov.html\">Scrum \u043f\u043e\u0434\u0432\u0435\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/685822\/\">DevOps-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u043a \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0443\u043f\u0435\u043d\u044c\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/kak-junior-razrabotchiku-provodit-code-review.html\">\u041a\u0430\u043a Junior-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c Code Review<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/nspk\/blog\/685198\/\">\u041b\u0435\u0433\u043a\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0441 Kotlin DSL<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/mobilnyy-ci-kak-vybrat-i-pereehat.html\">\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 CI: \u043a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u0442\u044c<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/686058\/\">Do it yourself: \u043a\u0430\u043a \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 QA<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/sbermegamarket\/blog\/685240\/\">\u0411\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043b\u043e\u0433\u043e\u0442\u0438\u043f: \u043a\u0430\u043a \u0434\u0438\u0437\u0430\u0439\u043d\u0438\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0421\u0431\u0435\u0440\u041c\u0435\u0433\u0430\u041c\u0430\u0440\u043a\u0435\u0442<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/develop\/design\/app-design-81.html\">\u0414\u0438\u0437\u0430\u0439\u043d \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439: \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043b\u044f \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u0438\u044f #81<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/podlodka-283.html\">Podlodka #283: \u0434\u0438\u0441\u043a\u0438 \u0438 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0438, \u0447\u0430\u0441\u0442\u044c 2<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/solid.html\">$63 \u043c\u043b\u043d \u0432 \u0421\u0435\u0440\u0438\u0438 B: Solid \u2014 FinTech \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430<\/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:\/\/levelup.gitconnected.com\/applying-what-ive-learnt-in-atomic-habits-into-coding-cb268137ea35\">Applying what I\u2019ve learned in\u00a0Atomic Habits\u00a0to coding<\/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:\/\/levelup.gitconnected.com\/what-helped-me-to-become-a-lead-software-engineer-at-21-697060255c45\">What Helped Me to Become a Lead Software Engineer at 21<\/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:\/\/uxdesign.cc\/product-design-interview-questions-cdeb2bf249ec\">Product Design interview questions<\/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:\/\/kenneth.io\/post\/developer-experience-infrastructure-dxi\">Developer Experience Infrastructure (DXI)<\/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\/5-simple-tips-stop-getting-interrupted-write-code-d1b6cb321807\">5 Simple Tips To Stop Getting Interrupted While You Write 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:\/\/levelup.gitconnected.com\/why-you-might-never-become-a-senior-developer-c00f543d4142\">Why you might never become a senior developer<\/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.mobile.dev\/introducing-maestro-painless-mobile-ui-automation-bee4992d13c1\">Maestro \u2014 Painless Mobile UI Automation<\/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:\/\/bootcamp.uxdesign.cc\/8-best-ux-ui-design-tools-in-2022-303da0ee4ad5\">8 Best UX\/UI Design Tools in 2022<\/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\/divkit.html\">DivKit: \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 Server-Driven UI<\/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:\/\/apptractor.ru\/info\/news\/meta-issleduet-platnye-funktsii-dlya-polzovateley.html\">Meta \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/snap-planiruet-uvolit-20-sotrudnikov.html\">Snap \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0443\u0432\u043e\u043b\u0438\u0442\u044c 20% \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/learn\/razrabotka-kachestvennyh-prilozheniy-dlya-detey-uchebnik-google-play-academy.html\">\u00ab\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439\u00bb \u2014 \u0443\u0447\u0435\u0431\u043d\u0438\u043a Google Play Academy<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/measure\/user-analytics\/marketing-podpisnyh-prilozheniy-2022-otchet-appsflyer-i-liftoff.html\">\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433 \u043f\u043e\u0434\u043f\u0438\u0441\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 2022 \u2014 \u043e\u0442\u0447\u0435\u0442 AppsFlyer \u0438 Liftoff<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/analytics\/bereal-ugrozhaet-zagruzkam-instagram.html\">BeReal \u0443\u0433\u0440\u043e\u0436\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c Instagram<\/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\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/685688\/\">\u041e\u0442 \u0432\u0437\u043b\u043e\u043c\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0432 \u0441\u0442\u0430\u0440\u043e\u043c \u00ab\u0436\u0435\u043b\u0435\u0437\u0435\u00bb \u0434\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/683832\/\">NORVI Agent 2: \u0430\u0433\u0435\u043d\u0442 \u043f\u043e\u0434 \u043f\u0440\u0438\u043a\u0440\u044b\u0442\u0438\u0435\u043c (\u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0443\u0434\u0430 \u0443\u0433\u043e\u0434\u043d\u043e)<\/a><\/p>\n<p>  \u2190 <a href=\"https:\/\/habr.com\/ru\/company\/productivity_inside\/blog\/685112\/\">\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<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/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\/company\/productivity_inside\/blog\/686342\/\"> https:\/\/habr.com\/ru\/company\/productivity_inside\/blog\/686342\/<\/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\u043e\u0432\u043e\u043c \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0435 \u043d\u043e\u0432\u044b\u0435 \u0432\u0438\u0434\u0436\u0435\u0442\u044b \u0438 \u043f\u0430\u0442\u0447\u0438\u043d\u0433 \u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0430, Cross device SDK \u0438 \u043d\u043e\u0432\u044b\u0439 Flutter, Code Review \u0434\u043b\u044f \u0434\u0436\u0443\u043d\u0438\u043e\u0440\u043e\u0432, \u043f\u043e\u0431\u0435\u0434\u0430 \u041a\u043e\u0441\u0442\u0430 \u042d\u043b\u0435\u0444\u0442\u0435\u0440\u0438\u0443, \u043d\u043e\u0432\u044b\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0438 \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430\u0445 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435!<br \/>  \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c! <\/p>\n<p>  <i>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u043a \u043d\u0430\u0448\u0435\u043c\u0443 Telegram-\u043a\u0430\u043d\u0430\u043b\u0443 <b><a href=\"https:\/\/t.me\/apptractor\">Mobile Insights<\/a><\/b>, \u0433\u0434\u0435 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.<\/i><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/en\/nr\/0v\/ennr0vfqsd0ydiqzzphsvzgsmo8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/en\/nr\/0v\/ennr0vfqsd0ydiqzzphsvzgsmo8.jpeg\" data-blurred=\"true\"\/><\/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-337911","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/337911","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=337911"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/337911\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=337911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=337911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=337911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}