MoviQ - умный трекер фильмов
MoviQ помогает вам управлять списком просмотренных фильмов и открывать для себя новые фильмы с помощью ИИ. Отмечайте фильмы как просмотренные, оценивайте свои любимые, и Gemini 2.0 предложит вам, что посмотреть дальше, исходя из ваших предпочтений.
Автор создал MoviQ как справочник для разработчиков Android, ищущих реальные примеры приложений, использующих масштабируемую чистую архитектуру, Jetpack Compose, интеграцию с Firebase и всестороннее тестирование. Это тот тип кода, который мне самому хотелось бы иметь, когда я изучал современную Android-разработку.
Ключевые архитектурные решения:
• Offline-First: Room как единый источник истины с облачной синхронизацией
• Однонаправленный поток данных: паттерн MVI с закрытыми классами
• Внедрение зависимостей: Hilt для внедрения зависимостей на этапе компиляции
• Фоновая синхронизация: WorkManager с разрешением конфликтов
• Паттерн Репозиторий: Абстрагирование источников данных от бизнес-логики
• Паттерн Use Case: Единая ответственность за каждую бизнес-операцию
MoviQ на GitHub: https://github.com/davidthurman/MoviQ/
Платформа: Android
⭐️: 8
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
MoviQ помогает вам управлять списком просмотренных фильмов и открывать для себя новые фильмы с помощью ИИ. Отмечайте фильмы как просмотренные, оценивайте свои любимые, и Gemini 2.0 предложит вам, что посмотреть дальше, исходя из ваших предпочтений.
Автор создал MoviQ как справочник для разработчиков Android, ищущих реальные примеры приложений, использующих масштабируемую чистую архитектуру, Jetpack Compose, интеграцию с Firebase и всестороннее тестирование. Это тот тип кода, который мне самому хотелось бы иметь, когда я изучал современную Android-разработку.
Ключевые архитектурные решения:
• Offline-First: Room как единый источник истины с облачной синхронизацией
• Однонаправленный поток данных: паттерн MVI с закрытыми классами
• Внедрение зависимостей: Hilt для внедрения зависимостей на этапе компиляции
• Фоновая синхронизация: WorkManager с разрешением конфликтов
• Паттерн Репозиторий: Абстрагирование источников данных от бизнес-логики
• Паттерн Use Case: Единая ответственность за каждую бизнес-операцию
MoviQ на GitHub: https://github.com/davidthurman/MoviQ/
Платформа: Android
⭐️: 8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
•
(iOS Ru) Ставим приложения на iOS через Android•
(iOS Ru) А ваше приложение похудело к лету?•
(iOS En) Senior iOS Engineer Mock Interview - Hotel Booking System Design•
(iOS En) Apple Books Expandable Menu - SwiftUI•
(iOS En) Truncated Text Effect - Tap to Expand Text View, Text Animations, Text Renderer - SwiftUI•
(iOS En) How I use Codex GPT 5.2 with Xcode (My complete workflow)•
(iOS En) App Store Style Toolbar Scroll Effect - Toolbar Header Scroll Effect - SwiftUI•
(iOS En) Smarter Lists, Labels, and Dictionary Grouping in SwiftUI•
(And Ru) Разработка видеоредактора•
(And En) Navigate Back With Result In Navigation3 (CMP & Native Android)•
(And En) Scenes & Scene Strategies In Navigation3 (CMP & Native Android)•
(And En) Coroutines Need a Scope... and That's a Good Thing!•
(Crs Ru) Да кто такой этот ваш 2D-скролл?•
(Dev Ru) TransmateSDK — ваш товарищ-полиглот•
(Dev Ru) Яндекс обновил процесс найма: что внутри?•
(Dev Ru) Сокращения, AI и рынок СНГ: кто останется востребованным в IT•
(Dev Ru) Онбординг пользователей — Активация, retention, продуктовая ценность•
(Dev Ru) ИИ-агенты в жизненном цикле ПО: от ассистентов к полноценным членам команды•
(Dev En) Unity 2D Pixel Art Game Tutorial•
(Dev En) Intro to Supabase – Full Tutorial for Beginners•
(Dev En) Gemini Flash Native Audio: Build a Voice AI Ordering System in PythonПрошлогодние видео:
•
(And Ru) Публикация Android и KMP библиотеки в Maven Central•
(Crs Ru) Flutter Dev Podcast #49: многомодульность на Flutter•
(Dev Ru) Compose и SwiftUI: найди 10 отличий•
(Dev Ru) Запускаем мобильные UI-тесты эффективно•
(Dev Ru) Как мы писали проигрыватель с нуля под каждую платформу•
(Dev Ru) Как ВКонтакте измеряет перфоманс приложений•
(Dev Ru) Очевидные и неочевидные дыры безопасности в мобильной разработке•
(Dev Ru) Страх и ненависть в мобильных автотестах. Строим своё облачное решениеPlease open Telegram to view this post
VIEW IN TELEGRAM
Как мы перевернули подход к мобильным интерфейсам с Backend Driven UI
Cегодня я расскажу, как мы построили централизованную и гибкую систему управления статусами, добавили условные переводы с хендлерами для проверки бизнес-правил и реализовали динамические сценарии для гибкого формирования UI. Спойлер: теперь наши механики и менеджеры видят только те действия, которые им реально доступны, а бэкенд гарантирует целостность данных на уровне системы.
Статья: https://habr.com/ru/companies/whoosh/articles/977814/
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Cегодня я расскажу, как мы построили централизованную и гибкую систему управления статусами, добавили условные переводы с хендлерами для проверки бизнес-правил и реализовали динамические сценарии для гибкого формирования UI. Спойлер: теперь наши механики и менеджеры видят только те действия, которые им реально доступны, а бэкенд гарантирует целостность данных на уровне системы.
Статья: https://habr.com/ru/companies/whoosh/articles/977814/
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как мы перевернули подход к мобильным интерфейсам с Backend Driven UI
После того как наш парк вырос до более 245 тысяч самокатов и велосипедов, а команда сервисных центров начала исчисляться сотнями человек, стало ясно: управлять статусами устройств, задач и процессов в...
👍1
Scyther - инструменты отладки iOS-приложения
Scyther - Комплексный набор инструментов для отладки iOS-приложений, который поможет вам выявлять и устранять ошибки. Scyther предоставляет инструменты для разработчиков, тестировщиков, команд UI/UX и бэкенд-разработчиков.
Среди них:
• Получение информации об устройстве и приложении
• Работы с сетью
• Управление данными (UserDefaults, Keychain и файлы)
• Работы с локацией
• Уведомлениями
• UI/UX (сетка поверх UI, границы представлений, замедленные анимации и т.д.)
Scyther на GitHub: https://github.com/bstillitano/Scyther
Платформа: iOS
⭐️: 113
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Scyther - Комплексный набор инструментов для отладки iOS-приложений, который поможет вам выявлять и устранять ошибки. Scyther предоставляет инструменты для разработчиков, тестировщиков, команд UI/UX и бэкенд-разработчиков.
Среди них:
• Получение информации об устройстве и приложении
• Работы с сетью
• Управление данными (UserDefaults, Keychain и файлы)
• Работы с локацией
• Уведомлениями
• UI/UX (сетка поверх UI, границы представлений, замедленные анимации и т.д.)
Scyther на GitHub: https://github.com/bstillitano/Scyther
Платформа: iOS
⭐️: 113
Please open Telegram to view this post
VIEW IN TELEGRAM
«Liquid Glass» на iOS 16: шейдеры — легко, а скриншоты — боль
С выходом iOS 26 Apple наконец-то обновила UI. Интерфейсы стали «стеклянными»: физически корректное преломление, жирная хроматическая аберрация, глубокий объем. Мне очень нравится как это выглядит, хотя в использовании, довольно часто, есть вопросы с удобством.
Но есть проблема: этот API (как и все другие новые от Apple) доступен только в новейшей системе. Если ваше приложение должно поддерживать iOS 18, 17 или (не дай бог) 14, то там всё по-старому:
Звучит как вызов и я захотел написать свой Liquid Glass на Metal + SwiftUI для iOS 16, который визуально будет 1-в-1 как нативный в iOS 26. Казалось бы, задача простая: пиши/найди/вайбкодь шейдер, и готово.
Статья: https://habr.com/ru/articles/978924/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
С выходом iOS 26 Apple наконец-то обновила UI. Интерфейсы стали «стеклянными»: физически корректное преломление, жирная хроматическая аберрация, глубокий объем. Мне очень нравится как это выглядит, хотя в использовании, довольно часто, есть вопросы с удобством.
Но есть проблема: этот API (как и все другие новые от Apple) доступен только в новейшей системе. Если ваше приложение должно поддерживать iOS 18, 17 или (не дай бог) 14, то там всё по-старому:
UIVisualEffectView, который блюрит фон.Звучит как вызов и я захотел написать свой Liquid Glass на Metal + SwiftUI для iOS 16, который визуально будет 1-в-1 как нативный в iOS 26. Казалось бы, задача простая: пиши/найди/вайбкодь шейдер, и готово.
Статья: https://habr.com/ru/articles/978924/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
От ощущений к цифрам: как мы внедрили метрики перформанса в андроид приложение
В какой-то момент мы поняли: пока перформанс не выражен в цифрах, его невозможно защищать, улучшать и связывать с деньгами. Поэтому мы договорились о наборе метрик, начали стабильно собирать их на устройствах пользователей, и построили понятную систему: меряем → интерпретируем → действуем.
В этой статье я расскажу про важность перформанса на мобильных устройствах, исследования бизнеса о том как перформанс влияет на конверсии, GMV, а также про конкретные метрики и примеры кода как их собирать.
Статья: https://habr.com/ru/articles/978170/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В какой-то момент мы поняли: пока перформанс не выражен в цифрах, его невозможно защищать, улучшать и связывать с деньгами. Поэтому мы договорились о наборе метрик, начали стабильно собирать их на устройствах пользователей, и построили понятную систему: меряем → интерпретируем → действуем.
В этой статье я расскажу про важность перформанса на мобильных устройствах, исследования бизнеса о том как перформанс влияет на конверсии, GMV, а также про конкретные метрики и примеры кода как их собирать.
Статья: https://habr.com/ru/articles/978170/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Tomato - минималистичный Помодоро-таймер для Android
Tomato - это минималистичный Pomodoro таймер для Android, созданный на основе Material 3 Expressive. Внутри Jetpack Navigation 3, Room, Vico для графиков и чартов, MaterialKolor для цветовых схем.
Tomato на GitHub: https://github.com/nsh07/Tomato
Платформа: Android
⭐️: 814
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Tomato - это минималистичный Pomodoro таймер для Android, созданный на основе Material 3 Expressive. Внутри Jetpack Navigation 3, Room, Vico для графиков и чартов, MaterialKolor для цветовых схем.
Tomato на GitHub: https://github.com/nsh07/Tomato
Платформа: Android
⭐️: 814
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Снепшот-тестирование SwiftUI View в legacy-проекте: обходим ограничения
Снепшот-тестирование — один из немногих надёжных способов контролировать визуальную целостность SwiftUI-компонентов. Но что делать, если ваш проект ограничен Xcode 13.3 и Swift 5.6, а большинство компонентов дизайн-системы обёрнуты в UIViewRepresentable?
Меня зовут Денис Третьяков, я iOS-разработчик в ПСБ. В этой статье расскажу, как мы организовали снепшот-тестирование SwiftUI-компонентов в условиях жёстких ограничений, с какими проблемами столкнулись и как их решили.
Статья: https://habr.com/ru/companies/psb/articles/978374/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Снепшот-тестирование — один из немногих надёжных способов контролировать визуальную целостность SwiftUI-компонентов. Но что делать, если ваш проект ограничен Xcode 13.3 и Swift 5.6, а большинство компонентов дизайн-системы обёрнуты в UIViewRepresentable?
Меня зовут Денис Третьяков, я iOS-разработчик в ПСБ. В этой статье расскажу, как мы организовали снепшот-тестирование SwiftUI-компонентов в условиях жёстких ограничений, с какими проблемами столкнулись и как их решили.
Статья: https://habr.com/ru/companies/psb/articles/978374/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
От неработающей к тестируемой навигации в SwiftUI: децентрализованный MVVM подход с координаторами
SwiftUI предоставляет несколько инструментов для управления навигацией, а внедрение NavigationStack и ссылок «значение-цель» улучшило программную навигацию.
Однако в более крупных приложениях стандартная навигация SwiftUI может создавать проблемы с тестируемостью, поддержкой и модульностью. Логика навигации распределена между представлениями, что приводит к связанности и затрудняет поиск кода навигации.
Эти проблемы можно решить путем интеграции координаторов в шаблон MVVM.
Статья: https://apptractor.ru/info/articles/mvvm-coordinator-swiftui.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
SwiftUI предоставляет несколько инструментов для управления навигацией, а внедрение NavigationStack и ссылок «значение-цель» улучшило программную навигацию.
Однако в более крупных приложениях стандартная навигация SwiftUI может создавать проблемы с тестируемостью, поддержкой и модульностью. Логика навигации распределена между представлениями, что приводит к связанности и затрудняет поиск кода навигации.
Эти проблемы можно решить путем интеграции координаторов в шаблон MVVM.
Статья: https://apptractor.ru/info/articles/mvvm-coordinator-swiftui.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Tessera - бесконечные узоры из представлений SwiftUI
Tessera — это пакет Swift, который преобразует сгенерированную "плитку", состоящую из произвольных представлений SwiftUI, в бесконечно повторяющийся, плавно перетекающий узор.
Фичи:
• Создавайте повторяющиеся узоры из стандартных представлений SwiftUI.
• Декларативная конфигурация: описание символов, интервалов, плотности и масштаба; размер задается во время рендеринга.
• Равномерный интервал: размещение с учетом формы, позволяющее избежать кластеризации.
• Бесшовное обтекание: края плиток обтекаются тороидально, поэтому узоры повторяются без швов.
• Детерминированный вывод: укажите начальное значение для воспроизводимых макетов; опустите для рандомизации.
• Экспорт: рендеринг в PNG или PDF, совместимый с векторной графикой.
Tessera на GitHub: https://github.com/SwiftedMind/Tessera
Платформа: iOS
⭐️: 86
Tessera — это пакет Swift, который преобразует сгенерированную "плитку", состоящую из произвольных представлений SwiftUI, в бесконечно повторяющийся, плавно перетекающий узор.
Фичи:
• Создавайте повторяющиеся узоры из стандартных представлений SwiftUI.
• Декларативная конфигурация: описание символов, интервалов, плотности и масштаба; размер задается во время рендеринга.
• Равномерный интервал: размещение с учетом формы, позволяющее избежать кластеризации.
• Бесшовное обтекание: края плиток обтекаются тороидально, поэтому узоры повторяются без швов.
• Детерминированный вывод: укажите начальное значение для воспроизводимых макетов; опустите для рандомизации.
• Экспорт: рендеринг в PNG или PDF, совместимый с векторной графикой.
Tessera на GitHub: https://github.com/SwiftedMind/Tessera
Платформа: iOS
⭐️: 86
👍1
TOAD: Kotlin-First архитектурный шаблон, который наконец-то сделал мои ViewModel скучными
Я не ставил перед собой цель создать архитектурный шаблон. Я просто хотел, чтобы мои ViewModel перестали разрастаться до неуправляемых размеров.
TOAD возник из разочарования, итераций и упрямой веры в то, что должен быть лучший способ. Это не революционно — это просто шаблон Команда, продуманно примененный к современной разработке Android/KMP.
Но иногда лучшие решения не революционны. Они просто... правильны.
Ваши ViewModel должны быть скучными. Ваши действия должны быть интересными.
Попробуйте TOAD. Ваше будущее «я» (и ваши рецензенты кода) скажут вам спасибо.
Статья: https://apptractor.ru/develop/toad.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я не ставил перед собой цель создать архитектурный шаблон. Я просто хотел, чтобы мои ViewModel перестали разрастаться до неуправляемых размеров.
TOAD возник из разочарования, итераций и упрямой веры в то, что должен быть лучший способ. Это не революционно — это просто шаблон Команда, продуманно примененный к современной разработке Android/KMP.
Но иногда лучшие решения не революционны. Они просто... правильны.
Ваши ViewModel должны быть скучными. Ваши действия должны быть интересными.
Попробуйте TOAD. Ваше будущее «я» (и ваши рецензенты кода) скажут вам спасибо.
Статья: https://apptractor.ru/develop/toad.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
PennyWise AI — трекер расходов на основе SMS
Превратите банковские SMS-сообщения в удобную, доступную для поиска хронологию денежных расходов с помощью встроенного ИИ. 100% конфиденциальность, без обработки в облаке. Удобные категории, распознавание подписок и понятная аналитика. Поддержка более 40 банков в 5 странах с возможностью работы с несколькими валютами.
Стек: MVVM, Jetpack Compose, Room, корутины, Hilt, MediaPipe AI и Material Design 3.
PennyWise AI на GitHub: https://github.com/sarim2000/pennywiseai-tracker
Платформа: Android
⭐️: 300
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Превратите банковские SMS-сообщения в удобную, доступную для поиска хронологию денежных расходов с помощью встроенного ИИ. 100% конфиденциальность, без обработки в облаке. Удобные категории, распознавание подписок и понятная аналитика. Поддержка более 40 банков в 5 странах с возможностью работы с несколькими валютами.
Стек: MVVM, Jetpack Compose, Room, корутины, Hilt, MediaPipe AI и Material Design 3.
PennyWise AI на GitHub: https://github.com/sarim2000/pennywiseai-tracker
Платформа: Android
⭐️: 300
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Тепловизор для разработчика: подсвечиваем рекомпозиции прямо в коде
Меня зовут Иван Кузнецов, я Android‑разработчик в Кинопоиске. В прошлой статье я научил Jetpack Compose показывать рекомпозиции в реальном времени, но это был скорее учебный стенд: куча модификаторов, обёрток и примеры, которые нужно готовить вручную.
Я хотел чего‑то более полезного: чтобы IDE сама показывала, какие composable‑функции перерисовываются прямо сейчас, а какие скипаются и какие параметры реально меняются. Нажал Run — и редактор превратился в живую тепловую карту UI.
Ради этого пришлось сделать то, чего нормальные люди обычно избегают: залезть под капот Kotlin Compiler Plugin и научиться внедрять код в промежуточное представление на этапе компиляции, разобраться в битовых масках Compose и поднять TCP‑сервер внутри IntelliJ, чтобы запущенное приложение могло стучаться прямо в IDE.
Так появился Riflesso — плагин, который переносит идею Layout Inspector прямо в редактор кода и делает Compose прозрачным. В этой статье я разберу его архитектуру и покажу, как компилятор, клиентская библиотека и плагин IDE собираются в один инструмент.
Статья: https://habr.com/ru/companies/yandex/articles/978126/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Меня зовут Иван Кузнецов, я Android‑разработчик в Кинопоиске. В прошлой статье я научил Jetpack Compose показывать рекомпозиции в реальном времени, но это был скорее учебный стенд: куча модификаторов, обёрток и примеры, которые нужно готовить вручную.
Я хотел чего‑то более полезного: чтобы IDE сама показывала, какие composable‑функции перерисовываются прямо сейчас, а какие скипаются и какие параметры реально меняются. Нажал Run — и редактор превратился в живую тепловую карту UI.
Ради этого пришлось сделать то, чего нормальные люди обычно избегают: залезть под капот Kotlin Compiler Plugin и научиться внедрять код в промежуточное представление на этапе компиляции, разобраться в битовых масках Compose и поднять TCP‑сервер внутри IntelliJ, чтобы запущенное приложение могло стучаться прямо в IDE.
Так появился Riflesso — плагин, который переносит идею Layout Inspector прямо в редактор кода и делает Compose прозрачным. В этой статье я разберу его архитектуру и покажу, как компилятор, клиентская библиотека и плагин IDE собираются в один инструмент.
Статья: https://habr.com/ru/companies/yandex/articles/978126/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Мобильный разработчик в 2030 году: как он будет выглядеть?
Каждые несколько лет кто-то уверенно заявляет, что «мобильная разработка мертва». Мы слышали это, когда веб-приложения стали адаптивными. Мы слышали это, когда прогрессивные веб-приложения (PWA) были в тренде. Мы слышали это, когда конструкторы приложений на основе ИИ обещали заменить программирование.
И всё же — мобильные разработчики всё ещё существуют в 2025 году, востребованы и продолжают создавать приложения, которыми люди пользуются каждый день.
Так что же произойдёт в 2030 году? Будет ли по-прежнему существовать профессия «мобильный разработчик», или она растворится в более широкой инженерной специальности?
Давайте разберёмся.
Статья: https://apptractor.ru/info/articles/mobilnyy-razrabotchik-v-2030-godu-kak-on-budet-vyglyadet.html
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Каждые несколько лет кто-то уверенно заявляет, что «мобильная разработка мертва». Мы слышали это, когда веб-приложения стали адаптивными. Мы слышали это, когда прогрессивные веб-приложения (PWA) были в тренде. Мы слышали это, когда конструкторы приложений на основе ИИ обещали заменить программирование.
И всё же — мобильные разработчики всё ещё существуют в 2025 году, востребованы и продолжают создавать приложения, которыми люди пользуются каждый день.
Так что же произойдёт в 2030 году? Будет ли по-прежнему существовать профессия «мобильный разработчик», или она растворится в более широкой инженерной специальности?
Давайте разберёмся.
Статья: https://apptractor.ru/info/articles/mobilnyy-razrabotchik-v-2030-godu-kak-on-budet-vyglyadet.html
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🤡1
Firebase App Check с Play Integrity API в Android
Когда мы создаём Android-приложение с использованием Firebase, мы думаем, что только наше реальное приложение будет взаимодействовать с сервисами Firebase, такими как Firestore, Realtime Database или Cloud Storage. Но в реальности любой может извлечь ваши ключи Firebase и попытаться получить доступ к вашему бэкэнду, используя поддельные или модифицированные приложения.
Вот тут-то и пригодится Firebase App Check.
Статья: https://apptractor.ru/info/articles/firebase-app-check.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Когда мы создаём Android-приложение с использованием Firebase, мы думаем, что только наше реальное приложение будет взаимодействовать с сервисами Firebase, такими как Firestore, Realtime Database или Cloud Storage. Но в реальности любой может извлечь ваши ключи Firebase и попытаться получить доступ к вашему бэкэнду, используя поддельные или модифицированные приложения.
Вот тут-то и пригодится Firebase App Check.
Статья: https://apptractor.ru/info/articles/firebase-app-check.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
FengNiao - очистка неиспользуемых ресурсов в Xcode-проекте
FengNiao — это простая утилита командной строки для удаления неиспользуемых файлов графических ресурсов из вашего проекта Xcode.
Программа просканирует текущий проект и все его подпапки, чтобы найти неиспользуемые изображения, а затем спросит, хотите ли вы их удалить. Перед удалением изображений убедитесь, что у вас есть резервная копия или система контроля версий, в противном случае операция будет невосстановимой. Можно легко интегрировать FengNiao в процесс сборки Xcode. Таким образом, вы можете гарантировать, что ваш проект будет очищаться при каждой сборке.
FengNiao на GitHub: https://github.com/onevcat/FengNiao
Платформа: iOS
⭐️: 3.5К
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
FengNiao — это простая утилита командной строки для удаления неиспользуемых файлов графических ресурсов из вашего проекта Xcode.
Программа просканирует текущий проект и все его подпапки, чтобы найти неиспользуемые изображения, а затем спросит, хотите ли вы их удалить. Перед удалением изображений убедитесь, что у вас есть резервная копия или система контроля версий, в противном случае операция будет невосстановимой. Можно легко интегрировать FengNiao в процесс сборки Xcode. Таким образом, вы можете гарантировать, что ваш проект будет очищаться при каждой сборке.
FengNiao на GitHub: https://github.com/onevcat/FengNiao
Платформа: iOS
⭐️: 3.5К
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
•
(iOS Ru) _VariadicView: подчеркивая скрытые возможности контейнеров•
(iOS Ru) Федеративный ML на iOS: как уберечь данные пользователей в эпоху ИИ•
(iOS Ru) Модульность в iOS: библиотека как инструмент декомпозиции•
(iOS En) Liquid Glass Showcase: Tide Guide•
(iOS En) SwiftUI Page Curl Carousel - Metal Shaders•
(iOS En) SwiftUI Animated Scrollable Slider - Custom Picker•
(And Ru) От идеи к CVE: как находить уязвимости в Android•
(And Ru) Как справляться с ростом количества Gradle-модулей в Android-проекте•
(And En) Now in Android: 123 – Android XR, Jetpack Navigation 3, and more!•
(And En) The New Retain API in Jetpack Compose - Everything You Need to Know•
(And En) Screen Transition Animations With Navigation3•
(And En) Language Design in the Age of AI•
(And En) Nobody is teaching you THIS about Onboarding•
(Crs Ru) Продакшен опыт использования Flutter Web в Яндекс Смене•
(Crs Ru) Compose Multiplatform: от сложного к простому•
(Crs Ru) Flutter в 2025: возможности, ограничения и реальный опыт•
(Dev Ru) Как построить карьеру в разработке в 2026 году и не допустить типичные ошибки•
(Dev Ru) Разработка под авто — Android Automotive, CarPlay, Tesla•
(Dev Ru) Применение AI и LLM в разработке и управлении•
(Dev Ru) Социобиолог про ИИ и утрату навыков: выживут талантливые•
(Dev En) Build a Support Agent with Vercel AI SDK – Full Tutorial•
(Mrk Ru) Ошибки рекламы, из-за которых Google Play отклоняет мобильные игрыПрошлогодние видео:
•
(iOS Ru) Мок-интервью по мобильному системному дизайну•
(iOS Ru) Задачи с собеседования: LRU Cache — leetcode•
(Crs Ru) PWA vs Native App. Как и зачем в Альфа-Бизнесе создавали свой MobileWeb•
(Dev Ru) Mobile App Performance: метрики производительности•
(Dev Ru) Релизный процесс приложений OzonPlease open Telegram to view this post
VIEW IN TELEGRAM
Perfetto в Android-разработке: когда профайлера уже недостаточно
Perfetto — крутейший инструмент. Он покажет вам те проблемы с производительностью, которые не заметит другой профайлер.
Perfetto покажет, что процессор занят системными задачами, когда ваш поток готов работать. Подсветит, что GC блокирует UI на 50 миллисекунд. А ещё расскажет, что именно планировщик ядра выкидывает поток с CPU.
Статья: https://habr.com/ru/companies/dododev/articles/977516/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Perfetto — крутейший инструмент. Он покажет вам те проблемы с производительностью, которые не заметит другой профайлер.
Perfetto покажет, что процессор занят системными задачами, когда ваш поток готов работать. Подсветит, что GC блокирует UI на 50 миллисекунд. А ещё расскажет, что именно планировщик ядра выкидывает поток с CPU.
Статья: https://habr.com/ru/companies/dododev/articles/977516/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Open-Source Habit Tracker App - трекер привычек на React Native
Open-Source Habit Tracker App - простое минималистичное приложение для отслеживания привычек с открытым исходным кодом, созданное для того, чтобы помочь людям придерживаться своих ежедневных привычек. Оно разработано с использованием Expo и React Native и использует SQLite для локального хранения данных, поэтому все данные о привычках сохраняются непосредственно на устройстве и работают полностью в автономном режиме.
Open-Source Habit Tracker App на GitHub: https://github.com/hasibhaque07/open-source-habit-tracker-app
Платформа: кроссплатформа
⭐️: 10
Open-Source Habit Tracker App - простое минималистичное приложение для отслеживания привычек с открытым исходным кодом, созданное для того, чтобы помочь людям придерживаться своих ежедневных привычек. Оно разработано с использованием Expo и React Native и использует SQLite для локального хранения данных, поэтому все данные о привычках сохраняются непосредственно на устройстве и работают полностью в автономном режиме.
Open-Source Habit Tracker App на GitHub: https://github.com/hasibhaque07/open-source-habit-tracker-app
Платформа: кроссплатформа
⭐️: 10
❤1
Snapshot тесты для iOS: быстро, стабильно, на Metal
В этой статье расскажу о скриншот-тестировании iOS-приложений. Разберём одну из ключевых проблем, с которой сталкиваются проекты при работе с тестами, посмотрим, на чём основано сравнение изображений в современных open-source инструментах и поймём, почему всё сложнее, чем может показаться на первый взгляд. Также попробуем разобраться, как можно выйти за рамки существующих ограничений с помощью AFSnapshotTesting и параллельных вычислений на Metal.
Статья: https://habr.com/ru/articles/980958/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье расскажу о скриншот-тестировании iOS-приложений. Разберём одну из ключевых проблем, с которой сталкиваются проекты при работе с тестами, посмотрим, на чём основано сравнение изображений в современных open-source инструментах и поймём, почему всё сложнее, чем может показаться на первый взгляд. Также попробуем разобраться, как можно выйти за рамки существующих ограничений с помощью AFSnapshotTesting и параллельных вычислений на Metal.
Статья: https://habr.com/ru/articles/980958/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему я перешел на Dagger Components (вместо Dagger Android)
В этой статье расскажу про свои эксперименты с Dagger. Наткнувшись в проекте на огромный модуль Application (11,5 Мб), я стал искать альтернативы обертке Dagger Android. Поэкспериментировал с продвигаемым Google Dagger Hilt, а также с более старым подходом — Dagger Components. Последний, как ни странно, позволяет немного сократить Application и в целом имеет больше плюсов, чем минусов.
Статья: https://habr.com/ru/companies/psb/articles/979988/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье расскажу про свои эксперименты с Dagger. Наткнувшись в проекте на огромный модуль Application (11,5 Мб), я стал искать альтернативы обертке Dagger Android. Поэкспериментировал с продвигаемым Google Dagger Hilt, а также с более старым подходом — Dagger Components. Последний, как ни странно, позволяет немного сократить Application и в целом имеет больше плюсов, чем минусов.
Статья: https://habr.com/ru/companies/psb/articles/979988/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM