Аутентификация через биометрию в Kotlin Multiplatform или Koncierge
Наконец-то неплохо продвинувшись в написании своего мультиплатформенного приложения Modern Money мне понадобилась аутентификация для Kotlin Multiplatform.
Хотелось иметь один API для PIN-кода и биометрии, а под капотом использовать Android Biometric Prompt, Windows Hello, Touch ID.
Так появился Koncierge — набор KMP-модулей
Казалось бы, задача довольно стандартная: объявить
Статья: https://habr.com/ru/articles/1059174/
Платформа: кроссплатформа
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Наконец-то неплохо продвинувшись в написании своего мультиплатформенного приложения Modern Money мне понадобилась аутентификация для Kotlin Multiplatform.
Хотелось иметь один API для PIN-кода и биометрии, а под капотом использовать Android Biometric Prompt, Windows Hello, Touch ID.
Так появился Koncierge — набор KMP-модулей
biometric, auth и auth-compose.Казалось бы, задача довольно стандартная: объявить
expect-класс и написать несколько actual-реализаций. На Android это примерно так и получилось. А вот Windows Hello, JVM-модуль и публикация всех артефактов заставили немного разобраться в том, как Kotlin Multiplatform работает с нативным кодом.Статья: https://habr.com/ru/articles/1059174/
Платформа: кроссплатформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Container - повышения реактивности асинхронных операций/загрузки
Container — это библиотека для упрощения управления состоянием и загрузки данных в приложениях Android. Она предоставляет небольшой набор строительных блоков, охватывающих наиболее распространенные реактивные шаблоны: обертывание асинхронных результатов в типизированный статус, управление производным состоянием из нескольких потоков и ленивая загрузка данных по запросу.
Container на GitHub: https://github.com/romychab/container
Платформа: Android
⭐️: 15
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Container — это библиотека для упрощения управления состоянием и загрузки данных в приложениях Android. Она предоставляет небольшой набор строительных блоков, охватывающих наиболее распространенные реактивные шаблоны: обертывание асинхронных результатов в типизированный статус, управление производным состоянием из нескольких потоков и ленивая загрузка данных по запросу.
Container на GitHub: https://github.com/romychab/container
Платформа: Android
⭐️: 15
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) Permission Onboarding Animation•
(iOS En) SwiftUI Search Made Amazing: Suggestions, Scopes & Tokens•
(iOS En) Gooey Morphing Pull To Refresh Using SwiftUI•
(And En) My Best Practices For Showing Errors In an App - Building Successful Apps•
(And En) The Compose Styles API Is Everything I Wished For•
(And En) Talking to terminals (and how they talk back)•
(And En) Peeling back the Layers: A Navigation3 Deep Dive•
(And En) How I Learned to Stop Worrying and Love Value Semantics (in Kotlin)•
(And En) Local Lifetimes for Kotlin•
(And En) Metro Under the Hood•
(And En) When Flows Won't Cut It•
(And En) AI-Driven Performance Optimization - Kotzilla MCP•
(Crs En) React Native Full Stack Course – Clerk, Postgres, NativeWind•
(Dev Ru) Качество, архитектура и ответственность в эпоху ИИ-ассистентов•
(Dev Ru) Технический долг и архитектура•
(Dev Ru) Терминалы и оболочки — tty, bash, zsh•
(Dsg Ru) DesignOps на стероидах: автоматизация процессов в Figma•
(iOS Ru) Sideloading и узник Apple•
(iOS Ru) Как побеждать в конкурсах от Telegram•
(And Ru) Переходишь на Compose? Не спеши!•
(And Ru) Как работает ТВ в Android TV?•
(And Ru) Нужны ли Android-разработчики на заводе?•
(And Ru) Gradle DSL изнутри•
(And Ru) Kotlin DSL как единый источник правды для решения многих задачPlease open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Permission Onboarding Animation | Keyframes | Complex Animations | Xcode 27
Hello Guys 🖐🖐🖐
In this video, I’ll show you how to create an Animated Camera Permission Onboarding UI Animation using SwiftUI.
SwiftUI OnBoarding Animation | SwiftUI Onboarding UI | SwiftUI Permission Onboarding | SwiftUI Camera Permission OnBoarding | SwiftUI…
In this video, I’ll show you how to create an Animated Camera Permission Onboarding UI Animation using SwiftUI.
SwiftUI OnBoarding Animation | SwiftUI Onboarding UI | SwiftUI Permission Onboarding | SwiftUI Camera Permission OnBoarding | SwiftUI…
Экономим на СМС рассылках — сервис push-уведомлений для веб- и PWA-приложений
В этом материале поговорим о сервисе доставки push-уведомлений - решаемых задачах, архитектуре, реализации и достигаемом эффекте от внедрения.
Статья: https://habr.com/ru/articles/1059890/
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этом материале поговорим о сервисе доставки push-уведомлений - решаемых задачах, архитектуре, реализации и достигаемом эффекте от внедрения.
Статья: https://habr.com/ru/articles/1059890/
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS Performance Agent Skills - коллекция навыков для улучшения производительности iOS-приложений
Набор навыков для ИИ-агентов, предназначенных для анализа, диагностики и улучшения производительности iOS-приложений. Каждый навык находится в собственном каталоге верхнего уровня и устанавливается одной командой
Навыки - практические инструкции по оптимизации производительности для ИИ-агентов. Они разработаны для того, чтобы помочь агенту анализировать проблемы производительности iOS с помощью более структурированной модели мышления: что проверять, чего избегать, какие компромиссы важны и когда требуется измерение. Это набор многократно используемых руководящих файлов для анализа, рефакторинга и исследования кода с помощью ИИ.
iOS Performance Agent Skills на GitHub: https://github.com/Livsy90/iOS-Performance-Agent-Skills
Платформа: iOS
⭐️: 79
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Набор навыков для ИИ-агентов, предназначенных для анализа, диагностики и улучшения производительности iOS-приложений. Каждый навык находится в собственном каталоге верхнего уровня и устанавливается одной командой
npx или может быть скопирован вручную в другую конфигурацию агента.Навыки - практические инструкции по оптимизации производительности для ИИ-агентов. Они разработаны для того, чтобы помочь агенту анализировать проблемы производительности iOS с помощью более структурированной модели мышления: что проверять, чего избегать, какие компромиссы важны и когда требуется измерение. Это набор многократно используемых руководящих файлов для анализа, рефакторинга и исследования кода с помощью ИИ.
iOS Performance Agent Skills на GitHub: https://github.com/Livsy90/iOS-Performance-Agent-Skills
Платформа: iOS
⭐️: 79
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Я создал желеобразное FAB-меню для Jetpack Compose
JellyFab — необычное FAB-меню для Jetpack Compose, в котором центральная кнопка не просто открывает дополнительные действия, а растягивается и покачивается, словно желе. Эффект реализован без шейдеров: только
Главная идея — представить круг не готовой фигурой, а набором из 36 точек. При появлении пунктов меню ближайшие к ним точки смещаются наружу, причём сила смещения плавно уменьшается по гауссовой кривой. Затем точки соединяются кривыми Безье, а тень меняется вместе с деформацией кнопки. Хороший пример того, что выразительная UI-анимация необязательно требует сложных технологий — иногда достаточно правильно представить задачу и синхронизировать несколько простых эффектов.
Статья🇺🇸 : https://proandroiddev.com/i-built-a-jelly-like-fab-menu-for-jetpack-compose-42e9f65f6576
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
JellyFab — необычное FAB-меню для Jetpack Compose, в котором центральная кнопка не просто открывает дополнительные действия, а растягивается и покачивается, словно желе. Эффект реализован без шейдеров: только
Canvas, Animatable и немного геометрии. Вместо стандартного FloatingActionButton используется обычный кликабельный Box, под которым можно полностью самостоятельно отрисовывать и деформировать форму.Главная идея — представить круг не готовой фигурой, а набором из 36 точек. При появлении пунктов меню ближайшие к ним точки смещаются наружу, причём сила смещения плавно уменьшается по гауссовой кривой. Затем точки соединяются кривыми Безье, а тень меняется вместе с деформацией кнопки. Хороший пример того, что выразительная UI-анимация необязательно требует сложных технологий — иногда достаточно правильно представить задачу и синхронизировать несколько простых эффектов.
Статья
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
overlay-demo.gif
39.2 MB
Compose A11y Scanner - cканер доступности для Jetpack Compose
Compose A11y Scanner - рантайм сканер доступности, который отображает проблемы непосредственно в пользовательском интерфейсе Compose.
Compose A11y Scanner на GitHub: https://github.com/mohdaquib/ComposeA11yScanner
Платформа: Android
⭐️: 15
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Compose A11y Scanner - рантайм сканер доступности, который отображает проблемы непосредственно в пользовательском интерфейсе Compose.
:scanner-core отвечает за движок сканирования, модели, состояние результатов и контракт A11yRule. :scanner-rules содержит встроенные правила проверки. :scanner-ui читает дерево семантики Compose, извлекает цвета через ColorExtractor, запускает сканирование и рисует оверлеи с найденными проблемами поверх интерфейса приложения.Compose A11y Scanner на GitHub: https://github.com/mohdaquib/ComposeA11yScanner
Платформа: Android
⭐️: 15
Please open Telegram to view this post
VIEW IN TELEGRAM
DarkGram: как мы делаем power‑user Telegram‑клиент для iOS — и почему его нет в App Store
Мы небольшой командой развиваем DarkGram — неофициальный Telegram‑клиент для iOS на базе Swiftgram и Telegram‑iOS. Вдохновлялись мы прежде всего философией AyuGram: дать пользователю больше контроля над клиентом, приватностью и локальной историей. Но DarkGram не является попыткой буквально перенести AyuGram на iPhone. Проект постепенно развивается в самостоятельный клиент со своими функциями, интерфейсом и техническими решениями.
Статья: https://habr.com/ru/articles/1060956/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Мы небольшой командой развиваем DarkGram — неофициальный Telegram‑клиент для iOS на базе Swiftgram и Telegram‑iOS. Вдохновлялись мы прежде всего философией AyuGram: дать пользователю больше контроля над клиентом, приватностью и локальной историей. Но DarkGram не является попыткой буквально перенести AyuGram на iPhone. Проект постепенно развивается в самостоятельный клиент со своими функциями, интерфейсом и техническими решениями.
Статья: https://habr.com/ru/articles/1060956/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
🤮2
Отчеты пользователей с Diagnostics: более быстрое устранение ошибок с помощью ИИ
Diagnostics серьёзно меняет подход к поддержке пользователей внутри приложений. HTML-отчёт сразу отвечает на типичные вопросы и уменьшает количество лишней переписки.
Статья: https://apptractor.ru/info/articles/otchety-polzovateley-s-diagnostics-bolee-bystroe-ustranenie-oshibok-s-pomoschyu-ii.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Diagnostics серьёзно меняет подход к поддержке пользователей внутри приложений. HTML-отчёт сразу отвечает на типичные вопросы и уменьшает количество лишней переписки.
Статья: https://apptractor.ru/info/articles/otchety-polzovateley-s-diagnostics-bolee-bystroe-ustranenie-oshibok-s-pomoschyu-ii.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Simslim - уменьшение потребления памяти iOS-симулятором
Simslim позволяет запускать гораздо больше iOS-симуляторов на одном Mac, отключая фоновые процессы, которые симулятору не нужны.
Вновь запущенный iOS-симулятор запускает около 180 фоновых служб: Siri, индексирование Spotlight, анализ фотографий, новости, постановка обоев, синхронизация iCloud и так далее. Ничто из этого не имеет значения, когда вы используете симулятор для разработки, тестирования или CI. Simslim отключает эти службы, что сокращает объем памяти, потребляемой каждым симулятором, примерно в 4 раза.
Что вы теряете
Отключение служб подходит для большинства задач разработки, автоматизации UI и CI, но некоторые функции действительно перестают работать. Вот некоторые из них, о которых стоит знать:
• Spotlight и поиск в настройках ничего не выдают
• Для push-уведомлений нужен apsd, для тестирования StoreKit нужен storekitd
• Для универсальных ссылок нужен swcd
• Средство выбора контактов, фотографий и календаря может работать некорректно без категорий
Simslim на GitHub: https://github.com/MobAI-App/simslim
Платформа: iOS
⭐️: 98
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Simslim позволяет запускать гораздо больше iOS-симуляторов на одном Mac, отключая фоновые процессы, которые симулятору не нужны.
Вновь запущенный iOS-симулятор запускает около 180 фоновых служб: Siri, индексирование Spotlight, анализ фотографий, новости, постановка обоев, синхронизация iCloud и так далее. Ничто из этого не имеет значения, когда вы используете симулятор для разработки, тестирования или CI. Simslim отключает эти службы, что сокращает объем памяти, потребляемой каждым симулятором, примерно в 4 раза.
Что вы теряете
Отключение служб подходит для большинства задач разработки, автоматизации UI и CI, но некоторые функции действительно перестают работать. Вот некоторые из них, о которых стоит знать:
• Spotlight и поиск в настройках ничего не выдают
• Для push-уведомлений нужен apsd, для тестирования StoreKit нужен storekitd
• Для универсальных ссылок нужен swcd
• Средство выбора контактов, фотографий и календаря может работать некорректно без категорий
simslim profiles отображает все категории, поэтому вы можете сохранить категорию с помощью --except или отдельные демоны с помощью --keep.Simslim на GitHub: https://github.com/MobAI-App/simslim
Платформа: iOS
⭐️: 98
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Интеллектуальные приложения для Android: введение в Jetpacker
В этой серии публикаций Google поможет пройти через все эти варианты выбора. Мы начнём с базового мобильного приложения и постепенно превратим его в персонализированный, интеллектуальный и агентный пользовательский опыт.
Статья: https://apptractor.ru/info/articles/vvedenie-v-jetpacker.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой серии публикаций Google поможет пройти через все эти варианты выбора. Мы начнём с базового мобильного приложения и постепенно превратим его в персонализированный, интеллектуальный и агентный пользовательский опыт.
Статья: https://apptractor.ru/info/articles/vvedenie-v-jetpacker.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Как Netflix справляется с 260 миллионами одновременных потоков без буферизации
Несколько недель назад у меня Wi-Fi просел прямо посреди серии. Картинка стала мыльной примерно на десять секунд, а затем тихо снова стала чёткой. Без индикатора загрузки. Без остановки.
Этот маленький момент находится в конце длинной цепочки, и почти ни одна её часть не запускается в тот момент, когда вы нажимаете Play. В начале 2024 года Netflix превысил отметку в 260 миллионов домохозяйств с подпиской, а с тех пор вырос уже более чем до 300 миллионов. В один вечер ноября 2024 года 65 миллионов потоков одновременно смотрели один боксёрский матч.
То, как Netflix справляется с такой нагрузкой в 2026 году, в основном решается за часы до того, как запрос вообще покидает ваш дом. В этом вся суть, и это изменило мой взгляд на кэширование. Давайте разберёмся.
Статья: https://apptractor.ru/info/articles/kak-netflix-spravlyaetsya-s-260-millionami-odnovremennyh-potokov-bez-buferizatsii.html
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Несколько недель назад у меня Wi-Fi просел прямо посреди серии. Картинка стала мыльной примерно на десять секунд, а затем тихо снова стала чёткой. Без индикатора загрузки. Без остановки.
Этот маленький момент находится в конце длинной цепочки, и почти ни одна её часть не запускается в тот момент, когда вы нажимаете Play. В начале 2024 года Netflix превысил отметку в 260 миллионов домохозяйств с подпиской, а с тех пор вырос уже более чем до 300 миллионов. В один вечер ноября 2024 года 65 миллионов потоков одновременно смотрели один боксёрский матч.
То, как Netflix справляется с такой нагрузкой в 2026 году, в основном решается за часы до того, как запрос вообще покидает ваш дом. В этом вся суть, и это изменило мой взгляд на кэширование. Давайте разберёмся.
Статья: https://apptractor.ru/info/articles/kak-netflix-spravlyaetsya-s-260-millionami-odnovremennyh-potokov-bez-buferizatsii.html
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
AI-centric архитектура Flutter-приложения (и не только) для небольших стартапов
Мысли о масштабируемой архитектуре приложений через кодовую структуру и философии «developer as a user»; подходит для indie-разработчиков и стартапов на ранних стадиях.
Хотя статья была написана в начале 25 года, за исключением некоторых вещей на мой взгляд, архитектурные паттерны не потеряли актуальности, и поэтому, многие паттерну все ещё также актуальны и это то, что использую на практике.
В этой статье я хотел бы поделиться своими мыслями о том, как структурировать код и использовать различные подходы на разных этапах роста продукта.
Статья: https://habr.com/ru/articles/1061508/
Платформа: архитектура
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Мысли о масштабируемой архитектуре приложений через кодовую структуру и философии «developer as a user»; подходит для indie-разработчиков и стартапов на ранних стадиях.
Хотя статья была написана в начале 25 года, за исключением некоторых вещей на мой взгляд, архитектурные паттерны не потеряли актуальности, и поэтому, многие паттерну все ещё также актуальны и это то, что использую на практике.
В этой статье я хотел бы поделиться своими мыслями о том, как структурировать код и использовать различные подходы на разных этапах роста продукта.
Статья: https://habr.com/ru/articles/1061508/
Платформа: архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
Разработка системы автоматической синхронизации фотографий: Android System Design
Представьте: вы проходите собеседование на позицию Staff Android Engineer, и интервьюер наклоняется вперёд и говорит:
«Расскажите, как бы вы спроектировали систему автоматической синхронизации, похожую на Google Photos. Меня интересует всё: обнаружение новых фотографий, загрузка, работа без сети, влияние на батарею и серверная часть».
Это один из лучших вопросов по системному дизайну для Staff Android Engineer, потому что он затрагивает каждый уровень системы. Здесь недостаточно просто написать фоновый сервис — нужно одновременно учитывать постоянно меняющиеся ограничения Android, надёжность распределённых систем, особенности энергопотребления и доверие пользователей.
В этой статье я приведу ответ, который дал бы сам. Разберём систему уровень за уровнем.
Статья: https://apptractor.ru/info/articles/razrabotka-sistemy-avtomaticheskoy-sinhronizatsii-fotografiy-android-system-design.html
Платформа: Android/архитектура
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Представьте: вы проходите собеседование на позицию Staff Android Engineer, и интервьюер наклоняется вперёд и говорит:
«Расскажите, как бы вы спроектировали систему автоматической синхронизации, похожую на Google Photos. Меня интересует всё: обнаружение новых фотографий, загрузка, работа без сети, влияние на батарею и серверная часть».
Это один из лучших вопросов по системному дизайну для Staff Android Engineer, потому что он затрагивает каждый уровень системы. Здесь недостаточно просто написать фоновый сервис — нужно одновременно учитывать постоянно меняющиеся ограничения Android, надёжность распределённых систем, особенности энергопотребления и доверие пользователей.
В этой статье я приведу ответ, который дал бы сам. Разберём систему уровень за уровнем.
Статья: https://apptractor.ru/info/articles/razrabotka-sistemy-avtomaticheskoy-sinhronizatsii-fotografiy-android-system-design.html
Платформа: Android/архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Serve-avd - трансляция Android-эмулятора в веб
Serve-avd транслирует Android Emulator на веб-страницу. Он захватывает экран эмулятора через
Фичи:
• Плавный видеопоток H.264 в браузере (WebCodecs) с мгновенной отрисовкой при подключении — без ожидания следующего кадра
• Полное взаимодействие: касание, перетаскивание и перемещение мышью, прокрутка колесиком
• Навигация Android из браузера: Назад, Домой, Недавние, питание, громкость, переключение тем, скриншот
• Переадресация клавиатуры — ввод текста непосредственно в эмулятор, клавиша Escape — «Назад», ⌘⇧H — «Домой»
• logcat перенаправляется в браузер (и отображается в консоли браузера для чтения инструментами MCP, используемыми в браузере)
• Недавние действия доступны на панели инструментов браузера и в журнале событий serve-avd
• Вывод иерархии пользовательского интерфейса для агентов: serve-avd ax (uiautomator → JSON)
• Несколько эмуляторов одновременно — загрузка и подключение AVD прямо с панели «Устройства»
• Работает в headless режиме через тот же HTTP API, если браузер не подключен
Размещенные эмуляторы сложно тестировать. serve-avd позволяет сначала протестировать размещенную инфраструктуру локально для более быстрой итерации. Когда вы будете готовы разместить эмулятор удаленно, просто туннелируйте обслуживаемый URL-адрес, и пользователи смогут взаимодействовать с эмулятором, как если бы он работал локально на их устройстве. Это также отличный способ передать эмулятор агенту ИИ: всё управляется по протоколу HTTP + WebSocket, скриншоты и дампы пользовательского интерфейса создаются одной командой, а журнал событий показывает, что сделал агент.
Serve-avd на GitHub: https://github.com/hsandhu/serve-avd
Платформа: Android
⭐️: 4
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Serve-avd транслирует Android Emulator на веб-страницу. Он захватывает экран эмулятора через
adb screenrecord, предоставляет его в виде потока H.264 WebCodecs (с резервным вариантом MJPEG) плюс канал управления WebSocket и отображает в браузере. Он работает с любым запущенным эмулятором Android (и большинством физических устройств через adb) — без root-прав, без плагинов, без инструментов в вашем приложении.Фичи:
• Плавный видеопоток H.264 в браузере (WebCodecs) с мгновенной отрисовкой при подключении — без ожидания следующего кадра
• Полное взаимодействие: касание, перетаскивание и перемещение мышью, прокрутка колесиком
• Навигация Android из браузера: Назад, Домой, Недавние, питание, громкость, переключение тем, скриншот
• Переадресация клавиатуры — ввод текста непосредственно в эмулятор, клавиша Escape — «Назад», ⌘⇧H — «Домой»
• logcat перенаправляется в браузер (и отображается в консоли браузера для чтения инструментами MCP, используемыми в браузере)
• Недавние действия доступны на панели инструментов браузера и в журнале событий serve-avd
• Вывод иерархии пользовательского интерфейса для агентов: serve-avd ax (uiautomator → JSON)
• Несколько эмуляторов одновременно — загрузка и подключение AVD прямо с панели «Устройства»
• Работает в headless режиме через тот же HTTP API, если браузер не подключен
Размещенные эмуляторы сложно тестировать. serve-avd позволяет сначала протестировать размещенную инфраструктуру локально для более быстрой итерации. Когда вы будете готовы разместить эмулятор удаленно, просто туннелируйте обслуживаемый URL-адрес, и пользователи смогут взаимодействовать с эмулятором, как если бы он работал локально на их устройстве. Это также отличный способ передать эмулятор агенту ИИ: всё управляется по протоколу HTTP + WebSocket, скриншоты и дампы пользовательского интерфейса создаются одной командой, а журнал событий показывает, что сделал агент.
Serve-avd на GitHub: https://github.com/hsandhu/serve-avd
Платформа: Android
⭐️: 4
Please open Telegram to view this post
VIEW IN TELEGRAM
50 вопросов о System Design, ответы на которые должен знать каждый Senior iOS-разработчик: часть 3
Вопрос 11. Когда вы бы использовали Core Data?
Вопрос 12. Когда вы бы выбрали SQLite вместо Core Data?
Вопрос 13. Как спроектировать Offline First iOS-приложение?
Вопрос 14. Как синхронизировать локальные и серверные данные?
Вопрос 15. Как разрешать конфликты синхронизации?
Первая часть, про архитектуру приложения. Вторая про сетевой слой.
Статья: https://apptractor.ru/info/articles/50-voprosov-o-system-design-otvety-na-kotorye-dolzhen-znat-kazhdyy-senior-ios-razrabotchik-chast-3.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Вопрос 11. Когда вы бы использовали Core Data?
Вопрос 12. Когда вы бы выбрали SQLite вместо Core Data?
Вопрос 13. Как спроектировать Offline First iOS-приложение?
Вопрос 14. Как синхронизировать локальные и серверные данные?
Вопрос 15. Как разрешать конфликты синхронизации?
Первая часть, про архитектуру приложения. Вторая про сетевой слой.
Статья: https://apptractor.ru/info/articles/50-voprosov-o-system-design-otvety-na-kotorye-dolzhen-znat-kazhdyy-senior-ios-razrabotchik-chast-3.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Как Apple в iOS 27 удалось сократить время запуска на 30%
Каждые несколько лет Apple выводит системных инженеров из спячки, чтобы они немного улучшили динамический компоновщик, планирование процессора или предварительную загрузку данных.
В результате компании удаётся выжать из времени запуска очередное двукратное ускорение, постепенно уменьшающиеся до 1,3 раза или, что более вероятно, зафиксированные мной 1,2 раза.
Это хорошо. Однако ответственность за архитектуру критического пути запуска по-прежнему лежит на разработчике.
Статья: https://apptractor.ru/info/articles/kak-apple-v-ios-27-udalos-sokratit-vremya-zapuska-na-30.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Каждые несколько лет Apple выводит системных инженеров из спячки, чтобы они немного улучшили динамический компоновщик, планирование процессора или предварительную загрузку данных.
В результате компании удаётся выжать из времени запуска очередное двукратное ускорение, постепенно уменьшающиеся до 1,3 раза или, что более вероятно, зафиксированные мной 1,2 раза.
Это хорошо. Однако ответственность за архитектуру критического пути запуска по-прежнему лежит на разработчике.
Статья: https://apptractor.ru/info/articles/kak-apple-v-ios-27-udalos-sokratit-vremya-zapuska-na-30.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
LNPopupController - всплывающие окна поверх других контроллеров представлений
LNPopupController — это фреймворк для отображения контроллеров представлений в виде всплывающих окон для других контроллеров представлений, аналогично мини-плеерам Apple Music и Podcasts.
Фреймворк спроектирован как универсальное решение, подходящее для большинства сценариев, поэтому он реализован в виде категории для
Для
Фичи:
• Поддержка стеклянного дизайна iOS 26 с сохранением подходящего внешнего вида на предыдущих версиях iOS.
• Поддержка iOS 13 и новее.
• Распространение в виде Swift Package Manager-пакета для проектов на Swift и Objective-C.
• Корректная интеграция с современным UIKit.
• Есть реализация SwiftUI
LNPopupController на GitHub: https://github.com/LeoNatan/LNPopupController
Платформа: iOS
⭐️: 3.1K
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
LNPopupController — это фреймворк для отображения контроллеров представлений в виде всплывающих окон для других контроллеров представлений, аналогично мини-плеерам Apple Music и Podcasts.
Фреймворк спроектирован как универсальное решение, подходящее для большинства сценариев, поэтому он реализован в виде категории для
UIViewController. Каждый контроллер представления может отображать всплывающую панель, закреплённую относительно нижнего элемента интерфейса.Для
UITabBarController и его подклассов панель по умолчанию закрепляется над панелью вкладок. Для UINavigationController и его подклассов — над панелью инструментов. В остальных контроллерах всплывающая панель отображается в нижней части экрана. Подклассы контроллеров представления также могут предоставлять собственные элементы для закрепления панели.Фичи:
• Поддержка стеклянного дизайна iOS 26 с сохранением подходящего внешнего вида на предыдущих версиях iOS.
• Поддержка iOS 13 и новее.
• Распространение в виде Swift Package Manager-пакета для проектов на Swift и Objective-C.
• Корректная интеграция с современным UIKit.
• Есть реализация SwiftUI
LNPopupController на GitHub: https://github.com/LeoNatan/LNPopupController
Платформа: iOS
⭐️: 3.1K
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) Complex UI: Recreating iOS Lock Screen UI Animations Using SwiftUI•
(iOS En) SwiftUI Network Reachability with NWPathMonitor and Observation•
(iOS En) Elastic Custom Segmented Control - SwiftUI•
(And En) Android XR fireside talk: Building the future of spatial experiences•
(And En) Beginner's Guide to Analytics Logging on Android With Firebase Analytics•
(And En) Tiny Models, Big Impact: On-Device AI for Real Apps •
(And En) The State of Amper•
(And En) Run, Kotlin, Run!•
(Crs En) How You Get the REAL Liquid Glass Effect In Compose Multiplatform•
(Crs En) Full-Stack Kotlin AI: Powering Compose Multiplatform apps with Koog & MCP•
(Crs En) What Nobody Told Us About Shipping Kotlin to iOS•
(Dev Ru) Spec-Driven Development: теория, инструменты, практика•
(Dev Ru) Как за три дня собрать прототип продукта и сократить месяцы согласований•
(Dev Ru) Зачем учить Kotlin, если есть ИИ?•
(Dev Ru) Spec-Driven Development на практике — SDD, BMAD, OpenSpec, вайб кодинг•
(iOS Ru) Инструменты для мониторинга производительности iOS-приложений•
(iOS Ru) Разбор SwiftUI проекта стартапа с AI на борту•
(iOS Ru) Вам не нужно хранилище в приложении•
(And Ru) Navigation 3 для Compose: что нового и зачем это нужно?•
(And Ru) Роман Елизаров про Kotlin, корутины и работу в JetbrainsPlease open Telegram to view this post
VIEW IN TELEGRAM
Измеряя незримое: что и как измерять в мобильной разработке
Этой статьёй я открываю цикл материалов, в которых будут собраны мысли, советы и инструкции о том, как сделать приложение и процессы его разработки измеримыми, как находить «узкие места», диагностировать проблемы и причины их возникновения, а также фиксировать их наличие. Минимум кода, сложных терминов и «rocket science» — только практический опыт и наработки по различным метрикам.
Эта тема далеко не новая, и многие моменты могут показаться очевидными. Однако, чтобы разобраться в нюансах, необходимо начать с базы. Вовсе не обязательно делать именно так. Буду рад узнать, как вы работаете с теми или иными метриками.
Статья: https://habr.com/ru/companies/domclick/articles/1059144/
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Этой статьёй я открываю цикл материалов, в которых будут собраны мысли, советы и инструкции о том, как сделать приложение и процессы его разработки измеримыми, как находить «узкие места», диагностировать проблемы и причины их возникновения, а также фиксировать их наличие. Минимум кода, сложных терминов и «rocket science» — только практический опыт и наработки по различным метрикам.
Эта тема далеко не новая, и многие моменты могут показаться очевидными. Однако, чтобы разобраться в нюансах, необходимо начать с базы. Вовсе не обязательно делать именно так. Буду рад узнать, как вы работаете с теми или иными метриками.
Статья: https://habr.com/ru/companies/domclick/articles/1059144/
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Flighty KMP - UI для трекера полетов
Flighty KMP - трекер полетов в стиле Flighty, созданный с помощью Compose Multiplatform, ориентирован на Android, iOS, десктопы (JVM) и веб-версии (Kotlin/Wasm) из единой кодовой базы. Все данные имитируются — замороженный снепшот "Пн, 20 июля" с одним рейсом в воздухе.
Есть демонстрация: luca992.github.io/flighty-cmp — веб-версия (Kotlin/Wasm), которая загружается прямо из папки docs/ этого репозитория через GitHub Pages (
Автор пишет, что это приложение было создано практически полностью агентом с минимальным контролем со стороны разработчиков. Он не одобряет создание приложений таким способом, не проверял код и не советует его использовать. Это всего лишь демонстрация концепции, показывающая, что можно создавать нативные многоплатформенные приложения так же быстро, а может быть, даже быстрее, на Kotlin.
Flighty KMP на GitHub: https://github.com/luca992/flighty-cmp
Платформа: Android/кроссплатформа
⭐️: 20
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Flighty KMP - трекер полетов в стиле Flighty, созданный с помощью Compose Multiplatform, ориентирован на Android, iOS, десктопы (JVM) и веб-версии (Kotlin/Wasm) из единой кодовой базы. Все данные имитируются — замороженный снепшот "Пн, 20 июля" с одним рейсом в воздухе.
Есть демонстрация: luca992.github.io/flighty-cmp — веб-версия (Kotlin/Wasm), которая загружается прямо из папки docs/ этого репозитория через GitHub Pages (
scripts/publish-web.sh генерирует её заново).Автор пишет, что это приложение было создано практически полностью агентом с минимальным контролем со стороны разработчиков. Он не одобряет создание приложений таким способом, не проверял код и не советует его использовать. Это всего лишь демонстрация концепции, показывающая, что можно создавать нативные многоплатформенные приложения так же быстро, а может быть, даже быстрее, на Kotlin.
Flighty KMP на GitHub: https://github.com/luca992/flighty-cmp
Платформа: Android/кроссплатформа
⭐️: 20
Please open Telegram to view this post
VIEW IN TELEGRAM