Обновить
9
16
Тимур Боргалинов@timkaopensoul

Software Engineer

Отправить сообщение

Как всплывающее окно в WebView съело мои два дня (viewport и с чем его кушать)

Время на прочтение3 мин
Охват и читатели6.3K

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

У меня это произошло со скромным всплывающим окном внутри WebView.

Задача была максимально скучной: на экране с WebView пользователь нажимает кнопку “Exit”, а веб-страница показывает попап подтверждения. На старом коде — всё идеально. На браузере — идеально. На новом инфраструктурном слое WebView — попап появляется на миг и тут же закрывается сам, как будто кто-то тайно играет в “крестики” за пользователя.

Никаких ошибок. Никаких исключений.

Просто “блип”… и пустота.

То самое чувство, когда ты нажимаешь кнопку, а мир делает вид, что “ничего не было”.

И это — пролог к истории о том, как два дня моей жизни сгорели на алтаре WebView.

Читать далее

Как не сойти с ума с Grafana Unified Alerting: настраиваем алерт и разбираем все грабли

Время на прочтение7 мин
Охват и читатели7.6K

В какой‑то момент простого дашборда уже не хватает. Хочется, чтобы метрики не просто «где‑то красиво лежали», а сами приходили и били в лицо, когда что‑то пошло не так.

Разберёмся с Grafana Unified Alerting, expressions, темплейтами уведомлений и типичными ошибками, которые легко словить, если вы впервые лезете в алерты.

Читать далее

Как ускорить WebView в Android и доказать это цифрами

Время на прочтение7 мин
Охват и читатели9.2K

Как приручить WebView: пререндерим экраны заранее (AndroidX WebKit prerenderUrlAsync), меряем не ощущения, а TTVR — время до визуальной готовности — лёгким offscreen-детектором, шлём метрики в Grafana. Внутри — когда и что пререндерить, таймауты/отмена, cookie-политика и готовые сниппеты. На проде — до 2.5× быстрее и меньше «белых экранов».

Читать далее

Что такое ANR и как с ним работать правильно

Время на прочтение5 мин
Охват и читатели5.6K

ANR — это не просто “зависание”, а молчаливый краш, который напрямую бьёт по удержанию пользователей. В статье разбираю, как работает механизм ANR, какие ошибки его вызывают, как анализировать traces.txt, какие библиотеки помогают отслеживать блокировки (ANR-WatchDog, ANR-Spy, Firebase Crashlytics), и как построить процессы, чтобы QA-команда научилась ловить их ещё до релиза.

Читать далее

UI Kit как рычаг роста: как связать Figma и код

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели5.9K

Как превратить UI Kit из дизайнерского артефакта в живую систему, где обновление стиля в Figma автоматически обновляет код на Android.

В статье — наш путь от ручного копирования палитр до генерации типобезопасных токенов через KotlinPoet, Gradle-плагины и Figma JSON.

Расскажу, как бизнес получает скорость и консистентность, как темная тема перестаёт быть болью, и почему iOS может безболезненно присоединиться к этой архитектуре.

Читать далее

Почему loadKoinModules и unloadKoinModules в Koin могут ломать ваши зависимости и как этого избежать

Время на прочтение2 мин
Охват и читатели5.3K

В Android-проектах Koin остаётся одной из самых популярных DI-библиотек, особенно в MVP/MVI и Compose-приложениях. Она проста в настройке, гибкая и хорошо работает в больших кодовых базах.

Но многие команды, стремясь к модульности и тестопригодности, начинают активно использовать функции loadKoinModules() и unloadKoinModules(). И здесь разработчики часто натыкаются на странную ошибку -_-

Читать далее

Реклама музыки: посредники наживаются, артисты страдают. Есть ли выход?

Время на прочтение3 мин
Охват и читатели6.7K

Почему 80% бюджета музыкантов уходит в никуда? Агентства, блогеры и менеджеры захлебываются в рутине. Мы показываем, как IWBL меняет правила игры и делает рекламу музыки прозрачной и честной.

Читать далее

TikTok как канал продвижения музыки: реальный гайд для музыкантов и лейблов

Время на прочтение4 мин
Охват и читатели6.2K

Как продвигать треки в TikTok без «залпов» бюджета: форматы, выбор креаторов, волны seed → mid → amplification и метрики. Пошагово для артистов и лейблов.

Читать далее

Как мы автоматизировали рекламу музыки через TikTok и превратили хаос в продукт — история IWBL

Время на прочтение4 мин
Охват и читатели4.2K

Рассказываем, как из боли в музыкальном маркетинге родилась IWBL — платформа для рекламы треков через TikTok без лички, скама и таблиц.

Читать далее

Какой фреймворк выбрать для MVP стартапа: опыт разработчика и фаундера

Время на прочтение5 мин
Охват и читатели4.9K

Автор: разработчик и фаундер с опытом запуска стартапов в сферах туризма, HR tech, а сейчас — в музыкальной индустрии.

По образованию — Data Scientist, по призванию — Android-разработчик и продукт-менеджер.

Работал в крупных продуктах вроде X5 и Uzum, где впервые познакомился с Kotlin Multiplatform Mobile (KMM). Когда настал момент создавать прототип для своего музыкального стартапа, выбор был очевиден: я уже знал Kotlin, имел боевой опыт с KMM — и хотел быстро двигаться без лишних компромиссов.

Но KMM — не единственный путь.

На столе были и Flutter, и React Native, и даже классическая нативка.

В этой статье я расскажу:

Читать далее

Часть 2: XML или Compose — что выбрать, и что нужно знать перед выбором

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели2.9K

Автор: Android-разработчик с 7+ годами опыта, знающий толк в FrameLayout, merge, include, RecyclerView, а теперь и Modifier.padding.

Читать далее

XML vs Compose, не можете решить? Часть 1: Введение

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели2.6K

Jetpack Compose — не просто «альтернатива XML». Это совершенно другой парадигмальный сдвиг в том, как Android отрисовывает и управляет UI. Но чтобы по‑настоящему понять, чем Compose отличается от привычного XML, давайте посмотрим, что происходит под капотом в каждом случае.

Читать далее

A/B-тестирование в Android-разработке: гайд для middle+ разрабов

Время на прочтение3 мин
Охват и читатели566

A/B-тестирование — это не только инструмент для продуктовых команд. Это суперспособность и для Android-разработчиков. В этой статье рассказываю, как опытные инженеры могут проектировать, реализовывать и грамотно завершать эксперименты, которые действительно влияют на продукт, не захламляя кодовую базу. От Firebase Remote Config до паттернов чистой архитектуры — всё, чтобы делать более умные и осознанные Android-приложения.

🚀 Почему A/B-тестирование важно именно для разработчиков

По сути, A/B-тест — это сравнение двух (или более) вариантов реализации, чтобы понять, какой из них работает лучше. В Android это может быть:

• сравнение разных UI-дизайнов,

• тестирование разных онбордингов,

• проверка производительности оптимизаций,

• сравнение реализаций фич (например, RecyclerView против LazyColumn в Compose).

Вместо «выпустим и посмотрим» — мы выпускаем, измеряем и улучшаем.

🧩 Как встроить A/B-тесты в кодовую базу

Хороший A/B-тест начинается с гипотезы и метрик успеха. Но в инженерном мире нужно думать ещё и о поддержке, масштабировании и разделении логики.

Читать далее

Best practices в Code Review

Время на прочтение6 мин
Охват и читатели21K

Правильный процесс ревью кода — это процесс итеративного улучшения продукты и контроля.
Контроля того, что:
1) Cоблюдены общие правила и договорённости
2) Решение не избыточное и масштабируемое.
3) Решение покрывает все критерии приемки указанные в описании к задаче

Для начала будет хорошо задать в своей команды такие вопросы:
1) Сколько времени занимает ревью кода для средней (сферической в вакууме) задачи
2) Как вы минимизируете время ревью?
3) Как вы определяете, что ревью конкретной задачи сделано правильно?

Читать далее

Информация

В рейтинге
469-й
Откуда
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Дата рождения
Зарегистрирован
Активность

Специализация

Фулстек разработчик, Разработчик мобильных приложений
Старший
Kotlin