fa
Feedback
AppFiles - Mobile Development

AppFiles - Mobile Development

رفتن به کانال در Telegram

Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.

نمایش بیشتر
2 168
مشترکین
+224 ساعت
اطلاعاتی وجود ندارد7 روز
+830 روز
آرشیو پست ها
Codename One — нативные кроссплатформенные приложения на Java или Kotlin Codename One — это кроссплатформенная среда разработ
Codename One — нативные кроссплатформенные приложения на Java или Kotlin Codename One — это кроссплатформенная среда разработки для Java и Kotlin, ориентированная на мобильные устройства. Она позволяет компилировать байт-код Java в исполняемые файлы нативных ОС (iOS, Android, UWP и т. д.). Это полноценная мобильная платформа, включающая виртуальные машины, симулятор, инструменты проектирования (визуальные темы/конструктор/CSS), интеграцию с IDE, портирование на различные ОС и многое другое. Она обеспечивает полный доступ к базовому нативному коду ОС (например, Objective-C, C#, Dalvik/ART) через переносимую абстракцию, что обеспечивает 100% повторное использование кода. Codename One — единственная платформа, которая: • Поддерживает принцип «напиши один раз — запускай где угодно» без специальных требований к оборудованию и обеспечивает 100% повторное использование кода. • Компилирует Java или Kotlin в нативный код для iOS, UWP (Universal Windows Platform), Android и даже JavaScript (с бесшовной поддержкой PWA и потоков). • С открытым исходным кодом и бесплатная с возможностью коммерческого использования на корпоративном уровне. • Проста в использовании благодаря 100% портативному конструктору графического интерфейса с функцией перетаскивания. • Имеет полный доступ к базовым возможностям нативной ОС, используя собственный язык программирования ОС (например, Objective-C) без ущерба для переносимости. • Имеет полный контроль над каждым пикселем на экране! Просто переопределите метод paint и рисуйте или используйте стеклянную панель для рисования в любом месте. • Позволяет использовать нативные виджеты (представления) и смешивать их с компонентами Codename One в одной иерархии (смешивание тяжелых и легких компонентов). • Поддерживает бесшовную непрерывную интеграцию «из коробки». Codename One на GitHub: https://github.com/codenameone/CodenameOne Платформа: кроссплатформа ⭐️: 140

Как я за 2,5 месяца написал строительный калькулятор на Flutter с ИИ-прорабом, 45+ калькуляторами и 8000 тестами В этой стать
Как я за 2,5 месяца написал строительный калькулятор на Flutter с ИИ-прорабом, 45+ калькуляторами и 8000 тестами В этой статье расскажу про архитектуру, покажу реальный код и объясню, почему переписал систему калькуляторов с нуля на полпути разработки, как впихнул ИИ с характером ворчливого прораба через OpenRouter и зачем написал 8180 тестов на проект, который делает один человек. Статья: https://habr.com/ru/articles/1001080/ Платформа: кроссплатформа/Flutter 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Расцвет "достаточно хорошей" архитектуры в Android Идеальная архитектура — это миф. Достаточно хорошая архитектура — это дисц
Расцвет "достаточно хорошей" архитектуры в Android Идеальная архитектура — это миф. Достаточно хорошая архитектура — это дисциплина, знающая, что нужно делать, что отложить, а что вообще не стоит использовать. Начните с простого. Когда возникнут проблемы, добавляйте уровни. И помните, что отзывы о вашем приложении в Play Store пишут пользователи, а не ваш граф внедрения зависимостей. Статья: https://apptractor.ru/info/articles/rastsvet-dostatochno-horoshey-arhitektury-v-android.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Не убий: Гайд по UI/UX в Android Automotive, за который вас не посадят В прошлой серии мы научились вытаскивать из машины дан
Не убий: Гайд по UI/UX в Android Automotive, за который вас не посадят В прошлой серии мы научились вытаскивать из машины данные. Мы знаем скорость, обороты двигателя и даже какая дверь открыта. Руки чешутся вывести всё это на огромный экран в 4K, добавить анимаций, графиков и запустить YouTube на фоне, да? Статья: https://habr.com/ru/articles/1001016/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

ListKit - быстрый diffable data source для UICollectionView ListKit - быстрый, написанный на чистом Swift источник данных с в
ListKit - быстрый diffable data source для UICollectionView ListKit - быстрый, написанный на чистом Swift источник данных с возможностью сравнения изменений (diffable data source) для UICollectionView. Полная замена UICollectionViewDiffableDataSource от Apple с алгоритмом сравнения изменений Хекеля со сложностью O(n) и высокоуровневым декларативным API (совместим с NSDiffableDataSourceSnapshot). В тестах эта библиотека от 2 до 1000 раз превосходит по скорости встроенное решение Apple. ListKit на GitHub: https://github.com/Iron-Ham/Lists Статья: https://sundayswift.com/posts/building-a-high-performance-list-framework/ Платформа: iOS ⭐️: 13 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Ошибка на 12 миллиардов долларов: почему Apple отказалась от сторибордов (и почему большинство команд до сих пор их использую
Ошибка на 12 миллиардов долларов: почему Apple отказалась от сторибордов (и почему большинство команд до сих пор их используют) Если вам это знакомо — ночные конфликты слияния, загадочные сбои Interface Builder, кошмары в онбординге — вы не одиноки. Apple тихо признала эти проблемы и уже много лет отговаривает разработчиков от использования сторибордов (Вы когда-нибудь замечали, как в недавних примерах кода WWDC используется SwiftUI или программный пользовательский интерфейс, без файла .storyboard? В стандартном шаблоне приложения SwiftUI даже нет файла сториборда). В этом подробном обзоре мы рассмотрим реальные затраты на использование сторибордов с помощью реальных цифр, сравним код до и после и изучим современные альтернативы, такие как SwiftUI, которые спасают команды от проблем с конфликтами слияния в Xcode. В конце вы получите конкретные шаги по модернизации вашей iOS-архитектуры — и, возможно, пару историй из практики, которыми сможете поделиться. Статья: https://apptractor.ru/info/articles/storyboards.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Под капотом: MessageQueue без блокировок в Android 17 В Android 17 Google полностью переосмыслил работу базового механизма об
Под капотом: MessageQueue без блокировок в Android 17 В Android 17 Google полностью переосмыслил работу базового механизма обработки сообщений в приложениях: MessageQueue. Ранее эта очередь использовала один блокирующий lock для синхронизации, что могло приводить к блокировкам UI-потока (например, при одновременной работе фоновых задач) и вызывать задержки в работе интерфейса. Новая реализация под названием DeliQueue отказалась от традиционных блокировок и вместо них применяет lock-free структуры данных: производители сообщений пушат задачи в lock-free стек, а единственный поток UI (Looper) затем переносит их в собственную упорядоченную очередь (min-heap). Это позволяет значительно снизить конкуренцию за ресурсы, улучшить отзывчивость интерфейса и уменьшить количество пропущенных кадров. Такой подход требует глубоких изменений в алгоритмах — например, использования атомарных операций вместо мониторов, обработки «логического удаления» сообщений и тщательного управления памятью — но результаты впечатляют: в тестах многопоточные вставки стали в тысячи раз быстрее, а время, теряемое из-за блокировок, сократилось, что приводило к заметному улучшению производительности UI в реальных приложениях. Разработчикам важно учесть эти изменения, так как новая очередь может повлиять на код, который отражением (reflection) обращается к внутренним полям MessageQueue. Статья: https://android-developers.googleblog.com/2026/02/under-hood-android-17s-lock-free.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

В Android 17 Google полностью переосмыслил работу базового механизма обработки сообщений в приложениях: MessageQueue. Ранее эта очередь использовала один блокирующий lock для синхронизации, что могло приводить к блокировкам UI-потока (например, при одновременной работе фоновых задач) и вызывать задержки в работе интерфейса. Новая реализация под названием DeliQueue отказалась от традиционных блокировок и вместо них применяет lock-free структуры данных: производители сообщений пушат задачи в lock-free стек, а единственный поток UI (Looper) затем переносит их в собственную упорядоченную очередь (min-heap). Это позволяет значительно снизить конкуренцию за ресурсы, улучшить отзывчивость интерфейса и уменьшить количество пропущенных кадров. Такой подход требует глубоких изменений в алгоритмах — например, использования атомарных операций вместо мониторов, обработки «логического удаления» сообщений и тщательного управления памятью — но результаты впечатляют: в тестах многопоточные вставки стали в тысячи раз быстрее, а время, теряемое из-за блокировок, сократилось, что приводило к заметному улучшению производительности UI в реальных приложениях. Разработчикам важно учесть эти изменения, так как новая очередь может повлиять на код, который отражением (reflection) обращается к внутренним полям MessageQueue.

ADB Device Manager - двойное управление Android для Windows ADB Device Manager объедините Android и Windows в единую систему
ADB Device Manager - двойное управление Android для Windows ADB Device Manager объедините Android и Windows в единую систему управления. Он позволяет, используя два режима (режим ADB и режим приложения), выполнять следующие действия: • Зеркальное отображение экрана вашего Android-устройства на Windows • Трансляция звука с устройства на ПК • Управление приложениями, уведомлениями, звонками и SMS • Запуск Android в режиме рабочего стола • Передача файлов, просмотр фотографий, управление контактами • Подключение через USB, Wi-Fi ADB или LAN в режиме приложения Внутри ADB (Android Debug Bridge), scrcpy, nircmd_x64, Flutter, Kotlin, Python. ADB Device Manager на GitHub: https://github.com/Shrey113/Adb-Device-Manager-2 Платформа: Android/кроссплатформа ⭐️: 140 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Осваиваем шейдеры Metal В отличие от модели анимации, управляемой представлениями в SwiftUI, Metal работает на уровне пикселе
Осваиваем шейдеры Metal В отличие от модели анимации, управляемой представлениями в SwiftUI, Metal работает на уровне пикселей. Это позволяет создавать эффекты и анимации, управляемые временем, математическими функциями и данными, а не изменениями в иерархии представлений. Таким образом, работа с Metal требует изменения перспективы: от представлений и модификаторов к пикселям, параллельному выполнению и покадровому рендерингу, но зато такая работа обеспечивает гораздо более высокий уровень визуального контроля. Статья: https://apptractor.ru/info/articles/osvaivaem-sheydery-metal.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Как ускорить Android-приложение с помощью Baseline Profiles За последние несколько лет мы построили инфраструктуру оптимизаци
Как ускорить Android-приложение с помощью Baseline Profiles За последние несколько лет мы построили инфраструктуру оптимизаций компилятора и рантайма на основе профилей для Android-приложений. Один из ключевых компонентов этой инфраструктуры — функция Baseline Profiles в Android Runtime, которую мы применяли, чтобы улучшить производительность. В этой статье мы разберём несколько аспектов производительности, связанных с Android Runtime (ART). Я расскажу, с какими проблемами мы столкнулись и как Baseline Profiles помогли их преодолеть. Статья: https://habr.com/ru/companies/otus/articles/1000028/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Никакого программирования до 10 утра Инженерное дело сегодня — это уже не просто написание кода. Вот стратегия одного стартап
Никакого программирования до 10 утра Инженерное дело сегодня — это уже не просто написание кода. Вот стратегия одного стартапа по созданию проектов в эпоху ИИ-агентов. Статья: https://apptractor.ru/info/articles/nikakogo-programmirovaniya-do-10-utra.html Платформа: разработка 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Claude XcodePreviews - превью SwiftUI для ИИ ИИ-помощники замечательно справляются с написанием кода на SwiftUI. Они понимают
Claude XcodePreviews - превью SwiftUI для ИИ ИИ-помощники замечательно справляются с написанием кода на SwiftUI. Они понимают иерархию представлений, знают, когда лучше использовать LazyVStack вместо VStack, и могут создавать сложные макеты на основе текстового описания. Но у них есть фундаментальное ограничение: они не видят, что создают. Подумайте о том, как вы разрабатываете пользовательский интерфейс. Вы пишете код, смотрите на холст предварительного просмотра, корректируете значение отступа, проверяете еще раз. Это тесная обратная связь между кодом и визуализацией. У ИИ-помощников такой связи нет. Они пишут код, передают его вам и надеются на лучшее. Когда что-то выглядит не так, вы описываете проблему словами, они пытаются интерпретировать ваше описание, и цикл повторяется. Это медленно и приводит к потере информации. Что если бы ИИ мог просто… посмотреть на предварительный просмотр? Claude XcodePreviews - набор скриптов для программной сборки и захвата предварительных просмотров SwiftUI. Разработан для работы с Claude Code для визуального анализа компонентов пользовательского интерфейса. Особенности: • Динамическое внедрение предварительного просмотра — создает минимальные цели PreviewHost вместо сборки полных приложений • Поддержка пакетов SPM — работает с автономными пакетами Swift • Поддержка проектов Xcode — работает с файлами xcodeproj (включая проекты, сгенерированные Tuist) • Быстрая сборка — собирает только необходимые модули (~3-4 секунды для кэшированных сборок) • Обнаружение пакетов ресурсов — автоматически включает пакеты ресурсов для тем/цветов. Claude XcodePreviews на GitHub: https://github.com/Iron-Ham/Claude-XcodePreviews Платформа: iOS ⭐️: 60 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

37 000 unit-тестов против Gradle: как мы добились 12-минутного прогона Привет я Федотов Михаил, технический лидер по Android-
37 000 unit-тестов против Gradle: как мы добились 12-минутного прогона Привет я Федотов Михаил, технический лидер по Android-разработке в Альфа-Банке. Сегодня хочу поговорить про performance (ускорение) unit-тестов. Я работаю на проекте Android приложения Альфа-банка для физических лиц. Для нашего большого проекта это время — больная тема, так как у нас около 800 модулей и большая часть кода полностью покрыта unit тестами (за некоторыми исключениями, например, view классы). Сейчас у нас почти 6000 spec (тест-классов) в которых 37 000 тест-кейсов. Общее время прогона всех тестов на CI превышало 3 часа. Локально все тесты прогнать вообще было утопией, так как вероятнее всего сборка просто падала от нехватки оперативной памяти. Сейчас все тесты проекта мы научились прогонять за честные 12 минут и я расскажу что для этого потребовалось. Статья: https://habr.com/ru/companies/alfa/articles/993352/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Подводные камни миграции на Swift 6, о которых стоит знать Swift 6 вводит более строгие проверки изоляции конкурентности и поддерживает поэтапную миграцию, модуль за модулем. Хотя рекомендуемая Apple стратегия выглядит мягкой, на практике вы можете столкнуться со скрытыми сбоями во время выполнения, особенно когда в проекте одновременно сосуществуют модули на Swift 5 и Swift 6. В этой статье разберем два реальных кейса, на которых команды регулярно спотыкаются при поэтапной миграции на Swift 6. Мы свяжем их с исходниками Swift Runtime, объясним задумку и триггеры падений, и завершим практическими мерами по снижению рисков и рекомендациями по обновлению. Статья: https://habr.com/ru/companies/otus/articles/996304/ Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Собеседование в Zerodha - эти вопросы полностью изменили мое представление о мобильной разработке Этот опыт заставил меня ина
Собеседование в Zerodha - эти вопросы полностью изменили мое представление о мобильной разработке Этот опыт заставил меня иначе взглянуть на мобильную разработку. Во-первых, мобильные приложения больше нельзя воспринимать как «тонкий UI-слой». В высокорисковых доменах вроде финансов клиент — это часть распределённой системы. Во-вторых, управление состоянием — это не вопрос вкуса в архитектуре. Это требование корректности. В-третьих, конкурентность — не продвинутая тема «на вырост». Это обязательная база. В-четвёртых, производительность — это не про плавные анимации. Это про устойчивость под нагрузкой. И наконец, точность имеет значение. В трейдинге ошибка округления — это не косметический баг. Это реальные деньги. Статья: https://apptractor.ru/info/articles/sobesedovanie-v-zerodha-eti-voprosy-polnostyu-izmenili-moe-predstavlenie-o-mobilnoy-razrabotke.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

DevAnalyzer - анализатор среды разработки DevAnalyzer — это кроссплатформенное настольное приложение, созданное с использован
DevAnalyzer - анализатор среды разработки DevAnalyzer — это кроссплатформенное настольное приложение, созданное с использованием Compose Multiplatform и Kotlin Multiplatform (KMP). • Анализатор проектов — анализирует модули проекта, конфигурации Gradle, примененные плагины, зависимости и связанные файлы сборки. • Очистка сборки — сканирует проекты Android Studio на наличие папок сборки во всех модулях и позволяет выборочно удалять их для освобождения дискового пространства. • Анализатор хранилища — сканирует SDK, данные IDE, кэши Gradle и каталоги библиотек для визуализации общего использования хранилища. • Настройки — настраивает пользовательские пути для Android SDK, домашнего каталога Gradle, Kotlin Native и расположения IDE. Разработанный для современных разработчиков, DevAnalyzer помогает вам понимать, анализировать и оптимизировать всю вашу экосистему разработки — все из единого интерфейса. Разработанный как инструмент, ориентированный в первую очередь на настольные компьютеры, он бесперебойно работает на разных платформах и может быть легко расширен для работы с Android, KMP или бэкэндом на Kotlin. DevAnalyzer на GitHub: https://github.com/Coding-Meet/DevAnalyzer Платформа: Android/кроссплатформа ⭐️: 84 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Магия вне Хогвартса: как делать «дорогой» UI, не перегружая GPU Часто можно увидеть такую картину: разработчик влюбляется в к
Магия вне Хогвартса: как делать «дорогой» UI, не перегружая GPU Часто можно увидеть такую картину: разработчик влюбляется в концепт из Dribbble, тратит два дня на реализацию сложнейшей цепочки переходов, а потом удивляется, почему его iPhone 15 Pro начинает греться через пять минут использования приложения. Анимация - это всегда сделка с дьяволом (железом). Вопрос лишь в том, насколько выгодный курс обмена вы сможете выторговать. Статья: https://habr.com/ru/articles/995538/ Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Flutter 3.41 — Что нового во Flutter? Сегодня мы с радостью объявляем о выпуске Flutter 3.41, что знаменует собой важную веху
Flutter 3.41 — Что нового во Flutter? Сегодня мы с радостью объявляем о выпуске Flutter 3.41, что знаменует собой важную веху на нашем совместном пути! Это захватывающее время для разработчиков; этот релиз отражает наше стремление расширить возможности нашего сообщества в формировании направления развития Flutter. Благодаря 868 коммитам от 145 уникальных участников, Flutter 3.41 обеспечивает дополнительную прозрачность и модульность, что еще больше улучшает опыт внесения вклада в Flutter. Статья: https://habr.com/ru/articles/995604/ Платформа: кроссплатформа/Flutter 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

📺 Видео и подкасты за неделю • (iOS En) SwiftUI foundations: Build great apps with SwiftUI | Meet with Apple • (iOS En) Tool
📺 Видео и подкасты за неделю(iOS En) SwiftUI foundations: Build great apps with SwiftUI | Meet with Apple(iOS En) Toolbar Header Scroll Animation Effects Using SwiftUI(iOS En) Xcode 26.3 - Agentic Coding with Free OpenAI Account(iOS En) Sharing App Data with Uniform Type Identifiers and ShareSheets(iOS En) Complex UI Animation: New Xcode's OnBoarding Animation Effect Using SwiftUI(And Ru) А это понадобится после собеседования?(And En) What Really Is Structured Concurrency In Kotlin? - Android Coding Interview Q&A(And En) Custom Video Player In Jetpack Compose On Android (Media3 Library)(And En) API Design at Google: Building Android Libraries(And En) Return... in Expression Bodies?!(And En) No more get() calls in your Koin Module!(Crs En) Apple authentication with Firebase - Kotlin Multiplatform (CMP) Android/iOS Tutorial(Dev Ru) ИИ ломает высшее образование? Где учиться на программиста(Mrk Ru) ASO в 2025–2026: алгоритмы, AI, UA vs ASO и Apple Search Ads Прошлогодние видео: • (iOS Ru) Переход с UIKit на SwiftUI — разработка трекера тренировок с нуля(iOS Ru) Навигация в SwiftUI(And Ru) Опасности в Android: уязвимости и защитные меры(And Ru) Как мы создавали дизайн-систему на Jetpack Compose(And Ru) Как мы автоматизировали генерацию Baseline Profile(Dev Ru) Верхнеуровневый обзор архитектуры CI/CD мобильного приложения(Dev Ru) Как затащить новую технологию(Dev Ru) Как увольнять людей? 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность