tgoop.com »
United States »
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck » Telegram Web
В карточках разобрали шесть ключевых принципов защиты API, которые позволят снизить риски взлома, утечки данных и отказа в обслуживании.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
How to: внедряем Jetpack Compose в существующий проект
Хотите использовать современный Compose, но проект уже написан на XML-вёрстке? Разберём, как добавить Compose без переписывания всего кода.
1️⃣ Подготовка проекта
Добавьте зависимости в
2️⃣ Гибридный подход
Используйте
И настраивайте из кода:
3️⃣ Постепенная миграция
🔘 Начинайте с новых экранов
🔘 Рефакторите простые элементы (кнопки, карточки)
🔘 Используйте
4️⃣ Совместная работа View и Compose
Для взаимодействия между частями:
Уже пробовали мигрировать на Compose? Делитесь опытом в комментариях💬
🐸 Библиотека мобильного разработчика
#буст
Хотите использовать современный Compose, но проект уже написан на XML-вёрстке? Разберём, как добавить Compose без переписывания всего кода.
Добавьте зависимости в
build.gradle
:android {
buildFeatures {
compose true
}
}
dependencies {
implementation "androidx.compose.ui:ui:1.6.0"
implementation "androidx.compose.material:material:1.6.0"
}
Используйте
ComposeView
в XML-разметке:<androidx.compose.ui.platform.ComposeView
android:id="@+id/compose_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
И настраивайте из кода:
findViewById<ComposeView>(R.id.compose_view).setContent {
Text("Это Compose внутри старого XML!")
}
Compose
для сложных анимацийДля взаимодействия между частями:
// View → Compose
composeView.setContent {
MyComposeScreen(onClick = { /* обработка */ })
}
// Compose → View
AndroidView({ TextView(context) }) { view ->
view.text = "Текст из Compose"
}
Уже пробовали мигрировать на Compose? Делитесь опытом в комментариях
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12
Устали вручную проверять каждый сценарий? Этот промпт поможет настроить автотесты быстро и эффективно!
Промпт:
Create a complete test automation setup for mobile app with:
1. UI tests structure for Espresso (Android) / XCTest (iOS)
2. Page Object pattern implementation
3. Test data generation techniques
4. CI/CD integration examples
5. Reporting and screenshot on failure
Provide sample tests for login screen and main app flow.
Add flaky tests prevention techniques
Implement BDD approach with Cucumber
Compare Appium vs native frameworks
Add performance testing examples
Используйте
Explain how to mock backend responses
для изолированного тестированияПример запроса:
// Нужно протестировать:
// - Успешный логин
// - Восстановление пароля
// - Основной функционал приложения
// - Обработку ошибок сети
Какие сценарии автоматизируете в первую очередь? Делитесь опытом в комментариях
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
🌧️ Облачная терапия: время выговориться!
Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».
Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.
🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов
⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».
Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.
🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов
⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
Граница в виде «марширующих муравьев» — распространенный элемент пользовательского интерфейса, используемый для обозначения «выбранного» элемента, но предоставляемый Compose модификатор
border()
не справляется с этой задачей.Автор статьи создаст свой собственный. И по ходу дела вы узнаете многое о Paths, измерении путей, рисовании путей и эффектах.
👉 Читать статью
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2❤1
rememberUpdatedState
, чтобы избежать устаревших лямбдЕсли вы передаете в Composable лямбду, которая может измениться,
rememberUpdatedState
гарантирует, что вы используете последнюю версию.val updatedOnClick by rememberUpdatedState(newValue = onClick)
LaunchedEffect(Unit) {
delay(1000)
updatedOnClick()
}
Без этого Compose может вызвать старую версию лямбды, что приведет к ошибкам.
pointerInput
для кастомных жестовВыйдете за пределы
clickable
— используйте перетаскивание, мультитач или собственное распознавание сложных жестов.Modifier.pointerInput(Unit) {
detectTapGestures(
onLongPress = { /* do something */ }
)
}
Можно также обнаружить масштабирование с помощью щипков, смахивание или реализовать распознавание кастомных жестов.
Modifier.scrollable
Хотите прокрутить бокс или кастомный макет? Вам не нужно использовать LazyColumn или Column.
val scrollState = rememberScrollState()
Box(
Modifier
.height(200.dp)
.verticalScroll(scrollState)
) {
// Large content goes here
}
Также работает с горизонтальными прокрутками или вложенными скролами с помощью
NestedScrollConnection
.CompositionLocal
для тематического поведенияВместо глубокой передачи параметров используйте
CompositionLocal
для обмена такими значениями, как интервал или предпочтения пользователя.val LocalSpacing = compositionLocalOf { 0.dp }
CompositionLocalProvider(LocalSpacing provides 8.dp) {
MyComposable()
}
@Composable
fun MyComposable() {
val spacing = LocalSpacing.current
Spacer(modifier = Modifier.height(spacing))
}
Идеально подходит для согласования таких элементов дизайна, как интервалы, цвета или размеры шрифтов в больших кодовых базах.
Modifier.graphicsLayer
для создания эффектовgraphicsLayer
предоставляет вам низкоуровневый контроль для применения таких эффектов, как вращение, масштабирование или альфа-канал, прямо на GPU.Modifier.graphicsLayer {
rotationZ = 15f
scaleX = 1.2f
alpha = 0.8f
}
Используйте с осторожностью: эти эффекты хорошо работают на графических процессорах, но проверяйте производительность на устройствах более низкого класса.
Делитесь в комментариях лайфхаками, которыми вы пользуетесь
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Успей впрыгнуть на курс «AI-агенты для DS» до завтрашнего повышения цены: 59.000 р. вместо
Про RAG слышали все — это уже два года самый массовый способ применения LLM в проде для бизнеса.
Это значит, что точность и надёжность такого решения достаточно предсказуемы для того, чтобы исключить человека из процесса аппрува выдачи LLM,
а связка «локально развернутая LLM + RAG над корпоративными документами» обеспечивает достаточную конфиденциальность, чтобы снять тревожность
«что наши данные попадут в OpenAI».
Эта история настолько популярна, что на рынке есть готовые RAG-решения,
а даже «маленькие» опенсорс-модели (до 5B) уже обзавелись своей RAG-ареной:
👉 https://huggingface.co/spaces/aizip-dev/SLM-RAG-Arena
Во время обучения на курсе «AI-агенты для DS» научим собирать автономные системы под реальные бизнес-задачи. На прошлой неделе мы рассказали о первом занятии.
— Собираем свой RAG-пайплайн на своих данных
— Обсуждаем, почему качество такой системы нельзя измерять «на глаз»
— Разбираем схему LLM as a Judge и как подготовить для неё датасет
— Что такое guardrails и как они спасают от бреда
— Что делать, когда LLM не знает ответа
— Смотрим на агентский RAG и обсуждаем, можно ли использовать RAG как память агента
Если пропустили первое занятие, то вот ссылочка
❗️До повышения цены остался последний день — бронируйте место сейчас
Please open Telegram to view this post
VIEW IN TELEGRAM
В карточках рассказали, как сравнивать изображения и кадры анимации внутри обычных инструментов UI-тестирования — без тяжёлой артиллерии и лишней хрупкости.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
😱 Завтра цена на курс «AI-агенты для DS» вырастет
Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.
🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Решение за вами.
👉 Купить курс по старой цене
Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.
🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Решение за вами.
👉 Купить курс по старой цене
proglib.academy
Курс|AI-агенты для DS-специалистов
На курсе ты разберёшься, как работают AI-агенты и как их применять в работе — от текстовых помощников до систем, помогающих принимать решения. Разберем архитектуру агентов, связку с внешними API, пайплайны действий и популярные библиотеки. Курс включает реальные…
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6❤1
Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3