{"id":350339,"date":"2023-07-17T03:00:23","date_gmt":"2023-07-17T03:00:23","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=350339"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=350339","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 #497 (10 \u2014 16 \u0438\u044e\u043b\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 \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0438 \u043f\u043e\u0447\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 DI, \u043d\u043e\u0432\u044b\u0439 \u0448\u0440\u0438\u0444\u0442 Office, \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0432 Google Play, \u043f\u0440\u043e\u043c\u043f\u0442-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u0432 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435!<\/p>\n<p>  <b>\u0412 \u043d\u0430\u0448\u0435\u043c Telegram-\u043a\u0430\u043d\u0430\u043b\u0435 <a href=\"https:\/\/t.me\/apptractor\">Mobile Insights<\/a>, \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, \u0430 \u0432 <a href=\"https:\/\/t.me\/code_insight\">IT Insights<\/a> \u2014 \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. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c!<\/b><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/r4\/ep\/ok\/r4epokcjtcgclvxulkrmgx3bm9q.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/r4\/ep\/ok\/r4epokcjtcgclvxulkrmgx3bm9q.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\/backdeployed.html\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 @backDeployed \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/simbirsoft\/articles\/747462\/\">\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 iOS-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0434\u0435\u0431\u0430\u0433\u0433\u0438\u043d\u0433\u0430<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/chto-delat-ios-razrabotchikam-v-rossii.html\">\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c iOS-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0432 \u0420\u043e\u0441\u0441\u0438\u0438?<\/a><br \/>  \u2022 <a href=\"https:\/\/habr.com\/ru\/companies\/docdoc\/articles\/748130\/\">\u041c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 iOS: \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c. \u0427\u0430\u0441\u0442\u044c 2<\/a> + <a href=\"https:\/\/habr.com\/ru\/companies\/docdoc\/articles\/732102\/\">\u0427\u0430\u0441\u0442\u044c 1<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=HDZdM-YW2iM\">SwiftUI Repeatable Button<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/techhype.io\/media\/swiftui-5-whats-new-in-scrollview\/\">SwiftUI 5: What\u2019s New In ScrollView<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/techhype.io\/media\/build-a-to-do-list-app-using-swiftdata-swift-data-tutorials\/\">Build A To Do List App using SwiftData (Swift Data Tutorials)<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=NdJ7sr2MCfk\">Becoming an \u201ciOS-lite\u201d developer<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=OiPfDZTldMo\">Build a Live Activity Realtime Polls App with Firebase &amp; APNS Push Token<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=xcKT_wgq_EQ\">SwiftUI Data Flow with the new Observation<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=e0eO1di0cPY\">SwiftUI Search Bar \u2014 How to work with searchable in your iOS and macOS 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:\/\/jsorge.net\/2023\/06\/30\/swiftdata-surprises\">SwiftData Suprises<\/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\/advanced-animation-in-swiftui-under-ios17-82af3404a0e7\">Advanced Animation in SwiftUI under iOS17<\/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\/20230710-pluralization-with-string-catalogs\/\">How to use String Catalogs for pluralization 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:\/\/swdevnotes.com\/swift\/2023\/radialgradient-in-swiftui\/\">RadialGradient 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:\/\/www.reddit.com\/r\/RedditEng\/comments\/14gd9gc\/ios_ui_testing_strategy_and_tooling\/\">iOS: UI Testing Strategy and Tooling at Reddit<\/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:\/\/techhype.io\/media\/build-a-to-do-list-app-using-swiftdata-swift-data-tutorials\/\">Build A To Do List App using SwiftData<\/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\/@jacobmartinbartlett\/dependency-injection-for-async-tests-17d796cbd315\">Dependency Injection Demystified<\/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:\/\/rohitsainier.medium.com\/creating-a-circle-loader-animation-in-swiftui-cbc48dea6ea0\">Creating a Circle Loader Animation 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:\/\/medium.com\/@mrdeerwhale\/getting-started-with-node-based-shaders-for-visionos-materials-7f901177567c\">How to Use Material Nodes in Reality Composer Pro\u2019s Shader Graph<\/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.kulman.sk\/a-few-xcode-debugging-tips\/\">A few Xcode debugging tips<\/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\/07\/11\/unidirectional-flow-in-swift\/\">Unidirectional flow 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:\/\/sarunw.com\/posts\/floating-action-button-in-swiftui\/\">Floating Action Button 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:\/\/medium.com\/lunasolutions\/mastering-ssl-pinning-in-swift-no-third-party-libraries-required-42a377db80ff\">Mastering SSL Pinning in Swift: No Third-Party Libraries Required<\/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\/protocol-oriented-programming-prioritizing-flexibility-and-reusability-f6f91ce373de?source=tag_archive---------0-----------------------\">Protocol Oriented Programming: Prioritizing Flexibility and Reusability<\/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\/learn-how-to-unleash-the-power-of-automatic-grammar-agreement-in-swift-42f1c9178942\">Learn how to unleash the Power of Automatic Grammar Agreement 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:\/\/medium.com\/tech-at-tdg\/find-to-unused-code-in-swift-9b6ba7a42a5e\">Find unused code 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:\/\/www.jessesquires.com\/blog\/2020\/03\/23\/implementing-dark-mode-with-cgcolor\/\">Implementing Dark Mode and using CGColor<\/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\/backend-driven-development-for-ios-developers-a48ef2f12c49\">Backend Driven Development for iOS Developers<\/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:\/\/techhype.io\/media\/swiftui-5-whats-new-in-scrollview\/\">SwiftUI 5: What\u2019s New In ScrollView<\/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\/ios-architecture-essentials-choosing-between-closures-and-protocols\/\">iOS Architecture Essentials: Choosing Between Closures and Protocols<\/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\/@mirceaiosif\/the-ultimate-guide-to-building-scalable-swiftui-apps-master-the-art-of-modular-architecture-b9b09c2c60ca\">The Ultimate Guide to Building Scalable SwiftUI Apps: Master the Art of Modular Architecture<\/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\/swift-http-types.html\">Swift HTTP Types: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0432 Swift<\/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\/queryable-ios.html\">Queryable: ML-\u043f\u043e\u0438\u0441\u043a \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u043d\u0430 iOS<\/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\/scrollviewloader-beskonechnyy-spisok-dlya-swiftui.html\">ScrollViewLoader: \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043b\u044f 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:\/\/apptractor.ru\/info\/articles\/modulyarizatsiya-mobilnyh-prilozheniy-v-masshtabe.html\">\u041c\u043e\u0434\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/measure\/proizvoditelnost-mobilnyh-prilozheniy-orientirovannaya-na-polzovateley.html\">\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/a><br \/>  \u2022 <a href=\"https:\/\/habr.com\/ru\/articles\/747146\/\">\u041a\u0430\u043a \u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0432\u043e\u043b\u043d\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u043b\u044e\u0431\u0438\u043b \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 Kotlin \u043a\u043e\u0440\u0443\u0442\u0438\u043d\u0430\u0445: \u041c\u0438\u0444\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043a\u043e\u0440\u0443\u0442\u0438\u043d\u0430\u0445<\/a><br \/>  \u2022 <a href=\"https:\/\/habr.com\/ru\/companies\/wrike\/articles\/747154\/\">\u0414\u0435\u043b\u0430\u0435\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 Android \u0447\u0435\u0440\u0435\u0437 Terminal: \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/kak-izbezhat-haosa-navigatsiya-kak-otdelnyy-logicheskiy-uroven.html\">\u041a\u0430\u043a \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0445\u0430\u043e\u0441\u0430: \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/garage8\/articles\/747948\/\">\u041e\u0442 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043a \u043a\u043e\u0440\u0443\u0442\u0438\u043d\u0430\u043c: \u043a\u0430\u043a \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0438\u0434\u043e\u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u044f\u0437\u044b\u043a\u0435 Kotlin (\u0427\u0430\u0441\u0442\u044c 1)<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/doubletapp\/articles\/745606\/\">\u0425\u0440\u0430\u043d\u0438\u043c \u043a\u0440\u0430\u0441\u043a\u0443 \u0441 \u0443\u043c\u043e\u043c: \u043a\u0430\u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0432 \u043c\u043d\u043e\u0433\u043e\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/a><br \/>  \u2022 <a href=\"https:\/\/habr.com\/ru\/articles\/746978\/\">\u0420\u0443\u0447\u043d\u043e\u0439 DI \u043d\u0430 \u041a\u043e\u0442\u043b\u0438\u043d\u0435? \u041b\u0435\u0433\u043a\u043e! \u041d\u0443, \u043f\u043e\u0447\u0442\u0438\u2026<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/deploy\/app-stores\/google-play-razreshaet-nft.html\">Google Play \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 NFT<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/vyshel-android-14-beta-4.html\">\u0412\u044b\u0448\u0435\u043b Android 14 Beta 4<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=QBU1NEHL1EU\">Now in Android: 86 \u2014 Google Play at I\/O, Pixel Fold and Tablet, Google Developer Expert<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=A2JetouoNSc\">WorkManager \u2014 Android Basics 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:\/\/proandroiddev.com\/blast-off-managing-hundreds-of-ui-updates-for-an-emoji-cannon-37ecb25c2e88\">Blast Off: Managing Hundreds of UI Updates for an Emoji Cannon<\/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:\/\/victorbrandalise.com\/a-guide-to-filament-for-android\/\">A Guide to Filament for 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:\/\/kt.academy\/article\/eliminating-coroutine-races\">Eliminating coroutine races<\/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:\/\/marcellogalhardo.dev\/posts\/no-mocks-allowed\/\">No Mocks Allowed<\/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:\/\/techhype.io\/media\/remembercoroutinescope\/\">Learn rememberCoroutineScope \u2014 Mastering Side Effects<\/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\/getting-started-with-sqldelight-in-android-development-eecd0ae9bbdd\">Getting Started With SQLDelight 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:\/\/medium.com\/@myofficework000\/boost-your-android-developer-workflow-with-chat-gpt-855879b7ed46\">Boost your Android Developer Workflow with Chat-GPT!<\/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\/demystifying-kotlins-channel-flows-b9007e1f773b\">Demystifying Kotlin\u2019s Channel Flows<\/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\/@husayn.fakher\/10-questions-and-answers-about-viewmodels-in-android-dd18be43382b\">10 Questions and Answers about ViewModels 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:\/\/thawzintoe.medium.com\/unlocking-the-art-a-guide-to-generating-code-with-kotlin-symbol-processor-26eb5760cd4b\">Unlocking the Art: A Guide to Generating Code with Kotlin Symbol Processor<\/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\/@daniel.atitienei\/implementing-in-app-subscriptions-and-products-using-jetpack-compose-e867141bec7b\">Implementing in-app subscriptions and products using 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:\/\/blog.devgenius.io\/whatsapp-home-screen-design-in-jetpack-compose-e131504ce6f9\">WhatsApp Home Screen Design in 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\/mobile-app-development-publication\/cracking-the-kotlin-interview-3aed964cf1b5\">Cracking the Kotlin Interview<\/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\/gravel-engineering\/android-custom-tab-material-layout-with-dynamic-padding-5f849e8bdab6\">Android Custom Tab Material Layout With Dynamic Padding<\/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:\/\/mangeshyadav786.medium.com\/mastering-kotlin-the-ultimate-guide-to-becoming-a-productivity-ninja-f4efd22aaf72\">Mastering Kotlin: The Ultimate Guide to Becoming a Productivity Ninja<\/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\/mercadolibre-tech\/how-we-improved-our-android-apps-performance-by-up-to-24-6799d7056ed1\">How we improved our Android apps performance by up to 24%<\/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\/zenjob-tech-blog\/android-unit-testing-at-zenjob-ac6fe86304f1\">Android unit testing at Zenjob<\/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\/firebase-developers\/how-to-create-a-chatbot-with-firebase-firestore-and-chatgpt-on-android-910dd40f11d9\">How to create a chatbot with Firebase Firestore and ChatGPT 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:\/\/medium.com\/@sonledn\/android-app-optimization-strategies-for-performance-and-battery-efficiency-4ae8c0586331\">Android App Optimization: Strategies for Performance and Battery Efficiency<\/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\/@ibrahimethemsen\/deep-dive-into-android-os-fundamentals-eafd5d80f355\">Deep Dive Into Android OS Fundamentals<\/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\/tag\/android\/archive\/2023\/07\/09\">My Takeaways From The Droidcon Berlin 2023<\/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\/innertune.html\">InnerTune: \u043f\u043b\u0435\u0435\u0440 \u043c\u0443\u0437\u044b\u043a\u0438 \u0434\u043b\u044f YouTube \u0432 Material 3<\/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 <a href=\"https:\/\/habr.com\/ru\/companies\/usetech\/articles\/747926\/\">The State of Kotlin Multiplatform<\/a><br \/>  \u2022 <a href=\"https:\/\/habr.com\/ru\/articles\/747062\/\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Provider, Riverpod, Bloc(Cubit), Redux, MobX \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/develop\/cross-platform-development\/kak-sobrat-ios-freymvork-iz-ishodnyh-faylov-na-kotlin.html\">\u041a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c iOS-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 Kotlin<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/techhype.io\/media\/kotlin-multiplatform-in-production\/\">Kotlin Multiplatform in Production<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/mf\/on\/nm\/mfonnm3hc45ymuzctglflemxffq.png\"\/> <a href=\"https:\/\/www.youtube.com\/watch?v=XWSzbMnpAgI\">MVI Compose Multiplatform Contacts List App With Photos (iOS &amp; 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:\/\/itnext.io\/a-new-react-native-development-approach-part-2-the-how-e3eecfc0a45e\">A New React Native Development Approach \u2013 Part 2: The \u201cHow?\u201d<\/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:\/\/exyte.com\/blog\/jetpack-compose-multiplatform\">Jetpack Compose Multiplatform Android &amp; 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:\/\/medium.com\/@vbalaji165\/flutter-for-web-development-building-responsive-and-feature-rich-web-apps-4aa5402d4c82\">Flutter for Web Development: Building Responsive and Feature-Rich Web 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:\/\/suragch.medium.com\/how-the-getit-service-locator-package-works-in-dart-fc16a2998c07\">How the GetIt service locator package works in Dart<\/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\/lost-but-coding\/how-to-manage-state-in-your-flutter-app-with-state-groups-343f8a8ef592\">How To Manage State In Your Flutter App With State Groups<\/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\/redwood.html\">Redwood: \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 UI \u0434\u043b\u044f Android, iOS \u0438 \u0432\u0435\u0431<\/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 <a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/747550\/\">\u041a\u0430\u043a \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0441\u043a\u0440\u043e\u043b\u043b\u0438\u043d\u0433, \u0438 \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/develop\/analiz-prilozheniy-threads.html\">\u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Threads<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/747974\/\">\u041c\u043e\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f: \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 16<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/747618\/\">\u041f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 SRE<\/a><br \/>  \u2022 <a href=\"https:\/\/habr.com\/ru\/companies\/first\/articles\/747222\/\">\u0427\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445, \u0444\u0435\u0440\u043c\u0430\u0445 \u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/igry-v-kotorye-igrayut-lyudi-na-sobesedovaniyah.html\">\u0418\u0433\u0440\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0433\u0440\u0430\u044e\u0442 \u043b\u044e\u0434\u0438 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/podlodka-324-holakratiya-samoorganizuyuschiesya-komandy.html\">Podlodka #324: \u0445\u043e\u043b\u0430\u043a\u0440\u0430\u0442\u0438\u044f \u2014 \u0441\u0430\u043c\u043e\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/42-programmistov-ne-pererabatyvayut.html\">42% \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043d\u0435 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/evernote-uvolnyaet-vseh-amerikanskih-sotrudnikov-i-pereezzhaet-v-evropu.html\">Evernote \u0443\u0432\u043e\u043b\u044c\u043d\u044f\u0435\u0442 \u0432\u0441\u0435\u0445 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0445 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u043f\u0435\u0440\u0435\u0435\u0437\u0436\u0430\u0435\u0442 \u0432 \u0415\u0432\u0440\u043e\u043f\u0443<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/vc.ru\/tribuna\/752270-kak-dizayner-zapustil-produkt-i-ne-nashel-product-market-fit\">\u041a\u0430\u043a \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0438 \u043d\u0435 \u043d\u0430\u0448\u0435\u043b product market fit<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/v-microsoft-office-budet-novyy-shrift-po-umolchaniyu.html\">\u0412 Microsoft Office \u0431\u0443\u0434\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u0448\u0440\u0438\u0444\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/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\/flo-health\/super-app-evolution-building-a-platform-based-ecosystem-for-holistic-user-experience-fff9f9886a76\">Super app evolution: Building a platform-based ecosystem for holistic user experience<\/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\/@tsecretdeveloper\/this-happens-youre-too-old-to-be-a-programmer-72f5e50a23d3\">This Happens? You\u2019re Too Old To Be a Programmer<\/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\/developers-need-to-enjoy-the-struggle-180236cb8ca8\">Developers Need To Enjoy The Struggle<\/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:\/\/rauno.me\/craft\/interaction-design\">Invisible Details of Interaction Design<\/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\/codex\/the-8-must-have-productivity-apps-for-programmers-in-2023-a620848a8bb1\">The 8 Must-Have Productivity Apps for Programmers in 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:\/\/drpicox.medium.com\/confirmed-code-coverage-is-a-useless-management-metric-35afa05e8549\">Confirmed: Code Coverage Is a Useless Management Metric<\/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\/@dawinderapps\/mastering-design-patterns-a-guide-to-writing-cleaner-code-92a634313ba9\">Mastering Design Patterns: A Guide to Writing Cleaner 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:\/\/medium.com\/fively\/27-must-read-software-development-books-for-2023-a61df33b112e\">27 Must-Read Software Development Books for 2023<\/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\/articles\/skan-4.html\">\u0420\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430 SKAN 4: \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0439 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/marketing-monetization\/app-promotion-campaign-analytics\/rashody-na-reklamu-prilozheniy-dostignut-94-9-mlrd-v-2025.html\">\u0420\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u0440\u0435\u043a\u043b\u0430\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 $94.9 \u043c\u043b\u0440\u0434 \u0432 2025<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/chess-puzzles-set.html\">\u0420\u0435\u0448\u0430\u0435\u043c \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 Chess Puzzles Set: \u0440\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/measure\/user-analytics\/verifikatsiya-polzovateley-prinesla-instagram-bolee-15-mln.html\">\u0412\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u0430 Instagram \u0431\u043e\u043b\u0435\u0435 $15 \u043c\u043b\u043d<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/measure\/app-store-analytics\/samye-skachivaemye-prilozheniya-v-iyune-2023.html\">\u0421\u0430\u043c\u044b\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0438\u044e\u043d\u0435 2023<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/vc.ru\/dev\/753529-keys-hlebnaya-usadba-razrabotka-sobstvennogo-mobilnogo-prilozheniya-dlya-setevoy-pekarni\">\u041a\u0435\u0439\u0441 \u00ab\u0425\u043b\u0435\u0431\u043d\u0430\u044f \u0423\u0441\u0430\u0434\u044c\u0431\u0430\u00bb: \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u0435\u043a\u0430\u0440\u043d\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/dev25?amp\">\u041d\u043e\u0432\u044b\u0439 \u043e\u043f\u0440\u043e\u0441 Developer Nation<\/a><br \/>  \u2022 <a href=\"https:\/\/habr.com\/ru\/articles\/747226\/\">\u041b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u0433\u0440 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 ChatGPT \u2014 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0413\u0430\u0439\u0434<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/747796\/\">\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0443\u044e \u0438\u0433\u0440\u0443 \u0432 Google Play<\/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\/articles\/748200\/\">\u041d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0432\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0443<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/748198\/\">\u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c Sunton 7\u2033 \u043d\u0430 \u0431\u0430\u0437\u0435 ESP32S3<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/stable-doodle.html\">Stable Doodle \u043e\u0442 Stability AI \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043a\u0435\u0442\u0447\u0438 \u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/apps\/notebooklm.html\">NotebookLM \u043e\u0442 Google \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0418\u0418 \u043a \u0432\u0430\u0448\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044f\u043c<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/code-interpreter.html\">Code Interpreter \u0441\u0442\u0430\u043b \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u043c ChatGPT \u2014 \u00ab\u0442\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445\u00bb<\/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\/codegen2-a-new-open-source-model-for-coding-214d3d464030\">CodeGen2: a new open-source model for coding<\/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\/gpt-prompt-engineer.html\">GPT Prompt Engineer: \u043f\u0440\u043e\u043c\u043f\u0442-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u0432 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435<\/a><\/p>\n<p>  \u2190 <a href=\"https:\/\/habr.com\/ru\/companies\/productivity_inside\/articles\/746930\/\">\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\/companies\/productivity_inside\/articles\/748378\/\"> https:\/\/habr.com\/ru\/companies\/productivity_inside\/articles\/748378\/<\/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 \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0438 \u043f\u043e\u0447\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 DI, \u043d\u043e\u0432\u044b\u0439 \u0448\u0440\u0438\u0444\u0442 Office, \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0432 Google Play, \u043f\u0440\u043e\u043c\u043f\u0442-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u0432 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435!<\/p>\n<p>  <b>\u0412 \u043d\u0430\u0448\u0435\u043c Telegram-\u043a\u0430\u043d\u0430\u043b\u0435 <a href=\"https:\/\/t.me\/apptractor\">Mobile Insights<\/a>, \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, \u0430 \u0432 <a href=\"https:\/\/t.me\/code_insight\">IT Insights<\/a> \u2014 \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. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c!<\/b><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/r4\/ep\/ok\/r4epokcjtcgclvxulkrmgx3bm9q.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/r4\/ep\/ok\/r4epokcjtcgclvxulkrmgx3bm9q.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-350339","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/350339","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=350339"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/350339\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=350339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=350339"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=350339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}