Telegram Web
👾 Визуализация рекомпозиций в Jetpack Compose

Представьте, вы открываете пул‑реквест и взгляд цепляется за знакомые паттерны: нестабильный параметр в Composable‑функции, remember без ключа, применение трансформаций на Layout‑фазе. Сразу хочется написать комментарий‑лекцию о том, почему это ударит по производительности и почему лучше так не делать.

Вот только объяснения отнимают время и не всегда наглядно доносят суть проблемы. Особенно это актуально для новичков, которым сложно сопоставить абстракции с реальным поведением UI.

В этой статье автор расскажет о разработке собственного приложения, которое в реальном времени визуализирует рекомпозиции. Чтобы заставить его работать, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.

👉 Читать статью

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI

24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале.

Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».


На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского.

Подробности рассказываем в гс выше — включай, чтобы не пропустить.
Какая версия Swift представила concurrency (async/await)?
Anonymous Quiz
24%
Swift 4
65%
Swift 5.5
8%
Swift 3
3%
Swift 2
🗓 Новости недели

Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.

🔵 Как Swift Runtime влияет на производительность iOS-приложений

В статье сосредоточимся на механизмах приведения типов и создания дженериков в Swift Runtime, а также рассмотрим конкретный метод, критичный для производительности. Разберем на примерах, когда и почему он вызывается, как влияет на отзывчивость приложения и какие стратегии использовать для оптимизации.

🔵Строки в Swift

Каждый, кто писал или пишет приложения на этом языке, так или иначе работает со строками. Но задумывались ли вы когда-нибудь, как они устроены внутри? В этой статье автор приоткроет завесу и расскажет, какие тайны скрывают строки в Swift.

🔵 Вопрос на 16 КБ: почему так важны изменения в памяти Android и как подготовить приложение

Давайте разберёмся, что на самом деле означает это изменение, почему это хорошо, и разберём чёткий трёхэтапный план подготовки вашего приложения.

🔵 Разбор кода: пиксельная погода на Kotlin

Арсений Носов, Android-разработчик в команде Алисы и Умных устройств, тщательно разбирает код и делится полезными советами по работе с ним.

🔵 Как создать собственный RenderObject

В этой статье автор разберёт, как RenderObject появляются на свет, какие задачи решают, зачем может понадобиться создание собственных RenderObject, а также рассмотрит процесс создания собственного RenderObject с примерами и без танцев с бубном.

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
🎮 Свойства, методы get и set

Свойства класса — это переменные, которые хранят состояние объекта класса. Как и любая переменная, свойство может иметь тип, имя и значение.

В классе можно объявить свойства с помощью ключевого слова var или val. Свойства, объявленные с var, могут быть изменены после их инициализации, а свойства, объявленные с val, только для чтения.

class Person {
var name: String = ""
val age: Int = 0
}


При создании своего класса мы хотим сами управлять его свойствами, контролируя то, какие данные могут быть предоставлены или перезаписаны. С этой целью создаются get и set методы (геттеры и сеттеры). Цель get-метода — вернуть значение, а set-метода — записать полученное значение в свойство класса.

var name: String = ""
get() = field.toUpperCase()
set(value) {
field = "Name: $value"
}


В данном примере свойство name имеет тип String и начальное значение пустой строки. Геттер возвращает значение свойства, преобразованное к верхнему регистру. Сеттер устанавливает значение свойства с добавлением префикса "Name: " перед переданным значением. Слово field используется для обращения к текущему значению свойства.

Если get и set методы не были созданы вручную, то для таких свойств Kotlin незаметно сам их генерирует. При этом для свойства, объявленного с val, генерируется get-метод, а для свойства, объявленного с varи get, и set методы.

🐸 Библиотека мобильного разработчика

#буст #JuniorKit #Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
🫗 Разбираемся в стилях кнопок SwiftUI с эффектом «жидкого стекла»

В iOS 18 в SwiftUI появились liquid glass-стили — полупрозрачные, «стеклянные» кнопки и элементы.

Обычная кнопка:

Button("Add", action: addItem)


— рисуется в стандартном системном стиле.

Если применить .glass:

Button("Add", action: addItem)
.buttonStyle(.glass)


кнопка получает эффект стекла, глубину и анимацию нажатия. Цвет можно задать через .tint, но система полностью контролирует размеры и отступы.

Есть вариант .glassProminent для основных действий, но пока он не работает в Xcode 26.0 beta.

Отдельно существует модификатор .glassEffect(), который можно применить к любому виду:

Text("Hello")
.padding()
.glassEffect()


Это просто придаёт представлению полупрозрачный фон, без анимаций и встроенного стиля — всё остальное нужно оформить вручную.

В Toolbar многие кнопки автоматически получают стеклянный стиль, особенно в слотах подтверждения или отмены, и отключить это пока нельзя.

Стоит отметить, что стеклянные кнопки не заменяют пользовательские ButtonStyles. Если нам нужны фирменные кнопки для конкретного приложения или динамические кнопки, внешний вид которых зависит от состояния, то пользовательские стили по-прежнему будут подходящим инструментом.

Но если мы хотим использовать системный внешний вид и соответствовать развивающейся эстетике Apple, то стеклянные стили — это быстрый способ добиться желаемого.

А вы уже использовали .glass или .glassEffect()? Делитесь впечатлениями в комментариях 💬

🐸 Библиотека мобильного разработчика

#MiddlePath #SwiftUI #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
🌛 Тёмная тема: обязательна или необязательная фича

Тёмная тема стала массовым трендом в 2018–2020 годах, когда её начали добавлять все крупные приложения. Тогда это выглядело как свежий и технологичный ход, который отличал продукт на фоне конкурентов. К тому же производители смартфонов активно продвигали OLED-дисплеи, для которых тёмный режим реально экономил заряд.

Тёмная тема стала частью пользовательского ожидания. Даже те, кто ею не пользовался, считали её обязательной опцией для современного сервиса. UX-дизайнеры включали её в брифы «по умолчанию», а маркетологи записали в «признак заботы о пользователе».

А как считаете вы, обязательна ли тёмная тема в приложении? Голосуйте и пишите своё мнение в комментариях 💬

❤️ — обязательна
👍 
необязательна

🐸 Библиотека мобильного разработчика 

#междусобойчик #AllLevels
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍7😁2
🔥 Не пропустите событие осени для AI-комьюнити

24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта»

😤 Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт:
— почему ИИ-агенты сейчас на пике инвестиций
— чем они отличаются от ChatGPT и обычных моделей
— цикл агента: восприятие → планирование → действие → обучение
— живое демо простого агента
— как бизнес уже получает ROI до 80%

⚡️ Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире.

Мест мало, регистрация закроется, как только забьём комнату
💙 Топ вакансий для мобильных разработчиков за неделю

Мобильный разработчик (React Native/другие) —‍ от 150 000 до 350 000 ₽, удалёнка

Senior iOS Developer (Swift) —‍ удалёнка

Flutter разработчик —‍ до 370 000 ₽, удалёнка

iOS Developer —‍ до 2 000 $, удалёнка

Мобильный разработчик (Flutter) —‍ от 90 000 до 120 000 ₽, удалёнка

➡️ Еще больше топовых вакансий —‍ в нашем канале Mobile jobs

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🔍 Шаблон архитектуры MVC (Model View Controller)

Шаблон MVC предполагает разделение кода на 3 компонента. При создании класса/файла приложения разработчик должен отнести его к одному из следующих трёх уровней:

🔹 Модель:

Этот компонент хранит данные приложения. Он ничего не знает об интерфейсе. Модель отвечает за обработку логики предметной области (реальных бизнес-правил) и взаимодействие с базой данных и сетевыми уровнями.

🔹 Представление:

Это слой пользовательского интерфейса (UI), в котором содержатся компоненты, видимые на экране. Кроме того, он обеспечивает визуализацию данных, хранящихся в модели, и позволяет пользователю взаимодействовать с ними.

🔹 Контроллер:

Этот компонент устанавливает связь между Представлением и Моделью. Он содержит основную логику приложения, получает информацию о действиях пользователя и обновляет Модель в соответствии с потребностями.

Несмотря на применение схемы MVC для модульного проектирования приложения, уровни кода зависят друг от друга. В этом шаблоне Представление и Контроллер зависят от Модели. Для применения шаблона MVC в проекте можно использовать несколько подходов:

➡️ Подход 1: Действия и фрагменты могут выполнять роль контроллера и отвечать за обновление представления.

➡️ Подход 2: Используйте активность или фрагменты в качестве представлений и контроллера, а модель будет отдельным классом, который не наследуется от какого-либо класса Android.

В MVC данные обновляет контроллер, а представление их только отображает. Модель отделена и тестируется независимо от UI. Если представление соблюдает принцип единой ответственности — лишь передаёт действия контроллеру и показывает данные без бизнес-логики — то его достаточно проверять UI-тестами.

🐸 Библиотека мобильного разработчика

#буст #SeniorView #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👏31
⚡️Команда дня: adb logcat

Хотите быстро отследить, что происходит в приложении на устройстве или эмуляторе?
На помощь приходит простая команда:

adb logcat | grep "MyTag"


📌 Что делает:

— Подключается к логам Android-устройства или эмулятора
— Фильтрует вывод по тегу (например, MyTag, который вы используете в Log.d(...))
— Показывает только нужные строки, чтобы не тонуть в море системных логов

👀 Полезно, когда:

— Нужно быстро найти крэш или баг прямо на реальном устройстве
— Хотите дебажить только свою часть логов, а не весь Android-спам
— Проверяете работу логирования перед релизом

💡 Совет:

Добавьте уровни логов для фильтрации:

adb logcat *:E   # только ошибки  
adb logcat *:W # предупреждения и выше


👉 А вы часто используете adb logcat в работе?

🐸 Библиотека мобильного разработчика

#буст #JuniorKit #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
🧗 Кто такие Unit-лид и Technical Owner — и почему эти роли нужны в IT-командах

Когда компания переходит от «сделать и забыть» к «развивать и совершенствовать», старые роли перестают работать. Нужны люди, которые будут жить продуктом, а не просто выполнять задачи. Unit-лид и Technical Owner — именно такие специалисты. Объясняем, что они делают и почему без них продуктовый подход обречен на провал.

👉 Читать статью

🐸 Библиотека мобильного разработчика

#MadeInProglib
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Сегодня премьера

В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным«ИИ-агенты: новая фаза развития искусственного интеллекта».

В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.

Это прямой эфир: подключиться можно через лендинг курса.
🦢 Вышла версия Swift 6.2

Swift 6.2 — это релиз, нацеленный на повышение продуктивности каждого разработчика, независимо от среды и подхода к написанию кода. В новой версии представлен широкий набор возможностей для практической разработки на всех уровнях стека: от улучшенных инструментов и библиотек до усовершенствований в параллелизме и производительности.

➡️ Читайте дальше, чтобы узнать подробнее об изменениях в языке, библиотеках, рабочих процессах, поддержке платформ и о том, с чего начать работу со Swift 6.2.

🐸 Библиотека мобильного разработчика

#свежак #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
🖥 To Do — ведение дел на Jetpack Compose

To Do — простое приложение для ведения дел на Jetpack Compose с настраиваемыми темами Material Design 3.

💻 To Do на GitHub

🐸 Библиотека мобильного разработчика

#буст #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
2👾1
💻 Пишем видеоплеер под iOS с нуля

Приложения с видео далеко ушли вперед за последнее время. AVPlayer не развивался и пригоден для кинотеатров с DRM. С ним сложно делать prefetch, контролировать загрузку и поддерживать кастомные форматы. В open source нет работоспособных решений, а написать плеер с нуля сложно.

➡️ В докладе поговорили про:

🔵 архитектуру простого видеоплеера;
🔵 устройство контейнера MP4, научимся парсить треки и собирать CMFormatDescription;
🔵 декодирование семплов с использованием медиа фреймворков Apple;
🔵 синхронизацию отображения видео и проигрывамого аудио;
🔵 перемотку, задержки и как объединить слои в единую архитектуру;
🔵 какие оптимизации открывает полный контроль над работой видеоплеера.

Доклад будет полезен как разработчикам, интересующимся работой с медиа, так и тем, кто хочет лучше понять устройство видеоплеера под капотом.

👀 Смотреть доклад

🐸 Библиотека мобильного разработчика

#свежак #MiddlePath #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
4
2025/10/12 12:28:55
Back to Top
HTML Embed Code: