#android_development — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #android_development, aggregated by home.social.
-
Не только смартфоны: 5 сфер, где нужны мобильные разработчики
Хабр, привет! Меня зовут Борис Денисенко. Я мобильный разработчик и наставник на курсе
https://habr.com/ru/companies/yandex_praktikum/articles/1031664/
#android #мобильная_разработка #android_development #android_разработка #android_разработчик #kotlin #kotlin_multiplatform #java #ios_development #ios_разработка
-
Как собрать пайплайн с LLM агентом который фиксит нативные Android UI автотесты
Что будем делать или что может быть интересного в статье: - Пайплайн из двух независимых LLM агентов - Запуск и анализ ошибки UI автотеста (Root Cause Analysis) - Фикс автотеста в цикле с его запуском. - Кастомизация MCP инструментов чтобы оптимизировать контекстное окно. - Система приоритетов в работе LLM агентов.
https://habr.com/ru/articles/1035390/
#llmагент #llmагенты #llmмодели #android_development #espresso #uiтесты
-
Как собрать пайплайн с LLM агентом который фиксит нативные Android UI автотесты
Что будем делать или что может быть интересного в статье: - Пайплайн из двух независимых LLM агентов - Запуск и анализ ошибки UI автотеста (Root Cause Analysis) - Фикс автотеста в цикле с его запуском. - Кастомизация MCP инструментов чтобы оптимизировать контекстное окно. - Система приоритетов в работе LLM агентов.
https://habr.com/ru/articles/1035390/
#llmагент #llmагенты #llmмодели #android_development #espresso #uiтесты
-
Как собрать пайплайн с LLM агентом который фиксит нативные Android UI автотесты
Что будем делать или что может быть интересного в статье: - Пайплайн из двух независимых LLM агентов - Запуск и анализ ошибки UI автотеста (Root Cause Analysis) - Фикс автотеста в цикле с его запуском. - Кастомизация MCP инструментов чтобы оптимизировать контекстное окно. - Система приоритетов в работе LLM агентов.
https://habr.com/ru/articles/1035390/
#llmагент #llmагенты #llmмодели #android_development #espresso #uiтесты
-
Как собрать пайплайн с LLM агентом который фиксит нативные Android UI автотесты
Что будем делать или что может быть интересного в статье: - Пайплайн из двух независимых LLM агентов - Запуск и анализ ошибки UI автотеста (Root Cause Analysis) - Фикс автотеста в цикле с его запуском. - Кастомизация MCP инструментов чтобы оптимизировать контекстное окно. - Система приоритетов в работе LLM агентов.
https://habr.com/ru/articles/1035390/
#llmагент #llmагенты #llmмодели #android_development #espresso #uiтесты
-
Как я пытался чинить анимацию в 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
-
Зачем нужен companion object в Hilt-модулях
Замечали некий companion object в интерфейсах Hilt-модулей ? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях , и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!
https://habr.com/ru/articles/1006844/
#companion_object #hilt #android_development #kotlin #datamodule #hilt_module
-
Зачем нужен companion object в Hilt-модулях
Замечали некий companion object в интерфейсах Hilt-модулей ? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях , и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!
https://habr.com/ru/articles/1006844/
#companion_object #hilt #android_development #kotlin #datamodule #hilt_module
-
Зачем нужен companion object в Hilt-модулях
Замечали некий companion object в интерфейсах Hilt-модулей ? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях , и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!
https://habr.com/ru/articles/1006844/
#companion_object #hilt #android_development #kotlin #datamodule #hilt_module
-
Нейросеть на пассажирском сиденье: Скрещиваем Android Automotive и Machine Learning
В предыдущих сериях мы научились ковыряться под капотом: доставать данные с датчиков через VHAL и прятать кнопки от водителя, когда машина едет. Но давайте честно: просто выводить скорость на экран — это скучно. Этим занимались инженеры еще в 90-х. Сегодня мы живем в эпоху ИИ. У нас есть железка стоимостью в десятки тысяч евро, напичканная датчиками, и операционная система, которая может всё это читать. Так давайте дадим машине «мозги»! В этой статье мы напишем концепт Smart Driving Assistant — фонового сервиса на Android Automotive, который будет анализировать телеметрию (руль, педали, скорость) и с помощью локальной нейросети (On-Device ML) понимать, что водитель начал "играть в шашечки" на дороге.
-
Интерактивные истории с ИИ
Хайп вокруг ИИ не утихает и поэтому я решил сделать приложение с интерактивными историями, где сюжет генерирует ИИ. На самом деле мне нравится играть в игры с нелинейным сюжетом. В игры, где ты сам можешь выбирать путь. Однако большинство таких игр имеют лишь небольшое количество заранее написанных сценариев. Это не позволяет в полной мере ощутить свободу выбора.
https://habr.com/ru/articles/996704/
#истории #интерактивные_книги #rustore #vk_id #android_development #frontend #backend
-
Про то, как я Storage Access Framework укрощал, да файлы в хранилище приручал
В начале было приложение. И было это приложение для цифровой подписи. Работало оно просто: подписываешь документы на смартфоне, не думая о каких-либо дополнительных токенах. Все упаковано в телефон — и сертификаты, и библиотеки. Процесс знакомый: авторизовался, загрузил файл, подписал. Но вот однажды пользователи стали жаловаться, что не могут найти ранее подписанные документы. Бывало, пользователь подписал файл, долго к нему не возвращался, а спустя время уже не смог его отыскать. Переустановил приложение или авторизовался с другого устройства, и все файлы как в воду канули. Меня зовут Георгий Левченко, я Android-разработчик в ПСБ. Начал я искать источник бед пользовательских. Оказалось, виной всему было то, что все файлы хранились в кэш-директории приложения. Понял я: чтобы файлы не пропадали, им нужен менеджмент для файлов. Отыскался у Android для таких целей готовый инструмент — Storage Access Framework (SAF), он служит для доступа к файлам через стандартный интерфейс без управления разрешениями вручную. Поведаю под катом, как я решал с его помощью эту задачу.
https://habr.com/ru/companies/psb/articles/991676/
#storage_access_framework #android #android_development #разработка_приложений #кэширование #кэширование_данных
-
Решил сделать себе смартфон на Линукс. Linux phone Xiaomi Poco X3 NFC на Ubuntu Touch по шагам
Времена сейчас тяжелые, я как пользователь iPhone, давно чувствую себя неполноценным пользователем смартфона в нашей юрисдикции. А с недавнего времени возглавил команду линуксоидов и потянуло меня на всё линуксовое. Решил, так скажем, стать пингвином. Все началось с того, что выкинул свой макбук, которым пользовался с 2015 года, купил хороший ThinkPad на Ryzen 7 и накатил туда Linux Mint 22.2 и, знаете что, радости моей нет предела, я прям кайфую и пропитываюсь духом опенсорса. Все таки, когда клиентам показываешь преимущества миграции на линукс с мака, есть нотка недоверия к таким ребятам. И для пущей линуксовости, уже второй месяц подумываю пересесть на линуксфон, а еще все это недоверие к корпоратам, подогревает мой интерес. В общем если с тем, как накатить Минт на ноут в целом сложностей нет, то с линуксфоном, не все так просто… погнали разбираться
https://habr.com/ru/articles/982184/
#linux #ubuntu_touch #android #android_development #установка_linux #установка_ubuntu_touch #телефон #смартфон #убунту #тач
-
Решил сделать себе смартфон на Линукс. Linux phone Xiaomi Poco X3 NFC на Ubuntu Touch по шагам
Времена сейчас тяжелые, я как пользователь iPhone, давно чувствую себя неполноценным пользователем смартфона в нашей юрисдикции. А с недавнего времени возглавил команду линуксоидов и потянуло меня на всё линуксовое. Решил, так скажем, стать пингвином. Все началось с того, что выкинул свой макбук, которым пользовался с 2015 года, купил хороший ThinkPad на Ryzen 7 и накатил туда Linux Mint 22.2 и, знаете что, радости моей нет предела, я прям кайфую и пропитываюсь духом опенсорса. Все таки, когда клиентам показываешь преимущества миграции на линукс с мака, есть нотка недоверия к таким ребятам. И для пущей линуксовости, уже второй месяц подумываю пересесть на линуксфон, а еще все это недоверие к корпоратам, подогревает мой интерес. В общем если с тем, как накатить Минт на ноут в целом сложностей нет, то с линуксфоном, не все так просто… погнали разбираться
https://habr.com/ru/articles/982184/
#linux #ubuntu_touch #android #android_development #установка_linux #установка_ubuntu_touch #телефон #смартфон #убунту #тач
-
Решил сделать себе смартфон на Линукс. Linux phone Xiaomi Poco X3 NFC на Ubuntu Touch по шагам
Времена сейчас тяжелые, я как пользователь iPhone, давно чувствую себя неполноценным пользователем смартфона в нашей юрисдикции. А с недавнего времени возглавил команду линуксоидов и потянуло меня на всё линуксовое. Решил, так скажем, стать пингвином. Все началось с того, что выкинул свой макбук, которым пользовался с 2015 года, купил хороший ThinkPad на Ryzen 7 и накатил туда Linux Mint 22.2 и, знаете что, радости моей нет предела, я прям кайфую и пропитываюсь духом опенсорса. Все таки, когда клиентам показываешь преимущества миграции на линукс с мака, есть нотка недоверия к таким ребятам. И для пущей линуксовости, уже второй месяц подумываю пересесть на линуксфон, а еще все это недоверие к корпоратам, подогревает мой интерес. В общем если с тем, как накатить Минт на ноут в целом сложностей нет, то с линуксфоном, не все так просто… погнали разбираться
https://habr.com/ru/articles/982184/
#linux #ubuntu_touch #android #android_development #установка_linux #установка_ubuntu_touch #телефон #смартфон #убунту #тач
-
Решил сделать себе смартфон на Линукс. Linux phone Xiaomi Poco X3 NFC на Ubuntu Touch по шагам
Времена сейчас тяжелые, я как пользователь iPhone, давно чувствую себя неполноценным пользователем смартфона в нашей юрисдикции. А с недавнего времени возглавил команду линуксоидов и потянуло меня на всё линуксовое. Решил, так скажем, стать пингвином. Все началось с того, что выкинул свой макбук, которым пользовался с 2015 года, купил хороший ThinkPad на Ryzen 7 и накатил туда Linux Mint 22.2 и, знаете что, радости моей нет предела, я прям кайфую и пропитываюсь духом опенсорса. Все таки, когда клиентам показываешь преимущества миграции на линукс с мака, есть нотка недоверия к таким ребятам. И для пущей линуксовости, уже второй месяц подумываю пересесть на линуксфон, а еще все это недоверие к корпоратам, подогревает мой интерес. В общем если с тем, как накатить Минт на ноут в целом сложностей нет, то с линуксфоном, не все так просто… погнали разбираться
https://habr.com/ru/articles/982184/
#linux #ubuntu_touch #android #android_development #установка_linux #установка_ubuntu_touch #телефон #смартфон #убунту #тач
-
Создание кастомного 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
-
Создание кастомного 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
-
Создание кастомного 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
-
Создание кастомного 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
-
Кодогенерация токенов дизайн-системы для 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
-
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
-
Что такое 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
-
Сравнение Dagger 2, Dagger Hilt и Koin
В этой статье мне хотелось бы разобрать вопрос, которым часто задаются начинающие и молодые разработчики мобильных приложений под Android. Многие мобильные разработчики слышали о таких широко известных инструментах внедрения зависимостей (DI), как Koin и Dagger. Они решают одну задачу — управление зависимостями, но делают это по-разному. Но в чём же их принципиальная разница, в чём их отличия, их плюсы и минусы, и какой из этих инструментов выбрать при разработке нового проекта (и в зависимости от его сложности и требований)? Обо всём об этом постараюсь кратко изложить далее и дам рекомендации по выбору для новых проектов.
https://habr.com/ru/articles/890462/
#dagger_2 #hilt #koin #kotlin #dependency_injection #android_development
-
Реализация Lazy Dependency Holder (Продвинутая ленивая инициализация зависимостей) для больших команд
Реализация Lazy Dependency Holder (Продвинутая ленивая инициализация зависимостей) для больших команд.
https://habr.com/ru/articles/803335/
#Dagger2 #Ленивая_инициализация_зависимостей #ksp #android #android_development #android_studio #dagger
-
Создание кастомного тултипа Jetpack Compose
Привет, Хабр! Меня зовут Альберт, я Android-разработчик в команде интеграции рассрочки в приложении Wildberries. В этой статье мы напишем простенькую реализацию тултипов на Jetpack Compose своими руками.
https://habr.com/ru/companies/wildberries/articles/905994/
#tooltip #тултип #jetpack_compose #android #android_development #tutorial #туториал #tooltips #тултипы #kotlin
-
MAX: технический разбор неофициального клиента
Мессенджер MAX (ru.oneme.app) — одно из приложений, которое в последнее время активно продвигается как альтернатива известным платформам. Он позиционируется как современный, быстрый и безопасный инструмент для общения, с поддержкой звонков, каналов и ботов. Но что скрывается под капотом? В этой статье — глубокий технический анализ APK-файла, включая структуру, зависимости, разрешения и архитектурные особенности.
https://habr.com/ru/articles/933378/
#научнопопулярное #android #android_development #android_sdk #android_studio
-
Я написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?
Каждый раз, нажимая кнопку «Connect» в очередном VPN-приложении, я ловил себя на мысли: а что там, под капотом? Как эта магия на самом деле работает на уровне Android? Вокруг сотни готовых решений, но простое пользовательское любопытство переросло в профессиональное: мне захотелось не просто использовать, а понять. Понять, какие подводные камни скрывает VpnService, как реализовать весь цикл от авторизации до поднятия защищённого туннеля и что на этом пути может пойти не так. Эта статья — мой личный "бортовой журнал". Я не претендую на создание самого безопасного решения, это скорее история о пути, граблях и открытиях для тех, кто тоже решит заглянуть под капот VPN-технологий на Android. Так родилась идея этого проекта — создать свой, пусть и простой, VPN-клиент. Это не попытка сделать коммерческий продукт, а скорее исследовательское погружение, мой личный "челлендж" и способ разложить всё по полочкам. Заглянуть под капот
https://habr.com/ru/articles/926150/
#android #vpn #vpnсервис #wireguard #мобильная_разработка #мобильные_приложения #мобильное_приложение #kotlin #android_development #android_studio
-
R8: Шакалья работа (уменьшение apk через правки R8)
По умолчанию для минификации имени класса в R8 используются цифры и английский алфавит. Но что будет если вместо трех символьных строк, которые будет занимать три байта, использовать один двухбайтовый символ?
https://habr.com/ru/articles/885006/
#r8 #android #минификация #android_development #android_studio #agp #d8 #apk #dex
-
«Железо» для 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
-
Пишем простенький DI для Android приложения
Сейчас практически любой проект имеет в своём составе как минимум одну библиотеку или решение для разруливания зависимостей, но далеко не каждый разработчик действительно понимает как устроены эти самые решения. Поэтому в этой статье я хотел бы прояснить некоторые базовые моменты, на которых построены такие известные библиотеки как Dagger, Hilt и Koin, а также показать на практическом примере как можно написать свое DI решение.
https://habr.com/ru/articles/843258/
#android #kotlin #dependency_injection #di #dagger #hilt #koin #android_development #codegen
-
Сравнение Dagger 2, Dagger Hilt и Koin
В этой статье мне хотелось бы разобрать вопрос, которым часто задаются начинающие и молодые разработчики мобильных приложений под Android. Многие мобильные разработчики слышали о таких широко известных инструментах внедрения зависимостей (DI), как Koin и Dagger. Они решают одну задачу — управление зависимостями, но делают это по-разному. Но в чём же их принципиальная разница, в чём их отличия, их плюсы и минусы, и какой из этих инструментов выбрать при разработке нового проекта (и в зависимости от его сложности и требований)? Обо всём об этом постараюсь кратко изложить далее и дам рекомендации по выбору для новых проектов.
https://habr.com/ru/articles/890462/
#dagger_2 #hilt #koin #kotlin #dependency_injection #android_development
-
Пишем простенький DI для Android приложения
Сейчас практически любой проект имеет в своём составе как минимум одну библиотеку или решение для разруливания зависимостей, но далеко не каждый разработчик действительно понимает как устроены эти самые решения. Поэтому в этой статье я хотел бы прояснить некоторые базовые моменты, на которых построены такие известные библиотеки как Dagger, Hilt и Koin, а также показать на практическом примере как можно написать свое DI решение.
https://habr.com/ru/articles/843258/
#android #kotlin #dependency_injection #di #dagger #hilt #koin #android_development #codegen
-
Что такое 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
-
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
-
Приложение для 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
-
Mobile System Design. Проектируем новостную ленту
Элементы System Design уже прочно вошли в процесс собеседований. Однако в мобильной разработке довольно часто возникает недопонимание что же все-таки необходимо продемонстрировать чтобы получить заветный офер. В этой статье я разберу один из кейсов, который может встретиться на реальном собеседовании и кроме этого покажу примерный сценарий такого интервью. Данная статья будет интересна мобильным разработчикам, как Android, так и iOS. Сам формат System Design Interview я разбирал в предыдущей статье. Здесь же мы сконцентрируемся на практике. Итак, задача: спроектировать новостную ленту.
https://habr.com/ru/articles/930898/
#android_development #ios_development #system_design_интервью #собеседования #bigtech #подготовка_к_собеседованию
-
Халява приходит в программирование
Недавно прогремел пост Артура Думчева (@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