AppFiles - Mobile Development
رفتن به کانال در Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
نمایش بیشتر2 165
مشترکین
-324 ساعت
-27 روز
+430 روز
آرشیو پست ها
ИИ замедляет работу разработчиков - мы может объяснить почему
Когда мы пишем программное обеспечение, реальным продуктом является наша ментальная модель созданной нами программы. Именно эта модель позволила нам создать программное обеспечение, и в будущем она позволит нам понимать систему, диагностировать проблемы в ней и эффективно работать с ней. Если вы согласны с этой теорией, как и я, то она объясняет такие вещи, как то, почему все ненавидят устаревший код, почему небольшие команды могут превосходить по производительности более крупные, почему аутсорсинг обычно заканчивается плохо и т.д.
Мы знаем, что программисты, участвовавшие в исследовании Metr, — это люди с чрезвычайно хорошо развитыми ментальными моделями проектов, над которыми они работают. И мы также знаем, что LLM, которые они использовали, не имели реального доступа к этим ментальным моделям. Разработчики могли предоставить части этой ментальной модели своим инструментам искусственного интеллекта, но это медленный и неэффективный процесс, который никогда не сможет полностью отразить теорию программы, существующую в их умах. Передав свою работу по разработке программного обеспечения LLM, они ограничили свою уникальную способность эффективно работать с кодовой базой.
Статья: https://apptractor.ru/info/articles/ii-zamedlyaet-rabotu-razrabotchikov-my-mozhet-obyasnit-pochemu.html
Платформа: искусственный интеллект
DynamicBottomSheet - гибко настраиваемый
UIView для iOS-приложений, созданный на Swift. Этот пакет Swift предоставляет легко интегрируемое выдвигающееся снизу представление с поддержкой динамического выбора высоты, анимацией, настройками и позволяет разработчикам легко создавать адаптивные и интерактивные пользовательские интерфейсы.
DynamicBottomSheet на GitHub: https://github.com/Savva-Shuliatev/DynamicBottomSheet
Платформа: iOS
⭐️: 16DynamicBottomSheet - гибко настраиваемый
UIView для iOS-приложений, созданный на Swift. Этот пакет Swift предоставляет легко интегрируемое выдвигающееся снизу представление с поддержкой динамического выбора высоты, анимацией, настройками и позволяет разработчикам легко создавать адаптивные и интерактивные пользовательские интерфейсы.
DynamicBottomSheet на GitHub: https://github.com/Savva-Shuliatev/DynamicBottomSheet
Платформа: iOS
⭐️: 16Как [iOS] разработчику сделать хорошее резюме (которое действительно привлечет внимание ведущих компаний)
Возможно, вы отличный iOS-разработчик. Вы создавали приложения, исправляли сбои, работали над фичами и оптимизировали экраны. Но все равно… никто не звонит.
Я прошел через это. Я отправил более 30 откликов и получил, может быть, один ответ — отказ.
А сейчас? Я получаю приглашения на собеседования от FANG команд, ведущих транснациональных корпораций и некоторых довольно классных компаний-разработчиков продуктов.
Я прошел собеседования в Walmart, Amazon и даже попал в базы талантов компаний, которые раньше казались мне недостижимыми.
И нет, я не создал приложение на миллиард долларов.
Но я создал резюме, которое обращается как к людям, так и к машинам.
Статья: https://apptractor.ru/info/articles/prepare-a-strong-resume.html
Платформа: карьера
Развитие программ раннего доступа Android: Canary канал
Чтобы лучше поддерживать разработчиков и предоставлять более ранний и постоянный доступ к функциям, находящимся в разработке, Google объявляет о существенном обновлении программы предварительных версий. В будущем платформа Android будет иметь Canary канал релизов, который заменит предыдущую программу developer preview для разработчиков. Этот Canary канал будет функционировать параллельно с существующей программой бета-тестирования.
Это изменение призвано предоставить более упорядоченную и постоянную возможность опробовать новые возможности платформы и отправлять отзывы в течение всего года, а не только в первые месяцы нового цикла выпуска.
Новость: https://apptractor.ru/info/news/razvitie-programm-rannego-dostupa-android-canary-kanal.html
Платформа: Android
Функциональный стиль: объясняю как другу
«Функциональное программирование», «Immutable значения», «Pure функции».
Тоже слышал эти умные слова?
И ты такой: «Что? Можно просто for написать?»
Спокойно. Сейчас все разложим по полочкам. Даже если ты пишешь var a = 1 и гордишься этим - ты свой. Погнали.
Статья: https://habr.com/ru/articles/926900/
Платформа: iOS
LazyTimetable - высокопроизводительная таблица для расписания с отложенной загрузкой для Jetpack Compose для Android. Идеально подходит для создания расписаний фестивалей, конференций и любых многоколоночных макетов с временными рамками.
Фичи:
• Высокая производительность: ленивая загрузка с ограничением для области просмотра для плавной прокрутки даже при больших наборах данны
• Позиционирование по времени: элементы позиционируются на основе длительности в секундах с автоматическим расчётом макета
• Двунаправленная прокрутка: плавная горизонтальная и вертикальная прокрутка
• Широкие возможности настройки: настройка цветов, интервалов и внешнего вида контента
• Типобезопасный DSL: чистый, декларативный API для определения структуры расписания
LazyTimetable на GitHub: https://github.com/MoyuruAizawa/LazyTimetable
Платформа: Android
⭐️: 38
Мои любимые UI утилиты Jetpack Compose — без которых я не могу жить
Jetpack Compose — это мечта, ставшая реальностью после многих лет борьбы с XML. Но даже в мечтах бывают повторяющиеся моменты, верно? Бесконечные
Spacer, шаблонный код для простого Divider, вложенность, необходимая только для центрирования чего-либо на экране… список можно продолжать. Это UI-эквивалент смерти от тысячи порезов бумагой. Устав от повторения, автор статьи решил дать отпор. Он начал превращать эти распространённые UI сниппеты в небольшие, многоразовые компонуемые объекты. Результат? Более чистый код, более быстрая разработка и макет, который гораздо легче читать с первого взгляда. Он делится своей личной коллекцией этих незаменимых помощников. Если вы цените читабельный, поддерживаемый и элегантный код UI, думаю, вы захотите позаимствовать несколько из них для себя.
Статья: https://medium.com/@maliksaif070/my-favorite-jetpack-compose-ui-utilities-that-i-cant-live-without-e7fb44e24d74
Платформа: Android
Поставьте 👍, если хотите эту статью на русском!Как мы использовали макросы для улучшения MVVM- архитектуры
С ростом команды и кодовой базы появилось много однотипного кода (boilerplate), особенно в слоях DataSource в MVVM. Для автоматизации и единообразия в Duolingo используют новый Swift‑функционал — макросы, которые в момент компиляции анализируют AST и генерируют повторяемые методы, например для обновления значений в KeyValueDataSource. Это позволило убрать ручной код, уменьшить баги и ускорить разработку/
Макросы сократили количество ручного и тестируемого кода (около 4300 строк сгенерировано автоматически), снизили риск ошибок и обеспечили централизованное обновление логики. Но появились неудобства: сгенерированный код менее понятен и плохо индексируется, а чистые сборки стали дольше на ~10–20 секунд. Чтобы минимизировать это, подключили пакет макросов как заранее скомпилированный бинарник и хранят кэшированную сборку в S3, что делает сборки максимально быстрыми и при этом сохраняет гибкость развития.
Статья: https://blog.duolingo.com/ios-mvvm-swift-macros/
Платформа: iOS
Поставьте 👍, если хотите эту статью на русском!
Swift concurrency. Executors, Actors и их связь с потоками
В данной части из серии статей мы погрузимся чуть глубже в недра Swift Concurrency. Как определяется поток, на котором будет выполняться Task? Почему в рамках одной Task поток может меняться? Что такое Executor и на какие типы он делится? За что отвечает TaskExecutor, а за что SerialExecutor? Как определить текущий Executor по коду? Как использовать свой самописный Executor? В этой статье ответим на эти (и многие другие) вопросы.
Статья: https://habr.com/ru/articles/887240/
Платформа: iOS
Автоматизация тестирования мобильного приложения КриптоАРМ Mobile на Android
В этой статье мы проведем обзор современных инструментов и подходов для тестирования мобильных приложений на примере приложения КриптоАРМ Mobile под Android. Подробно расскажем о настройке окружения для создания тестов, а также разработаем Docker-контейнер, который обеспечит удобный запуск тестов. Кроме того, мы рассмотрим процесс автоматизации тестирования и его интеграцию в CI/CD, что позволит упростить и ускорить процесс разработки и тестирования приложений.
Статья: https://habr.com/ru/articles/926508/
Платформа: Android
Duit: как создать эффективный BDUI фреймворк, не привлекая внимания санитаров
Open source-инструмент не гарантирует тебе, что ты сможешь решать с его помощью свои задачи. Очень часто сталкиваешься с неприятными ограничениями, какими-то компромиссами, которые тебе вообще не подходят. И поэтому я считаю, что надо развивать более широкое применение этой технологии.
И лейтмотив — альтернатива важна. Потому что мало фреймворков, которые решают задачу BDUI, а под Flutter — так вообще. Потому что конкуренция двигатель прогресса: когда фреймворков много, рубиться с ними интереснее. Потому что хочется пользоваться нормальными инструментами — качественными, отлаженными, документированными. Альтернатива важна, потому что она дает больше возможностей нам, как инженерам.
Статья: https://habr.com/ru/companies/friflex/articles/926690/
Платформа: кроссплатформа
📺 Видео и подкасты за неделю на @AppFiles
•
(iOS Ru) Рынок разработки в СНГ, iOS, Переезд в UK
• (iOS Ru) Перерисовки в SwiftUI
• (iOS En) Apple-Style OnBoarding Page With Animations Using SwiftUI
• (iOS En) How to solve SwiftUI performance issues (according to Airbnb iOS engineers)
• (iOS En) Liquid Glass update
• (iOS En) Mastering Swift Sets : A Practical Guide
• (And Ru) Мок-собеседование Android-разработчика: middle и выше (+ все собеседования)
• (And En) Back it up, bring it back: No data left behind - Android Developers Backstage
• (And En) Google Play PolicyBytes - July 2025 policy updates
• (And En) Now in Android: 119 – Android 16, testing, desktop experiences, AndroidX, and more
• (And En) Create advanced automations using the Home APIs on Android
• (And En) Stateful vs. Stateless Composables In Jetpack Compose? - Everything You Need to Know
• (And En) Introduction to Spring Boot for Android Developers In 15min
• (And En) Kotlin 2.2 Livestream With the Language Evolution Team
• (And En) Model Context Protocol in Kotlin
• (And En) Dissecting Kotlin: Surveying the Latest Stable and Experimental
• (And En) Taming Asynchronous Beasts: Debugging and Performance Tuning in a Coroutine World
• (And En) Creative UIs with Compose
• (Crs En) Kotlin and Compose Multiplatform Patterns for iOS Interop
• (Dev Ru) Как сделать любую задачу интересной
• (Dev Ru) АI за пределами кодинга — ChatGPT, Gemini, Anthropic, AI для бизнеса
• (Dev En) VGG From Scratch – Deep Learning Theory & PyTorch Implementation (Full Course)
• (Mrk Ru) Как заработать на ASO? Запуск с нуля iOS-приложения INVOICER
Прошлогодние видео:
• (iOS Ru) Что нового в Swift 6?
• (And Ru) Как обойти множественное наследование в Kotlin и Java. Агрегация и композиция
• (Dev Ru) System Design-интервью для практиков
• (Dev Ru) Локальная разработка в АвитоТрадиционные методы управления данными и состояниями часто приводят к запутанным зависимостям, избыточному шаблонному коду и специфическим проблемам при синхронизации состояния SwiftUI или управлении состоянием UIKit. Это может затруднить согласованное и эффективное управление состоянием приложения Swift во всём приложении.
Swift State Graph - это мощная реактивная библиотека Swift, предлагающая современный графовый подход к реактивному программированию Swift. Она разработана для решения этих сложных задач, предоставляя чёткий и декларативный подход к управлению потоками данных вашего приложения.
С помощью Swift State Graph вы можете:
• Достичь предельно ясной декларативной логики состояния благодаря автоматическому отслеживанию зависимостей Swift.
• Легко управлять состоянием приложения и получать динамическую информацию с помощью мощных вычисляемых свойств Swift.
• Оптимизировать разработку на платформах Apple с помощью унифицированных стратегий управления состояниями SwiftUI и UIKit.
Swift State Graph на GitHub: https://github.com/VergeGroup/swift-state-graph
Платформа: iOS
⭐️: 21
Как обнаружить обрезку Text в SwiftUI?
Text активно используется в SwiftUI. По сравнению с аналогами в UIKit/AppKit, Text не требует настройки и работает «из коробки», но это также означает, что разработчики теряют контроль над ним. В этой статье я продемонстрирую на примере из реальной жизни, как решить, казалось бы, «невозможные» задачи с помощью подхода SwiftUI: найти и использовать первое представление в заданном наборе, где текст не обрезан.
Статья: https://apptractor.ru/info/articles/kak-obnaruzhit-obrezku-text-v-swiftui.html
Платформа: iOSЯ написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?
Каждый раз, нажимая кнопку «Connect» в очередном VPN-приложении, я ловил себя на мысли: а что там, под капотом? Как эта магия на самом деле работает на уровне Android? Вокруг сотни готовых решений, но простое пользовательское любопытство переросло в профессиональное: мне захотелось не просто использовать, а понять. Понять, какие подводные камни скрывает VpnService, как реализовать весь цикл от авторизации до поднятия защищённого туннеля, и можно ли сделать это, не утонув в устаревших технологиях.
Важный момент: Эта статья и сам проект — это мой личный "бортовой журнал". Я не претендую на создание самого безопасного или анонимного решения. Это скорее история о пути, граблях и открытиях, которая, надеюсь, будет полезна тем, кто тоже решит заглянуть под капот VPN-технологий на Android.
Статья: https://habr.com/ru/articles/926150/
Платформа: Android
Android Interview Questions - еще одни вопросы (без ответов) с собеседований Android-разработчиков. Категории: ООП, Kotlin, Android Framework и SDK, корутины и параллелизм, архитектура и шаблоны проектирования, данные и их хранение, инструменты, тестирование и качество кода, безопасность, доступность и прочее.
Android Interview Questions на GitHub: https://github.com/DoggyDoggyDoggy/Android-Interview-Questions
Записи собеседований: https://apptractor.ru/sobesedovaniya
Платформа: Android
⭐️: 25
Акторы в Swift — для чего они нужны?
Актор — это ссылочный тип, подобный классу, созданный для безопасного управления изменяемым состоянием в многопоточной среде. Появившиеся в Swift 5.5, акторы помогают разработчикам писать потокобезопасный и более предсказуемый код при работе с асинхронными задачами и общими изменяемыми данными.
Статья: https://apptractor.ru/info/articles/swift-actor.html
Платформа: Swift/iOS
Когда объект Kotlin перестает быть синглтоном
В Kotlin
object гарантирует синглтон — один экземпляр на всё приложение. Но это работает только до тех пор, пока не вмешиваются библиотеки сериализации. Например, Gson при десериализации создаёт новый экземпляр объекта, нарушая сравнение === и ломая логику, завязанную на глобальное состояние. Moshi вообще не поддерживает object без кастомного адаптера, а вот kotlinx.serialization корректно обрабатывает такие случаи, возвращая оригинальный экземпляр. Если вы используете object для хранения состояния или как синглтон в архитектуре, важно понимать, как с ним работают сторонние библиотеки. Чтобы сохранить гарантию единственного экземпляра — используйте kotlinx.serialization или пишите собственные адаптеры для других библиотек.
Статья: https://proandroiddev.com/when-kotlin-object-stops-being-a-singleton-604a3354e4ec
Платформа: AndroidGemini CLI от Google — самый мощный инструмент разработки
Самый революционный инструмент разработки, который я использовал в этом году, не сопровождался громким запуском или многомиллиардной инвестицией.
Он представлял собой простой CLI: Gemini CLI — терминальный ИИ-агент, созданный на базе модели Google Gemini 2.5 Pro.
На первый взгляд, это выглядит как лёгкая альтернатива Claude Code. Но всего через 10 минут использования стало ясно: это не просто удобная утилита. Это мощный локальный ИИ-помощник по разработке, способный анализировать, автоматизировать и ускорять практически любой этап вашего рабочего процесса.
Статья: https://apptractor.ru/info/articles/gemini-cli.html
Платформа: разработка
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
