ru
Feedback
AppFiles - Mobile Development

AppFiles - Mobile Development

Открыть в Telegram

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

Больше
2 170
Подписчики
+124 часа
+17 дней
+630 день
Архив постов
Введение в Trio Компания Airbnb начала разработку Trio более двух лет назад и использует ее в продакшене уже более полутора л
Введение в Trio Компания Airbnb начала разработку Trio более двух лет назад и использует ее в продакшене уже более полутора лет. На нем построена значительная часть работающих экранов в Android-приложении Airbnb, и он позволил нашим инженерам создавать 100% функций в Compose UI. В этой серии статей мы рассмотрим, как Mavericks можно использовать в современных приложениях на базе Compose. Мы обсудим проблемы архитектуры на базе Compose и то, как Trio пытался их решить Статья: https://apptractor.ru/info/articles/vvedenie-v-trio.html Платформа: Android

Gifu добавляет в UIKit поддержку protocol-based performance-aware анимированных GIF. Не требует использования встроенного подкласса GIFImageView. Всю тяжелую работу выполняет класс Animator, а протокол GIFAnimatable раскрывает функциональность классам представления, которые соответствуют ему, используя расширения протокола. Animator имеет FrameStore, который хранит в памяти только ограниченное количество кадров, эффективно создавая буфер для анимации, не занимая всю доступную память. Такой подход делает загрузку больших GIF-файлов гораздо более дружественной к ресурсам. Gifu на GitHub: https://github.com/kaishin/Gifu Платформа: iOS ⭐️: 3K

Сделайте ваше iOS-приложение меньше с помощью динамических фреймворков Упаковать динамический фреймворк достаточно просто, од
Сделайте ваше iOS-приложение меньше с помощью динамических фреймворков Упаковать динамический фреймворк достаточно просто, однако для того, чтобы правильно дедуплицировать ресурсы и сделать приложение легким, вам придется пройти через множество недокументированных шагов. Статья: https://apptractor.ru/info/articles/sdelayte-vashe-ios-prilozhenie-menshe-s-pomoschyu-dinamicheskih-freymvorkov.html Платформа: iOS

Context receivers — новые extension functions Поговорим сегодня про context receivers — фиче Kotlin, про которую я узнал давн
Context receivers — новые extension functions Поговорим сегодня про context receivers — фиче Kotlin, про которую я узнал давно, но смог найти применение лишь пару месяцев назад. Расскажу о том, что такое context receivers, где их можно использовать, и, конечно же, про «успешный успех» — минус 60% самописного DI в Ozon ID SDK. Статья: https://habr.com/ru/companies/ozontech/articles/802641/ Платформа: Android

Privacy Manifest: что нужно о нём знать для внедрения в проект На работе я столкнулся с задачей внедрения Privacy Manifest в
Privacy Manifest: что нужно о нём знать для внедрения в проект На работе я столкнулся с задачей внедрения Privacy Manifest в проект. Изучение вопроса началось с прочтения документации Apple, а продолжилось просмотром WWDC-сессии на тему конфиденциальности. После внедрения оказалось, что для корректной работы над задачей нужно изучить больше информации. Поэтому я решил поделиться опытом в формате инструкции. Покажу, как внедрять Privacy Manifest на примере вымышленного проекта, и дам практические советы по внедрению манифеста конфиденциальности. Статья: https://habr.com/ru/companies/sberbank/articles/803445/ Платформа: iOS

Keyguard - это альтернативный клиент для платформы Bitwarden (открытый менеджер паролей), созданный для обеспечения наилучшег
Keyguard - это альтернативный клиент для платформы Bitwarden (открытый менеджер паролей), созданный для обеспечения наилучшего пользовательского опыта. Особенности Keyguard - Material You, мощный и быстрый поиск, поиск записи с дублированными паролями, неактивной двух-факторной аутентификацией, незащищенными веб-сайтами и дублированными, неполными или просроченными записями, прекрасная производительность, поддержка автозаполнения, поддержка множественных учетных записей с безопасным входом и двух-факторной аутентификацией, загрузка больших файлов в фоне, красивая светлая и черная темы, поддержка Chrome OS. В дополнение, у Keyguard есть притягивающие глаз анимации и плавность работы, которую вы ожидаете от лучших современных приложений. Keyguard на GitHub: https://github.com/AChep/keyguard-app Платформа: Android ⭐️: 529

Производительность - ключевая характеристика для многих приложений и фреймворков. Пакет Benchmark позволяет легко измерять и
Производительность - ключевая характеристика для многих приложений и фреймворков. Пакет Benchmark позволяет легко измерять и отслеживать множество различных показателей, влияющих на производительность, таких как загрузка процессора, ARC-трафик, использование памяти, использование ресурсов операционной системы, таких как потоки и системные вызовы, а также полностью пользовательские счетчики метрик. Benchmark работает как на macOS, так и на Linux и поддерживает несколько ключевых рабочих сценариев: • Автоматизированная проверка регрессии производительности пул-реквеста путем сравнения показателей с основной веткой • Автоматизированная проверка пул-реквеста по сравнению с предварительно записанным абсолютным пороговым значением, подходящая, например, для регрессионных тестов • Ручное сравнение нескольких базовых показателей производительности для итеративной или A/B работы отдельного разработчика • Экспорт результатов бенчмарка в нескольких форматах для анализа или визуализации • Запуск профилировщика Instruments на наборе бенчмарков непосредственно из Xcode Benchmark подходит как для небольших специальных бенчмарков, ориентированных на рантайм, так и для более масштабных бенчмарков, которые заботятся о нескольких расширенных метриках. Benchmark на GitHub: https://github.com/ordo-one/package-benchmark Платформа: iOS ⭐️: 214

SimpMusic - открытый музыкальный клиент YouTube Music для Android со многими функциями. Из интересного есть кеширование для о
SimpMusic - открытый музыкальный клиент YouTube Music для Android со многими функциями. Из интересного есть кеширование для оффлайн-проигрывания, отсутствие рекламы, слова песен из Musixmatch, Spotify и транскрипции YouTube с переводом, предложение песен на основе ИИ, поддержка Android Auto. SimpMusic на GitHub: https://github.com/maxrave-dev/SimpMusic Платформа: Android ⭐️: 1.1K

Исходников нет, но мы не сдадимся: как и зачем я портировал более старый Android, чем стоял «с завода»? Моддинг-сцена с разра
Исходников нет, но мы не сдадимся: как и зачем я портировал более старый Android, чем стоял «с завода»? Моддинг-сцена с разработкой и портированием кастомных прошивок для Android-устройств существует вот уже более 10 лет. В основном, энтузиасты пытаются проапгрейдить свои устройства путем портирования более свежих версий Android, чем предлагает производитель девайса. Чего уж говорить, если Galaxy S III, которому уже 12 лет стукнуло, получил неофициальный апгрейд до Android 14. Порой мне в голову приходят различные, весьма странные моддерские мысли: например, почему бы не портировать на старенький смартфон… ещё более старую версию Android, дабы посмотреть «что будет». Казалось бы «портировал и портировал», но в процессе работы я столкнулся с множеством интересных нюансов и особенностей работы Android, о которых хотел бы рассказать и вам. Статья: https://habr.com/ru/companies/timeweb/articles/802591/ Платформа: Android

SQLite.swift - типобезопасный слой чистого Swift поверх SQLite3. Библиотека обеспечивает проверку синтаксиса выражений и наме
SQLite.swift - типобезопасный слой чистого Swift поверх SQLite3. Библиотека обеспечивает проверку синтаксиса выражений и намерений SQL-операторов во время компиляции, предоставляя массу полезных простых в использовании функций для работы с базой данных. SQLite.swift на GitHub: https://github.com/stephencelis/SQLite.swift Платформа: iOS ⭐️: 9.4K

К чему с годами приводит работа с Dependency Injection и Service Locator Глубину осознания той или иной библиотеки можно пров
К чему с годами приводит работа с Dependency Injection и Service Locator Глубину осознания той или иной библиотеки можно проверить, написав её самостоятельно. Возможно, новорожденное решение будет ограниченным и лишённым всякой аудитории, но оно будет навеки принадлежать её автору и подтверждать реальное понимание работы технологии. Так произошло и со мной. Решил написать полноценный функционал для работы с зависимостями и, так как я Android-разработчик, адаптировать для работы в моей привычной среде и для моих таких же привычных задач. А делюсь я написанным творением с наивной мыслью, что это сделает кого-то лучше в техническом плане. Статья: https://habr.com/ru/companies/alfa/articles/802587/ Платформа: Android

Better Open With заменяет диалог "Открыть файл с помощью" в Android. Приложение визуально отображает все действия по умолчани
Better Open With заменяет диалог "Открыть файл с помощью" в Android. Приложение визуально отображает все действия по умолчанию для открытия ссылок, изображений, PDF и многих других типов файлов, перечисляя все возможные приложения, которые вы обычно видите. В отличие от стандартного диалога, всплывающее окно показывается в течение нескольких секунд (по умолчанию 5, но это можно настроить). В окне предлагается выбрать приложение, после выбора оно автоматически будет открывать данный тип файлов. В отличии от других подобных приложений, в этом вы просто ждете запуска приложения по умолчанию (без необходимости нажимать) или выбираете другое. Better Open With на GitHub: https://github.com/Giorgi/BetterOpenWith Платформа: Android ⭐️: 23

Adwaita for Swift - это фреймворк для создания пользовательских интерфейсов для GNOME с API, похожим на SwiftUI. Основная цел
Adwaita for Swift - это фреймворк для создания пользовательских интерфейсов для GNOME с API, похожим на SwiftUI. Основная цель Adwaita - предоставить iOS-разработчикам простой в использовании интерфейс для создания GNOME-приложений. Бэкэнд должен оставаться как можно более простым, не ограничивая при этом возможности Libadwaita и GTK. Adwaita на GitHub: https://github.com/AparokshaUI/adwaita-swift Платформа: iOS/кроссплатформа ⭐️: 295

Инструментальные цепочки Gradle редко бывают хорошей идеей Вас никто не осудит за то, что вы считаете, что цепочки инструмент
Инструментальные цепочки Gradle редко бывают хорошей идеей Вас никто не осудит за то, что вы считаете, что цепочки инструментов Java - это лучший способ управления компиляцией. Однако они редко бывают хорошей идеей. Давайте разберемся, почему. Статья: https://apptractor.ru/info/articles/instrumentalnye-tsepochki-gradle-redko-byvayut-horoshey-ideey.html Платформа: Android

Ignite - это конструктор статических сайтов для разработчиков Swift, предлагающий выразительный и мощный API для создания кра
Ignite - это конструктор статических сайтов для разработчиков Swift, предлагающий выразительный и мощный API для создания красивых сайтов, которые отлично работают на всех устройствах. Ignite не пытается преобразовать код SwiftUI в HTML или просто сопоставить HTML-теги с кодом Swift. Вместо этого он стремится использовать синтаксис, похожий на SwiftUI, чтобы помочь вам создавать прекрасные веб-сайты, даже если вы не знаете HTML или CSS. Ignite на GitHub: https://github.com/twostraws/Ignite Платформа: iOS ⭐️: 562

Делаем DVD-заставку на SwiftUI Я подумал, что было бы забавно воссоздать эту заставку с помощью SwiftUI. Признаться, для этого нет никакой реальной причины, кроме того, что мне предстоит долгий перелет и нужно убить немного времени. Статья: https://apptractor.ru/info/articles/delaem-dvd-zastavku-na-swiftui.html Платформа: iOS

Разработка под Android в 2024 году Эта статья отражает моё личное мнение и профессиональные взгляды, учитывающие различные то
Разработка под Android в 2024 году Эта статья отражает моё личное мнение и профессиональные взгляды, учитывающие различные точки зрения в сообществе Android-разработчиков. Кроме того, я регулярно просматриваю руководства от Google для Android. Статья: https://habr.com/ru/companies/otus/articles/800979/ Платформа: Android

Быстрый старт, или Как ускорить запуск iOS-приложений В этой статье мы попробуем разобраться, как ускорить запуск приложения,
Быстрый старт, или Как ускорить запуск iOS-приложений В этой статье мы попробуем разобраться, как ускорить запуск приложения, а именно: • что происходит от момента нажатия на иконку приложения до представления возможности пользователю взаимодействовать с UI; • как собрать актуальные метрики скорости запуска и отзывчивости приложения; • какие тактики применить, чтобы ускорить старт и отзывчивость запуска. Статья будет полезна для iOS-разработчиков любого уровня, желающих улучшить производительность своих приложений. Статья: https://habr.com/ru/companies/simbirsoft/articles/801251/ Платформа: iOS

AboutLibraries собирает все сведения о зависимостях, включая лицензии, во время компиляции и предлагает простые API для их ви
AboutLibraries собирает все сведения о зависимостях, включая лицензии, во время компиляции и предлагает простые API для их визуализации в приложении. Никаких накладных расходов во время выполнения. Сильное кэширование. Поддерживаются любые gradle-зависимости. Поддерживает Kotlin Multiplatform и Compose. AboutLibraries на GitHub: https://github.com/mikepenz/AboutLibraries Платформа: Android ⭐️: 3.5K