- BrainTools - https://www.braintools.ru -

Мобильная разработка за неделю #620 (16 — 22 февраля)

В этом выпуске бесконечная история сторибордов и расцвет «достаточно хорошей» архитектуры в Android, Baseline Profiles и шейдеры, мягкая обводка текста, мобильный геймдев нулевых и многое другое. Заходите!

Мобильная разработка за неделю #620 (16 — 22 февраля) - 1

Подписывайтесь на мой Telegram-канал Mobile Insights [1], где еще больше материалов для мобильных разработчиков. А еще завел себе новый канал про инди, соло, пет и прочие проекты [2].

iOS

• Собеседование в Zerodha — эти вопросы полностью изменили мое представление о мобильной разработке [3]
• Ошибка на 12 миллиардов долларов: почему Apple отказалась от сторибордов (и почему большинство команд до сих пор их используют) [4]
• Осваиваем шейдеры Metal [5]
• Самый быстрый XML парсер для iOS в 2026 году? [6]
• Искусство бесшовных переходов в iOS от 60 FPS до идеального UX [7]
• Как устроена мобильная разработка в Яндекс Картах [8]
• Apple планирует выпустить умные очки с искусственным интеллектом в 2027 году [9]
• Morphing Sheets Out of Buttons in SwiftUI [10]
• Making SwiftUI Buttons with Equal Widths [11]
• Measure App Launch Time with Instruments [12]
• Container-Based Dependency Injection [13]
• Swift Testing Agent Skill: Write high quality tests with AI [14]
• Conditionally Applying Modifiers in SwiftUI [15]
• Our Swift CLI now runs on Linux [16]
• How to Migrate to @Observable Without Breaking Your App [17]
• SwiftUI Foundations: Build Great Apps with SwiftUI Q&A [18]
• I built Metal-accelerated RAG for iOS – 0.84ms vector search, no backend required [19]
• Testing with Event Streams [20]
• Isolate SwiftUI animations to specific attributes [21]
• SwiftUI Grid Layouts: Build Instagram-Style Feeds (In Minutes) [22]
• Before We Panic: The iOS Debugging Checklist with Code Examples Every Developer Should Use [23]
• Swift Concurrency Debugging Is Still Immature — Here’s Why [24]
• New iOS 26 Style OnBoarding Animation Using SwiftUI [25]
• Sharing App Data with Uniform Type Identifiers and ShareSheets [26]
• Liquid Glass Morphing Tab bar | Expandable Tab Bar | SwiftUI [27]
• ListKit — быстрый diffable data source для UICollectionView [28]
• Claude XcodePreviews — превью SwiftUI для ИИ [29]

Android

• Расцвет «достаточно хорошей» архитектуры в Android [30]
• Как ускорить Android-приложение с помощью Baseline Profiles [31]
• Мой опыт собеседования на должность Android-разработчика в Glovo [32]
• Как я сделал полностью бесплатное Android-приложение для задач и финансов — и почему не взял ни копейки [33]
• Не убий: Гайд по UI/UX в Android Automotive, за который вас не посадят [34]
• КодРевью лидера мнений: как можно нарушить сразу все принципы разработки [35]
• Ты не владелец своего Android. И вот почему [36]
• Погружаемся в мир технологий Яндекс Переводчика [37]
• Мок собеседование Android разработчика в Контур: архитектура и кодинг приложения [38]
• Google опубликовал ежегодный отчёт о безопасности экосистемы приложений Android [39]
• Google I/O 2026 пройдет 19-20 мая [40]
• Prepare your app for the resizability and orientation changes in Android 17 [41]
• Goodbye ViewModel. Hello retain! [42]
• Handle RecyclerView’s scroll events in custom TopAppBarScrollBehavior [43]
• Random Musings on the Android 17 Beta 1 [44]
• 15 Android Architecture Questions Every Senior Developer Must Answer in 2026 [45]
• Under the hood: Android 17’s lock-free MessageQueue [46]
• CompositionLocal in Jetpack Compose: How to Avoid Prop Drilling [47]
• 5 Kotlin Internals You Should Know [48]
• Speeding Up Android App Startup: Automated Baseline Profiles in CI/CD [49]
• Mastering ViewModel Unit Testing with Kotlin Flow & StateFlow [50]
• How to Simulate Process Death in Android? [51]
• Android 17: What It Means for Mobile Architecture, Not Just Features [52]
• What’s so great about R8? [53]
• Top 5 Jetpack Compose Performance Killers [54]
• Kotlin Devs Diversify: Android is 25% Now [55]
• You won’t believe how we created an Android Lint rule using AI — with Tor Norbye [56]
• Google’s Recommended App Architecture Explained (Android & iOS) [57]
• Detekt Rules Koin — Detekt-расширение с 51 правилом для Koin 4.x [58]
• ADB Device Manager — двойное управление Android для Windows [59]
• DevAnalyzer — анализатор среды разработки [60]

Кроссплатформа

• Алгоритм мягкой обводки текста [61]
• Как я за 2,5 месяца написал строительный калькулятор на Flutter с ИИ-прорабом, 45+ калькуляторами и 8000 тестами [62]
• Как сделать GitLab CI/CD вашим лучшим другом для сборки и доставки Flutter приложений. Часть 3 [63]
• Capacitor: от веба к мобильным приложениям. Часть 2. Как написать свой плагин (Android + iOS) [64]
• Твое первое приложение на KMP для ОС Аврора [65]
• Do I need an umbrella framework for my Kotlin Multiplatform app? [66]
• Adding Live Activity to a Flutter app was easier than I expected [67]
• KMP vs CMP — The Difference Most Developers Don’t Understand (Yet) [68]
• Why Most React Native Apps Fail After Launch [69]
• Build a Flutter App in 30 Minutes (Even If You’re a Complete Beginner) [70]
• Cached Network Image is unmaintained for 2 years, so decided to fork and create ce version of it [71]
• Codename One — нативные кроссплатформенные приложения на Java или Kotlin [72]

Разработка

• Трудности разработки Java-игр: каким был мобильный геймдев нулевых? [73]
• Backend-driven UI в Авито: от идеи к проду [74]
• Никакого программирования до 10 утра [75]
• Как мы упростили компонент из 272 миллионов комбинаций в дизайн-системе Яндекс 360 [76]
• Мобильное приложение Sminex: как мы строим единый бэкенд на современном стеке [77]
• 1 из 10 разработчиков ничего не делает на работе. Интервью с исследователем из Стэнфорда. [78]
• Хэш-таблицы — Open addressing, коллизии, hash [79]
• Публичное собеседование на позицию Head of QA [80]
• Краш-курс по автоматизации тестирования [81]
• В Spotify говорят, что лучшие разработчики не написали ни строчки кода с декабря [82]
• Mobile Development Is Slowing Down. iOS Developers Are Still Winning. [83]
• A Client Paid Me $1000 for a ‘Simple’ App — Here’s What Actually Happened [84]
• Why Working Hard Isn’t Enough to Grow as a Developer [85]
• Software Is Dead — Long Live Software [86]

Аналитика, маркетинг и монетизация

• Прозрачный мобайл: как навести порядок в кросс-канальном измерении In-App2Web [87]
• Новая функция Audible синхронизирует электронные и аудиокниги [88]
• Google добавляет в приложение Gemini возможности генерации музыки [89]
• Самые распространенные ошибки в ASO [90]
• Анализ 50 000 отзывов в App Store — вот 10 наиболее часто упоминаемых жалоб [91]
• We stopped forcing the subscription model on our users. Here is what happened. [92]

AI, Устройства, IoT

• От чат-бота к AI агенту: собираем локальную систему на LibreChat, Langflow и MCP [93]
• Андрей Карпаты только что создал полноценный GPT на 240 строках Python [94]
• Распознавание речи и голосовое управление на Repka Pi 4, автономная работа, real-time, нейросеть Vosk на базе Kaldi [95]

Предыдущий дайджест [96]. Если у вас есть другие интересные материалы или вы нашли ошибку [97] — пришлите, пожалуйста, в почту

Автор: RoboForm

Источник [98]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/26040

URLs in this post:

[1] Mobile Insights: https://t.me/apptractor

[2] канал про инди, соло, пет и прочие проекты: https://t.me/appindie

[3] Собеседование в Zerodha — эти вопросы полностью изменили мое представление о мобильной разработке: https://apptractor.ru/info/articles/sobesedovanie-v-zerodha-eti-voprosy-polnostyu-izmenili-moe-predstavlenie-o-mobilnoy-razrabotke.html

[4] Ошибка на 12 миллиардов долларов: почему Apple отказалась от сторибордов (и почему большинство команд до сих пор их используют): https://apptractor.ru/info/articles/storyboards.html

[5] Осваиваем шейдеры Metal: https://apptractor.ru/info/articles/osvaivaem-sheydery-metal.html

[6] Самый быстрый XML парсер для iOS в 2026 году?: https://habr.com/ru/articles/1002030/

[7] Искусство бесшовных переходов в iOS от 60 FPS до идеального UX: https://habr.com/ru/articles/1000184/

[8] Как устроена мобильная разработка в Яндекс Картах: https://apptractor.ru/info/media/kak-ustroena-mobilnaya-razrabotka-v-yandeks-kartah.html

[9] Apple планирует выпустить умные очки с искусственным интеллектом в 2027 году: https://apptractor.ru/info/news/apple-planiruet-vypustit-umnye-ochki-s-iskusstvennym-intellektom-v-2027-godu.html

[10] Morphing Sheets Out of Buttons in SwiftUI: https://serialcoder.dev/text-tutorials/swiftui/morphing-sheets-out-of-buttons-in-swiftui/

[11] Making SwiftUI Buttons with Equal Widths: https://www.neilmacy.co.uk/blog/swiftui-button-equal-sizing/

[12] Measure App Launch Time with Instruments: https://swiftdevjournal.com/posts/measure-app-launch-time/

[13] Container-Based Dependency Injection: https://livsycode.com/best-practices/container-based-dependency-injection/?

[14] Swift Testing Agent Skill: Write high quality tests with AI: https://www.avanderlee.com/ai-development/swift-testing-agent-skill-write-high-quality-tests-with-ai/

[15] Conditionally Applying Modifiers in SwiftUI: https://medium.com/ios-lab/conditionally-applying-modifiers-in-swiftui-4dca0eaecd7b

[16] Our Swift CLI now runs on Linux: https://tuist.dev/blog/2026/02/16/linux

[17] How to Migrate to @Observable Without Breaking Your App: https://swiftandmemes.com/how-to-migrate-to-observable-without-breaking-your-app/

[18] SwiftUI Foundations: Build Great Apps with SwiftUI Q&A: https://antongubarenko.substack.com/p/swiftui-foundations-build-great-apps

[19] I built Metal-accelerated RAG for iOS – 0.84ms vector search, no backend required: https://www.reddit.com/r/iOSProgramming/comments/1r7owg9/i_built_metalaccelerated_rag_for_ios_084ms_vector/

[20] Testing with Event Streams: https://www.massicotte.org/blog/testing-event-stream/

[21] Isolate SwiftUI animations to specific attributes: https://nilcoalescing.com/blog/IsolateSwiftUIAnimationsToSpecificAttributes/

[22] SwiftUI Grid Layouts: Build Instagram-Style Feeds (In Minutes): https://medium.com/@chandra.welim/swiftui-grid-layouts-lazyvgrid-and-lazyhgrid-complete-guide-a3d4376ec785

[23] Before We Panic: The iOS Debugging Checklist with Code Examples Every Developer Should Use: https://gauravtakjaipur.medium.com/before-we-panic-the-ios-debugging-checklist-with-code-examples-every-developer-should-use-d0b6a8b9b4ec

[24] Swift Concurrency Debugging Is Still Immature — Here’s Why: https://medium.com/@bhumibhuva18/swift-concurrency-debugging-is-still-immature-heres-why-3580c4e59c33

[25] New iOS 26 Style OnBoarding Animation Using SwiftUI: https://www.youtube.com/watch?v=IoLPClPxgsY

[26] Sharing App Data with Uniform Type Identifiers and ShareSheets: https://www.youtube.com/watch?v=t9FRldfZ8vc

[27] Liquid Glass Morphing Tab bar | Expandable Tab Bar | SwiftUI: https://www.youtube.com/watch?v=Nj285uRnrPQ

[28] ListKit — быстрый diffable data source для UICollectionView: https://apptractor.ru/info/github/listkit.html

[29] Claude XcodePreviews — превью SwiftUI для ИИ: https://apptractor.ru/info/github/claude-xcodepreviews.html

[30] Расцвет «достаточно хорошей» архитектуры в Android: https://apptractor.ru/info/articles/rastsvet-dostatochno-horoshey-arhitektury-v-android.html

[31] Как ускорить Android-приложение с помощью Baseline Profiles: https://habr.com/ru/companies/otus/articles/1000028/

[32] Мой опыт собеседования на должность Android-разработчика в Glovo: https://apptractor.ru/info/articles/moy-opyt-sobesedovaniya-na-dolzhnost-android-razrabotchika-v-glovo.html

[33] Как я сделал полностью бесплатное Android-приложение для задач и финансов — и почему не взял ни копейки: https://habr.com/ru/articles/1002356/

[34] Не убий: Гайд по UI/UX в Android Automotive, за который вас не посадят: https://habr.com/ru/articles/1001016/

[35] КодРевью лидера мнений: как можно нарушить сразу все принципы разработки: https://apptractor.ru/info/media/kodrevyu-lidera-mneniy-kak-mozhno-narushit-srazu-vse-printsipy-razrabotki.html

[36] Ты не владелец своего Android. И вот почему: https://apptractor.ru/info/media/ty-ne-vladelets-svoego-android-i-vot-pochemu.html

[37] Погружаемся в мир технологий Яндекс Переводчика: https://apptractor.ru/info/media/pogruzhaemsya-v-mir-tehnologiy-yandeks-perevodchika.html

[38] Мок собеседование Android разработчика в Контур: архитектура и кодинг приложения: https://apptractor.ru/info/media/mok-sobesedovanie-android-razrabotchika-v-kontur-arhitektura-i-koding-prilozheniya.html

[39] Google опубликовал ежегодный отчёт о безопасности экосистемы приложений Android: https://apptractor.ru/info/analytics/google-opublikoval-ezhegodnyy-otchyot-o-bezopasnosti-ekosistemy-prilozheniy-android.html

[40] Google I/O 2026 пройдет 19-20 мая: https://apptractor.ru/info/events/google-i-o-2026-proydet-19-20-maya.html

[41] Prepare your app for the resizability and orientation changes in Android 17: https://android-developers.googleblog.com/2026/02/prepare-your-app-for-resizability-and.html

[42] Goodbye ViewModel. Hello retain!: https://avatsav.dev/hello-retain/

[43] Handle RecyclerView’s scroll events in custom TopAppBarScrollBehavior: https://le0nidas.gr/2026/02/08/handle-recyclerviews-scroll-events-in-custom-topappbarscrollbehavior/

[44] Random Musings on the Android 17 Beta 1: https://commonsware.com/blog/2026/02/14/random-musings-android-17-beta-1.html

[45] 15 Android Architecture Questions Every Senior Developer Must Answer in 2026: https://medium.com/@avula.koti.realpage/15-android-architecture-questions-every-senior-developer-must-answer-in-2026-e713b8903d10

[46] Under the hood: Android 17’s lock-free MessageQueue: https://android-developers.googleblog.com/2026/02/under-hood-android-17s-lock-free.html

[47] CompositionLocal in Jetpack Compose: How to Avoid Prop Drilling: https://medium.com/softaai-blogs/compositionlocal-in-jetpack-compose-how-to-avoid-prop-drilling-0abf387c3f57

[48] 5 Kotlin Internals You Should Know: https://skydoves.medium.com/5-kotlin-internals-you-should-know-d4bab319d4ef

[49] Speeding Up Android App Startup: Automated Baseline Profiles in CI/CD: https://medium.com/@jhnaiem96/speeding-up-android-app-startup-automated-baseline-profiles-in-ci-cd-aaf21162f67f

[50] Mastering ViewModel Unit Testing with Kotlin Flow & StateFlow: https://medium.com/@sivavishnu0705/mastering-viewmodel-unit-testing-with-kotlin-flow-stateflow-d171f74c59ed

[51] How to Simulate Process Death in Android?: https://medium.com/@sivavishnu0705/how-to-simulate-process-death-in-android-04bef1f3e0e8

[52] Android 17: What It Means for Mobile Architecture, Not Just Features: https://medium.com/@ys.yogendra22/android-17-what-it-means-for-mobile-architecture-not-just-features-e67b4fde2543

[53] What’s so great about R8?: https://www.youtube.com/watch?v=0B07A_c45_o

[54] Top 5 Jetpack Compose Performance Killers: https://www.youtube.com/watch?v=FF01B6urN0A

[55] Kotlin Devs Diversify: Android is 25% Now: https://www.youtube.com/watch?v=WcQ-bOItdOE

[56] You won’t believe how we created an Android Lint rule using AI — with Tor Norbye: https://www.youtube.com/watch?v=u9VdJyILNYk

[57] Google’s Recommended App Architecture Explained (Android & iOS): https://www.youtube.com/watch?v=Nism7uG2QpU

[58] Detekt Rules Koin — Detekt-расширение с 51 правилом для Koin 4.x: https://apptractor.ru/info/github/detekt-rules-koin-detekt-rasshirenie-s-51-pravilom-dlya-koin-4-x.html

[59] ADB Device Manager — двойное управление Android для Windows: https://apptractor.ru/info/github/adb-device-manager.html

[60] DevAnalyzer — анализатор среды разработки: https://apptractor.ru/info/github/devanalyzer.html

[61] Алгоритм мягкой обводки текста: https://habr.com/ru/articles/996884/

[62] Как я за 2,5 месяца написал строительный калькулятор на Flutter с ИИ-прорабом, 45+ калькуляторами и 8000 тестами: https://habr.com/ru/articles/1001080/

[63] Как сделать GitLab CI/CD вашим лучшим другом для сборки и доставки Flutter приложений. Часть 3: https://habr.com/ru/articles/996924/

[64] Capacitor: от веба к мобильным приложениям. Часть 2. Как написать свой плагин (Android + iOS): https://habr.com/ru/articles/1000690/

[65] Твое первое приложение на KMP для ОС Аврора: https://apptractor.ru/info/media/tvoe-pervoe-prilozhenie-na-kmp-dlya-os-avrora.html

[66] Do I need an umbrella framework for my Kotlin Multiplatform app?: https://www.pamelaahill.com/post/do-i-need-an-umbrella-framework

[67] Adding Live Activity to a Flutter app was easier than I expected: https://www.reddit.com/r/FlutterDev/comments/1r67rys/adding_live_activity_to_a_flutter_app_was_easier/

[68] KMP vs CMP — The Difference Most Developers Don’t Understand (Yet): https://medium.com/@avula.koti.realpage/kmp-vs-cmp-the-difference-most-developers-dont-understand-yet-08645ad2855d

[69] Why Most React Native Apps Fail After Launch: https://medium.com/@baheer224/why-most-react-native-apps-fail-after-launch-6c202cd5afbe

[70] Build a Flutter App in 30 Minutes (Even If You’re a Complete Beginner): https://medium.com/codetodeploy/build-a-flutter-app-in-30-minutes-even-if-youre-a-complete-beginner-843602458682

[71] Cached Network Image is unmaintained for 2 years, so decided to fork and create ce version of it: https://www.reddit.com/r/FlutterDev/comments/1r8tb66/cached_network_image_is_unmaintained_for_2_years/

[72] Codename One — нативные кроссплатформенные приложения на Java или Kotlin: https://apptractor.ru/info/github/codename-one-nativnye-krossplatformennye-prilozheniya-na-java-ili-kotlin.html

[73] Трудности разработки Java-игр: каким был мобильный геймдев нулевых?: https://habr.com/ru/companies/timeweb/articles/1001674/

[74] Backend-driven UI в Авито: от идеи к проду: https://habr.com/ru/companies/avito/articles/997010/

[75] Никакого программирования до 10 утра: https://apptractor.ru/info/articles/nikakogo-programmirovaniya-do-10-utra.html

[76] Как мы упростили компонент из 272 миллионов комбинаций в дизайн-системе Яндекс 360: https://habr.com/ru/companies/yandex/articles/1000608/

[77] Мобильное приложение Sminex: как мы строим единый бэкенд на современном стеке: https://habr.com/ru/companies/sminex_developer/articles/1001824/

[78] 1 из 10 разработчиков ничего не делает на работе. Интервью с исследователем из Стэнфорда.: https://apptractor.ru/info/media/1-iz-10-razrabotchikov-nichego-ne-delaet-na-rabote-intervyu-s-issledovatelem-iz-stenforda.html

[79] Хэш-таблицы — Open addressing, коллизии, hash: https://apptractor.ru/info/media/hesh-tablitsy-open-addressing-kollizii-hash.html

[80] Публичное собеседование на позицию Head of QA: https://apptractor.ru/info/media/publichnoe-sobesedovanie-na-pozitsiyu-head-of-qa.html

[81] Краш-курс по автоматизации тестирования: https://apptractor.ru/info/media/krash-kurs-po-avtomatizatsii-testirovaniya.html

[82] В Spotify говорят, что лучшие разработчики не написали ни строчки кода с декабря: https://apptractor.ru/info/news/v-spotify-govoryat-chto-luchshie-razrabotchiki-ne-napisali-ni-strochki-koda-s-dekabrya.html

[83] Mobile Development Is Slowing Down. iOS Developers Are Still Winning.: https://medium.com/@avula.koti.realpage/mobile-development-is-slowing-down-ios-developers-are-still-winning-b56b6138da19

[84] A Client Paid Me $1000 for a ‘Simple’ App — Here’s What Actually Happened: https://medium.com/@avula.koti.realpage/a-client-paid-me-1000-for-a-simple-app-here-s-what-actually-happened-b7b3b6564f85

[85] Why Working Hard Isn’t Enough to Grow as a Developer: https://medium.com/womenintechnology/why-working-hard-isnt-enough-to-grow-as-a-developer-7243c77af570

[86] Software Is Dead — Long Live Software: https://insights.euclid.vc/p/software-is-dead-long-live-software

[87] Прозрачный мобайл: как навести порядок в кросс-канальном измерении In-App2Web: https://apptractor.ru/marketing-monetization/app-promotion-campaign-analytics/prozrachnyy-mobayl-kak-navesti-poryadok-v-kross-kanalnom-izmerenii-in-app2web.html

[88] Новая функция Audible синхронизирует электронные и аудиокниги: https://apptractor.ru/info/apps/novaya-funktsiya-audible-sinhroniziruet-elektronnye-i-audioknigi.html

[89] Google добавляет в приложение Gemini возможности генерации музыки: https://apptractor.ru/info/apps/google-dobavlyaet-v-prilozhenie-gemini-vozmozhnosti-generatsii-muzyki.html

[90] Самые распространенные ошибки в ASO: https://apptractor.ru/marketing-monetization/app-store-optimization/samye-rasprostranennye-oshibki-v-aso.html

[91] Анализ 50 000 отзывов в App Store — вот 10 наиболее часто упоминаемых жалоб: https://apptractor.ru/marketing-monetization/analiz-50-000-otzyvov-v-app-store-vot-10-naibolee-chasto-upominaemyh-zhalob.html

[92] We stopped forcing the subscription model on our users. Here is what happened.: https://www.elenaverna.com/p/we-stopped-forcing-the-subscription?utm_source=tldrproduct

[93] От чат-бота к AI агенту: собираем локальную систему на LibreChat, Langflow и MCP: https://habr.com/ru/companies/alfa/articles/1000342/

[94] Андрей Карпаты только что создал полноценный GPT на 240 строках Python: https://habr.com/ru/companies/bothub/articles/1001696/

[95] Распознавание речи и голосовое управление на Repka Pi 4, автономная работа, real-time, нейросеть Vosk на базе Kaldi: https://habr.com/ru/articles/988662/

[96] Предыдущий дайджест: https://habr.com/ru/articles/996720/

[97] ошибку: http://www.braintools.ru/article/4192

[98] Источник: https://habr.com/ru/articles/1002444/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1002444

www.BrainTools.ru

Rambler's Top100