fa
Feedback
AppFiles - Mobile Development

AppFiles - Mobile Development

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

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

نمایش بیشتر
2 168
مشترکین
+224 ساعت
اطلاعاتی وجود ندارد7 روز
+830 روز
آرشیو پست ها
Простые синтаксические приёмы в Swift В этой статье - несколько практических приёмов и особенностей Swift, которые помогают п
Простые синтаксические приёмы в Swift В этой статье - несколько практических приёмов и особенностей Swift, которые помогают писать код проще, короче и понятнее. Здесь не будет абстрактной теории — только реальные примеры, которые можно сразу применять в проектах: от сопоставления с шаблоном и работы с optional до безопасной обработки строк и чисел. Если вы хотите, чтобы ваш Swift-код выглядел аккуратно и «по-свифтовски», эти советы точно пригодятся. Статья: https://apptractor.ru/info/articles/prostye-sintaksicheskie-priyomy-v-swift.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

React Native. Часть 1: архитектура, производительность и варианты использования React Native прошел путь от решения с фундаментальными архитектурными ограничениями до платформы с современным, производительным ядром. В этой статье мы разберем, как работала старая архитектура на основе Bridge, как ее заменили JSI, Fabric и Hermes, и в каких случаях React Native - оптимальный выбор для проекта. Статья: https://habr.com/ru/articles/989776/ Платформа: кроссплатформа 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Безопасный обмен данными между приложениями на Android: intents, URI schemes, shared preferences Системы злоумышленников пост
Безопасный обмен данными между приложениями на Android: intents, URI schemes, shared preferences Системы злоумышленников постоянно эволюционируют, появляются новые атаки и новые защиты. То, что работало в Android 8, может быть небезопасно в Android 14. Поэтому безопасность в Android - это не разовая настройка, а процесс. Мой главный совет: читайте Android Security Bulletins, следите за CVE, связанными с вашими зависимостями, и регулярно проводите аудит своего кода. И последнее: если сомневаетесь, стоит ли передавать какие-то данные между приложениями - не передавайте. Лучше лишний раз сходить на сервер, чем потом разгребать последствия утечки данных. Серьёзно, оно того не стоит. Статья: https://habr.com/ru/articles/989740/ Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

App Store Toolkit - инструменты локализации iOS-приложений App Store Toolkit - набор из нескольких инструментов для локализац
App Store Toolkit - инструменты локализации iOS-приложений App Store Toolkit - набор из нескольких инструментов для локализации iOS-приложений. Есть локализация .xcstrings, настройка стоимости подписки для разных стран, перевод мета-данных и генератор скриншотов для App Store Connect. Все это с помощью ИИ и локальных сервисов. App Store Toolkit на GitHub: https://github.com/fayharinn/iOS-App-Distribution-Localizer Платформа: iOS/Web ⭐️: 24 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Cash Sense - Android-приложение для управления финансами Cash Sense - мобильное приложение, разработанное для того, чтобы пом
Cash Sense - Android-приложение для управления финансами Cash Sense - мобильное приложение, разработанное для того, чтобы помочь пользователям эффективно управлять своими финансами. Независимо от того, хотите ли вы создавать кошельки в разных валютах, устанавливать категории для транзакций или отслеживать даты оплаты подписок, Cash Sense вам поможет. Cash Sense на GitHub: https://github.com/nikbulavin/cashsense Платформа: Android ⭐️: 175 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Бессерверный ИИ для Android-приложений с Firebase AI Logic Цель этой статьи — показать, почему бессерверный ИИ на Android нак
Бессерверный ИИ для Android-приложений с Firebase AI Logic Цель этой статьи — показать, почему бессерверный ИИ на Android наконец-то стал практичным, и как Firebase AI Logic делает его удивительно простым. Статья: https://apptractor.ru/info/articles/firebase-ai-logic.html Платформа: Android/ИИ 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Отлаживайте Swift как Senior В этой статье мы обсудим методы отладки, которые используют Senior iOS-разработчики. 1. Выявлени
Отлаживайте Swift как Senior В этой статье мы обсудим методы отладки, которые используют Senior iOS-разработчики. 1. Выявление логических ошибок на этапе разработки 2. Обогащение отладочных логов контекстной информацией 3. Настройка вывода с помощью CustomDebugStringConvertible 4. Анализ свойств и значений экземпляров во время выполнения 5. Функция dump() для углубленной отладки Статья: https://apptractor.ru/info/articles/otlazhivayte-swift-kak-senior.html Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Встроенный Photo Picker: более удобный способ конфиденциального запроса фотографий и видео в вашем приложении Embedded Photo
Встроенный Photo Picker: более удобный способ конфиденциального запроса фотографий и видео в вашем приложении Embedded Photo Picker — новый компонент Android, который позволяет встраивать выбор фото и видео прямо в интерфейс приложения, не открывая отдельный системный экран. Пользователь видит медиатеку (включая облачные фото, например из Google Photos) внутри приложения, а само приложение получает доступ только к тем файлам, которые были явно выбраны, без запроса широких разрешений. Это заметно улучшает UX и повышает уровень приватности. Компонент уже используется, например, в Google Messages, и доступен через Jetpack Photo Picker — как для Jetpack Compose, так и для классических View. Embedded Photo Picker работает на Android 14+ (SDK Extensions 15+), рендерится системой в изолированной области и безопасен от перехвата. В итоге разработчики получают более нативный, бесшовный и безопасный способ работы с пользовательскими фото и видео. Статья: https://apptractor.ru/Embedded-Photo-Picker Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Встроенный Photo Picker: более удобный способ конфиденциального запроса фотографий и видео в вашем приложении Embedded Photo Picker — новый компонент Android, который позволяет встраивать выбор фото и видео прямо в интерфейс приложения, не открывая отдельный системный экран. Пользователь видит медиатеку (включая облачные фото, например из Google Photos) внутри приложения, а само приложение получает доступ только к тем файлам, которые были явно выбраны, без запроса широких разрешений. Это заметно улучшает UX и повышает уровень приватности. Компонент уже используется, например, в Google Messages, и доступен через Jetpack Photo Picker — как для Jetpack Compose, так и для классических View. Embedded Photo Picker работает на Android 14+ (SDK Extensions 15+), рендерится системой в изолированной области и безопасен от перехвата. В итоге разработчики получают более нативный, бесшовный и безопасный способ работы с пользовательскими фото и видео. Статья: https://apptractor.ru/Embedded-Photo-Picker Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

VICE - KMP MVI фреймворк VICE это MVI (Model-View-Intent) фреймворк, который использует UDF (Unidirectional Data Flow) для ра
VICE - KMP MVI фреймворк VICE это MVI (Model-View-Intent) фреймворк, который использует UDF (Unidirectional Data Flow) для работы UI. Преимущества VICE: 1. Он соответствует принципам единой ответственности и однонаправленного потока данных, оставаясь при этом простым. 2. Он предоставляет естественный, императивный способ работы с асинхронными данными. 3. Он предоставляет неизменяемый способ описания состояния пользовательского интерфейса, исключающий возможность изменения через бэкдор. 4. Он избавляет от необходимости гадать, как структурировать код пользовательского интерфейса. VICE на GitHub: https://github.com/eygraber/vice Платформа: Android ⭐️: 140 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Swipe-to-Dismiss в Compose Material 3 Компонент «Закрытие с помощью свайпа» позволяет пользователям закрывать или обновлять э
Swipe-to-Dismiss в Compose Material 3 Компонент «Закрытие с помощью свайпа» позволяет пользователям закрывать или обновлять элемент, проводя пальцем влево или вправо. Compose Material 3 предлагает простой в использовании компонент, который делает все за нас. Статья: https://apptractor.ru/info/articles/swipe-to-dismiss-v-compose-material-3.html Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Как сделать эффект люминесцентной лампы в Jetpack Compose Туториал о том, как реализовать эффект светящейся трубки на Android с помощью Jetpack Compose — без сторонних библиотек, только Canvas и анимации Kotlin. Статья: https://proandroiddev.com/how-to-create-a-tubelight-effect-in-android-compose-2383befc47b1 Платформа: Android 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Когда данных от Apple недостаточно: собираем метрики производительности UI Оптимизировать работу UI важно - это напрямую влия
Когда данных от Apple недостаточно: собираем метрики производительности UI Оптимизировать работу UI важно - это напрямую влияет на пользовательский опыт и удержание. Собственные метрики позволяют получить больше информации - метрики позволяют не только находить проблемы, но и подтверждать улучшения после оптимизаций. В этой статье Виталий Барабанов из HH пишет про их решение для сбора метрик производительности UI. Статья: https://habr.com/ru/companies/hh/articles/988322/ Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Навыки, которые вы теряете, пока ИИ берет на себя рутинные задачи Концертный пианист не забывает, как играть. Он забывает, ка
Навыки, которые вы теряете, пока ИИ берет на себя рутинные задачи Концертный пианист не забывает, как играть. Он забывает, как играть хорошо. И он не замечает этого, пока это не становится важным. Вы не потеряете работу из-за ИИ. Но вы можете потерять то, что делало вас мастером своего дела — причем так постепенно, что и не заметите. Пока не поймаете себя на том, что в недоумении смотрите на баг, который раньше щелкали как орешки, на архитектуру, которую не можете объяснить, или на систему, которую больше не понимаете. Вопрос не в том, использовать ли ИИ. Вы будете его использовать. Вопрос в том, останетесь ли вы через пять лет инженером, способным работать без него, или же тем, кто не будет знать, с чего начать. Статья: https://apptractor.ru/info/articles/navyki-kotorye-vy-teryaete-poka-ii-beret-na-sebya-rutinnye-zadachi.html Платформа: разработка 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Typhoon — легковесная библиотека для повторных попыток выполнения задач Typhoon — это современный, легковесный фреймворк на S
Typhoon — легковесная библиотека для повторных попыток выполнения задач Typhoon — это современный, легковесный фреймворк на Swift, предоставляющий элегантные и надежные политики повторных попыток для асинхронных операций. Созданный на основе модели параллельного выполнения async/await от Swift, он помогает корректно обрабатывать временные сбои с помощью настраиваемых стратегий повторных попыток. Фичи: • Несколько стратегий повторных попыток — постоянная, экспоненциальная и экспоненциальная со сдвигом • Async/Await-совместимый — создан для современной параллельной работы в Swift • Типобезопасность — использует систему типов Swift для обеспечения безопасности на этапе компиляции • Настраиваемость — гибкие параметры повторных попыток для любого варианта использования • Кроссплатформенность — работает на iOS, macOS, tvOS, watchOS и visionOS • Легковесность — минимальный размер без зависимостей • Тщательно протестировано — всестороннее тестовое покрытие Typhoon на GitHub: https://github.com/space-code/typhoon Платформа: iOS ⭐️: 45 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Deeplink-и во Flutter: динамические ссылки и app_links Мобильные приложения, в том числе на Flutter, позволяют настраивать об
Deeplink-и во Flutter: динамические ссылки и app_links Мобильные приложения, в том числе на Flutter, позволяют настраивать обработку различных ссылок. В этой статье я разберу, как во Flutter реализовать поддержку deeplink-ов и универсальных ссылок и как управлять ими на уровне платформы. Статья: https://habr.com/ru/companies/friflex/articles/988262/ Платформа: кроссплатформа

Погружение в UX-долг В этом еженедельном дайджесте разработка приложений с помощью ИИ и состояние мобильного рынка, MVVM и пл
Погружение в UX-долг В этом еженедельном дайджесте разработка приложений с помощью ИИ и состояние мобильного рынка, MVVM и плагины для Android Studio, миграция на Android Gradle Plugin 9.0, сокращение потребления памяти, бесплатный Skip, FunctionGemma от Google и многое другое. Заходите!

Yet Another Rapid Compose - интеллектуальный генератор сокращений Yet Another Rapid Compose — это интеллектуальный генератор
Yet Another Rapid Compose - интеллектуальный генератор сокращений Yet Another Rapid Compose — это интеллектуальный генератор сокращения, плагин для Android Studio, который мгновенно преобразует лаконичные аббревиации в полноценные деревья компонентов Jetpack Compose. Перестаньте писать шаблонный код — сосредоточьтесь на структуре пользовательского интерфейса. Фичи: • Мгновенное развертывание: вводите короткие коды, такие как col или row, и развертывайте их в допустимые блоки Compose • Вложенные макеты: используйте / для определения иерархии в одной строке (например, box/txt). Yet Another Rapid Compose на GitHubhttps://github.com/andrew-malitchuk/yet-another-rapid-compose Платформа: Android ⭐️: 6 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Copy-on-write позволит вам узнать ВСЕ о внутреннем устройстве Swift Статья подробно разбирает механизм Copy-on-Write (CoW) в
Copy-on-write позволит вам узнать ВСЕ о внутреннем устройстве Swift Статья подробно разбирает механизм Copy-on-Write (CoW) в Swift, который является ключевой оптимизацией для работы с типами значений, такими как массивы и словари. Автор объясняет, что CoW позволяет избежать ресурсозатратного копирования данных при каждой передаче переменной или константы. Вместо создания немедленного дубликата в памяти, несколько переменных используют одну и ту же область данных в «куче» до тех пор, пока одна из них не попытается внести изменения. Только в момент модификации происходит реальное копирование, что позволяет Swift сочетать безопасность значимых типов с производительностью ссылочных. Помимо теоретических основ, в материале рассматриваются внутренние аспекты реализации этого механизма и работа с памятью (стек против кучи). Автор демонстрирует, как разработчики могут самостоятельно внедрить CoW для собственных структур данных, используя приватный класс-обертку и системную функцию isKnownUniquelyReferenced. Этот подход позволяет вручную контролировать количество ссылок на объект и выполнять копирование только тогда, когда на данные ссылается более одного владельца. Таким образом, изучение CoW дает глубокое понимание того, как Swift оптимизирует управление памятью «под капотом». Статья: https://levelup.gitconnected.com/copy-on-write-teaches-you-everything-about-swift-internals-f8807b58bfd6 Платформа: iOS 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность

Почему ваш LazyColumn пропускает кадры Статья объясняет, что проблемы с падением частоты кадров при использовании LazyColumn
Почему ваш LazyColumn пропускает кадры Статья объясняет, что проблемы с падением частоты кадров при использовании LazyColumnLazyRow) в Jetpack Compose часто происходят не из-за очевидных ошибок, а из-за тонких архитектурных ловушек, которые на первый взгляд выглядят безобидно. Автор показывает, что простое следование общим рекомендациям не всегда помогает: даже при правильном количестве перерисовок интерфейс всё ещё может подтормаживать на устройствах со средней производительностью. Ключ к решению заключается в том, чтобы понимать, что именно считается работой для Compose-движка, как малые оптимизации могут накопительно создавать большую нагрузку, и какие практики действительно снижают стоимость обновлений UI. В основе предлагаемых исправлений — четыре фундаментальные проблемы: неправильные ключи в LazyColumn, нестабильные классы данных, которые приводят к лишней рекомпозиции, частые аллокации лямбд внутри списков и тяжёлые вычисления прямо в теле композаблов. Статья детально показывает, как сочетание этих факторов увеличивает объём работы, выполняемой при каждом кадре, и как их устранение (например, композитные ключи, аннотированные как @Immutable модели, ремемберинг лямбд и перенос предварительных вычислений в ViewModel) может существенно улучшить плавность прокрутки. Статья: https://blog.devgenius.io/why-your-lazycolumn-drops-frames-part-1-quick-fixes-e6ccc53046bc Платформа: Android 👍 если хотите перевод на русский 👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность