9 лет Android-разработки, 3 месяца без работы - как выбраться из тупика?
Разработчик с более чем девятилетним опытом Android-разработки пожаловался на Reddit, что уже три месяца не может найти новую работу и начинает сомневаться, хочет ли вообще оставаться в мобильной разработке. Обсуждение быстро превратилось в довольно показательный срез состояния рынка Android-разработчиков в 2026 году: в комментариях появились специалисты с 5, 9, 12 и даже 14 годами опыта, которые месяцами не могут найти работу, почти не получают интервью или начинают переучиваться на backend, web и AI.
• Что случилось с автором
• «Ты не разучился программировать, ты просто заржавел»
• Android-вакансий действительно стало меньше
• Возможно, проблема не только в Android
• Android слишком узкая специализация?
• Куда уходят Android-разработчики
• AI не обязательно конкурент Android — он может стать его продолжением
• Появилась проблема «гиперспециализированных» вакансий
• Senior-интервью тоже вызывают раздражение
• Flutter тоже не выглядит очевидным спасением
• «Всё уже написано»
• Три месяца теперь воспринимаются почти как нормальный срок
• Что в итоге советует сообщество
Статья: https://apptractor.ru/info/articles/9-let-android-razrabotki-3-mesyatsa-bez-raboty-kak-vybratsya-iz-tupika.html
Платформа: Android/карьера
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Разработчик с более чем девятилетним опытом Android-разработки пожаловался на Reddit, что уже три месяца не может найти новую работу и начинает сомневаться, хочет ли вообще оставаться в мобильной разработке. Обсуждение быстро превратилось в довольно показательный срез состояния рынка Android-разработчиков в 2026 году: в комментариях появились специалисты с 5, 9, 12 и даже 14 годами опыта, которые месяцами не могут найти работу, почти не получают интервью или начинают переучиваться на backend, web и AI.
• Что случилось с автором
• «Ты не разучился программировать, ты просто заржавел»
• Android-вакансий действительно стало меньше
• Возможно, проблема не только в Android
• Android слишком узкая специализация?
• Куда уходят Android-разработчики
• AI не обязательно конкурент Android — он может стать его продолжением
• Появилась проблема «гиперспециализированных» вакансий
• Senior-интервью тоже вызывают раздражение
• Flutter тоже не выглядит очевидным спасением
• «Всё уже написано»
• Три месяца теперь воспринимаются почти как нормальный срок
• Что в итоге советует сообщество
Статья: https://apptractor.ru/info/articles/9-let-android-razrabotki-3-mesyatsa-bez-raboty-kak-vybratsya-iz-tupika.html
Платформа: Android/карьера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Xcode 27, похоже, меняет правила игры
Проведя с этой бета-версией достаточно времени, могу без преувеличения сказать: Xcode 27 выглядит как самое продуманное обновление инструмента за последние годы. Оно не просто добавляет новые функции. Оно пересматривает базовые предположения о том, как разработчики действительно работают, и перестраивает среду вокруг более удачных решений.
Это всё ещё бета-версия, поэтому до финального выпуска многое может измениться. Но уже сейчас всё выглядит на удивление цельно и определённо заслуживает обсуждения.
Вот что особенно привлекло моё внимание.
Статья: https://apptractor.ru/info/articles/xcode-27-pohozhe-menyaet-pravila-igry.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Проведя с этой бета-версией достаточно времени, могу без преувеличения сказать: Xcode 27 выглядит как самое продуманное обновление инструмента за последние годы. Оно не просто добавляет новые функции. Оно пересматривает базовые предположения о том, как разработчики действительно работают, и перестраивает среду вокруг более удачных решений.
Это всё ещё бета-версия, поэтому до финального выпуска многое может измениться. Но уже сейчас всё выглядит на удивление цельно и определённо заслуживает обсуждения.
Вот что особенно привлекло моё внимание.
Статья: https://apptractor.ru/info/articles/xcode-27-pohozhe-menyaet-pravila-igry.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
Fud AI - трекер калорий для iOS и Android
Fud AI - открытый privacy-first трекер калорий для iOS и Android. Позволяет делать снимки или импортировать до 10 фотографий еды с возможностью добавления заметок, сканировать штрихкоды, спрашивать у своего ИИ-тренера, как достичь цели, озвучивать свой обед или использовать Siri Shortcuts на iOS для записи еды и веса. Нужно использовать собственный ключ для работы с ИИ, зато никаких учетных записей, облачной синхронизации, отслеживания или рекламы — совершенно бесплатно.
В версии для iOS используется SwiftUI, в Android - Kotlin + Jetpack Compose. Плюс есть маркетинговый сайт и готовое описание для магазинов.
Fud AI на GitHub: https://github.com/apoorvdarshan/fud-ai
Платформа: iOS/Android
⭐️: 337
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Fud AI - открытый privacy-first трекер калорий для iOS и Android. Позволяет делать снимки или импортировать до 10 фотографий еды с возможностью добавления заметок, сканировать штрихкоды, спрашивать у своего ИИ-тренера, как достичь цели, озвучивать свой обед или использовать Siri Shortcuts на iOS для записи еды и веса. Нужно использовать собственный ключ для работы с ИИ, зато никаких учетных записей, облачной синхронизации, отслеживания или рекламы — совершенно бесплатно.
В версии для iOS используется SwiftUI, в Android - Kotlin + Jetpack Compose. Плюс есть маркетинговый сайт и готовое описание для магазинов.
Fud AI на GitHub: https://github.com/apoorvdarshan/fud-ai
Платформа: iOS/Android
⭐️: 337
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) Apple Photos App Tab Bar Using SwiftUI•
(iOS En) What's New in Xcode 27•
(iOS En) Stacked Glass Toasts Using SwiftUI •
(iOS En) Balancing High and Low-Level Programming in Swift•
(And En) What AI Gets Wrong About Android...•
(And En) If you don't type code yourself, you're falling behind.•
(And En) The place where leaking abstraction, data races and security vulnerabilities all meet•
(And En) What’s New in Kotlin 2.4•
(And En) Kotlin Performance Tracing on Android: From Coroutines to Reality•
(And En) Flow with Exposed: Life Finds a Way•
(And En) Koin + Kotlin Compiler = ♥️•
(And En) 5 Experimental Kotlin Features You Don't Want to Miss•
(And En) Multiple ViewModel Architecture in Jetpack Compose•
(Crs En) Kotlin/Wasm: Finally, the missing piece for a full stack Kotlin webapp!•
(Dev Ru) Заказываем кофе с помощью AI•
(Dev Ru) От вайбкодера к контекст-инженеру•
(Dev Ru) Вся магия Laravel — PHP, архитектура и highload•
(Dev En) Python for Engineers & Robotics – Master NumPy, Pandas, and ChatGPT AutomationПрошлогодние видео:
•
(iOS Ru) Расширяем iOS-разработку с помощью AI•
(And Ru) ByteWeaver. Инструментирование байт-кода во имя великого блага•
(Crs Ru) Разработка на iOS и KMP, и жизнь на полной скорости•
(Crs Ru) Почему вам не нужен Kotlin Multiplatform•
(Crs Ru) Создание indoor-карты здания во Flutter•
(Dev Ru) 30 вопросов команде и себе — техника и практика формулировка хороших вопросовPlease open Telegram to view this post
VIEW IN TELEGRAM
Обработка исключений в Kotlin Coroutines
Пытаюсь лучше понять работу Kotlin Coroutines. Беру небольшую тему про Kotlin Coroutines и пытаюсь разобраться и написать шпаргалку (максимально кратко и лаконично). Сегодня про обработку ошибок.
Статья: https://habr.com/ru/articles/1070060/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Пытаюсь лучше понять работу Kotlin Coroutines. Беру небольшую тему про Kotlin Coroutines и пытаюсь разобраться и написать шпаргалку (максимально кратко и лаконично). Сегодня про обработку ошибок.
Статья: https://habr.com/ru/articles/1070060/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
AppFiles - Mobile Development
Pose - автоматическая генерация превью для Composable Экосистема предварительного просмотра Compose отлично справляется с обработкой предварительных просмотров (Showkase, Paparazzi, Roborazzi, плагин Google для скриншот-тестирования), но не имеет механизма…
Bridge - фоновый рантайм для Android, который переживает завершение процесса и умеет объяснять своё состояние
Bridge — это среда выполнения фоновых задач Android, построенная непосредственно на основе собственных примитивов платформы: журнала событий с возможностью добавления данных, диспетчеризации с мультиплексированием JobWorkItem, анализе причин завершения процесса с помощью
Bridge на GitHub: https://github.com/iamjosephmj/bridge
Платформа: Android
⭐️: 8
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Bridge — это среда выполнения фоновых задач Android, построенная непосредственно на основе собственных примитивов платформы: журнала событий с возможностью добавления данных, диспетчеризации с мультиплексированием JobWorkItem, анализе причин завершения процесса с помощью
ApplicationExitInfo и измерения затрат с помощью HealthStats. Работа, прерванная из-за завершения процесса, возобновляется с того места, где она остановилась, и каждая отложенная или приостановленная задача может объяснить причину, опираясь на собственные отчеты платформы.Bridge на GitHub: https://github.com/iamjosephmj/bridge
Платформа: Android
⭐️: 8
Please open Telegram to view this post
VIEW IN TELEGRAM
Как мы перенесли ответственность за поддержку мапперов моделей на KSP
Я Android-разработчик в компании Workmate, и сегодня хочу рассказать о том, как мы избавились от самой нудной части своей работы - ручной поддержки мапперов моделей - и как перенесли эту ответственность на KSP.
Каждый разработчик, работавший с проектом, где одни модели мапятся в другие, знает эту боль: добавил поле в модель и пошёл обновлять десятки мапперов вручную. Переименовал параметр - компилятор взрывается ошибками, и ты снова правишь код руками. Мапперы - это “мёртвая зона”: они пишутся механически, но при этом легко ломаются и не приносят никакой ценности бизнесу.
Мы решили избавиться от этой рутины раз и навсегда и сделали библиотеку - генератор кода маппинга на основе KSP. В этой статье я расскажу, как мы пришли к такому решению, как устроена библиотека изнутри и с какими подводными камнями столкнулись.
Статья: https://habr.com/ru/articles/1069866/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я Android-разработчик в компании Workmate, и сегодня хочу рассказать о том, как мы избавились от самой нудной части своей работы - ручной поддержки мапперов моделей - и как перенесли эту ответственность на KSP.
Каждый разработчик, работавший с проектом, где одни модели мапятся в другие, знает эту боль: добавил поле в модель и пошёл обновлять десятки мапперов вручную. Переименовал параметр - компилятор взрывается ошибками, и ты снова правишь код руками. Мапперы - это “мёртвая зона”: они пишутся механически, но при этом легко ломаются и не приносят никакой ценности бизнесу.
Мы решили избавиться от этой рутины раз и навсегда и сделали библиотеку - генератор кода маппинга на основе KSP. В этой статье я расскажу, как мы пришли к такому решению, как устроена библиотека изнутри и с какими подводными камнями столкнулись.
Статья: https://habr.com/ru/articles/1069866/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
AppFiles - Mobile Development
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Почему ваше приложение выглядит дёшево (и дело не в цветах)
Я видел достаточно таких случаев, чтобы сразу узнать закономерность. Разработчик сделал действительно красивое приложение, но пропустил те самые 200 миллисекунд после того, как палец касается стекла. А ведь именно эту часть приложения пользователь буквально ощущает.
Он хотел, чтобы я раскритиковал цвета.
Но цвета вообще не были проблемой.
Давайте разберёмся.
Статья: https://apptractor.ru/info/articles/pochemu-vashe-prilozhenie-vyglyadit-dyoshevo-i-delo-ne-v-tsvetah.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я видел достаточно таких случаев, чтобы сразу узнать закономерность. Разработчик сделал действительно красивое приложение, но пропустил те самые 200 миллисекунд после того, как палец касается стекла. А ведь именно эту часть приложения пользователь буквально ощущает.
Он хотел, чтобы я раскритиковал цвета.
Но цвета вообще не были проблемой.
Давайте разберёмся.
Статья: https://apptractor.ru/info/articles/pochemu-vashe-prilozhenie-vyglyadit-dyoshevo-i-delo-ne-v-tsvetah.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
SurfaceForge - отражающие поверхности, реагирующие на наклон устройства
SurfaceForge - поверхности, реагирующие на наклон устройства. Сделано на SwiftUI + Metal.
SurfaceForge на GitHub: https://github.com/AetherMaker/surface-forge
Платформа: iOS
⭐️: 24
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
SurfaceForge - поверхности, реагирующие на наклон устройства. Сделано на SwiftUI + Metal.
SurfaceForge на GitHub: https://github.com/AetherMaker/surface-forge
Платформа: iOS
⭐️: 24
Please open Telegram to view this post
VIEW IN TELEGRAM
Как мы научили XCUITest тапать в контролы на глубине 136 уровней вложенности
У нас есть server-driven UI экран, наш BDUI, про движок которого была отдельная статья. Дерево вьюх у него настолько глубокое, что любое обращение теста к элементам падало. Причём двумя разными способами, и оба — не из-за кода, а из-за жёстких лимитов внутри самого фреймворка автоматизации.
В итоге мы научились читать дерево произвольной глубины и тапать/вводить текст в поля, которые лежат глубже ~60 уровней AX-дерева, где публичный XCUITest бессилен. Далее я буду фокусироваться на общей технике для XCUITest, а не на внутреннем устройстве нашего движка. Так что статья пригодится, даже если у вас никакого BDUI нет, а просто есть очень глубокий экран.
Статья: https://habr.com/ru/companies/cian/articles/1071034/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
У нас есть server-driven UI экран, наш BDUI, про движок которого была отдельная статья. Дерево вьюх у него настолько глубокое, что любое обращение теста к элементам падало. Причём двумя разными способами, и оба — не из-за кода, а из-за жёстких лимитов внутри самого фреймворка автоматизации.
В итоге мы научились читать дерево произвольной глубины и тапать/вводить текст в поля, которые лежат глубже ~60 уровней AX-дерева, где публичный XCUITest бессилен. Далее я буду фокусироваться на общей технике для XCUITest, а не на внутреннем устройстве нашего движка. Так что статья пригодится, даже если у вас никакого BDUI нет, а просто есть очень глубокий экран.
Статья: https://habr.com/ru/companies/cian/articles/1071034/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
DI без рефлексии и бойлерплейта: магия KSP в действии
KoGen Di родился из реальной боли в многомодульной разработке — и с тех пор заметно подрос: компиляционная валидация графа, изоляция по модулям, поддержка
Статья: https://habr.com/ru/articles/1070880/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
KoGen Di родился из реальной боли в многомодульной разработке — и с тех пор заметно подрос: компиляционная валидация графа, изоляция по модулям, поддержка
Fragment/ComponentActivity, а недавно — и собственный typed Gradle-плагин. Я уже перевёл на него несколько своих рабочих проектов, и количество рутинного DI-кода в них сократилось в разы. Раньше в открытом доступе было только демо-приложение; теперь открыт весь проект целиком — рантайм, KSP-процессор и Gradle-плагин.Статья: https://habr.com/ru/articles/1070880/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
JS-инъекция для iOS-тестов: как подружить WKWebView и XCTest
Мы пишем UI-тесты для Ozon Банка, и примерно каждый второй экран — с WebView. Оферты, платёжные формы, веб-флоу — всё это рендерится внутри WKWebView. И здесь XCTest оказывается почти бессилен.
Статья: https://habr.com/ru/companies/ozonbank/articles/1016596/
Платформа: iOS/тестирование
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Мы пишем UI-тесты для Ozon Банка, и примерно каждый второй экран — с WebView. Оферты, платёжные формы, веб-флоу — всё это рендерится внутри WKWebView. И здесь XCTest оказывается почти бессилен.
Статья: https://habr.com/ru/companies/ozonbank/articles/1016596/
Платформа: iOS/тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
Архитектура Android переходит от Event-Driven UI к State-Driven UI
Состояние — это то, за чем UI наблюдает постоянно. События или эффекты — это то, что UI должен обработать только один раз. Такой подход давно распространён в архитектурах MVVM и MVI. Однако если посмотреть на актуальные рекомендации Android-разработки по событиям UI, Google предлагает пересмотреть саму эту модель.
Статья: https://apptractor.ru/info/articles/arhitektura-android-perehodit-ot-event-driven-ui-k-state-driven-ui.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Состояние — это то, за чем UI наблюдает постоянно. События или эффекты — это то, что UI должен обработать только один раз. Такой подход давно распространён в архитектурах MVVM и MVI. Однако если посмотреть на актуальные рекомендации Android-разработки по событиям UI, Google предлагает пересмотреть саму эту модель.
Статья: https://apptractor.ru/info/articles/arhitektura-android-perehodit-ot-event-driven-ui-k-state-driven-ui.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Android Skills — что выпустил Google и почему большинство разработчиков используют навыки неправильно
Вы, скорее всего, уже видели анонс. Android Skills запустили в апреле; реакция превзошла ожидания Google, а в начале августа команда Android Developer Relations опубликовала подробный материал, в котором объяснила философию проекта.
Большинство разработчиков восприняли это как обычное описание релиза.
На самом деле это набор архитектурных решений о том, как должна выглядеть Android-разработка с помощью ИИ. И если их не понять, можно в итоге получить конфигурацию агента, которая будет стоить дороже, работать медленнее и выдавать результаты хуже, чем если бы вы вообще ничего не настраивали.
Статья: https://apptractor.ru/info/articles/android-skills-chto-vypustil-google-i-pochemu-bolshinstvo-razrabotchikov-ispolzuyut-navyki-nepravilno.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Вы, скорее всего, уже видели анонс. Android Skills запустили в апреле; реакция превзошла ожидания Google, а в начале августа команда Android Developer Relations опубликовала подробный материал, в котором объяснила философию проекта.
Большинство разработчиков восприняли это как обычное описание релиза.
На самом деле это набор архитектурных решений о том, как должна выглядеть Android-разработка с помощью ИИ. И если их не понять, можно в итоге получить конфигурацию агента, которая будет стоить дороже, работать медленнее и выдавать результаты хуже, чем если бы вы вообще ничего не настраивали.
Статья: https://apptractor.ru/info/articles/android-skills-chto-vypustil-google-i-pochemu-bolshinstvo-razrabotchikov-ispolzuyut-navyki-nepravilno.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
ZeroDroid - инструменты для анализа сетей, сигналов и безопасности
ZeroDroid — открытое Android-приложение, которое превращает смартфон в универсальный набор инструментов для анализа беспроводных сетей, радиосигналов, датчиков и безопасности. Проект объединяет 29 инструментов в пяти категориях: Wireless, RF & Signals, Sensors, Network и Security. Для работы используются аппаратные возможности самого телефона — Wi-Fi, Bluetooth и BLE, NFC, GPS, сотовый модем, магнитометр, барометр, микрофон, USB, UWB и ИК-порт, если они присутствуют в конкретном устройстве.
Среди наиболее интересных функций — анализатор Wi-Fi, BLE-сканер с просмотром GATT, инструменты NFC, Wi-Fi Direct и Wi-Fi Aware, анализ ультразвукового диапазона 18–24 кГц, работа с внешними SDR-приёмниками через USB OTG и мониторинг датчиков смартфона. Есть также GPS-трекер с информацией о GNSS-спутниках и записью NMEA, EMF Mapper на основе магнитометра, инспектор USB-устройств и анализатор сотовых вышек.
ZeroDroid написан на Kotlin с использованием Jetpack Compose и Material 3. Архитектура построена вокруг MVVM, StateFlow и Hilt, для локального хранения используется Room, для камеры — CameraX, а для распознавания QR-кодов — ML Kit и ZXing. Минимальная поддерживаемая версия — Android 8.0, хотя для полноценной работы современных Bluetooth и Wi-Fi API автор рекомендует более новые версии Android. Не все возможности доступны на каждом смартфоне: например, UWB, ИК-передатчик или барометр зависят от конкретного аппаратного оснащения.
ZeroDroid на GitHub: https://github.com/theabhishekchandra/ZeroDroid
Платформа: Android
⭐️: 22
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
ZeroDroid — открытое Android-приложение, которое превращает смартфон в универсальный набор инструментов для анализа беспроводных сетей, радиосигналов, датчиков и безопасности. Проект объединяет 29 инструментов в пяти категориях: Wireless, RF & Signals, Sensors, Network и Security. Для работы используются аппаратные возможности самого телефона — Wi-Fi, Bluetooth и BLE, NFC, GPS, сотовый модем, магнитометр, барометр, микрофон, USB, UWB и ИК-порт, если они присутствуют в конкретном устройстве.
Среди наиболее интересных функций — анализатор Wi-Fi, BLE-сканер с просмотром GATT, инструменты NFC, Wi-Fi Direct и Wi-Fi Aware, анализ ультразвукового диапазона 18–24 кГц, работа с внешними SDR-приёмниками через USB OTG и мониторинг датчиков смартфона. Есть также GPS-трекер с информацией о GNSS-спутниках и записью NMEA, EMF Mapper на основе магнитометра, инспектор USB-устройств и анализатор сотовых вышек.
ZeroDroid написан на Kotlin с использованием Jetpack Compose и Material 3. Архитектура построена вокруг MVVM, StateFlow и Hilt, для локального хранения используется Room, для камеры — CameraX, а для распознавания QR-кодов — ML Kit и ZXing. Минимальная поддерживаемая версия — Android 8.0, хотя для полноценной работы современных Bluetooth и Wi-Fi API автор рекомендует более новые версии Android. Не все возможности доступны на каждом смартфоне: например, UWB, ИК-передатчик или барометр зависят от конкретного аппаратного оснащения.
ZeroDroid на GitHub: https://github.com/theabhishekchandra/ZeroDroid
Платформа: Android
⭐️: 22
Please open Telegram to view this post
VIEW IN TELEGRAM
Senior инженеры замолчали, и вот почему это плохой знак
Речь не о том, что у этих инженеров закончились мнения. Мнений у них по-прежнему хватает. Изменилось другое — куда эти мнения теперь направляются. Стало меньше замечаний на дизайн-ревью. Меньше возражений в архитектурных обсуждениях. Меньше тех моментов, когда человек с десятью годами производственного опыта говорит: подождите, я уже видел нечто подобное, и вот чем всё закончилось.
Встречи по-прежнему проходят. Решения по-прежнему принимаются. Но один конкретный вид трения стал почти незаметным. А это трение выполняло важную функцию.
Статья: https://apptractor.ru/info/articles/senior-inzhenery-zamolchali-i-vot-pochemu-eto-plohoy-znak.html
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Речь не о том, что у этих инженеров закончились мнения. Мнений у них по-прежнему хватает. Изменилось другое — куда эти мнения теперь направляются. Стало меньше замечаний на дизайн-ревью. Меньше возражений в архитектурных обсуждениях. Меньше тех моментов, когда человек с десятью годами производственного опыта говорит: подождите, я уже видел нечто подобное, и вот чем всё закончилось.
Встречи по-прежнему проходят. Решения по-прежнему принимаются. Но один конкретный вид трения стал почти незаметным. А это трение выполняло важную функцию.
Статья: https://apptractor.ru/info/articles/senior-inzhenery-zamolchali-i-vot-pochemu-eto-plohoy-znak.html
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤣3
Stitch - инъекция зависимостей для SwiftUI
Stitch — это лёгкая библиотека внедрения зависимостей (DI), вдохновлённая SwiftUI и обеспечивающая безопасность на этапе компиляции. Она позволяет описывать карту зависимостей без необходимости использовать инструменты генерации кода.
Безопасность Stitch на этапе компиляции даёт уверенность в корректности настройки: если проект компилируется, значит зависимости сконфигурированы правильно. В отличие от типичных контейнеров зависимостей, здесь не возникает ошибок в рантайме из-за того, что какая-либо зависимость не была зарегистрирована.
Для описания карты зависимостей Stitch использует новые макросы Swift 5.9+, что делает API более удобным, а для получения объектов из карты предоставляет соответствующие реализации
Stitch предлагает следующие ключевые возможности:
1. Интеграция в жизненный цикл SwiftUI и привычный для SwiftUI стиль работы — использовать Stitch можно так же, как другие оболочки свойств SwiftUI.
2. Внедрение зависимостей через протоколы внутри представлений SwiftUI. Библиотека расширяет возможности
3. Доступ к Combine-издателям для свойств протокольных типов без необходимости добавлять в протокол переменные вида
Stitch на GitHub: https://github.com/entrhq/stitch
Платформа: iOS
⭐️: 19
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Stitch — это лёгкая библиотека внедрения зависимостей (DI), вдохновлённая SwiftUI и обеспечивающая безопасность на этапе компиляции. Она позволяет описывать карту зависимостей без необходимости использовать инструменты генерации кода.
Безопасность Stitch на этапе компиляции даёт уверенность в корректности настройки: если проект компилируется, значит зависимости сконфигурированы правильно. В отличие от типичных контейнеров зависимостей, здесь не возникает ошибок в рантайме из-за того, что какая-либо зависимость не была зарегистрирована.
Для описания карты зависимостей Stitch использует новые макросы Swift 5.9+, что делает API более удобным, а для получения объектов из карты предоставляет соответствующие реализации
@propertyWrapper.Stitch предлагает следующие ключевые возможности:
1. Интеграция в жизненный цикл SwiftUI и привычный для SwiftUI стиль работы — использовать Stitch можно так же, как другие оболочки свойств SwiftUI.
2. Внедрение зависимостей через протоколы внутри представлений SwiftUI. Библиотека расширяет возможности
ObservableObject, позволяя работать с протокольными типами и при этом корректно обновлять представления.3. Доступ к Combine-издателям для свойств протокольных типов без необходимости добавлять в протокол переменные вида
Publisher<Object, Never> и вручную проксировать их в реализации.Stitch на GitHub: https://github.com/entrhq/stitch
Платформа: iOS
⭐️: 19
Please open Telegram to view this post
VIEW IN TELEGRAM
Подготовьте ваше приложение к более широким ограничениям объема памяти
Отличный пользовательский опыт — одна из ключевых целей Android, а для этого устройства должны оставаться быстрыми, отзывчивыми и надёжными. Именно поэтому оптимизация памяти становится важнее, чем когда-либо. На фоне роста цен на память новые устройства сохраняют прежний объём оперативной памяти или даже получают меньше, однако пользователи по-прежнему ожидают такой же плавной и производительной работы приложений.
В Android 17 ввели ограничения памяти для отдельных приложений, начав с устройств Pixel. Их задача — защитить общую отзывчивость системы от приложений, которые потребляют слишком много памяти и вызывают замедление всего устройства. В течение следующего года всё больше производителей начнут использовать ограничения памяти Android для приложений на устройствах с объёмом ОЗУ от 4 ГБ до 16 ГБ и более. Если приложение превысит эти лимиты, система замедлит его работу, а затем может завершить процесс. Поэтому уменьшение объёма потребляемой приложением памяти становится критически важным: это помогает избежать ограничения производительности со стороны ОС и сохранить плавный пользовательский опыт.
В этой статье разберём, как эти ограничения работают внутри системы, как измерять потребление памяти с помощью новых метрик Android vitals и какие конкретные действия помогут оптимизировать приложение или игру.
Статья: https://apptractor.ru/info/articles/podgotovte-vashe-prilozhenie-k-bolee-shirokim-ogranicheniyam-obema-pamyati.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Отличный пользовательский опыт — одна из ключевых целей Android, а для этого устройства должны оставаться быстрыми, отзывчивыми и надёжными. Именно поэтому оптимизация памяти становится важнее, чем когда-либо. На фоне роста цен на память новые устройства сохраняют прежний объём оперативной памяти или даже получают меньше, однако пользователи по-прежнему ожидают такой же плавной и производительной работы приложений.
В Android 17 ввели ограничения памяти для отдельных приложений, начав с устройств Pixel. Их задача — защитить общую отзывчивость системы от приложений, которые потребляют слишком много памяти и вызывают замедление всего устройства. В течение следующего года всё больше производителей начнут использовать ограничения памяти Android для приложений на устройствах с объёмом ОЗУ от 4 ГБ до 16 ГБ и более. Если приложение превысит эти лимиты, система замедлит его работу, а затем может завершить процесс. Поэтому уменьшение объёма потребляемой приложением памяти становится критически важным: это помогает избежать ограничения производительности со стороны ОС и сохранить плавный пользовательский опыт.
В этой статье разберём, как эти ограничения работают внутри системы, как измерять потребление памяти с помощью новых метрик Android vitals и какие конкретные действия помогут оптимизировать приложение или игру.
Статья: https://apptractor.ru/info/articles/podgotovte-vashe-prilozhenie-k-bolee-shirokim-ogranicheniyam-obema-pamyati.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Как Tinder сократил холодные старты на 47%, благодаря R8 Configuration Analyzer
Используя R8 Configuration Analyzer, Tinder смог найти и удалить непреднамеренные блокировки оптимизации. Результаты оказались заметными сразу: холодные запуски сократились на 47%, размер загружаемого приложения уменьшился на 28,98% — до 61,5 МБ, а число заметных пользователю ANR снизилось на 28%.
Статья: https://apptractor.ru/info/articles/kak-tinder-sokratil-holodnye-starty-na-47-blagodarya-r8-configuration-analyzer.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Используя R8 Configuration Analyzer, Tinder смог найти и удалить непреднамеренные блокировки оптимизации. Результаты оказались заметными сразу: холодные запуски сократились на 47%, размер загружаемого приложения уменьшился на 28,98% — до 61,5 МБ, а число заметных пользователю ANR снизилось на 28%.
Статья: https://apptractor.ru/info/articles/kak-tinder-sokratil-holodnye-starty-na-47-blagodarya-r8-configuration-analyzer.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Boxlore - умный плеер подкастов для Android
Большинство приложений для подкастов обращаются к открытому API, выполняют буквальный поиск по словам, показывают чарты Apple — и на этом всё. Ошибитесь в написании названия шоу — и ничего не найдёте. Попробуйте искать по теме — получите совпадения по заголовкам, которые вообще не отражают смысл запроса. А когда вы уже внутри приложения, главный экран редко ощущается как ваш: одинаковые подборки для всех и почти никакого обучения на основе того, что вы действительно слушаете.
Boxlore создан именно вокруг этих двух проблем. Он помогает найти шоу даже при неточном написании названия или искать подкасты и отдельные эпизоды по смыслу, когда вы примерно знаете, что хотите, но не можете сформулировать точный запрос. А по мере прослушивания приложение становится персональнее: Home, Explore, очередь и загрузки переупорядочиваются прямо на устройстве с учётом ваших предпочтений. Появляются подборки по времени суток, Because You Like, персональные рекомендации For You, а также карточки для случайных открытий — когда хочется найти что-то такое, что вы сами никогда не стали бы искать. Данные о ваших предпочтениях остаются на телефоне. Можно слушать потоково или скачивать выпуски для офлайн-доступа, полноценно управлять очередью и обходиться без рекламы и платных ограничений там, где это действительно важно.
Умный каталог охватывает популярные подкасты из чартов и ежедневно расширяется — пока в нём есть не абсолютно все шоу в мире. Но даже за пределами этого индекса Boxlore продолжает работать как обычный клиент для подкастов: можно подписываться, слушать, скачивать выпуски и импортировать OPML.
Boxlore на GitHub: https://github.com/boxcreate/boxlore
Платформа: Android
⭐️: 59
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Большинство приложений для подкастов обращаются к открытому API, выполняют буквальный поиск по словам, показывают чарты Apple — и на этом всё. Ошибитесь в написании названия шоу — и ничего не найдёте. Попробуйте искать по теме — получите совпадения по заголовкам, которые вообще не отражают смысл запроса. А когда вы уже внутри приложения, главный экран редко ощущается как ваш: одинаковые подборки для всех и почти никакого обучения на основе того, что вы действительно слушаете.
Boxlore создан именно вокруг этих двух проблем. Он помогает найти шоу даже при неточном написании названия или искать подкасты и отдельные эпизоды по смыслу, когда вы примерно знаете, что хотите, но не можете сформулировать точный запрос. А по мере прослушивания приложение становится персональнее: Home, Explore, очередь и загрузки переупорядочиваются прямо на устройстве с учётом ваших предпочтений. Появляются подборки по времени суток, Because You Like, персональные рекомендации For You, а также карточки для случайных открытий — когда хочется найти что-то такое, что вы сами никогда не стали бы искать. Данные о ваших предпочтениях остаются на телефоне. Можно слушать потоково или скачивать выпуски для офлайн-доступа, полноценно управлять очередью и обходиться без рекламы и платных ограничений там, где это действительно важно.
Умный каталог охватывает популярные подкасты из чартов и ежедневно расширяется — пока в нём есть не абсолютно все шоу в мире. Но даже за пределами этого индекса Boxlore продолжает работать как обычный клиент для подкастов: можно подписываться, слушать, скачивать выпуски и импортировать OPML.
Boxlore на GitHub: https://github.com/boxcreate/boxlore
Платформа: Android
⭐️: 59
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
•
(iOS En) SwiftUI in motion•
(iOS En) AllTrails: Momentum without a rewrite•
(iOS En) Flow data through SwiftUI•
(iOS En) SwiftUI essentials•
(iOS En) A guide to layout in SwiftUI•
(iOS En) Design with SwiftUI•
(iOS En) Reorderable Modifier | Multi-Item Reordering | Section Reordering | SwiftUI•
(iOS En) Prominent Action Custom Tab Bar | SwiftUI •
(iOS En) Device Hub Explained - What Every Apple Developer Should Know•
(And Ru) Android Runtime под капотом•
(And En) The Multi-Agent Code Review Workflow For My Production Android Apps•
(And En) Vertical vs. Horizontal Slicing - The ONLY Right Way to Split Down Your App•
(And En) A tale of the Gradle DSLs•
(Crs En) SwiftPM support for Kotlin Multiplatform•
(Crs En) All platforms are unique but some platforms are more unique than others•
(Crs En) KMP at Scale in Kuaishou Super App for over 700M users•
(Dev Ru) Выпрямляем руки агентов: как сделать MCP удобными и действительно полезными•
(Dsg Ru) DesignOps: операционная система команды, которая работает на вас•
(Dsg Ru) Дизайн для программиста: пробую Claude Design•
(Dev En) Build a live translation broadcast app with the Gemini Live API and LiveKit•
(Dev En) Go Get It, with Kotlin Lessons Learned Evolving Uber’s Java BackendПрошлогодние видео:
•
(Dev Ru) Генерация UI Kit с использованием ИИ•
(Dev Ru) Надежность мобильных приложений: что это и как достичь•
(Dev Ru) Задача на логику из собеседования в Amazon (+ все собеседования)Please open Telegram to view this post
VIEW IN TELEGRAM
👎1🤬1💩1