Forwarded from Mobile Development by AppTractor
В сотрудничестве с облачной платформой Nebius AI компания JetBrains запустила серию из десяти бесплатных мини-курсов для разработчиков, демонстрирующих, как интегрировать ИИ в рабочий процесс, чтобы повысить производительность.
Всего на платформе есть 10 курсов и один Live-урок:
• Техники промптинга
• Программирование с ИИ-агентом
• Теория агентского рабочего процесса
• Обзор ИИ-инструментов для разработчиков
• ИИ-агенты как ваша команда
• Создание собственного ИИ-агента
• ИИ в QA
• Введение в ИИ для DevOps
• Легальные риски использования ИИ для программирования
• Создание приложения с ИИ с нуля
• Лабораторная ИИ разработки
Внутри 25 практических задач, выпускной проект. Предполагаемое время на все - около 20 часов. Все бесплатно. Также есть план за $500, который включает более сложную программу обучения и в итоге позволяет получить сертификат.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Ускорение CI сборок в Xcode с кэшированием слотов
Я прошел через множество трудностей, чтобы прийти к этому, и нигде не был описан подход, который я в итоге выбрал. Я подозреваю, что это связано с тем, что относительно немногие используют собственную инфраструктуру CI на macOS, что является обязательным требованием для этой конфигурации.
Далее следует полный технический анализ решения, которое я в итоге реализовал, которое я называю кэшированием с подогревом слотов.
Статья: https://apptractor.ru/info/articles/uskorenie-ci-sborok-v-xcode-s-keshirovaniem-slotov.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я прошел через множество трудностей, чтобы прийти к этому, и нигде не был описан подход, который я в итоге выбрал. Я подозреваю, что это связано с тем, что относительно немногие используют собственную инфраструктуру CI на macOS, что является обязательным требованием для этой конфигурации.
Далее следует полный технический анализ решения, которое я в итоге реализовал, которое я называю кэшированием с подогревом слотов.
Статья: https://apptractor.ru/info/articles/uskorenie-ci-sborok-v-xcode-s-keshirovaniem-slotov.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Snowdrop - простая работа с сетью
Snowdrop — типобезопасный, простой в использовании фреймворк на основе Swift Macros, созданный для того, чтобы вы могли с легкостью создавать и поддерживать сложные сетевые запросы.
Функции:
• Создание типобезопасных сервисов с помощью макроса
• Поддержка различных типов методов запроса (например,
• Пиннинг SSL/сертификатов
• Перехватчики
• Возможность создания мок-объектов
Snowdrop на GitHub: https://github.com/neothXT/Snowdrop
Платформа: iOS
⭐️: 67
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Snowdrop — типобезопасный, простой в использовании фреймворк на основе Swift Macros, созданный для того, чтобы вы могли с легкостью создавать и поддерживать сложные сетевые запросы.
Функции:
• Создание типобезопасных сервисов с помощью макроса
@Service• Поддержка различных типов методов запроса (например,
@GET, @POST, @PUT, @DELETE, @PATCH, @CONNECT, @HEAD, @OPTIONS и т.п.)• Пиннинг SSL/сертификатов
• Перехватчики
• Возможность создания мок-объектов
Snowdrop на GitHub: https://github.com/neothXT/Snowdrop
Платформа: iOS
⭐️: 67
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Все не так с Codable
Опыт нашей команды в работе над производительностью показал, что оптимизации базовых технологий и компонентов намного ценнее точечных оптимизаций. Точечные оптимизации очень хрупкие: немного изменится граф инициализации, последовательность выполнения некоторых функций, добавится новый аргумент в конструктор — и все, точечная оптимизация уже не работает или неактуальна.
А такие базовые компоненты, как
Статья: https://habr.com/ru/companies/tbank/articles/977694/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Опыт нашей команды в работе над производительностью показал, что оптимизации базовых технологий и компонентов намного ценнее точечных оптимизаций. Точечные оптимизации очень хрупкие: немного изменится граф инициализации, последовательность выполнения некоторых функций, добавится новый аргумент в конструктор — и все, точечная оптимизация уже не работает или неактуальна.
А такие базовые компоненты, как
JSONDecoder/Encoder, используются в iOS-проектах повсеместно, и ускорение их работы дает ощутимое влияние на общую производительность приложений.Статья: https://habr.com/ru/companies/tbank/articles/977694/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Android UI-тесты с Maestro без тяжелой инфраструктуры
Maestro в Android-проекте: mock flavor, базовые сценарии и локальный прогон UI-тестов через Git pre-push без тяжелой инфраструктуры.
Статья: https://www.codingpas.ru/posts/android-ui-tests-maestro-pre-push/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Maestro в Android-проекте: mock flavor, базовые сценарии и локальный прогон UI-тестов через Git pre-push без тяжелой инфраструктуры.
Статья: https://www.codingpas.ru/posts/android-ui-tests-maestro-pre-push/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Опенсорс-библиотека Implicits от Яндекс Браузера: новый шаг в передаче зависимостей Swift
Когда iOS‑приложение вырастает до сотен тысяч строк, появляется проблема: добавление зависимости в глубокий компонент требует изменений во всех промежуточных функциях. Эти функции зависимость не используют — они просто передают её дальше. Сигнатуры разбухают, рефакторинг превращается в массовую правку файлов, и значительная часть кода становится техническим шумом.
Проблема известна. Scala использует implicit parameters на уровне языка, Kotlin экспериментирует с context receivers, Android полагается на Dagger. А Swift не предлагает встроенного решения. Поэтому мы в команде Яндекс Браузера создали библиотеку Implicits — механизм неявной передачи зависимостей с compile‑time‑проверками. Она успешно работает в продакшне Браузера на полутора миллионах строк Swift‑кода, а ещё доступна в опенсорсе.
Статья: https://habr.com/ru/companies/yandex/articles/976898/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Когда iOS‑приложение вырастает до сотен тысяч строк, появляется проблема: добавление зависимости в глубокий компонент требует изменений во всех промежуточных функциях. Эти функции зависимость не используют — они просто передают её дальше. Сигнатуры разбухают, рефакторинг превращается в массовую правку файлов, и значительная часть кода становится техническим шумом.
Проблема известна. Scala использует implicit parameters на уровне языка, Kotlin экспериментирует с context receivers, Android полагается на Dagger. А Swift не предлагает встроенного решения. Поэтому мы в команде Яндекс Браузера создали библиотеку Implicits — механизм неявной передачи зависимостей с compile‑time‑проверками. Она успешно работает в продакшне Браузера на полутора миллионах строк Swift‑кода, а ещё доступна в опенсорсе.
Статья: https://habr.com/ru/companies/yandex/articles/976898/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Я попытался сделать Offline-First приложение, и это чуть не уничтожили проект
Мы, разработчики, иногда проводим эксперименты ради удовольствия. А иногда такие эксперименты превращаются в фильмы ужасов.
Мой эксперимент с приоритетом офлайн-подключения должен был быть простым: сделать так, чтобы всё iOS-приложение работало даже при отсутствии сети.
Никаких индикаторов загрузки.
Никаких «пожалуйста, повторите попытку».
Никаких «проверьте ваше соединение».
Просто мгновенный пользовательский интерфейс, локальная запись и фоновая синхронизация, которая волшебным образом всё исправляет, когда восстанавливается сеть.
В теории? Прекрасно.
В реальности? Я случайно открыл финального босса в прохождении архитектуры — конфликты данных.
И не те милые, что описаны в учебниках.
Я говорю о реальных, запутанных, противоречивых ошибках, поступающих от реальных людей, использующих приложение на разных устройствах, способами, которые ни один менеджер по продукту не мог предсказать.
К концу проекта моя локальная база данных знала о предательстве и несогласованности больше, чем любые человеческие отношения.
Статья: https://apptractor.ru/info/articles/ya-popytalsya-sdelat-offline-first-prilozhenie-i-eto-chut-ne-unichtozhili-proekt.html
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Мы, разработчики, иногда проводим эксперименты ради удовольствия. А иногда такие эксперименты превращаются в фильмы ужасов.
Мой эксперимент с приоритетом офлайн-подключения должен был быть простым: сделать так, чтобы всё iOS-приложение работало даже при отсутствии сети.
Никаких индикаторов загрузки.
Никаких «пожалуйста, повторите попытку».
Никаких «проверьте ваше соединение».
Просто мгновенный пользовательский интерфейс, локальная запись и фоновая синхронизация, которая волшебным образом всё исправляет, когда восстанавливается сеть.
В теории? Прекрасно.
В реальности? Я случайно открыл финального босса в прохождении архитектуры — конфликты данных.
И не те милые, что описаны в учебниках.
Я говорю о реальных, запутанных, противоречивых ошибках, поступающих от реальных людей, использующих приложение на разных устройствах, способами, которые ни один менеджер по продукту не мог предсказать.
К концу проекта моя локальная база данных знала о предательстве и несогласованности больше, чем любые человеческие отношения.
Статья: https://apptractor.ru/info/articles/ya-popytalsya-sdelat-offline-first-prilozhenie-i-eto-chut-ne-unichtozhili-proekt.html
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
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