iOS
Помните, когда вышел SwiftUI, мы все удивлялись тому, как автоматически обновляются представления при изменении
Поставьте 👍, если хотите эту статью на русском
• Молот и наковальня iOS-разработчика
• Apple объявляет о масштабных изменениях в App Store в ЕС
• SwiftCrossUI — кроссплатформенный декларативный UI-фреймворк, вдохновленный SwiftUI
• How to support Dynamic Type accessibility in SwiftUI
• Sparkle: Distribution apps in- and out of the Mac App Store
• Adding Icon Composer icons to Xcode
• Apple’s On-Device Foundation Model Is Here.. But Is It Any Good?
• Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention
• Embedding Godot games in iOS apps is easy now
• Decoding Swift types that require additional data
Помните, когда вышел SwiftUI, мы все удивлялись тому, как автоматически обновляются представления при изменении
@Published свойств? Что ж, Apple тихо работает над тем, чтобы привнести эту же магию в UIKit и AppKit. А что самое лучшее? Она уже появилась в iOS 18/macOS 15, но о ней вряд ли кто-то знает. Вам даже не нужен Xcode 26, достаточно одной простой записи plist. Включите его с помощью ключа, и ваши представления волшебным образом обновятся при изменении ваших @Observable моделей. Больше никаких ручных вызовов setNeedsDisplay()!Поставьте 👍, если хотите эту статью на русском
• Молот и наковальня iOS-разработчика
• Apple объявляет о масштабных изменениях в App Store в ЕС
• SwiftCrossUI — кроссплатформенный декларативный UI-фреймворк, вдохновленный SwiftUI
• How to support Dynamic Type accessibility in SwiftUI
• Sparkle: Distribution apps in- and out of the Mac App Store
• Adding Icon Composer icons to Xcode
• Apple’s On-Device Foundation Model Is Here.. But Is It Any Good?
• Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention
• Embedding Godot games in iOS apps is easy now
• Decoding Swift types that require additional data
steipete.me
Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention | Peter Steinberger
Discover how iOS 18's hidden automatic observation tracking brings SwiftUI-like reactive programming to UIKit and AppKit, making your UI code cleaner and more maintainable.
👍8
Android
NoDPI представляет собой асинхронный прокси-сервер на базе библиотеки asyncio Он перехватывает tls-рукопожатия (handshake) исходящих соединений и отправляет их на фрагментацию. Если домен присутствует в списке заблоченных, программа разбивает пэйлоад на несколько кусков случайного количества и случайной длины, и склеивает с байтовой последовательностью \x16\x03\x04 (+ data). Т. е. одна tls запись превращается в несколько записей разной длины. После этого они объединяются и отправляются как один пакет. Пока у DPI нет мощностей, чтобы разбираться с таким хаосом в пакетах, и все это благополучно следует к пункту назначения, а мы, довольные, смотрим YouTube. История разработки приложения - в статье на Хабре. Правда, в комментариях там же пишут, что не работает.
• Как Blinkit решил загадку производительности Android-приложения с помощью Droid Dex
• Store — решение для работы с данными на Kotlin Multiplatform
• Что не так с Android разработкой?
• Эти фичи Kotlin меняют правила игры
• NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android
• Boost Android Development with Gemini CLI in 5 Minutes
• Passkeys & Credential Manager in Android
• Initial exploration of using Koog for developing Kotlin based AI agents
• Top announcements to know from Google Play at I/O ‘25
• Get ready for the next generation of gameplay powered by Play Games Services
• Reducing App Size: Proguard, R8, App Bundles & Resource Shrinking
• Is mobile development a dead-end after 6-9 years?
NoDPI представляет собой асинхронный прокси-сервер на базе библиотеки asyncio Он перехватывает tls-рукопожатия (handshake) исходящих соединений и отправляет их на фрагментацию. Если домен присутствует в списке заблоченных, программа разбивает пэйлоад на несколько кусков случайного количества и случайной длины, и склеивает с байтовой последовательностью \x16\x03\x04 (+ data). Т. е. одна tls запись превращается в несколько записей разной длины. После этого они объединяются и отправляются как один пакет. Пока у DPI нет мощностей, чтобы разбираться с таким хаосом в пакетах, и все это благополучно следует к пункту назначения, а мы, довольные, смотрим YouTube. История разработки приложения - в статье на Хабре. Правда, в комментариях там же пишут, что не работает.
• Как Blinkit решил загадку производительности Android-приложения с помощью Droid Dex
• Store — решение для работы с данными на Kotlin Multiplatform
• Что не так с Android разработкой?
• Эти фичи Kotlin меняют правила игры
• NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android
• Boost Android Development with Gemini CLI in 5 Minutes
• Passkeys & Credential Manager in Android
• Initial exploration of using Koog for developing Kotlin based AI agents
• Top announcements to know from Google Play at I/O ‘25
• Get ready for the next generation of gameplay powered by Play Games Services
• Reducing App Size: Proguard, R8, App Bundles & Resource Shrinking
• Is mobile development a dead-end after 6-9 years?
Хабр
NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android
Салют, Хабр! На связи снова я, Aragorn, со своим проектом по терроризированию Роскомпозора. В прошлый раз я рассказывал о NoDPI - утилите для «раздеградирования» YouTube и установил личный...
❤3👍2👌2
Разработка
• Google выпускает Gemma 3n
• Умная камера Petlibro использует ИИ для распознавания и описания движений питомцев
• «Тупой ИИ» с нами надолго. Почему в новых моделях больше галлюцинаций
• Статья 1: Введение в MV шаблоны
• What is free trial abuse -- and how can you stop it?
• Don’t Be Ashamed to Say "I Don’t Know"
Маркетинг
• VK Реклама представила ИИ редактор рекламных текстов
• Google запускает Doppl — приложение, позволяющее визуализировать, как на вас будет смотреться тот или иной наряд
Кроссплатформа
• Кроссплатформа, умный склад и DnD: кодим, автоматизируем, побеждаем
• Why Liquid Glass Is Making Developers Rethink Flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
AppTractor
Google выпускает Gemma 3n
После предварительного просмотра в прошлом месяце на Google I/O, полная версия теперь здесь и готова к запуску непосредственно на вашем оборудовании.
👍3
Рост цифровой веры
Индийский стартап, стоящий за индуистским религиозным приложением Sri Mandir, привлек $20 млн в новом раунде — всего через девять месяцев после получения $18 млн. Приложение собрало более 40 миллионов загрузок с момента запуска. За последние 12 месяцев оно позволило 1.2 миллиона верующих совершать онлайн-молитвы и делать подношения в более чем 70 храмах по всей Индии.
В настоящее время у Sri Mandir около 3.5 миллионов активных пользователей в месяц, в том числе около 90,000 из-за пределов Индии. Хотя база пользователей приложения остается в основном внутренней, ARPU за рубежом значительно выше — около 81 доллара по сравнению с 7–9 долларами в Индии. Примечательно, что почти 20% дохода платформы поступает от индийской диаспоры в США, Великобритании, ОАЭ, Канаде, Австралии и Новой Зеландии.
В начале 2025 года оборот Sri Mandir превысил 12 миллионов долларов. Приложение также имеет шестимесячный уровень удержания около 55%, что означает, что более половины его пользователей остаются активными через шесть месяцев после регистрации.
В мире 10 лучших религиозных приложений показали 15% рост ежемесячно активных пользователей в течение первой половины 2025 года, даже при снижении загрузок на 2% (посмотрите еще пример Bible Chat). Рынок религиозных приложений Индии опередил эту мировую тенденцию: 10 лучших приложений зафиксировали 60% рост числа активных пользователей в месяц и 50% рост числа загрузок. На Индию пришлось 15% от общего объема мировых инвестиций в религиозные технологии с 2020 года, что сделало ее вторым по величине рынком после США по объему финансирования.
Индийский стартап, стоящий за индуистским религиозным приложением Sri Mandir, привлек $20 млн в новом раунде — всего через девять месяцев после получения $18 млн. Приложение собрало более 40 миллионов загрузок с момента запуска. За последние 12 месяцев оно позволило 1.2 миллиона верующих совершать онлайн-молитвы и делать подношения в более чем 70 храмах по всей Индии.
В настоящее время у Sri Mandir около 3.5 миллионов активных пользователей в месяц, в том числе около 90,000 из-за пределов Индии. Хотя база пользователей приложения остается в основном внутренней, ARPU за рубежом значительно выше — около 81 доллара по сравнению с 7–9 долларами в Индии. Примечательно, что почти 20% дохода платформы поступает от индийской диаспоры в США, Великобритании, ОАЭ, Канаде, Австралии и Новой Зеландии.
В начале 2025 года оборот Sri Mandir превысил 12 миллионов долларов. Приложение также имеет шестимесячный уровень удержания около 55%, что означает, что более половины его пользователей остаются активными через шесть месяцев после регистрации.
В мире 10 лучших религиозных приложений показали 15% рост ежемесячно активных пользователей в течение первой половины 2025 года, даже при снижении загрузок на 2% (посмотрите еще пример Bible Chat). Рынок религиозных приложений Индии опередил эту мировую тенденцию: 10 лучших приложений зафиксировали 60% рост числа активных пользователей в месяц и 50% рост числа загрузок. На Индию пришлось 15% от общего объема мировых инвестиций в религиозные технологии с 2020 года, что сделало ее вторым по величине рынком после США по объему финансирования.
Религиозные технологические стартапы приобретают все большую известность во всем мире, особенно в таких экономиках, как Индия, из-за важности культуры и религии среди населения в сочетании с ростом проникновения интернета, цифровых платежей и растущим принятием электронной коммерции, особенно в городах 2–3 уровня. Мы можем ожидать, что этот сектор будет расти дальше в ближайшем будущем.
👍3😁1
iOS
Перевел вчерашнюю статью про фреймворк Observation. Конечно, про основное там умолчали - работает это все с iOS 18. Так что если вы поддерживаете что-то старше, то хрен вам, а не автоматическое отслеживание изменений. Но, надо признать, сделали все красиво и удобно. Так что через пару лет можно будет пользоваться.
• Автоматическое отслеживание изменений в UIKit и AppKit: функция, о которой Apple забыла упомянуть
• Крупные автопроизводители отказываются от CarPlay Ultra
• ComponentsKit — набор красивых компонентов UIKit и SwiftUI
• VIPER vs TCA: What Large iOS Teams Actually Use
• Understanding and Improving SwiftUI Performance
• Sendable in Swift: The Silent Killer of Race Conditions
Перевел вчерашнюю статью про фреймворк Observation. Конечно, про основное там умолчали - работает это все с iOS 18. Так что если вы поддерживаете что-то старше, то хрен вам, а не автоматическое отслеживание изменений. Но, надо признать, сделали все красиво и удобно. Так что через пару лет можно будет пользоваться.
• Автоматическое отслеживание изменений в UIKit и AppKit: функция, о которой Apple забыла упомянуть
• Крупные автопроизводители отказываются от CarPlay Ultra
• ComponentsKit — набор красивых компонентов UIKit и SwiftUI
• VIPER vs TCA: What Large iOS Teams Actually Use
• Understanding and Improving SwiftUI Performance
• Sendable in Swift: The Silent Killer of Race Conditions
AppTractor
Автоматическое отслеживание изменений в UIKit и AppKit: функция, о которой Apple забыла упомянуть
Волшебство происходит, когда вы объединяете пользовательские трейты с наблюдаемыми объектами. Вы получаете автоматическое распространение И автоматические обновления.
👍1
Android
Статья Дмитрия Глазунова посвящена грамотному управлению состоянием в приложениях на Jetpack Compose при использовании навигации. Автор показывает, какие проблемы могут возникать — например, потеря данных при возвращении назад или сложности с передачей аргументов между экранами — и объясняет, почему важно правильно распределять ответственность между
• Kotlin : 6 Advanced Flow Features You Must know
• Everyday Challenges of an Android Developer — Skeleton Loaders: The Illusion of Speed
• How I Optimize My Android App from 15MB to under 2MB
• Managing state across navigation in Jetpack Compose
• Custom Scene Strategy in Navigation 3 — Make Your App Flow Your Way
Статья Дмитрия Глазунова посвящена грамотному управлению состоянием в приложениях на Jetpack Compose при использовании навигации. Автор показывает, какие проблемы могут возникать — например, потеря данных при возвращении назад или сложности с передачей аргументов между экранами — и объясняет, почему важно правильно распределять ответственность между
ViewModel, SavedStateHandle, rememberSaveable и CompositionLocal. Главная мысль статьи — не существует универсального решения для всех случаев. Состояние, связанное с бизнес-логикой и жизненным циклом экрана, должно храниться во ViewModel; данные интерфейса — в rememberSaveable; а контекстно-общие значения — передаваться через CompositionLocal. Для сложных пользовательских потоков стоит использовать общие ViewModel на navGraph-уровне. Такой подход делает архитектуру приложения предсказуемой, модульной и устойчивой к изменениям.• Kotlin : 6 Advanced Flow Features You Must know
• Everyday Challenges of an Android Developer — Skeleton Loaders: The Illusion of Speed
• How I Optimize My Android App from 15MB to under 2MB
• Managing state across navigation in Jetpack Compose
• Custom Scene Strategy in Navigation 3 — Make Your App Flow Your Way
Medium
Managing state across navigation in Jetpack Compose
Jetpack Compose gets rid of a lot of XML boilerplate but managing state between screens still trips up even experienced developers.
❤3👍3
Если вы только освоили промпт-инжиниринг, то у меня для вас плохая новость. Все прогрессивное человечество уже переходит на контекст инжиниринг. Описывают его как "искусство предоставления всего контекста для задачи". Сюда входит начальный набор инструкций, задача или вопрос от пользователя, текущее состоянии и история, база знаний, извлеченная информация (RAG), описание инструментов и т.п. Говорят, что секрет создания по-настоящему эффективных ИИ-агентов не столько связан со сложностью кода, который вы пишете, сколько с качеством контекста, который вы предоставляете. Так что совсем скоро вместо программистов, занимающихся кодом, будут программисты, занимающиеся контекстом. Отдельные языки будут для Gemini, ChatGPT и прочих...
Разработка
• Новый навык в ИИ — не промпты, а контекст инжиниринг
• When a PM takes over engineering
• Challenging projects every programmer should try
• 14 logic-driven UI design tips to improve any interface
• Saying bye to 4px spacing and hello to Fibonacci
Маркетинг
• Sri Mandir получает новые инвестиции по мере роста цифровой веры
Кроссплатформа
• Flutter’s Biggest Problems: What Google Doesn’t Want You to Know
• Why Cross-Platform Teams Are Shifting to Native — With Case Studies That Might Surprise You
Разработка
• Новый навык в ИИ — не промпты, а контекст инжиниринг
• When a PM takes over engineering
• Challenging projects every programmer should try
• 14 logic-driven UI design tips to improve any interface
• Saying bye to 4px spacing and hello to Fibonacci
Маркетинг
• Sri Mandir получает новые инвестиции по мере роста цифровой веры
Кроссплатформа
• Flutter’s Biggest Problems: What Google Doesn’t Want You to Know
• Why Cross-Platform Teams Are Shifting to Native — With Case Studies That Might Surprise You
AppTractor
Новый навык в ИИ — не промпты, а контекст инжиниринг
В создании мощных и надежных ИИ-агентов становится все меньше и меньше места для поиска волшебного промпта или обновлений модели. Речь идет о проектировании контекста и предоставлении правильной информации и инструментов в правильном формате в правильное…
👍6🔥2❤1🤯1🤡1
Запрещенная организация официально присоединилась к Kotlin Foundation в качестве золотого участника (+$150K), что стало важной вехой в постоянной приверженности компании Kotlin и более широкой экосистеме разработки Android.
За последние несколько лет инженеры
M активно переносили обширную кодовую базу Android, состоящую из десятков миллионов строк, с Java на Kotlin. Чтобы облегчить этот масштабный переход, в компании разработали внутренний инструмент под названием Kotlinator, который автоматизирует большую часть процесса преобразования, гарантируя, что полученный код Kotlin будет идиоматичным и совместимым с внутренними фреймворками. Компания делится этими усилиями в рамках корпоративной рабочей группы Java-to-Kotlin.В дополнение к этим внутренним усилиям в
M делятся своей работой публично через проекты с открытым исходным кодом, такие как Kotlin и Android build toolchain в Buck2. Такие инициативы, как этот toolchain, направлены на предоставление инструментов и лучших практик для повышения скорости сборки и масштабируемости, в конечном итоге принося пользу более широкому сообществу разработчиков.Участие
M в Kotlin Foundation соответствует более широкой стратегии поддержки и продвижения экосистемы Kotlin. Компания будет вносить вклад в инициативы в программе грантов Kotlin Foundation, которые поддерживают авторов библиотек с открытым исходным кодом и поощряют инновации среди студентов и разработчиков. Членство в Kotlin Foundation подчеркивает приверженность сильному, работающему совместно сообществу Kotlin и продвижению возможностей языка на разных платформах.Please open Telegram to view this post
VIEW IN TELEGRAM
🌚8🤡7👍5🍾2❤1🍌1
iOS
Airbnb написал про свой опыт улучшения производительности SwiftUI. В целом, они абстрагировались от алгоритм сравнения на основе рефлексии и написали свое решение на основе
• Понимаем и улучшаем производительность SwiftUI
• Why I Stopped Using Structs for Everything in Swift
• SwiftUI Search API (Searchable): All We Need to Know All In One
• Grouping Liquid Glass components using glassEffectUnion on iOS 26
• Designing custom UI with Liquid Glass on iOS 26
Airbnb написал про свой опыт улучшения производительности SwiftUI. В целом, они абстрагировались от алгоритм сравнения на основе рефлексии и написали свое решение на основе
Equatable. Макрос @Equatable генерирует реализацию Equatable, которая сравнивает все сохраненные свойства экземпляра представления, исключая свойства с обертками свойств SwiftUI, такими как @State и @Environment, которые запускают обновления представления через другие механизмы. Свойства, которые не являются Equatable и не влияют на отрисовку тела представления, можно пометить с помощью @SkipEquatable, чтобы исключить их из сгенерированной реализации. Это позволяет продолжать использовать обработчики действий на основе замыканий из библиотеки однонаправленного потока данных, не влияя на процесс диффинга SwiftUI.• Понимаем и улучшаем производительность SwiftUI
• Why I Stopped Using Structs for Everything in Swift
• SwiftUI Search API (Searchable): All We Need to Know All In One
• Grouping Liquid Glass components using glassEffectUnion on iOS 26
• Designing custom UI with Liquid Glass on iOS 26
AppTractor
Понимаем и улучшаем производительность SwiftUI
Применение этих трех методов к представлениям SwiftUI в нашем приложении привело к значительному сокращению ненужных переоценок и повторных рендерингов.
👍2
Android
Исследуя проблемы с медленной сборкой Kotlin/Native, автор статьи погружается в мир Klib-файлов, IR (Intermediate Representation) и двух ключевых стадий компиляции: сборки IR и финального линкования. Оказывается, .klib содержит сериализованный IR-код, а не нативный бинарный, и только при сборке итогового фреймворка происходит полноценная компиляция в машинный код. Это объясняет, почему задача linkReleaseFrameworkIosArm64 может занимать до 18 минут — линковка просто не кэшируется и всегда запускается заново. В статье также раскрываются нюансы кроссплатформенных библиотек, влияние статических и динамических фреймворков, и то, почему в мобильной разработке предпочтительнее использовать статические библиотеки. Хотя линковка остаётся узким местом в сборке, понимание архитектуры K/N и устройства Klib-файлов даёт разработчику контроль над процессом и помогает принять обоснованные решения при оптимизации сборки.
• Meta присоединилась к Kotlin Foundation
• Kizzy — менеджер Rich Presence для Discord на Kotlin
• Best Practices of Retrofit and OkHttp in Android Development
• Context parameters in Kotlin 2.2
• Exploring Kotlin (native) compilation
Исследуя проблемы с медленной сборкой Kotlin/Native, автор статьи погружается в мир Klib-файлов, IR (Intermediate Representation) и двух ключевых стадий компиляции: сборки IR и финального линкования. Оказывается, .klib содержит сериализованный IR-код, а не нативный бинарный, и только при сборке итогового фреймворка происходит полноценная компиляция в машинный код. Это объясняет, почему задача linkReleaseFrameworkIosArm64 может занимать до 18 минут — линковка просто не кэшируется и всегда запускается заново. В статье также раскрываются нюансы кроссплатформенных библиотек, влияние статических и динамических фреймворков, и то, почему в мобильной разработке предпочтительнее использовать статические библиотеки. Хотя линковка остаётся узким местом в сборке, понимание архитектуры K/N и устройства Klib-файлов даёт разработчику контроль над процессом и помогает принять обоснованные решения при оптимизации сборки.
• Meta присоединилась к Kotlin Foundation
• Kizzy — менеджер Rich Presence для Discord на Kotlin
• Best Practices of Retrofit and OkHttp in Android Development
• Context parameters in Kotlin 2.2
• Exploring Kotlin (native) compilation
Medium
Exploring Kotlin (native) compilation
Demystifying Kotlin/Native builds. A deep dive into Klibs, Kotlin IR, and the linking process to understand how KMP compilation works
❤2
Instabug оценил возможности AI‑ассистентов (включая GitHub Copilot, Cursor, Claude Code и SmartResolve) автоматически устранять сбои в мобильных приложениях на iOS и Android. Тесты проводились на реальных крашах, а ассистенты видели всю кодовую базу и стек‑трейсы. Критерии оценки включали корректность (40 %), схожесть с человеческими исправлениями (30 %), ясность, глубину и релевантность, что позволило получить общий показатель точности. Результаты показали, что на iOS лидирует SmartResolve с точностью 66.8%, в то время как на Android Cursor оказался лучшим с 73.9%, а SmartResolve и Copilot были близко. Однако общая производительность на Android оказалась выше, чем на iOS, за счёт более ровного распределения оценок. При этом схожесть с решениями разработчиков была заметно ниже, что подчёркивает необходимость ревью человеком. Итог: AI‑ассистенты ускоряют первые шаги по устранению крашей, но для сложных случаев, соответствия архитектуре и поддерживаемости кода критически важен контроль разработчиков.
Разработка
• Что такое топологическая сортировка и где она применяется
• Открытый и опасный: как снизить риски open-source в приложениях
• BDUI: эволюция динамических интерфейсов
• Benchmarking AI Coding Assistants for Mobile App Crash Resolution
• Clean Architecture Is the Big Lie We Keep Falling For
Кроссплатформа
• StringBuffer (Technique of the Week)
• Kotlin’s Funeral Has Been Announced? Apple’s Master Plan Behind Swift for Android
Разработка
• Что такое топологическая сортировка и где она применяется
• Открытый и опасный: как снизить риски open-source в приложениях
• BDUI: эволюция динамических интерфейсов
• Benchmarking AI Coding Assistants for Mobile App Crash Resolution
• Clean Architecture Is the Big Lie We Keep Falling For
Кроссплатформа
• StringBuffer (Technique of the Week)
• Kotlin’s Funeral Has Been Announced? Apple’s Master Plan Behind Swift for Android
www.luciq.ai
Benchmarking AI Coding Assistants for Mobile App Crash Resolution | Luciq
Discover how the leading AI coding assistants stack up at identifying the root cause of mobile app crashes and generating code fixes across iOS and Android.
❤2👍2
Есть ли «потолок» в [Android] разработке - обсуждение на Reddit
На Reddit новое обсуждение:
Я уже некоторое время работаю в роли разработчика мобильных приложений (Android) и не могу отделаться от ощущения, что это короткий карьерный путь. После 6–9 лет в этой роли есть ли куда двигаться?
Давайте будем реалистами — это простая работа. Вы создаете экраны, подключаете API и, возможно, добавляете немного анимации или обработки состояния здесь и там. Но когда дело доходит до основной бизнес-логики, все, что действительно требует более глубокого системного мышления или архитектурных решений — все это почти всегда находится на бэкенде.
И честно говоря, большинство разработчиков приложений, с которыми я работал, даже не пытаются выйти за рамки этого. Очень мало интереса к оптимизации производительности, шаблонам управления состоянием или даже пониманию того, что происходит за API. Это в основном работа сантехника в области пользовательского интерфейса.
Поэтому я задаюсь вопросом — это все? Люди просто продолжают делать одно и то же в течение 10–15 лет, пока их не заменят более молодые разработчики, которые могут сделать ту же работу дешевле? Или есть естественный путь перехода (в бэкенд, продукт или что-то еще), который действительно имеет смысл?
Хотелось бы услышать от других, кто был в треке разработки приложений дольше или сделал пивот.
Вот что ему отвечают:
• Это не совсем верно в больших компаниях. Множество людей делают большие дела в приложениях Android, в производительности, в библиотеках. Они находятся на уровне L7+ (senior персонал), зарабатывают большие 6-значные суммы, в некоторых случаях 1 М+.
• Я работаю нативным Android-разработчиком уже более 11 лет, первые 3 или 4 года казались легкой работой, в основном UI/UX, как здесь упоминается, но когда у меня появилась возможность поработать над другими проектами, связанными с BLE и IoT, мои взгляды изменились, затем я на время переключился на гибридную разработку. По моему мнению, сложность моих приложений варьируется, и я получаю больше удовольствия, когда работаю над сложными транспортными слоями и сложной бизнес-логикой.
• Это касается не только мобильной разработки, учитывая, что область применения и масштаб могут быть разными. Будь то веб-разработка, бэкенд-разработка, в какой-то момент они достигнут стабильной зрелости и станут повторяющимися и просто будут поддерживать существующую систему.
• Сейчас я (в основном) вышел на пенсию после долгой и счастливой карьеры в области разработки программного обеспечения. Позвольте мне рассказать вам секрет: любая работа в области компьютерных наук становится тупиковой после 6-9 лет. Главное — не допустить этого.
• Если текущий стек вам не подходит: выберите альтернативный. Просто хочу отметить, что, вероятно, есть много разработчиков бэкенда, которые тоже достигли своего предела и готовы попробовать что-то еще, например, мобильные приложения ;)
На Reddit новое обсуждение:
Я уже некоторое время работаю в роли разработчика мобильных приложений (Android) и не могу отделаться от ощущения, что это короткий карьерный путь. После 6–9 лет в этой роли есть ли куда двигаться?
Давайте будем реалистами — это простая работа. Вы создаете экраны, подключаете API и, возможно, добавляете немного анимации или обработки состояния здесь и там. Но когда дело доходит до основной бизнес-логики, все, что действительно требует более глубокого системного мышления или архитектурных решений — все это почти всегда находится на бэкенде.
И честно говоря, большинство разработчиков приложений, с которыми я работал, даже не пытаются выйти за рамки этого. Очень мало интереса к оптимизации производительности, шаблонам управления состоянием или даже пониманию того, что происходит за API. Это в основном работа сантехника в области пользовательского интерфейса.
Поэтому я задаюсь вопросом — это все? Люди просто продолжают делать одно и то же в течение 10–15 лет, пока их не заменят более молодые разработчики, которые могут сделать ту же работу дешевле? Или есть естественный путь перехода (в бэкенд, продукт или что-то еще), который действительно имеет смысл?
Хотелось бы услышать от других, кто был в треке разработки приложений дольше или сделал пивот.
Вот что ему отвечают:
• Это не совсем верно в больших компаниях. Множество людей делают большие дела в приложениях Android, в производительности, в библиотеках. Они находятся на уровне L7+ (senior персонал), зарабатывают большие 6-значные суммы, в некоторых случаях 1 М+.
• Я работаю нативным Android-разработчиком уже более 11 лет, первые 3 или 4 года казались легкой работой, в основном UI/UX, как здесь упоминается, но когда у меня появилась возможность поработать над другими проектами, связанными с BLE и IoT, мои взгляды изменились, затем я на время переключился на гибридную разработку. По моему мнению, сложность моих приложений варьируется, и я получаю больше удовольствия, когда работаю над сложными транспортными слоями и сложной бизнес-логикой.
• Это касается не только мобильной разработки, учитывая, что область применения и масштаб могут быть разными. Будь то веб-разработка, бэкенд-разработка, в какой-то момент они достигнут стабильной зрелости и станут повторяющимися и просто будут поддерживать существующую систему.
• Сейчас я (в основном) вышел на пенсию после долгой и счастливой карьеры в области разработки программного обеспечения. Позвольте мне рассказать вам секрет: любая работа в области компьютерных наук становится тупиковой после 6-9 лет. Главное — не допустить этого.
В компьютерной инженерии можно делать так много разных и интересных вещей, что продолжать делать одно и то же слишком долго — значит просто обманывать себя.
• Если текущий стек вам не подходит: выберите альтернативный. Просто хочу отметить, что, вероятно, есть много разработчиков бэкенда, которые тоже достигли своего предела и готовы попробовать что-то еще, например, мобильные приложения ;)
👍14❤3😢1
Сколько лет вы уже занимаетесь вашей предметной областью?
Anonymous Poll
29%
Больше 10 лет
38%
От 5 до 10
18%
От 3 до 5
9%
До 3 лет
6%
Посмотреть
❤2
iOS
Автор статьи делится опытом внедрения Redux-подобной архитектуры в SwiftUI-проекте, чтобы решить проблему рассинхронизации данных между экранами. Он показывает, как паттерн с единым хранилищем состояния, action’ами и reducer’ом хорошо вписывается в декларативный стиль SwiftUI и помогает справляться со сложной бизнес-логикой. Однако подход не идеален: обработку асинхронных действий и управление памятью приходится реализовывать вручную. Тем не менее, в крупных приложениях с множеством экранов Redux делает состояние предсказуемым и улучшает совместную разработку.
• OAuthKit — event-driven авторизация на Swift
• My App Crashed Only in Production
• Schedule a countdown timer with AlarmKit
• Redux in SwiftUI: When Web Patterns Meet Apple’s Declarative World
• SwiftUI State Machines Explained: Manage Complex UI States the Right Way
• Creating Custom Property Wrappers in Swift: Reduce Boilerplate Code
• SwiftUI Shimmer Loading Animation: Complete Implementation Guide
Автор статьи делится опытом внедрения Redux-подобной архитектуры в SwiftUI-проекте, чтобы решить проблему рассинхронизации данных между экранами. Он показывает, как паттерн с единым хранилищем состояния, action’ами и reducer’ом хорошо вписывается в декларативный стиль SwiftUI и помогает справляться со сложной бизнес-логикой. Однако подход не идеален: обработку асинхронных действий и управление памятью приходится реализовывать вручную. Тем не менее, в крупных приложениях с множеством экранов Redux делает состояние предсказуемым и улучшает совместную разработку.
• OAuthKit — event-driven авторизация на Swift
• My App Crashed Only in Production
• Schedule a countdown timer with AlarmKit
• Redux in SwiftUI: When Web Patterns Meet Apple’s Declarative World
• SwiftUI State Machines Explained: Manage Complex UI States the Right Way
• Creating Custom Property Wrappers in Swift: Reduce Boilerplate Code
• SwiftUI Shimmer Loading Animation: Complete Implementation Guide
Medium
Redux in SwiftUI: When Web Patterns Meet Apple’s Declarative World
Why Redux isn’t dead like VIPER, and how to actually implement it properly
😱2👌1
Android
Виталий из Альфа-Банка на Хабре продолжает исследовать тонкости Kotlin Contracs. Подробно исследует внутренности компилятора и показывает, что контракты можно применять не только к функциям, но и, например, к аксессорам свойств — хоть это и не отражено в официальной документации. Он изучает исходники компилятора, объясняет, как устроен анализ контрактов в FIR-дереве, и делится практическими наблюдениями, которые могут быть полезны для продвинутых Kotlin-разработчиков. Ничего непонятно, но очень интересно (С)
• Есть ли «потолок» в [Android] разработке — обсуждение на Reddit
• Что не пишут в документации Kotlin Contracts: тёмные закоулки и пасхалки
• Migrating to Jetpack Compose Navigation 3
• Android Studio Narwhal Feature Drop
• SIGSEGV to SIGBUS: The Truth Behind Android’s Scariest Native Crashes
• How I Built Seamless Watch ↔️ Phone Handover in Wear OS
Виталий из Альфа-Банка на Хабре продолжает исследовать тонкости Kotlin Contracs. Подробно исследует внутренности компилятора и показывает, что контракты можно применять не только к функциям, но и, например, к аксессорам свойств — хоть это и не отражено в официальной документации. Он изучает исходники компилятора, объясняет, как устроен анализ контрактов в FIR-дереве, и делится практическими наблюдениями, которые могут быть полезны для продвинутых Kotlin-разработчиков. Ничего непонятно, но очень интересно (С)
• Есть ли «потолок» в [Android] разработке — обсуждение на Reddit
• Что не пишут в документации Kotlin Contracts: тёмные закоулки и пасхалки
• Migrating to Jetpack Compose Navigation 3
• Android Studio Narwhal Feature Drop
• SIGSEGV to SIGBUS: The Truth Behind Android’s Scariest Native Crashes
• How I Built Seamless Watch ↔️ Phone Handover in Wear OS
Хабр
Что не пишут в документации Kotlin Contracts: тёмные закоулки и пасхалки
Небольшой дисклеймер Я не писал компилятор Kotlin и, как и любой живой человек, мог что‑то упустить или неверно истолковать. Моя задача — не расписать каждый винтик...
👍2
Сохам-гейт - лучше в IT-найме уже не будет. Индийский разработчик Сохам Парех оказался в центре скандала после того, как сразу несколько основателей стартапов из США обвинили его в «многостаночности» — одновременной работе в 3–4 компаниях, включая проекты с поддержкой Y Combinator (впрочем, еще несколько признались, что почти сразу выперли его с работы, когда поняли его подход). Несмотря на блестящие интервью и впечатляющее резюме, Сохам фактически дублировал рабочие процессы, не сообщая работодателям о параллельной занятости. Его бывшие наниматели признают: он действительно умен и обаятелен, но использовать эти качества он предпочёл не ради команды, а ради получения зарплат из разных источников. История вызвала бурную дискуссию в стартап-среде: как защищаться от таких случаев, насколько эффективны технические и кадровые проверки, и почему формат удалёнки делает такие схемы особенно лёгкими. Сам Парех, осознав масштабы разоблачения, признал в личной переписке, что «возможно, полностью разрушил свою карьеру».
Разработка
• Чистая архитектура — это большая ложь, в которую мы продолжаем верить
• Бенчмарк ИИ-помощников в устранении сбоев мобильных приложений
• Indian techie Soham Parekh accused by at least 5 US CEOs of moonlighting
Маркетинг
• Самые скачиваемые и зарабатывающие приложения в России в июне 2025
• Squad Busters 2.0 and mo.co: What We Learned from Supercell’s Experimental Era
Кроссплатформа
• 2D-скролл во Flutter
• Вы не поняли extension types в Dart
• “Expect Actual” Mechanism in Kotlin Multiplatform Explained
• Secrets, Certificates, Local Storage: The Three Risks Every App Ships With
Разработка
• Чистая архитектура — это большая ложь, в которую мы продолжаем верить
• Бенчмарк ИИ-помощников в устранении сбоев мобильных приложений
• Indian techie Soham Parekh accused by at least 5 US CEOs of moonlighting
Маркетинг
• Самые скачиваемые и зарабатывающие приложения в России в июне 2025
• Squad Busters 2.0 and mo.co: What We Learned from Supercell’s Experimental Era
Кроссплатформа
• 2D-скролл во Flutter
• Вы не поняли extension types в Dart
• “Expect Actual” Mechanism in Kotlin Multiplatform Explained
• Secrets, Certificates, Local Storage: The Three Risks Every App Ships With
Hindustan Times
Indian techie Soham Parekh accused by at least 5 US CEOs of moonlighting: 'Holy sh*t, we hired this guy a week ago'
Soham Parekh, an Indian techie, faces allegations of working at multiple startups simultaneously.
👍3
Forwarded from AppFiles - Mobile Development
•
(iOS En) Build a mobile app using the Home APIs on iOS•
(iOS En) Dependency Injection in iOS Explained (with SwiftUI)•
(iOS En) Custom Animated Segmented Control Using SwiftUI•
(iOS En) Getting Started with Apple's Foundation Models Framework (On-Device AI Demo!)•
(And Ru) Сеньоры с LinkedIn или доверяй, но проверяй. Как мы докатились до такого?•
(And Ru) Как мы случайно ускорили релизную сборку в два раза•
(And Ru) Эталонный пример Android приложения от Google•
(And En) Embedded Layout Inspector•
(And En) Enable Google Pay in Android WebView•
(And En) Build your own NES Emulator with Kotlin•
(And En) Implementing Compose Hot Reload•
(And En) IoT development with Kotlin•
(And En) Coroutines and Structured Concurrency in Ktor•
(And En) Klibs.io — the dream of creating a Kotlin Package Index•
(And En) Test APIs Without Leaving Android Studio•
(Crs Ru) Демо-интервью по Flutter с Middle-разработчиком•
(Crs En) Duolingo + KMP: A Case Study in Developer Productivity•
(Crs En) Koin Annotations In Compose Multiplatform - Beginner's Guide to Compile-Time Dependency Injection•
(Dev Ru) Применение KISS для архитектуры автотестов•
(Dev Ru) Будущее инструментов разработки и опенсорса•
(Dev Ru) Вычисления на GPU — CUDA, NVidia, AMD•
(Mrk Ru) Мобильные прилы + EdTech = $$$. Разбор нишиПрошлогодние видео:
•
(iOS Ru) Как побеждать в конкурсах от Telegram•
(And Ru) Переходишь на Compose? Не спеши!•
(And Ru) Как работает ТВ в Android TV?•
(And Ru) Нужны ли Android-разработчики на заводе?•
(And Ru) Gradle DSL изнутри•
(And Ru) Kotlin DSL как единый источник правды для решения многих задач•
(Dev Ru) Чистый код – не значит правильный: clean code, паттерны, лучшие практикиPlease open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1🤡1
Улучшаем потолок разработки
Новая подборка всех материалов за неделю. Понимаем и улучшаем производительность SwiftUI, решаем проблему «деградации» YouTube на Android, определяем потолок в разработке, разбираем большую ложь чистой архитектуры, смотрим на рост цифровой веры и многое другое. Заходите!
Новая подборка всех материалов за неделю. Понимаем и улучшаем производительность SwiftUI, решаем проблему «деградации» YouTube на Android, определяем потолок в разработке, разбираем большую ложь чистой архитектуры, смотрим на рост цифровой веры и многое другое. Заходите!
👍4
iOS
Диаризация - это процесс автоматического определения, кто и когда говорит в аудиозаписи. Грубо говоря, система делит аудиофайл на сегменты по разным говорящим. Не знаю. зачем вам это знание, но так же знайте, что в open source реализовали систему диризации на CoreML. Так что если вам нужно выделить спикеров - используйте готовый фреймворк.
• Почему я перестал использовать структуры для всего в Swift
• FluidAudio — фреймворк диаризации на CoreML
• Glassifying toolbars in SwiftUI
• Responding to gestures: Dragging
• Using WebKit to load web content in SwiftUI
• How to make ScrollView content fill available space
Диаризация - это процесс автоматического определения, кто и когда говорит в аудиозаписи. Грубо говоря, система делит аудиофайл на сегменты по разным говорящим. Не знаю. зачем вам это знание, но так же знайте, что в open source реализовали систему диризации на CoreML. Так что если вам нужно выделить спикеров - используйте готовый фреймворк.
• Почему я перестал использовать структуры для всего в Swift
• FluidAudio — фреймворк диаризации на CoreML
• Glassifying toolbars in SwiftUI
• Responding to gestures: Dragging
• Using WebKit to load web content in SwiftUI
• How to make ScrollView content fill available space
❤1🔥1
Android
Кирилл (@android_broadcast) уже, кажется, разбирал фоновую работу в Android, но если вы хотите освежить свои знания - на Хабре от Облака Mail вышла статья, в которой рассматривается вся история изменений.
• Решаем проблему скелетных загрузчиков и создаем иллюзию скорости без перекомпозиции
• Сеньоры с LinkedIn или доверяй, но проверяй. Как мы докатились до такого?
• Как мы случайно ускорили релизную сборку в два раза
• Эталонный пример Android приложения от Google
• Jetpack Android Starter — шаблон современного Android-приложения
• Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 1
• Хроника изменений API фоновой работы в Android
• Функциональное программирование в Android. Теория категорий и DI
• Deep Dive into Jetpack Compose Text Views : The Secret Life of Composable
• Don't use Type-safe Project Accessors with Kotlin Gradle DSL
• Curious case of missing Bottom Sheet Previews
• Is this a first nail in the ViewModel’s coffin?
Кирилл (@android_broadcast) уже, кажется, разбирал фоновую работу в Android, но если вы хотите освежить свои знания - на Хабре от Облака Mail вышла статья, в которой рассматривается вся история изменений.
• Решаем проблему скелетных загрузчиков и создаем иллюзию скорости без перекомпозиции
• Сеньоры с LinkedIn или доверяй, но проверяй. Как мы докатились до такого?
• Как мы случайно ускорили релизную сборку в два раза
• Эталонный пример Android приложения от Google
• Jetpack Android Starter — шаблон современного Android-приложения
• Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 1
• Хроника изменений API фоновой работы в Android
• Функциональное программирование в Android. Теория категорий и DI
• Deep Dive into Jetpack Compose Text Views : The Secret Life of Composable
• Don't use Type-safe Project Accessors with Kotlin Gradle DSL
• Curious case of missing Bottom Sheet Previews
• Is this a first nail in the ViewModel’s coffin?
❤2
А вот Артем из Membrana Kids пишет о том, как внедряли KMP в свой iOS-проект. Всего за два спринта. Пишут, что довольны - переход снизил трудозатраты на новые функции и устранил рассинхронизацию логики между платформами, особенно критичную в проектах с быстрыми изменениями и параллельной разработкой.
Разработка
• Применение KISS для архитектуры автотестов
• Что такое Фильтр Блума
• Будущее инструментов разработки и опенсорса
• Вычисления на GPU — CUDA, NVidia, AMD
• Интеграция Flutter Mobile SDK в ОС Аврора
• You're all CTO now
Маркетинг
• Доход Cluely удвоился за неделю, но конкуренты наступают
Кроссплатформа
• Демо-интервью по Flutter с Middle-разработчиком
• Как Android-разработчик в iOS погружался: мой опыт внедрения Kotlin Multiplatform
• Часть 2. GoForm — как не страдать с формами во Flutter
• Alarmee: Schedule Local and Push Notifications in KMP
• Cross-Platform Apps Done Right: My Experience with Kotlin + Compose Multiplatform
Разработка
• Применение KISS для архитектуры автотестов
• Что такое Фильтр Блума
• Будущее инструментов разработки и опенсорса
• Вычисления на GPU — CUDA, NVidia, AMD
• Интеграция Flutter Mobile SDK в ОС Аврора
• You're all CTO now
Маркетинг
• Доход Cluely удвоился за неделю, но конкуренты наступают
Кроссплатформа
• Демо-интервью по Flutter с Middle-разработчиком
• Как Android-разработчик в iOS погружался: мой опыт внедрения Kotlin Multiplatform
• Часть 2. GoForm — как не страдать с формами во Flutter
• Alarmee: Schedule Local and Push Notifications in KMP
• Cross-Platform Apps Done Right: My Experience with Kotlin + Compose Multiplatform
Хабр
Как Android-разработчик в iOS погружался: мой опыт внедрения Kotlin Multiplatform
Привет, Хабр! Меня зовут Артем Клименко, я Lead Android-разработчик в МТС Web Services, занимаюсь продуктом Membrana Kids. Продукт создавали нативно на каждую платформу, без пересечения кода. В начале...
👍2