#android_development — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #android_development, aggregated by home.social.
-
Как я пытался чинить анимацию в LazyColumn
Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.
https://habr.com/ru/companies/tbank/articles/1009014/
#android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item
-
Как я пытался чинить анимацию в LazyColumn
Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.
https://habr.com/ru/companies/tbank/articles/1009014/
#android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item
-
Как я пытался чинить анимацию в LazyColumn
Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.
https://habr.com/ru/companies/tbank/articles/1009014/
#android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item
-
Как я пытался чинить анимацию в LazyColumn
Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.
https://habr.com/ru/companies/tbank/articles/1009014/
#android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item
-
Зачем нужен companion object в Hilt-модулях
Замечали некий companion object в интерфейсах Hilt-модулей ? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях , и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!
https://habr.com/ru/articles/1006844/
#companion_object #hilt #android_development #kotlin #datamodule #hilt_module
-
Интерактивные истории с ИИ
Хайп вокруг ИИ не утихает и поэтому я решил сделать приложение с интерактивными историями, где сюжет генерирует ИИ. На самом деле мне нравится играть в игры с нелинейным сюжетом. В игры, где ты сам можешь выбирать путь. Однако большинство таких игр имеют лишь небольшое количество заранее написанных сценариев. Это не позволяет в полной мере ощутить свободу выбора.
https://habr.com/ru/articles/996704/
#истории #интерактивные_книги #rustore #vk_id #android_development #frontend #backend
-
Создание кастомного Toolbar с Jetpack Compose. Подробный разбор всех попыток и решений
Привет, Хабр! Меня зовут Максим Сазонов, я android-разработчик в ПСБ. Сегодня предлагаю разобрать путь создания кастомного тулбара от первой кривой реализации до оптимизированного решения. И главная проблема, которую надо решить при создании этого компонента это центрирование title и subtitle. Эта проблема возникает потому что у нас может быть тулбар с разным количеством иконок по обе стороны от заголовка, текстом и иконками или только с title. И если ширина иконок у нас стандартна (44 dp), и достаточно просто умножить эту ширину на количество иконок справа, чтобы понять свободное пространство для title и subtitle, то с текстом с одной или с двух сторон всё намного сложнее, так как мы не можем заранее вычислить ширину этого текста, а значит не можем правильно центрировать и задать ширину title и subtitle. В статье я расскажу, как я решил этот вопрос.
https://habr.com/ru/companies/psb/articles/974368/
#kotlin #android #android_development #jetpack_compose #jetpack #toolbar #custom_toolbar
-
Что такое ANR и как с ним работать правильно
ANR — это не просто “зависание”, а молчаливый краш, который напрямую бьёт по удержанию пользователей. В статье разбираю, как работает механизм ANR, какие ошибки его вызывают, как анализировать traces.txt, какие библиотеки помогают отслеживать блокировки (ANR-WatchDog, ANR-Spy, Firebase Crashlytics), и как построить процессы, чтобы QA-команда научилась ловить их ещё до релиза.
https://habr.com/ru/articles/958278/
#anr #watchdog #kotlin #java #android #mobile_development #android_development #qa #mobile_qa
-
Что такое ANR и как с ним работать правильно
ANR — это не просто “зависание”, а молчаливый краш, который напрямую бьёт по удержанию пользователей. В статье разбираю, как работает механизм ANR, какие ошибки его вызывают, как анализировать traces.txt, какие библиотеки помогают отслеживать блокировки (ANR-WatchDog, ANR-Spy, Firebase Crashlytics), и как построить процессы, чтобы QA-команда научилась ловить их ещё до релиза.
https://habr.com/ru/articles/958278/
#anr #watchdog #kotlin #java #android #mobile_development #android_development #qa #mobile_qa
-
MAX: технический разбор неофициального клиента
Мессенджер MAX (ru.oneme.app) — одно из приложений, которое в последнее время активно продвигается как альтернатива известным платформам. Он позиционируется как современный, быстрый и безопасный инструмент для общения, с поддержкой звонков, каналов и ботов. Но что скрывается под капотом? В этой статье — глубокий технический анализ APK-файла, включая структуру, зависимости, разрешения и архитектурные особенности.
https://habr.com/ru/articles/933378/
#научнопопулярное #android #android_development #android_sdk #android_studio
-
Mobile System Design. Проектируем новостную ленту
Элементы System Design уже прочно вошли в процесс собеседований. Однако в мобильной разработке довольно часто возникает недопонимание что же все-таки необходимо продемонстрировать чтобы получить заветный офер. В этой статье я разберу один из кейсов, который может встретиться на реальном собеседовании и кроме этого покажу примерный сценарий такого интервью. Данная статья будет интересна мобильным разработчикам, как Android, так и iOS. Сам формат System Design Interview я разбирал в предыдущей статье. Здесь же мы сконцентрируемся на практике. Итак, задача: спроектировать новостную ленту.
https://habr.com/ru/articles/930898/
#android_development #ios_development #system_design_интервью #собеседования #bigtech #подготовка_к_собеседованию
-
Я написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?
Каждый раз, нажимая кнопку «Connect» в очередном VPN-приложении, я ловил себя на мысли: а что там, под капотом? Как эта магия на самом деле работает на уровне Android? Вокруг сотни готовых решений, но простое пользовательское любопытство переросло в профессиональное: мне захотелось не просто использовать, а понять. Понять, какие подводные камни скрывает VpnService, как реализовать весь цикл от авторизации до поднятия защищённого туннеля и что на этом пути может пойти не так. Эта статья — мой личный "бортовой журнал". Я не претендую на создание самого безопасного решения, это скорее история о пути, граблях и открытиях для тех, кто тоже решит заглянуть под капот VPN-технологий на Android. Так родилась идея этого проекта — создать свой, пусть и простой, VPN-клиент. Это не попытка сделать коммерческий продукт, а скорее исследовательское погружение, мой личный "челлендж" и способ разложить всё по полочкам. Заглянуть под капот
https://habr.com/ru/articles/926150/
#android #vpn #vpnсервис #wireguard #мобильная_разработка #мобильные_приложения #мобильное_приложение #kotlin #android_development #android_studio
-
Создание кастомного тултипа Jetpack Compose
Привет, Хабр! Меня зовут Альберт, я Android-разработчик в команде интеграции рассрочки в приложении Wildberries. В этой статье мы напишем простенькую реализацию тултипов на Jetpack Compose своими руками.
https://habr.com/ru/companies/wildberries/articles/905994/
#tooltip #тултип #jetpack_compose #android #android_development #tutorial #туториал #tooltips #тултипы #kotlin
-
Халява приходит в программирование
Недавно прогремел пост Артура Думчева (@arturdumchev), как халява якобы уходит из программирования. Можете ознакомиться с ним, чтиво достойное. Особенно комментарии. У меня сегодня день рождения: 39 лет. С 2003 года я работаю разработчиком, и сейчас делаю кое-что для ИИ. Интуиция подсказывает, что халява только начинается , мои чюваки. Сейчас — лучшее время быть разработчиком. Давайте начнем с точно того же определения, как было у Артёма: «для меня халява — это гарантированный результат за вложенные усилия. Логика повествования требует такого определения, дальше всё будет ясно». А дальше ясно, что из неверно поставленного условия может следовать что угодно. Читать далее!
https://habr.com/ru/companies/bar/articles/905936/
#бекенд #мобильная_разработка #android_development #ios_development #llm #вайбкодинг #промптинжиниринг #ответственность #архитектура #computer_science
-
Халява уходит из программирования
Для меня халява — гарантированный результат за вложенные усилия. Логика повествования требует такого определения, дальше всё будет ясно. Халяве учили и учат в школе. Сделай домашнее по алгебре, выучи стихотворение, научись решать линейные уравнения — и получишь пятерку. Любовь получать пятерки сыграла злую шутку со многими, ведь в жизни вне учебных заведений халявы практически нет. Слово «легко» ниже по статье тоже означает гарантированный результат за усилия, но подразумевается «легко, если умеешь работать с собственной мотивацией».
https://habr.com/ru/articles/904754/
#бекенд #мобильная_разработка #android_development #ios_development #llm #вайбкодинг #промптинжиниринг #ответственность #архитектура #computer_science
-
Интеграция JavaScript в нативные мобильные приложения для криптотрейдинга: нестандартный опыт и технические решения
23–24 апреля в Москве проходит Blockchain Forum — одно из ключевых событий в мире блокчейна и криптотехнологий. На форуме изучаем тренды, делимся опытом и слушаем коллег, набираемся насмотренности. Мы в CleverPumpkin разрабатываем и развиваем мобильные приложения, в том числе для криптовалютных сервисов, и хорошо понимаем с какими техническими вызовами сталкиваются команды. В этой статье мы делимся совместным опытом с командой EVEDEX, где мы интегрировали SDK на TypeScript, изначально предназначенный для веба, в нативные приложения , чтобы сохранить единую бизнес‑логику между платформами. Это решение дало массу преимуществ — но и принесло немало сложностей.
https://habr.com/ru/companies/cleverpumpkin/articles/903544/
#мобильные_приложения #криптовалютные_биржи #разработка_мобильных_приложений #android_development #ios_development #криптобиржи #blockchain #typescript
-
Разработали мобильное приложение для криптобиржи EVEDEX — функциональное решение для быстрой и безопасной торговли
Создать мобильное приложение для криптобиржи — всегда вызов. Особенно, если биржа сочетает в себе принципы DEX и CEX, предлагает встроенные кошельки, смарт-аккаунты и управление средствами без посредников. Мы в CleverPumpkin взялись за этот челлендж и разработали EVEDEX — удобное и безопасное приложение для криптотрейдинга.
https://habr.com/ru/companies/cleverpumpkin/articles/901730/
#разработка_приложений #криптовалютные_биржи #ios_development #android_development #мобильные_приложения #криптобиржи
-
Приложение для Android: Справочник по DC-DC микросхемам с функцией подбора по параметрам и типовыми схемами включения
В одном из комментариев к статье о приложении SMD CODES https://habr.com/ru/articles/858392/ было предложено сделать отдельное приложение о микросхемах питания DC-DC (импульсные преобразователи напряжения). В мире электроники и проектирования устройств DC-DC преобразователи играют ключевую роль. Они позволяют эффективно преобразовывать напряжение, что особенно важно для портативных устройств и бытовой технике. Однако, выбор подходящей микросхемы DC-DC преобразователя может быть сложной задачей, особенно для начинающих инженеров. Именно для таких случаев было разработано новое приложение для Android — мощный справочник по DC-DC микросхемам с функцией подбора по параметрам. Основные функции приложения
https://habr.com/ru/articles/898940/
#dcdc #ремонт_техники #ремонт_ноутбуков #ремонт_бп #электроника #электроника_для_начинающих #smd_пайка #smdcode #источники_питания #android_development
-
Сравнение Dagger 2, Dagger Hilt и Koin
В этой статье мне хотелось бы разобрать вопрос, которым часто задаются начинающие и молодые разработчики мобильных приложений под Android. Многие мобильные разработчики слышали о таких широко известных инструментах внедрения зависимостей (DI), как Koin и Dagger. Они решают одну задачу — управление зависимостями, но делают это по-разному. Но в чём же их принципиальная разница, в чём их отличия, их плюсы и минусы, и какой из этих инструментов выбрать при разработке нового проекта (и в зависимости от его сложности и требований)? Обо всём об этом постараюсь кратко изложить далее и дам рекомендации по выбору для новых проектов.
https://habr.com/ru/articles/890462/
#dagger_2 #hilt #koin #kotlin #dependency_injection #android_development
-
Сравнение Dagger 2, Dagger Hilt и Koin
В этой статье мне хотелось бы разобрать вопрос, которым часто задаются начинающие и молодые разработчики мобильных приложений под Android. Многие мобильные разработчики слышали о таких широко известных инструментах внедрения зависимостей (DI), как Koin и Dagger. Они решают одну задачу — управление зависимостями, но делают это по-разному. Но в чём же их принципиальная разница, в чём их отличия, их плюсы и минусы, и какой из этих инструментов выбрать при разработке нового проекта (и в зависимости от его сложности и требований)? Обо всём об этом постараюсь кратко изложить далее и дам рекомендации по выбору для новых проектов.
https://habr.com/ru/articles/890462/
#dagger_2 #hilt #koin #kotlin #dependency_injection #android_development
-
R8: Шакалья работа (уменьшение apk через правки R8)
По умолчанию для минификации имени класса в R8 используются цифры и английский алфавит. Но что будет если вместо трех символьных строк, которые будет занимать три байта, использовать один двухбайтовый символ?
https://habr.com/ru/articles/885006/
#r8 #android #минификация #android_development #android_studio #agp #d8 #apk #dex
-
Kotlin Coroutines под капотом: CoroutineContext и CoroutineScope
Structured Concurrency это одна из главных фишек Kotlin Coroutines, позволяющая оперировать иерархиями корутин через единый интерфейс, благодаря такой организации можно легко отменить сразу все корутины, имея ссылку только на самый высокоуровневый объект. В этой статье я разберу две базовые штуки на основе которых строится Structured Concurrency - CoroutineContext и CoroutineScope. Поехали!
https://habr.com/ru/articles/883588/
#android #android_development #kotlin #kotlin_coroutines #kotlin_coroutines_internals #algorithms #coroutines #coroutines_internals #data_structures
-
Как мы раскрыли внутреннюю архитектуру Flutter и затащили его на собственную платформу
Если вы разрабатываете мобильные приложения, то почти наверняка сталкивались с Flutter — мегапопулярным открытым фреймворком от Google. Наша команда Mobile SDK and Applications Development, конечно, тоже захотела использовать Flutter при создании приложений для KasperskyOS — собственной микроядерной операционной системы «Лаборатории Касперского» — но был нюанс… Особенности архитектуры KasperskyOS задают условия, при которых мы не можем пойти проторенными дорожками и свободно интегрировать фреймворк на своей платформе. Подсмотреть решения где-то вовне мы не можем тоже — таких кейсов в индустрии просто не было. А сам Google практически не раскрывает внутреннюю архитектуру Flutter. Так что интеграцию требовалось выстраивать с нуля. И мы залезли под капот Flutter и нашли решения, которые, с одной стороны, были бы удобны разработчикам, а с другой — устраивали бы нас с точки зрения безопасности и производительности. Если вы тоже разрабатываете приложения, где требуется разбираться во внутренней архитектуре Flutter, статья точно будет вам полезна — ныряйте под кат!
https://habr.com/ru/companies/kaspersky/articles/864200/
#flutter #operating_system #microkernels #crossplatform_mobile_programming #mobile_development #kasperskyos #wayland #разработка_приложений #android #android_development #ос #операционные_системы #операционная_система
-
Адаптеры в Android: «сервируем» данные красиво
В Android разработке адаптер — это компонент, который служит мостом между источником данных (например, списком элементов) и элементом пользовательского интерфейса (например, списком или сеткой). Он преобразует каждый элемент данных в визуальное представление, которое пользователь видит на экране. Представьте, что вы находитесь в ресторане, а кухня — это ваш источник данных, который готовит разные блюда. Адаптер в этой аналогии — это официант, который берет каждое блюдо из кухни и красиво подает его на стол. Вы не видите сырые ингредиенты или беспорядок на кухне, вы видите только красиво оформленное блюдо. Так же и в Android: адаптер превращает сырые данные в удобный для пользователя формат. Погнали вглубь!
-
Пишем простенький DI для Android приложения
Сейчас практически любой проект имеет в своём составе как минимум одну библиотеку или решение для разруливания зависимостей, но далеко не каждый разработчик действительно понимает как устроены эти самые решения. Поэтому в этой статье я хотел бы прояснить некоторые базовые моменты, на которых построены такие известные библиотеки как Dagger, Hilt и Koin, а также показать на практическом примере как можно написать свое DI решение.
https://habr.com/ru/articles/843258/
#android #kotlin #dependency_injection #di #dagger #hilt #koin #android_development #codegen
-
Пишем простенький DI для Android приложения
Сейчас практически любой проект имеет в своём составе как минимум одну библиотеку или решение для разруливания зависимостей, но далеко не каждый разработчик действительно понимает как устроены эти самые решения. Поэтому в этой статье я хотел бы прояснить некоторые базовые моменты, на которых построены такие известные библиотеки как Dagger, Hilt и Koin, а также показать на практическом примере как можно написать свое DI решение.
https://habr.com/ru/articles/843258/
#android #kotlin #dependency_injection #di #dagger #hilt #koin #android_development #codegen
-
PinLockSreen на основе KeyStore. Kotlin. Jetpack Compose
В данной любительской статье разберемся, что такое KeyStore в контексте мобильной разработки, для чего нужен и применим его в крайне легком варианте. Также погрузимся в разработку экрана входа в ваше приложение. Статья будет разделена на 3 так называемых раздела — KeyStore, UI и ViewModel.
https://habr.com/ru/articles/831914/
#kotlin #android_development #android_apps #android #jetpack_compose #keystore #viewmodel #ui #github
-
PinLockSreen на основе KeyStore. Kotlin. Jetpack Compose
В данной любительской статье разберемся, что такое KeyStore в контексте мобильной разработки, для чего нужен и применим его в крайне легком варианте. Также погрузимся в разработку экрана входа в ваше приложение. Статья будет разделена на 3 так называемых раздела — KeyStore, UI и ViewModel.
https://habr.com/ru/articles/831914/
#kotlin #android_development #android_apps #android #jetpack_compose #keystore #viewmodel #ui #github
-
PinLockSreen на основе KeyStore. Kotlin. Jetpack Compose
В данной любительской статье разберемся, что такое KeyStore в контексте мобильной разработки, для чего нужен и применим его в крайне легком варианте. Также погрузимся в разработку экрана входа в ваше приложение. Статья будет разделена на 3 так называемых раздела — KeyStore, UI и ViewModel.
https://habr.com/ru/articles/831914/
#kotlin #android_development #android_apps #android #jetpack_compose #keystore #viewmodel #ui #github
-
Как я перестал волноваться и полюбил ошибки в корутинах: поймай меня если сможешь
Если опираться на предыдущую статью ( ссылка ), то по отношению к корутине можно сказать что на андроиде она вызовет краш приложения, если не был переопределен Thread.UncaughtExceptionHandler потока. Но во всех ли случаях такое будет? Или можно ли не изменяя корутину и не изменяя Thread.UncaughtExceptionHandler потока помешать данной корутине закрыть приложение с крашем?
https://habr.com/ru/articles/827188/
#android #coroutine #coroutines #kotlin #exception_handling #kotlin_coroutines #android_development
-
«Железо» для Android Studio (gradle-сборка) в 2024 году
Если вы используете Android Studio в работе, то, высока вероятность, что рано или поздно зададитесь вопросом – что можно «проапгрейдить» в железе, для повышения производительности, и что от этого ожидать? Если посмотреть официальные рекомендации (https://developer.android.com/studio/install), то они довольно скудные и особой ясности не вносят. На хабре на эту тему уже была довольно интересная статья с подробными разборами «что-на-что» влияет - https://habr.com/ru/companies/cian/articles/715640/ . Здесь же я попытаюсь немного дополнить ее еще некоторыми тестами.
https://habr.com/ru/articles/823840/
#android_studio #windows_10 #macos #ide #android_development #android_разработка
-
Инструменты Android-разработчика
Будь эффективным — используй «туллинг»! В этой статье я хочу поделиться с вами своим опытом и рассказать о наиболее полезных инструментах, которые я использую в своей повседневной работе. Мы рассмотрим как широко известные, так и менее популярные, но не менее ценные утилиты, которые помогут вам стать более эффективным Android‑разработчиком.
https://habr.com/ru/companies/domclick/articles/821837/
#android #android_development #android_studio #android_plugins #фермы_устройств #продуктивность_разработчиков #продуктивность
-
Разворачиваем ML модель с использованием ONNX на Android в километре над землей
Иногда в жизни программиста возникают интересные задачи. Например, как перенести полученную ML модель, созданную в Python, на Android смартфон. Потому что этот самый смартфон пристегнут к параплану, висящему в километре над землей, а модель должна помогать пилоту лучше искать восходящие потоки. Интернета в полете при этом обычно нет, так что вариант с доступом к удаленному Python-серверу по API отпадает. Ноутбук с запущенным Jupyter с собой тоже не возьмешь. На помощь приходит промежуточный формат ONNX, созданный для обмена ML моделями между разными системами. Под катом описание того, как сконвертировать модель в этот формат и как загрузить и использовать ее в Android приложении.
https://habr.com/ru/articles/805515/
#onnx #onnxruntime #инференс #android_development #machine_learning
-
Кодогенерация токенов дизайн-системы для Android по Figma API
По мере развития проекта в целом и дизайн-системы в частности дизайн-токенов становится очень много. Для примера, у нас уже около четырёхсот иконок, больше двухсот цветов и перспектива внедрения нескольких тем в приложении. Что ещё, если не автоматизация, позволит держать в консистентности всю эту систему? Рассказываю про наш тернистый путь к собственному генератору токенов дизайн-системы.
https://habr.com/ru/companies/magnit/articles/803565/
#figma_api #figma_variables_api #android_development #gradleplugin #automatization #design_tokens #codegeneration #codegen #jetpack_compose #magnit_tech
-
Кодогенерация токенов дизайн-системы для Android по Figma API
По мере развития проекта в целом и дизайн-системы в частности дизайн-токенов становится очень много. Для примера, у нас уже около четырёхсот иконок, больше двухсот цветов и перспектива внедрения нескольких тем в приложении. Что ещё, если не автоматизация, позволит держать в консистентности всю эту систему? Рассказываю про наш тернистый путь к собственному генератору токенов дизайн-системы.
https://habr.com/ru/companies/magnit/articles/803565/
#figma_api #figma_variables_api #android_development #gradleplugin #automatization #design_tokens #codegeneration #codegen #jetpack_compose #magnit_tech
-
Кодогенерация токенов дизайн-системы для Android по Figma API
По мере развития проекта в целом и дизайн-системы в частности дизайн-токенов становится очень много. Для примера, у нас уже около четырёхсот иконок, больше двухсот цветов и перспектива внедрения нескольких тем в приложении. Что ещё, если не автоматизация, позволит держать в консистентности всю эту систему? Рассказываю про наш тернистый путь к собственному генератору токенов дизайн-системы.
https://habr.com/ru/companies/magnit/articles/803565/
#figma_api #figma_variables_api #android_development #gradleplugin #automatization #design_tokens #codegeneration #codegen #jetpack_compose #magnit_tech
-
Реализация Lazy Dependency Holder (Продвинутая ленивая инициализация зависимостей) для больших команд
Реализация Lazy Dependency Holder (Продвинутая ленивая инициализация зависимостей) для больших команд.
https://habr.com/ru/articles/803335/
#Dagger2 #Ленивая_инициализация_зависимостей #ksp #android #android_development #android_studio #dagger