
- Главная
- Каталог
- Интернет технологии
- Библиотека мобильного разработчика
Библиотека мобильного разработчика
Полезные материалы по всему, что может быть интересно мобильному разработчику.
Статистика канала
4 июня Альфа-Банк собирает мобильных разработчиков на Alfa Mobile D&D party — в атмосфере любимых фэнтези и настольных ролевых игр. Впереди приключение для истинных авантюристов: объединяйтесь в отряды и открывайте секреты башни.
Друиды поделятся мудростью:
⚡️ С техническим лидером Android-разработки Виталием Перятиным обсудим, что на самом деле под капотом у MCP. Спойлер: всё просто⚔️ С ведущим iOS-разработчиком Петросом Тепояном погрузимся в мир ИИ-разработки и приключений, или Туда и обратно
Завершим игру вечеринкой. Советуем подумать над образом своего персонажа: за 3 лучших подарим подарки!
Регистрируйтесь на приключение!
Реклама. АО «Альфа-Банк», ИНН 7728168971. Erid 2VtzqxAs15z
Хотите наглядно показывать статистику и аналитику в вашем приложении? Этот промпт поможет внедрить красивые и интерактивные графики.
Implement charts and data visualization for a mobile app that includes:
— Set up charting library (MPAndroidChart, Charts for iOS)
— Implement line charts for trends over time
— Add bar charts for comparisons
— Create pie/donut charts for distribution
— Implement real-time data updates with animations
— Add zoom and pan interactions
— Handle large datasets with performance optimization
— Добавьте
Implement combined charts (line + bar) для сложной аналитики— Добавьте
Add gesture-driven tooltips and data point selection для интерактива— Добавьте
Implement candlestick charts for financial apps для трейдинга#буст #JuniorKit
Ежегодная конференция WWDC от Apple в 2026 году пройдёт с 8 по 12 июня. Мероприятие откроет традиционная презентация новинок, а следом пользователей ждёт серия более детальных докладов о новинках.
Apple уже начала рассылать приглашения журналистам, а слоганом WWDC стала фраза Coming bright up («На подходе что-то яркое»). Ожидается, что компания в первую очередь представит обновления набора своих ОС: iOS 27, iPadOS 27, watchOS 27, macOS 27, tvOS 27 и visionOS 27. Кроме того, в пресс-релизе Apple упоминает новые инструменты на базе нейросетей.
Кроме основной программы в офисе Apple пройдут очные встречи для разработчиков, дизайнеров, студентов и финалистов конкурсов, включая Swift Student Challenge и Apple Design Awards.
Трансляция WWDC будет доступна на сайте компании, на портале Apple Developer, в фирменном приложении и на YouTube-канале для разработчиков.
#свежак #iOS
SwiftUI предоставляет встроенную поддержку анимации. Во многих случаях для добавления анимации достаточно привязать ее к изменению состояния.
Для этого есть два распространенных способа:
1.
animation(_:value:) модификатор представления для анимации при изменении определенного значения состояния2.
withAnimation(_:_:) глобальная функция, которую мы можем использовать для применения изменений состояния и создания анимации для всех представлений, на которые они влияют/В этом посте мы рассмотрим оба подхода и расскажем, когда следует использовать каждый из них.
🔹 Анимирование представления с помощью
animation(_:value:)Модификатор представления
animation(_:value:) полезен, когда нужно анимировать представление при каждом изменении определенного значения. Мы можем использовать его следующим образом:@State private var color = Color.brown
var body: some View {
Button("Change color") {
color = color == .brown ? .mint : .brown
}
.padding(20)
.background(color)
.foregroundStyle(.white)
.animation(.easeInOut, value: color)
}
Модификатор не анимирует само значение. Параметр value определяет, при каком изменении состояния должна запускаться анимация. При каждом изменении значения color SwiftUI анимирует все затронутые обновления.
Этот тип анимации часто называют неявной анимацией, поскольку представление автоматически анимируется при изменении указанного состояния.
Мы также можем отключить анимацию для представления, передав
nil:.animation(nil, value: color)
Это удобно, когда мы хотим исключить определенный элемент из анимации, которая в противном случае была бы унаследована от родительского элемента.
🔹 Анимация изменений состояния с помощью
withAnimationВместо того чтобы прикреплять анимацию к элементу, мы можем явно анимировать изменения состояния с помощью глобальной функции
withAnimation:@State private var color = Color.brown
var body: some View {
Button("Change color") {
withAnimation(.easeInOut) {
color = color == .brown ? .mint : .brown
}
}
.padding(20)
.background(color)
.foregroundStyle(.white)
}
При таком подходе анимация применяется ко всем обновлениям представления, вызванным изменениями состояния внутри
withAnimation замыкания.🔹 Реагирование на завершение анимации
withAnimation дополнительно предоставляет обработчик завершения (iOS 17+), поэтому мы можем выполнить код после завершения анимации:withAnimation(.easeInOut) {
color = color == .brown ? .mint : .brown
} completion: {
print("Color animation finished")
}
Это полезно для объединения анимаций в цепочку или запуска последующих действий после завершения перехода.
🔹 Выбор между двумя подходами
Оба подхода часто позволяют добиться одинакового визуального результата, но они полезны в разных ситуациях.
animation(_:value:) хорошо подходит для случаев, когда определенный элемент представления всегда должен анимироваться в ответ на изменение определенного состояния.withAnimation часто является лучшим выбором, когда несколько изменений состояния должны анимироваться одновременно или когда нам нужен более четкий контроль над запуском анимации.#PixelPerfect #MiddlePath #Swift
Раньше переключения видимости между состояниями UI могли выглядеть немного топорно.
AnimatedContent позволяет задавать, как контент появляется и исчезает — затухание, сдвиг, масштабирование, что угодно!AnimatedContent(
targetState = isLoggedIn,
transitionSpec = {
// Slide in from right, slide out to left
slideInHorizontally { it } togetherWith slideOutHorizontally { -it }
}
) { loggedIn ->
if (loggedIn) HomeScreen() else LoginScreen()
}
Да, переходы имеют значение — пользователи это замечают. Такой уровень проработки вызывает доверие.
Большинство разработчиков используют
LazyColumn без key. Это нормально — пока вы не измените порядок элементов списка, и тогда каждый элемент начнет мигать и перерисовываться.Стабильные ключи позволяют Compose более явно понимать, какой элемент есть какой.
LazyColumn {
items(messages, key = { it.id }) { message ->
MessageRow(message)
}
}
Эту возможность используют редко и часто понимают неправильно. Если у вас есть состояние, зависящее от другого состояния, используйте
derivedStateOf — тогда Compose будет выполнять рекомпозицию только при изменении результата, а не каждый раз при изменении исходного состояния.val showScrollToTop by remember {
derivedStateOf { listState.firstVisibleItemIndex > 3 }
}
Научитесь правильно это использовать: это критически важно для UI-логики, завязанной на прокрутке./
Забудьте о вложенных layout-контейнерах только ради того, чтобы нарисовать собственную форму или градиент.
drawBehind даёт вам прямой доступ к Canvas прямо внутри модификатора.Text(
text = "Hello",
modifier = Modifier.drawBehind {
drawRoundRect(
color = Color(0xFF00D4AA),
cornerRadius = CornerRadius(12f)
)
}
)
Принцип, лежащий в основе
Scaffold, BoxWithConstraints и наших кастомных систем компоновки, где размер одного компонуемого элемента необходимо измерить перед компоновкой другого, заключается в том, что компонуемые элементы не знают своего собственного размера.Знание о его существовании обычно является большей частью необходимого — и большинству разработчиков никогда не приходится это писать — но это объясняет, как работают сложные компоновки.
#свежак #MiddlePath #Kotlin
Автор статьи рассказывает о переходе крупного многомодульного проекта с сотнями экранов на Jetpack Compose. Классический стек (XML, Cicerone, Dagger 2, MVVM) работал, но когда экранов стало несколько сотен, команда начала тратить больше времени на борьбу с неконсистентным состоянием UI. Потребовалось менять подход.
За полтора года миграции разработка ускорилась, а баги, связанные с состоянием экрана, практически исчезли.
В статье автор делится, как процесс был разделён на три этапа, что делали на каждом и к чему пришли. Материал будет полезен тем, кто уже знаком с Compose, хочет внедрить его в проект, но сомневается. Без разбора плюсов и минусов технологии — только практика.
#свежак #Kotlin
Знакомьтесь, Сергей Нотевский. AI Platform Lead в Bitrix24.
Он один из ключевых экспертов нашего курса AgentOps. На своих лекциях он детально разбирает экономику AI-агентов, кэширование токенов, LLM-инфраструктуру и вывод генеративных систем в стабильный прод.
Мы попросили Сергея поделиться материалами для тех, кто хочет оптимизировать косты на LLM в проде. Сохраняйте методичку по prefix cache метрике, которая напрямую влияет на ваши деньги.
Как говорят создатели Manus:
“KV-cache hit rate is the single most important metric for a production-stage AI agent.”
🛠 Что внутри методички (комбо из 3 статей + код):
Экономика кэширования — особенности провайдеров и как правильно считать затраты.
Частые анти-паттерны — почему ваш кэш постоянно сбрасывается и вы платите больше.
Кэш в AI-агентах — специфика работы с памятью в автономных системах.
🍒 Вишенка на торте: готовый SKILL для агента, который делает ревью вашего проекта, находит анти-паттерны и предотвращает низкое попадание в кэш.
— Забрать комбо-материалы на GitHub
P.S. Если хотите послушать Сергея вживую — ловите его на конференциях Kode Waves (май), Conversations AI и Highload Spb (июнь).
🎁 Акция в честь старта продаж!
👉 Забрать 2 курса по цене 1 и начать обучение
Senior Flutter Developer — 270 000 – 320 000 ₽? офис (Санкт-Петербург)
iOS-разработчик (Middle) — офис (Санкт-Петербург)
Flutter-разработчик — от 220 000 ₽, удалёнка/гибрид (Москва)
Android-разработчик (Услуги) — 320 000 - 450 000 ₽, удалёнка
Android-разработчик — удалёнка
#свежак
Отзывы канала
всего 2 отзыва
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Библиотека мобильного разработчика — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 9.3K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 6.3, количество отзывов – 2, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 4895.1 ₽, а за 9 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий