Промпт-контракты — от гадания к выпуску кода
Фреймворк промпт-контрактов не о том, чтобы писать больше кода. Он о том, чтобы думать 60 секунд, чтобы Claude Code не приходилось гадать 60 минут.
Я перешёл от азартных игр к поставке продуктов. Ваш ход.
Статья: https://apptractor.ru/info/articles/prompt-contracts.html
Платформа: разработка/ИИ
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Фреймворк промпт-контрактов не о том, чтобы писать больше кода. Он о том, чтобы думать 60 секунд, чтобы Claude Code не приходилось гадать 60 минут.
Я перешёл от азартных игр к поставке продуктов. Ваш ход.
Статья: https://apptractor.ru/info/articles/prompt-contracts.html
Платформа: разработка/ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1
👩💻 Открытый урок «Знакомство с Kotlin: пишем первый код»
🗓 5 марта в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Developer. Basic» от Otus.
Программа вебинара:
✔️Разберем три ключевых преимущества Kotlin: безопасность null, лаконичность и совместимость.
✔️Напишем небольшой, но полезный фрагмент, который решает понятную задачу.
✔️Ответим на главный вопрос: почему Kotlin — это не просто «улучшенная Java», а другой подход к разработке.
Вебинар будет полезен:
Начинающим разработчикам, разработчикам на Java, которые хотят писать современный, более безопасный и лаконичный код.
🔗 Ссылка на регистрацию: https://otus.pw/mBhz/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🗓 5 марта в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Developer. Basic» от Otus.
Программа вебинара:
✔️Разберем три ключевых преимущества Kotlin: безопасность null, лаконичность и совместимость.
✔️Напишем небольшой, но полезный фрагмент, который решает понятную задачу.
✔️Ответим на главный вопрос: почему Kotlin — это не просто «улучшенная Java», а другой подход к разработке.
Вебинар будет полезен:
Начинающим разработчикам, разработчикам на Java, которые хотят писать современный, более безопасный и лаконичный код.
🔗 Ссылка на регистрацию: https://otus.pw/mBhz/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
This media is not supported in your browser
VIEW IN TELEGRAM
Устройства Android плавно интегрируются с подключенными дисплеями.
Google официально объявила о выходе режима рабочего стола (desktop windowing) в общую доступность вместе с релизом Android 16 QPR3. Новая функция, разработанная в партнерстве с Samsung, позволяет пользователям подключать смартфоны Pixel и Samsung к внешним мониторам для создания полноценной рабочей среды. В этом режиме на внешнем экране появляется панель задач и поддержка многооконности, что позволяет запускать несколько приложений одновременно в свободно масштабируемых окнах, превращая мобильное устройство в подобие настольного ПК.
Для разработчиков это нововведение означает необходимость адаптации приложений под различные форм-факторы и способы ввода. Программы, созданные с использованием принципов адаптивного дизайна, автоматически подстраиваются под интерфейс рабочего стола, обеспечивая привычный пользовательский опыт. Google призывает девелоперов переходить от фиксированной портретной ориентации к поддержке многодисплейного режима и современных методов управления окнами, чтобы их продукты оставались актуальными и продуктивными на расширяющейся экосистеме устройств.
Статья: https://android-developers.googleblog.com/2026/03/android-devices-extend-seamlessly-to.html
Перевод: https://apptractor.ru/info/articles/ustroystva-android-plavno-perehodyat-v-desktopnyy-rezhim.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Google официально объявила о выходе режима рабочего стола (desktop windowing) в общую доступность вместе с релизом Android 16 QPR3. Новая функция, разработанная в партнерстве с Samsung, позволяет пользователям подключать смартфоны Pixel и Samsung к внешним мониторам для создания полноценной рабочей среды. В этом режиме на внешнем экране появляется панель задач и поддержка многооконности, что позволяет запускать несколько приложений одновременно в свободно масштабируемых окнах, превращая мобильное устройство в подобие настольного ПК.
Для разработчиков это нововведение означает необходимость адаптации приложений под различные форм-факторы и способы ввода. Программы, созданные с использованием принципов адаптивного дизайна, автоматически подстраиваются под интерфейс рабочего стола, обеспечивая привычный пользовательский опыт. Google призывает девелоперов переходить от фиксированной портретной ориентации к поддержке многодисплейного режима и современных методов управления окнами, чтобы их продукты оставались актуальными и продуктивными на расширяющейся экосистеме устройств.
Статья: https://android-developers.googleblog.com/2026/03/android-devices-extend-seamlessly-to.html
Перевод: https://apptractor.ru/info/articles/ustroystva-android-plavno-perehodyat-v-desktopnyy-rezhim.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
UIComponent - декларативный UIKit
UIComponent — еще один декларативный современный фреймворк для создания пользовательских интерфейсов с использованием UIKit. Благодаря возможностям
В версии 5.0 UIComponent также может легко отображать представления SwiftUI вместе с UIView и другими компонентами.
UIComponent на GitHub: https://github.com/lkzhao/UIComponent
Платформа: iOS
⭐️: 420
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
UIComponent — еще один декларативный современный фреймворк для создания пользовательских интерфейсов с использованием UIKit. Благодаря возможностям
@resultBuilder и @dynamicMemberLookup, ваш интерфейс UIKit можно легко построить с синтаксисом, аналогичным SwiftUI. UIComponent также поддерживает однонаправленный поток данных вместо двусторонней привязки и предлагает отличные возможности для повышения производительности и оптимизации.В версии 5.0 UIComponent также может легко отображать представления SwiftUI вместе с UIView и другими компонентами.
UIComponent на GitHub: https://github.com/lkzhao/UIComponent
Платформа: iOS
⭐️: 420
Please open Telegram to view this post
VIEW IN TELEGRAM
Малоизвестная возможность Swift: for case let, о которой не знают многие iOS-разработчики
Swift известен системой pattern matching. Большинство разработчиков используют её в
Интересно, что даже разработчики с несколькими годами опыта часто о ней не знают. Более того, в официальной документации Apple она упоминается лишь вскользь, потому что технически это не отдельная фича языка, а комбинация существующих механизмов. Тем не менее, эта конструкция может заметно упростить код.
Статья: https://habr.com/ru/articles/1006412/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Swift известен системой pattern matching. Большинство разработчиков используют её в
switch, иногда в if case или guard case. Но в языке есть ещё одна конструкция, которую многие никогда не видели — for case let.Интересно, что даже разработчики с несколькими годами опыта часто о ней не знают. Более того, в официальной документации Apple она упоминается лишь вскользь, потому что технически это не отдельная фича языка, а комбинация существующих механизмов. Тем не менее, эта конструкция может заметно упростить код.
Статья: https://habr.com/ru/articles/1006412/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Малоизвестная возможность Swift: for case let, о которой не знают многие iOS-разработчики
Swift известен системой pattern matching . Большинство разработчиков используют её в switch , иногда в if case или guard case . Но в языке есть ещё одна конструкция, которую многие никогда не видели —...
Kotlin Multiplatform LaTeX Rendering Library - рендеринг формул LaTeX в Compose
Kotlin Multiplatform LaTeX Rendering Library - высокопроизводительная библиотека для анализа и отображения математических формул LaTeX, разработанная на основе Kotlin Multiplatform (KMP). Она поддерживает согласованные эффекты отображения на Android, iOS, Desktop (JVM) и Web (Wasm/JS).
Фичи:
• Высокопроизводительный парсинг: рекурсивный парсер на основе AST с поддержкой инкрементальных обновлений
• Кроссплатформенная консистентность: используется Compose Multiplatform для единообразного рендеринга на Android, iOS, Desktop (JVM) и Web (Wasm/JS)
• Автоматический перенос строк: умный перенос длинных формул по логическим точкам разрыва (операторы, отношения и т.д.)
• Экспорт изображений: возможность экспортировать отрендеренные формулы в изображения PNG/JPEG/WEBP с настраиваемым масштабированием разрешения
• API предварительного измерения: синхронное предварительное вычисление размеров формулы (ширина/высота/baseline) для встраивания математических выражений в Compose через InlineTextContent
• Доступность: встроенная поддержка screen reader’ов с описанием формул в стиле MathSpeak
• LaTeX → MathML: конвертация AST LaTeX в Presentation MathML
• Подсветка формул: возможность подсветки подвыражений внутри формулы через HighlightConfig
• Анимации: анимированные переходы между формулами (crossfade / slide / fade+slide)
• WYSIWYG-редактор (экспериментально): встроенный редактор LaTeX с позиционированием курсора, размещением по тапу и предпросмотром отрендеренной формулы в реальном времени
Kotlin Multiplatform LaTeX Rendering Library на GitHub: https://github.com/huarangmeng/latex
Платформа: Android/кроссплатформа
⭐️: 55
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Kotlin Multiplatform LaTeX Rendering Library - высокопроизводительная библиотека для анализа и отображения математических формул LaTeX, разработанная на основе Kotlin Multiplatform (KMP). Она поддерживает согласованные эффекты отображения на Android, iOS, Desktop (JVM) и Web (Wasm/JS).
Фичи:
• Высокопроизводительный парсинг: рекурсивный парсер на основе AST с поддержкой инкрементальных обновлений
• Кроссплатформенная консистентность: используется Compose Multiplatform для единообразного рендеринга на Android, iOS, Desktop (JVM) и Web (Wasm/JS)
• Автоматический перенос строк: умный перенос длинных формул по логическим точкам разрыва (операторы, отношения и т.д.)
• Экспорт изображений: возможность экспортировать отрендеренные формулы в изображения PNG/JPEG/WEBP с настраиваемым масштабированием разрешения
• API предварительного измерения: синхронное предварительное вычисление размеров формулы (ширина/высота/baseline) для встраивания математических выражений в Compose через InlineTextContent
• Доступность: встроенная поддержка screen reader’ов с описанием формул в стиле MathSpeak
• LaTeX → MathML: конвертация AST LaTeX в Presentation MathML
• Подсветка формул: возможность подсветки подвыражений внутри формулы через HighlightConfig
• Анимации: анимированные переходы между формулами (crossfade / slide / fade+slide)
• WYSIWYG-редактор (экспериментально): встроенный редактор LaTeX с позиционированием курсора, размещением по тапу и предпросмотром отрендеренной формулы в реальном времени
Kotlin Multiplatform LaTeX Rendering Library на GitHub: https://github.com/huarangmeng/latex
Платформа: Android/кроссплатформа
⭐️: 55
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
Зачем нужен companion object в Hilt-модулях
Замечали некий
Статья: https://habr.com/ru/articles/1006844/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Замечали некий
companion object в интерфейсах Hilt-модулей? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях, и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!Статья: https://habr.com/ru/articles/1006844/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Я заменил все циклы рекурсией — вот что произошло
Глубоко ли я изучил рекурсию? Да. Повторил бы я этот эксперимент? Только если бы я возненавидел своих товарищей по команде.
Если вы вынесете из этой истории что-то одно, пусть это будет следующее:
Если, конечно, вам не доставляет удовольствия наблюдать за тем, как ваш код медленно саморазрушается.
Статья: https://apptractor.ru/info/articles/ya-zamenil-vse-tsikly-rekursiey-vot-chto-proizoshlo.html
Платформа: iOS/Swift
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Глубоко ли я изучил рекурсию? Да. Повторил бы я этот эксперимент? Только если бы я возненавидел своих товарищей по команде.
Если вы вынесете из этой истории что-то одно, пусть это будет следующее:
Знайте рекурсию. Уважайте рекурсию. Но ради всего святого, не заменяйте ею свои циклы.
Если, конечно, вам не доставляет удовольствия наблюдать за тем, как ваш код медленно саморазрушается.
Статья: https://apptractor.ru/info/articles/ya-zamenil-vse-tsikly-rekursiey-vot-chto-proizoshlo.html
Платформа: iOS/Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
•
(iOS En) Fortify your app: Essential strategies to strengthen security•
(iOS En) iOS Photos App Style Transitions Using SwiftUI•
(iOS En) Building a Better Network Manager in Swift•
(iOS En) Apple Stores App's Minimizable Tab Bar Using SwiftUI•
(And Ru) Защищаем ресурсы Android-приложений с Runtime Resource Overlay•
(And En) Migrating Kotlin Android projects to AGP 9.0•
(And En) Tracing 2.0 - Performance on Android has never been easier•
(Crs Ru) Flutter Dev Podcast #52: вайб-кодинг и агенты — превращение Flutter-разработчика в фуллстека•
(Dev Ru) Почему свои IT-продукты выгоднее, чем работа в найме•
(Dev Ru) Оконные менеджеры — стекинг, тайлинг, ментальная модель управления экраном•
(Dev En) Is it still worth learning to code in 2026?•
(Dev En) Learn MLOps with MLflow and Databricks – Full Course for Machine Learning Engineers•
(Dsg Ru) Ozon Tech Community Design MeetupПрошлогодние видео:
•
(iOS Ru) Minimal Widget Product: путь к эффективной и гибкой реализации виджетов•
(iOS Ru) Уроки Swift: UITextField с анимированным плейсхолдером•
(And Ru) Hilt в многомодульный проект — пособие по внедрению зависимостей для новичков•
(And Ru) Как устроена мобильная архитектура. Интервью с тех. лидером юнита «Mobile Architecture» из AvitoTech•
(Crs Ru) Адаптивная вёрстка во Flutter•
(Crs Ru) Заезжаем в KMP. Но какой ценой?•
(Dev Ru) Внедряем Server Driven UIPlease open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Fortify your app: Essential strategies to strengthen security | Meet with Apple
Learn to bolster your app’s security and help protect user data in this online activity streaming from the Apple Developer Center Cupertino. Whether you’re hardening an existing app or starting a new project, you’ll learn directly from Apple engineers about…
Сравнение MVI и KoTEA
В мире Android-разработки существуют различные архитектурные паттерны. Многие из вас хорошо знакомы с MVVM, и возможно сталкивались с MVP. В последнее время всё чаще звучит аббревиатура MVI (Model-View-Intent). Однако наряду с MVI существует похожий на неё подход – KoTEA (Kotlin The Elm Architecture).
Оба этих паттерна следуют принципам UDF (Unidirectional Data Flow). Суть UDF архитектуры заключается в том, что данные в приложении движутся строго в одном направлении от единого источника истины к визуальным компонентам. Каждая фича (например, экран) имеет единственное неизменяемое состояние (State). Изменить его напрямую нельзя — только создать новое на основе предыдущего. Это соответствует принципу конечных автоматов и делает переходы между состояниями прозрачными и контролируемыми.
Статья: https://habr.com/ru/articles/1006782/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В мире Android-разработки существуют различные архитектурные паттерны. Многие из вас хорошо знакомы с MVVM, и возможно сталкивались с MVP. В последнее время всё чаще звучит аббревиатура MVI (Model-View-Intent). Однако наряду с MVI существует похожий на неё подход – KoTEA (Kotlin The Elm Architecture).
Оба этих паттерна следуют принципам UDF (Unidirectional Data Flow). Суть UDF архитектуры заключается в том, что данные в приложении движутся строго в одном направлении от единого источника истины к визуальным компонентам. Каждая фича (например, экран) имеет единственное неизменяемое состояние (State). Изменить его напрямую нельзя — только создать новое на основе предыдущего. Это соответствует принципу конечных автоматов и делает переходы между состояниями прозрачными и контролируемыми.
Статья: https://habr.com/ru/articles/1006782/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
SimpleChart - графики SwiftUI
SimpleChart - простая библиотека для построения графиков, использующая исключительно SwiftUI и обеспечивающая поддержку всех платформ Apple. Что особенно важно, её можно использовать в WidgetKit. SimpleChart предоставляет вспомогательные методы для создания chartData, который является единственным необходимым параметром для всех объектов конфигурации графиков. Поддерживает iOS v13, macOS v10.15, tvOS v13, watchOS v6, macCatalyst v.13.
Доступные диаграммы:
• Гистограмма
• Линейная диаграмма
• Квадратная кривая (изогнутая версия линейной диаграммы)
• Диаграмма диапазонов (диаграмма, представляющая диапазон данных за один и тот же период времени, аналогичная представлению диапазона частоты сердечных сокращений в приложении Apple Health)
SimpleChart на GitHub: https://github.com/ImpostersLimited/SimpleChart
Платформа: iOS
⭐️: 11
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
SimpleChart - простая библиотека для построения графиков, использующая исключительно SwiftUI и обеспечивающая поддержку всех платформ Apple. Что особенно важно, её можно использовать в WidgetKit. SimpleChart предоставляет вспомогательные методы для создания chartData, который является единственным необходимым параметром для всех объектов конфигурации графиков. Поддерживает iOS v13, macOS v10.15, tvOS v13, watchOS v6, macCatalyst v.13.
Доступные диаграммы:
• Гистограмма
• Линейная диаграмма
• Квадратная кривая (изогнутая версия линейной диаграммы)
• Диаграмма диапазонов (диаграмма, представляющая диапазон данных за один и тот же период времени, аналогичная представлению диапазона частоты сердечных сокращений в приложении Apple Health)
SimpleChart на GitHub: https://github.com/ImpostersLimited/SimpleChart
Платформа: iOS
⭐️: 11
Please open Telegram to view this post
VIEW IN TELEGRAM
Что упало — не пропало? EXC_BAD_ACCESS vs. LLDB
Эта статья для тех, кто хочет получить ещё один инструмент локализации падений в свой арсенал, ну или просто ни разу не сталкивался с четырьмя волшебными буквами из заголовка.
Материал основан на нашем опыте решения одной из проблем. Всё, о чём мы рассказываем ниже, — это не «правильный учебник» по LLDB, а опыт из эксперимента, который мы получили, пока работали над решением. В реальном проекте этот разбор может быть сложнее, поэтому, если у вас есть символизированный крэш-лог, или Address Sanitizer дает подсказку — скорее всего будет лучше/быстрее/качественнее разобраться с проблемой через них
Статья: https://habr.com/ru/companies/ivi/articles/1003668/
Платформа: iOS/Swift
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Эта статья для тех, кто хочет получить ещё один инструмент локализации падений в свой арсенал, ну или просто ни разу не сталкивался с четырьмя волшебными буквами из заголовка.
Материал основан на нашем опыте решения одной из проблем. Всё, о чём мы рассказываем ниже, — это не «правильный учебник» по LLDB, а опыт из эксперимента, который мы получили, пока работали над решением. В реальном проекте этот разбор может быть сложнее, поэтому, если у вас есть символизированный крэш-лог, или Address Sanitizer дает подсказку — скорее всего будет лучше/быстрее/качественнее разобраться с проблемой через них
Статья: https://habr.com/ru/companies/ivi/articles/1003668/
Платформа: iOS/Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
Asset Catalog – скрытый bottleneck сборки iOS. Разбираемся, как распараллелить компиляцию Asset’ов
2026 год. У вас 8–16 ядер в ноутбуке. M-чипы летают.
Swift компилируется параллельно.
Вы нажимаете ⌘B – и одно ядро уныло крутится на 100% загрузки, пока остальные отдыхают.
Добро пожаловать в мир однопоточной компиляции Asset Catalog’а.
В этой статье я покажу, почему Asset Catalog тормозит сборку и как заставить Xcode использовать больше ядер CPU. Пошагово и с примерами.
Статья: https://habr.com/ru/articles/1007956/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
2026 год. У вас 8–16 ядер в ноутбуке. M-чипы летают.
Swift компилируется параллельно.
Вы нажимаете ⌘B – и одно ядро уныло крутится на 100% загрузки, пока остальные отдыхают.
Добро пожаловать в мир однопоточной компиляции Asset Catalog’а.
В этой статье я покажу, почему Asset Catalog тормозит сборку и как заставить Xcode использовать больше ядер CPU. Пошагово и с примерами.
Статья: https://habr.com/ru/articles/1007956/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Как нарезать Android-монолит с помощью compile-time плагинов?
В этой статье вспомним наш опыт разбиения большого монолитного Android-приложения на мини-приложения. Занимались мы этим уже довольно давно, но тема всё равно актуальная.
Переход к таким мини-приложениям позволяет ускорить конфигурацию Gradle и уменьшить время компиляции проекта как локально, так и на CI. Думаю, это будет полезно тем, кто интересуется архитектурой android-приложений, KSP, Dagger, а также тем, у кого крупное многомодульное приложение и есть проблемы с производительностью работы Gradle в проекте.
Статья: https://habr.com/ru/companies/alfa/articles/1002998/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье вспомним наш опыт разбиения большого монолитного Android-приложения на мини-приложения. Занимались мы этим уже довольно давно, но тема всё равно актуальная.
Переход к таким мини-приложениям позволяет ускорить конфигурацию Gradle и уменьшить время компиляции проекта как локально, так и на CI. Думаю, это будет полезно тем, кто интересуется архитектурой android-приложений, KSP, Dagger, а также тем, у кого крупное многомодульное приложение и есть проблемы с производительностью работы Gradle в проекте.
Статья: https://habr.com/ru/companies/alfa/articles/1002998/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
LazyAdaptiveLayout - продвинутая сетка для Android Jetpack Compose
LazyAdaptiveLayout - высокопроизводительный, настраиваемый адаптивный grid-layout для Android Jetpack Compose с ленивой загрузкой и адаптивной оптимизацией прокрутки. Поддерживает несколько типов раскладок: staggered, uniform, full-width и пользовательские layout’ы со span-настройками, с интуитивным DSL-API.
Возможности
• Несколько типов макетов: поддержка Staggered, Uniform, Full Width и пользовательских раскладок со span-настройками
• DSL API: интуитивный DSL на основе scope, похожий на LazyColumn и LazyVerticalGrid
• Ленивая загрузка: эффективный рендеринг с подгрузкой элементов на основе области видимости
• Адаптивная оптимизация прокрутки: динамический размер буфера в зависимости от скорости скролла
• Гибкая конфигурация: настраиваемые spacing, padding и размеры элементов
• Типобезопасность: обобщённая (generic) реализация с поддержкой любых типов данных
• Оптимизация производительности: минимальные рекомпозиции и эффективное использование памяти
• Контроль высоты элементов: возможность задавать индивидуальную высоту для каждого элемента внутри групп
LazyAdaptiveLayout на GitHub: https://github.com/wayfair-incubator/compose-lazy-adaptive-layout
Платформа: Android
⭐️: 30
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
LazyAdaptiveLayout - высокопроизводительный, настраиваемый адаптивный grid-layout для Android Jetpack Compose с ленивой загрузкой и адаптивной оптимизацией прокрутки. Поддерживает несколько типов раскладок: staggered, uniform, full-width и пользовательские layout’ы со span-настройками, с интуитивным DSL-API.
Возможности
• Несколько типов макетов: поддержка Staggered, Uniform, Full Width и пользовательских раскладок со span-настройками
• DSL API: интуитивный DSL на основе scope, похожий на LazyColumn и LazyVerticalGrid
• Ленивая загрузка: эффективный рендеринг с подгрузкой элементов на основе области видимости
• Адаптивная оптимизация прокрутки: динамический размер буфера в зависимости от скорости скролла
• Гибкая конфигурация: настраиваемые spacing, padding и размеры элементов
• Типобезопасность: обобщённая (generic) реализация с поддержкой любых типов данных
• Оптимизация производительности: минимальные рекомпозиции и эффективное использование памяти
• Контроль высоты элементов: возможность задавать индивидуальную высоту для каждого элемента внутри групп
LazyAdaptiveLayout на GitHub: https://github.com/wayfair-incubator/compose-lazy-adaptive-layout
Платформа: Android
⭐️: 30
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Как реализовать WebSocket на Android и не сойти с ума
Как часто вы слышите что-то о протоколе WebSocket? А как часто видели его в проектах? Продакшн? Андроид? Что? Его кто-то использует?
А теперь представьте: перед вами стоит задача внедрить WS в крупный продакшн проект с нуля. С чего начать? Как подступиться?
Статья: https://habr.com/ru/companies/betboom/articles/1007816/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Как часто вы слышите что-то о протоколе WebSocket? А как часто видели его в проектах? Продакшн? Андроид? Что? Его кто-то использует?
А теперь представьте: перед вами стоит задача внедрить WS в крупный продакшн проект с нуля. С чего начать? Как подступиться?
Статья: https://habr.com/ru/companies/betboom/articles/1007816/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Начинаем работу с мониторингом (Observability) iOS-приложений
Исправить сбой, используя логи ошибок, может быть легко. Но что, если функция не работает, и у вас закончились идеи о том, что может происходить, и единственное, что приходит в голову, это: «Как бы мне хотелось отладить приложение на телефоне этого пользователя», что, конечно, редко достижимо?
В этом руководстве вы изучите основы мониторинга приложений (observability) и поймете, как ваше приложение ведет себя в руках ваших клиентов.
Статья: https://apptractor.ru/info/articles/observability-ios.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Исправить сбой, используя логи ошибок, может быть легко. Но что, если функция не работает, и у вас закончились идеи о том, что может происходить, и единственное, что приходит в голову, это: «Как бы мне хотелось отладить приложение на телефоне этого пользователя», что, конечно, редко достижимо?
В этом руководстве вы изучите основы мониторинга приложений (observability) и поймете, как ваше приложение ведет себя в руках ваших клиентов.
Статья: https://apptractor.ru/info/articles/observability-ios.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
SwiftUI Pro - помощник по SwiftUI для ИИ
SwiftUI Pro - агентский навык, помогающий ИИ-помощникам писать более умный, простой и современный SwiftUI, с рекомендациями по использованию API, дизайну, производительности и доступности. Охватывает навигацию, компоновку, анимацию, управление состоянием, VoiceOver, устаревшие API и многое другое, ориентируясь на ошибки, которые действительно допускают программисты с большим опытом.
Навык основан на рабочем файле AGENTS.md, а это значит, что вы можете привнести многолетний опыт и знания в выбранного вами агента всего за несколько минут. Он использует формат Agent Skills, поэтому бесперебойно работает с Claude Code, Codex, Gemini, Cursor и другими.
SwiftUI Pro на GitHub: https://github.com/twostraws/SwiftUI-Agent-Skill
Платформа: iOS
⭐️: 2K
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
SwiftUI Pro - агентский навык, помогающий ИИ-помощникам писать более умный, простой и современный SwiftUI, с рекомендациями по использованию API, дизайну, производительности и доступности. Охватывает навигацию, компоновку, анимацию, управление состоянием, VoiceOver, устаревшие API и многое другое, ориентируясь на ошибки, которые действительно допускают программисты с большим опытом.
Навык основан на рабочем файле AGENTS.md, а это значит, что вы можете привнести многолетний опыт и знания в выбранного вами агента всего за несколько минут. Он использует формат Agent Skills, поэтому бесперебойно работает с Claude Code, Codex, Gemini, Cursor и другими.
SwiftUI Pro на GitHub: https://github.com/twostraws/SwiftUI-Agent-Skill
Платформа: iOS
⭐️: 2K
Please open Telegram to view this post
VIEW IN TELEGRAM
20 приложений за 20 дней с Flutter и Antigravity
Недавно я присоединился к командам Dart и Flutter, и в январе этого года я поставил перед собой цель: создать 20 приложений за 20 дней, используя Flutter и Antigravity. Но зачем? Во-первых, цена любопытства официально достигла нуля. От идеи до приложения можно пройти 10 минут. Во-вторых, как новый член команды, я хотел изучить фреймворк, что-то создавая. И наконец, что наиболее важно, я хотел проверить теорию о том, что в 2026 году мы все можем быть создателями.
Я здесь, чтобы поделиться тем, чему научился на практике. Если вы вынесете из этого поста только одну вещь, пусть это будет следующее: перестаньте читать и идите что-нибудь создавать.
Статья: https://apptractor.ru/info/articles/20-prilozheniy-za-20-dney-s-flutter-i-antigravity.html
Платформа: разработка/ИИ
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Недавно я присоединился к командам Dart и Flutter, и в январе этого года я поставил перед собой цель: создать 20 приложений за 20 дней, используя Flutter и Antigravity. Но зачем? Во-первых, цена любопытства официально достигла нуля. От идеи до приложения можно пройти 10 минут. Во-вторых, как новый член команды, я хотел изучить фреймворк, что-то создавая. И наконец, что наиболее важно, я хотел проверить теорию о том, что в 2026 году мы все можем быть создателями.
Я здесь, чтобы поделиться тем, чему научился на практике. Если вы вынесете из этого поста только одну вещь, пусть это будет следующее: перестаньте читать и идите что-нибудь создавать.
Статья: https://apptractor.ru/info/articles/20-prilozheniy-za-20-dney-s-flutter-i-antigravity.html
Платформа: разработка/ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1🔥1
Повторный вход в акторы в Swift
Акторы в Swift решают проблему гонок данных. Cам по себе актор гарантирует, что к его состоянию обращается только одна задача одновременно. Никаких мьютексов, семафоров, очередей — компилятор сам следит.
Звучит неплохо. Но есть подвох, и он называется повторный вход (reentrancy). Актор защищает от одновременного доступа, но не защищает от того, что состояние изменится между двумя вашими обращениями к нему.
Статья: https://habr.com/ru/companies/otus/articles/1005782/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Акторы в Swift решают проблему гонок данных. Cам по себе актор гарантирует, что к его состоянию обращается только одна задача одновременно. Никаких мьютексов, семафоров, очередей — компилятор сам следит.
Звучит неплохо. Но есть подвох, и он называется повторный вход (reentrancy). Актор защищает от одновременного доступа, но не защищает от того, что состояние изменится между двумя вашими обращениями к нему.
Статья: https://habr.com/ru/companies/otus/articles/1005782/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Повторный вход в акторы в Swift
Акторы в Swift решают проблему гонок данных. Cам по себе актор гарантирует, что к его состоянию обращается только одна задача одновременно. Никаких мьютексов, семафоров, очередей — компилятор сам...
❤1
Как я пытался чинить анимацию в Jetpack Compose LazyColumn
Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами.
Все шло гладко, пока не пришлось добавить айтем, который должен был увеличиваться по высоте. Мы заметили, что нижние карточки смещались не в такт. Небольшой, но заметный рассинхрон, который сразу бросается в глаза.
Решение казалось очевидным: настроить
В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный
Статья: https://habr.com/ru/companies/tbank/articles/1009014/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами.
Все шло гладко, пока не пришлось добавить айтем, который должен был увеличиваться по высоте. Мы заметили, что нижние карточки смещались не в такт. Небольшой, но заметный рассинхрон, который сразу бросается в глаза.
Решение казалось очевидным: настроить
animateItem или написать свою реализацию. Мы перепробовали несколько вариантов через стандартный API, проваливались в исходники compose.foundation, писали кастомный модификатор. На каждом шаге казалось, что решение рядом, но каждый раз упирались в новый тупик.В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный
animateItem обречен с самого начала и к какому решению мы пришли в итоге.Статья: https://habr.com/ru/companies/tbank/articles/1009014/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM