{"id":342867,"date":"2022-12-19T09:03:01","date_gmt":"2022-12-19T09:03:01","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=342867"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2022-12-19T09:03:01","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=342867","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 #470 (12 \u2014 18 \u0434\u0435\u043a\u0430\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 \u043f\u043b\u0430\u043d\u044b Apple \u043f\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432, \u0437\u0430\u043a\u0430\u0442 AppCode \u0438 \u0432\u043e\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 Yatagan, UI \u0438 Qt, Dart \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0430\u0445\u0430\u0440, \u043f\u0440\u0438\u0437\u044b\u0432\u044b \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435, 5 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u043d\u0430 2023 \u0433\u043e\u0434 \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 <b><a href=\"https:\/\/t.me\/apptractor\">Mobile Insights<\/a><\/b>, \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u2014 \u043f\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\/uv\/7z\/r6\/uv7zr62iejcihkpueshhml-r3mw.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/uv\/7z\/r6\/uv7zr62iejcihkpueshhml-r3mw.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\/news\/apple-gotovitsya-k-zapusku-storonnih-magazinov-prilozheniy.html\">Apple \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0441\u044f \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/jetbrains-zakryvaet-appcode.html\">JetBrains \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 AppCode<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/703280\/\">\u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0444\u043e\u043d \u0443 \u0444\u043e\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f CoreML<\/a><br \/>  \u2022 <a href=\"https:\/\/habr.com\/ru\/post\/705722\/\">\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u0435\u0440\u0442\u043e\u0447\u043d\u044b\u0439 HStack \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 Layout SwiftUI<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/uskorenie-razrabotki-pri-pomoschi-unit-testa.html\">\u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Unit-\u0442\u0435\u0441\u0442\u0430<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/foundation-budet-perepisan-na-swift-i-stanet-otkrytym.html\">Foundation \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Swift \u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c<\/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:\/\/augmentedcode.io\/2022\/11\/28\/setting-up-a-build-tool-plugin-for-a-swift-package\/\">Setting up a build tool plugin for a Swift package<\/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:\/\/trycombine.com\/posts\/simple-view-modifier-to-handle-features-that-are-only-enabled-in-the-pro-version-of-the-app\/\">SwiftUI view modifier for paid app features<\/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:\/\/maxxfrazer.medium.com\/deploying-docc-with-github-actions-218c5ca6cad5\">Deploying DocC with GitHub Actions<\/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\/ios-app-as-a-microservice-using-swiftui-in-modular-app-f40182f5e52a\">iOS App As a Microservice. Using SwiftUI in Modular 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:\/\/www.devtechie.com\/community\/public\/posts\/131253-swiftui-lazyvstack-a-closer-look\">SwiftUI LazyVStack: a closer look<\/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\/building-a-wrapping-hstack-with-the-swiftui-layout-protocol-1e718239bf57\">Building a Wrapping HStack With the SwiftUI Layout Protocol<\/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.avanderlee.com\/swift\/optionset-swift\/\">OptionSet in Swift explained with code examples<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/federicabenacquista.medium.com\/how-to-change-a-lists-background-color-in-swiftui-89aa98ecef6a\">How to change a List\u2019s background color 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:\/\/stevenpcurtis.medium.com\/did-you-see-this-a-measurement-class-in-swift-b40a9720b59e\">Did You See This? A Measurement Class 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:\/\/arturgruchala.com\/testing-async-await-exceptions\/\">Testing async\/await exceptions<\/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\/setting-up-a-multiplayer-3d-chess-using-realitykit-arkit-and-swiftui-905345301153\">Setting Up a Multiplayer 3D Chess Using RealityKit, ARKit, and 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\/bumble-tech\/using-hopper-to-investigate-an-ios-bug-66d373e6336d\">Using Hopper to investigate an iOS bug<\/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.revenuecat.com\/blog\/engineering\/ios-in-app-subscription-tutorial-with-storekit-2-and-swift\/\">iOS In-App Subscription Tutorial with StoreKit 2 and 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:\/\/holyswift.app\/dynamically-change-app-icons-for-a-unique-user-experience-with-swiftui\/\">Dynamically Change App Icons for a Unique User Experience 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:\/\/betterprogramming.pub\/testing-a-swiftui-combine-ios-app-using-clean-architecture-f7dee1ba5342\">Testing a SwiftUI + Combine iOS App Using Clean Architecture<\/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\/plus-minus-one\/creating-a-bottom-sheet-using-floatingpanel-in-swift-cc0f65bc1fd4\">Creating a Bottom Sheet Using FloatingPanel 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\/codex\/swift-demystifying-autoclosures-dc106e4bc04a\">Understand Swift Autoclosures<\/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.jetbrains.com\/appcode\/2022\/12\/appcode-2022-3-release-and-end-of-sales-and-support\/\">Jetbrains is sunsetting AppCode With the release of v2022.3<\/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\/copilot-for-xcode.html\">Copilot for Xcode: \u043a\u043e\u0434 Copilot \u0432 Xcode<\/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\/apps\/coduo.html\">Coduo: \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 Xcode<\/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\/yandex\/blog\/704838\/\">\u042f\u043d\u0434\u0435\u043a\u0441 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u0442 Yatagan \u2014 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/pisat-ui-dlya-android-na-qt.html\">\u041f\u0438\u0441\u0430\u0442\u044c UI \u0434\u043b\u044f Android \u043d\u0430 QT<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/706126\/\">\u0421\u0430\u043c\u044b\u0439 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u0439 \u043a\u0440\u0430\u0448 \u0432 \u043c\u043e\u0435\u0439 \u0436\u0438\u0437\u043d\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/705278\/\">Kotlin Symbol Processing. \u041e\u0442 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/articles\/integriruem-rust-v-android-prilozhenie.html\">\u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c Rust \u0432 Android-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/705686\/\">\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0438\u0433\u0440\u0443 \u0441 Jetpack Compose \u0434\u043b\u044f \u0447\u0430\u0441\u043e\u0432 \u043d\u0430 Google WearOS<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/705292\/\">\u0422\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0427\u0430\u0441\u0442\u044c 2<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/705064\/\">RecyclerView \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e Android-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/vyshel-android-13-dlya-televizorov.html\">\u0412\u044b\u0448\u0435\u043b Android 13 \u0434\u043b\u044f \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440\u043e\u0432<\/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:\/\/dmytroshuba.com\/blog\/how-to-set-up-ui-testing-on-ci\/\">How to set up UI testing on CI<\/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.francescvilarino.com\/jetpack-compose-carousel\">Implementing a circular carousel 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:\/\/www.droidchef.dev\/impact-of-dependency-tree-depth-on-gradle-builds\/\">Impact of Dependency Tree Depth on Gradle Builds<\/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\/advanced-kotlin-dev-day-2022\/\">Advanced Kotlin Dev Day 2022<\/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\/@mohitrajput987\/launch-modes-of-android-activity-c0661e0bb130\">Launch modes of Android Activity<\/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\/principles-practice-in-repository-layer-444551b96cf8\">Principles &amp; Practice in Repository Layer<\/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\/utilising-the-canvas-in-jetpack-compose-to-build-a-squaresegmentedprogressindicator-facb7944086b\">Utilising the Canvas in Jetpack Compose to build a SquareSegmentedProgressIndicator<\/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\/integrating-rust-with-android-development-ef341c2f9cca\">Integrating Rust With 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:\/\/blog.mobile.dev\/introducing-maestro-studio-96454c7ca98a\">Introducing: Maestro Studio<\/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\/i-bet-you-didnt-know-about-these-features-in-kotlin-9bc660862e6d\">I bet you didn\u2019t know about these features in Kotlin<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/www.kodeco.com\/35028713-health-connect-android-api\">Health Connect Android API<\/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\/creating-a-collapsing-topappbar-with-jetpack-compose-d25ad19d6113\">Creating a Collapsing TopAppBar with Jetpack Compose<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/android-developers.googleblog.com\/2022\/12\/tips-from-android-dev-summit-2022-how-to-scale-made-for-moble-apps-chromeos.html\">How to scale made-for-mobile apps to ChromeOS<\/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\/pew-pew-making-a-game-with-compose-canvas-on-wear-os-9a37fa498d3\">Pew pew! Making a Game with Compose Canvas on Wear OS<\/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\/seal-2.html\">Seal: \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0438\u0434\u0435\u043e\/\u0430\u0443\u0434\u0438\u043e \u0434\u043b\u044f Android<\/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\/physics-layout.html\">Physics Layout: UI \u0432 Compose \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435<\/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\/post\/705448\/\">\u0417\u0430\u0447\u0435\u043c Clojure Flutter<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/689134\/\">Unity UI Toolkit: MVVM \u043d\u043d\u0430\u0434\u0430?<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/flutter-dev-podcast-38.html\">Flutter Dev Podcast #38: Dart \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0430\u0445\u0430\u0440<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/705798\/\">\u0423\u0441\u043a\u043e\u0440\u044f\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0437\u0430 \u0441\u0447\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u0430 Mason \u043d\u0430 Flutter<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/705796\/\">Flatbuffers \u0432 Unity \u2014 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432 40 \u0440\u0430\u0437<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/develop\/cross-platform-development\/a-tochno-li-vam-nuzhno-pwa.html\">\u0410 \u0442\u043e\u0447\u043d\u043e \u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e 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:\/\/asgalex.medium.com\/make-flame-32-times-faster-with-collision-detection-and-additional-tricks-3c212404b0b0\">Make Flame 32 times faster with collision detection and additional tricks<\/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\/dartlang\/the-road-to-dart-3-afdd580fbefa\">The road to Dart 3: A fully sound, null safe language<\/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:\/\/javascript.plainenglish.io\/13-questions-you-must-prepare-for-your-react-native-interview-b38757d67af7\">13 Questions To Prepare For In Your React Native 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:\/\/www.bacancytechnology.com\/blog\/flutter-riverpod-tutorial\">Flutter Riverpod Tutorial with Usage &amp; Advantages<\/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:\/\/alexmngn.medium.com\/how-to-create-a-truly-native-experience-for-your-react-native-app-6818953f08f7\">How to create a truly native experience for your React-Native 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\/7span\/take-your-flutter-app-performance-to-next-level-part-1-e29ef05a217\">Take your Flutter App performance to next level<\/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:\/\/functional.works-hub.com\/learn\/why-flutter-needs-clojure-45b93\">Why Flutter needs Clojure<\/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\/@code_wizard\/kmm-preferences-datastore-674382443262\">KMM Preferences Datastore<\/a><br \/>  \u2022\u00a0<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\" data-src=\"https:\/\/habrastorage.org\/files\/377\/ae0\/333\/377ae0333d0f4b7b97307c9eea5ee21a.gif\"\/> <a href=\"https:\/\/www.kodeco.com\/35491219-create-a-breakout-game-in-flutter-with-flame-and-forge2d-part-1\">Create A Breakout Game in Flutter With Flame and Forge2D<\/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\/ux-planet\/empty-states-5-practical-tips-for-designers-8958b2e68c66\">Empty states: 5 practical tips for designers<\/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\/delo-protiv-modulnyh-testov.html\">\u0414\u0435\u043b\u043e \u043f\u0440\u043e\u0442\u0438\u0432 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/705914\/\">\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 service mesh \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/constanta\/blog\/705776\/\">\u0414\u0438\u0437\u0430\u0439\u043d. \u0421 \u043d\u0443\u043b\u044f \u0434\u043e \u043c\u0438\u0434\u0434\u043b\u0430<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/develop\/vazhnost-vladeniya-kodom.html\">\u0412\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u043e\u043c<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/surfstudio\/blog\/705888\/\">\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0432 \u0431\u0430\u043d\u043a\u043e\u0432\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/705390\/\">\u0420\u0435\u0434\u0438\u0437\u0430\u0439\u043d \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0416\u041a\u0425: \u043a\u0430\u043a \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0442\u044c \u0445\u0430\u043e\u0441 \u0438 \u043d\u0435 \u043d\u0430\u043b\u043e\u043c\u0430\u0442\u044c \u0434\u0440\u043e\u0432<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/705086\/\">\u041b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Qt-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/media\/perevodim-spring-kotlin-servis-na-nio-i-coroutines.html\">\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c Spring\/Kotlin-\u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0430 NIO \u0438 coroutines<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/spotify-backstage.html\">Spotify \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u043c\u043e\u043d\u0435\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u043e\u0442\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 Backstage<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/apps\/microsoft-predstavila-novuyu-versiyu-skype.html\">Microsoft \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Skype<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/github\/github-nachnet-proveryat-nalichie-sekretnyh-dannyh-vo-vseh-repozitoriyah.html\">GitHub \u043d\u0430\u0447\u043d\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e \u0432\u0441\u0435\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u0445<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/analytics\/reyting-populyarnosti-yazykov-programmirovaniya-po-upominaniyam-v-vakansiyah.html\">\u0420\u0435\u0439\u0442\u0438\u043d\u0433 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f\u043c \u0432 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u044f\u0445<\/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\/the-hidden-cost-of-software-automation-fa238bfb473b\">The Hidden Cost of Software 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:\/\/uxplanet.org\/the-problem-of-clock-font-size-in-apple-ios-16-18bafeae1200\">The problem of clock font size in Apple iOS 16<\/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\/github-actions-shared-workflows-a452b6393511\">GitHub actions shared workflows<\/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\/hierarchy-strips-in-user-interfaces-f88b9cbf64b\">Hierarchy strips in user interfaces<\/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:\/\/uxplanet.org\/design-debt-78a5cfbfa98f\">Building a product without a design system leads to huge design debt<\/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\/previewing-the-ide-of-the-future-ff90da52c660\">Previewing the IDE of the Future \u2014 Fleet<\/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\/the-top-three-clean-code-principles-to-follow-in-2023-87d7a36407a\">The top three clean code principles to follow 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:\/\/github.com\/getlago\/lago\/wiki\/How-to-get-the-first-1000-Github-stars-for-an-Open-Source-project\">How to get the first 1000 Github stars for an Open Source project<\/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\/maestro.html\">Maestro: \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 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:\/\/habr.com\/ru\/post\/704988\/\">\u041a\u0430\u043a \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u043f\u043e \u043f\u043b\u0430\u043d\u0443<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/company\/adminvps\/blog\/705688\/\">\u041f\u043e\u0447\u0435\u043c\u0443 \u0443\u0441\u0438\u043b\u0438\u044f \u0415\u0432\u0440\u043e\u043f\u044b \u043f\u043e \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0435 iPhone \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0432\u0440\u0435\u0434\u044f\u0442 Apple<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/habr.com\/ru\/post\/705092\/\">\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0431\u043b\u043e\u043a \u0441 \u043f\u0440\u0438\u0437\u044b\u0432\u043e\u043c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f: 76 \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u043e\u0432<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/marketing-monetization\/10-idey-dlya-testirovaniya-podpisok-v-vashem-prilozhenii.html\">10 \u0438\u0434\u0435\u0439 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/analytics\/holiday-season-report.html\">\u0420\u0435\u043a\u043b\u0430\u043c\u043d\u0430\u044f \u043c\u043e\u043d\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0432 \u043f\u0440\u0430\u0437\u0434\u043d\u0438\u0447\u043d\u044b\u0439 \u0441\u0435\u0437\u043e\u043d 2023 \u2014 \u043e\u0442\u0447\u0435\u0442 Appodeal<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/measure\/app-store-analytics\/ai-art-apps.html\">\u0425\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u0418\u0418 \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u043b\u0438 \u0442\u043e\u043f-\u0447\u0430\u0440\u0442\u044b App Store \u043d\u0430 \u0432\u043e\u043b\u043d\u0435 \u0443\u0441\u043f\u0435\u0445\u0430 Lensa AI<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/info\/news\/cameo-kids.html\">\u0421\u0435\u0440\u0432\u0438\u0441 \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u043e\u0441\u0442\u0435\u0439 Cameo \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/measure\/user-analytics\/mobayl-2023-5-prognozov-data-ai.html\">\u041c\u043e\u0431\u0430\u0439\u043b 2023: 5 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 Data.ai<\/a><br \/>  \u2022\u00a0<a href=\"https:\/\/apptractor.ru\/measure\/app-store-analytics\/samye-zarabatyvayuschie-prilozheniya-ssha-v-noyabre.html\">\u0421\u0430\u043c\u044b\u0435 \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0421\u0428\u0410 \u0432 \u043d\u043e\u044f\u0431\u0440\u0435<\/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\/company\/wirenboard\/blog\/705052\/\">Vertical Boutique \u2013 \u043d\u0443\u0436\u043d\u044b \u043b\u0438 \u043d\u0430\u043c \u0443\u043c\u043d\u044b\u0435 \u043e\u0442\u0435\u043b\u0438?<\/a><\/p>\n<p>  ? <a href=\"https:\/\/habr.com\/ru\/company\/productivity_inside\/blog\/705006\/\">\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\/company\/productivity_inside\/blog\/706262\/\"> https:\/\/habr.com\/ru\/company\/productivity_inside\/blog\/706262\/<\/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 \u043f\u043b\u0430\u043d\u044b Apple \u043f\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432, \u0437\u0430\u043a\u0430\u0442 AppCode \u0438 \u0432\u043e\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 Yatagan, UI \u0438 Qt, Dart \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0430\u0445\u0430\u0440, \u043f\u0440\u0438\u0437\u044b\u0432\u044b \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435, 5 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u043d\u0430 2023 \u0433\u043e\u0434 \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 <b><a href=\"https:\/\/t.me\/apptractor\">Mobile Insights<\/a><\/b>, \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u2014 \u043f\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\/uv\/7z\/r6\/uv7zr62iejcihkpueshhml-r3mw.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/uv\/7z\/r6\/uv7zr62iejcihkpueshhml-r3mw.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-342867","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/342867","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=342867"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/342867\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=342867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=342867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=342867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}