Обновить
512K+

Android *

Пишем под самую популярную мобильную ОС

137,33
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как улучшить качество WebRTC-звонков на примере сервиса VK Звонки

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

Ало, как слышно?!

Я Иван Шафран, уже 4 года работаю с WebRTC на Android. В этой статье на примере VK Звонков расскажу, что можно сделать, чтобы улучшить качество сервисов для аудио- и видеосвязи. Обсудим достоинства и недостатки WebRTC. Расскажу, как работать с аудио, видео и режимом демонстрации экрана и какие есть варианты сбора статистики.

Читать далее

Что такое Home-виджеты и как их подружить с вашим приложением на Flutter

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

Привет! Меня зовут Айдар Мавлетбаев, я Flutter-разработчик в AGIMA. С Flutter я работаю уже несколько лет. Несмотря на все преимущества, он не всегда оптимально решает задачи, которые требуют глубокой нативной интеграции. Существуют инструменты, разработанные специально под нативные платформы, но недоступные напрямую из Dart. И как правило, в таких случаях на помощь приходит PlatformChannel

Но существуют и нативные инструменты, которые интегрируются с Flutter. Например, создавать виджеты на Android можно с помощью Glance или XML, а на iOS — с WidgetKit. Эти технологии позволяют внедрять так называемые Home Widgets — элементы, с которыми можно взаимодействовать напрямую с домашнего экрана. В этой статье разберу основные инструменты, расскажу, как их внедрять и использовать во Flutter-приложениях.

Читать далее

Kotlin для Самых маленьких

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

В этой статье я научу вас основам Kotlin. Начиная с самого начала мы дойдем до уверернного уровня использования Kotlin. Чтоб когда у вас спросили "Как сделать лямбду функцию" вы на лбу спросившего написали:

Читать далее

Как грузить данные во ViewModel?

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

Привет, Хабр!

Эта статья будет полезна для мобильных разработчиков, потому что в ней обсуждаются различные подходы к первоначальной загрузке данных во вьюмодели (Jetpack ViewModel) при ее использовании в проектах на Jetpack Compose (либо Compose Multiplatform).

Тема эта настолько холиварная, что один из самых влиятельных ютуберов в сфере Android-разработки Philip Lackner даже недавно посвятил ей отдельный как всегда очень качественный обзор. Эта статья - во многом ответ и дополнение к нему.

Итак, перейдем к сути.

Читать далее

Dagger Hilt (Для начинающих)

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

Я являюсь разработчиком мобильных приложений с опытом уже более 3х лет! Я всегда разрабатываю мобильные приложения один - это требует моя работа. Но сегодня я хочу поделиться с Вами тем, что такое Dagger Hilt!

Следите за мной в телеграм

Dagger Hilt - это необходимый каждому инструмент, который упрощает в разы разработку мобильных приложений. Служит для внедрения зависимостей. В первую очередь он необходим тем, у кого в проекте есть множество классов, которые требуют реализации. Хотите чтоб за вас это сделал кто-то другой? Dagger Hilt к вашим услугам.

Читать далее

Делегаты и делегированные свойства в Kotlin

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

Привет, Хабр! Меня зовут Артем и я автор и ведущий YouTube канала Android Insights

Сегодня мы погрузимся в мир делегатов и делегированных свойств в Kotlin. Эта тема может показаться сложной на первый взгляд, но я постараюсь объяснить её максимально понятно и подробно. Итак, приступим!

Читать далее

Как перехватывают зашифрованный HTTP-трафик на мобильном устройстве

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


Реверс-инжиниринг VPN-сервиса Onavo Protect под Android позволил определить методы, которые можно использовать для перехвата зашифрованного HTTPS-трафика на мобильном устройстве. Если вкратце, злоумышленник должен поставить на телефон собственное приложение и сертификат УЦ (удостоверяющего центра).

Например, в РФ вступил в действие закон, который требует с 2025 года обязательной предустановки на все смартфоны конкретных приложений. Теоретически, при наличии уязвимостей это может угрожать безопасности многих пользователей.
Читать дальше →

Мобильная разработка за неделю #558 (30 сентября — 6 октября)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.5K
В новом дайджесте ускорение запуска приложений и спойлер-эффект кна Swift, сборщик метрик Android-проекта и рисование звезд, замена Firebase, идеальный встраиваемый язык, приложение для заметок, которое не стремится сделать вас более продуктивным и многое другое. Подключайтесь!

Читать дальше →

10 SDK, чтобы улучшить ваше мобильное приложение

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

SDK (Software Development Kit) — комплекс инструментов для расширения функциональности мобильных приложений и доступа к новым опциям и возможностям ПО. При этом каждый SDK ограничен своим набором компонентов и закрывает определённые задачи бизнеса. В статье расскажем о базовых, второстепенных и перспективных SDK, опишем их функции и возможности, приведём примеры наборов разработчика для каждой из категорий.

Читать далее

Обход блокировки YouTube без VPN и GoodbyeDPI

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

Клешни постепенно сжимаются.
С момента замедления YouTube, по данным СМИ, его трафик для России снизился на 50%. Роскомнадзор активно блокирует VPN-сервисы.

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

Что же делать?

Читать далее

Новый подход к безопасному управлению состояниями в Kotlin-приложениях

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

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

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

Читать далее

Как устроен сборщик метрик Android-проекта

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

Привет! Меня зовут Даниил, я Android-разработчик в команде VK ID SDK в VK. Наша команда создала легковесный SDK для авторизации через приложения экосистемы VK. Он состоит из кнопки One Tap для входа в один клик, кнопки входа в другую учётную запись и виджета для авторизации через Mail или Одноклассники.

Работая над продуктом, мы поняли, что необходимо оценивать его техническое качество: считать размер SDK, тестового покрытия, скорость сборки и многое другое. Нам был нужен сборщик метрик качества кода. 

Я расскажу, как мы писали плагин для сбора метрик и с какими проблемами столкнулись. Вы узнаете, как устроен наш сборщик изнутри, и даже сможете потестить его в своём проекте.

Читать далее

Создание уведомлений на языке Kotlin

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

Как создать всплывающие уведомления в мобильном приложения, привязанные ко времени? Читаю документацию и разбираю код.

Читать далее

Ближайшие события

Koin: как сделать свой DI за 10 минут

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

Привет, меня зовут Иван Курак, я Android-разработчик приложения Ozon Job. В этой статье мы реализуем свой механизм, на котором построен Koin. Тем самым мы пройдём путь, который проходили его авторы при решении проблемы построения собственного DI.

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

Дополнительная (но от того не менее важная) цель статьи — показать, что базовый механизм, на котором построен Koin, не такой уж и страшный :)

Тестовый текст

Шлём биткоины с Android (и смотрим транзакции)

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

Привет! Сегодня я расскажу о своём опыте написания простого Android-приложения  для отправки биткоинов с существующего кошелька, отображения его баланса и списка транзакций. Кажется, чего уж проще? Да, но есть нюансы. О них и поговорим.

Читать далее

Мобильная разработка за неделю #557 (23 — 29 сентября)

Время на прочтение4 мин
Охват и читатели3.7K
В этом выпуске сетчатые градиенты и курощение виджетов, сломанная Android-разработка и инструментирование байт-кода Java во имя великого блага, единая биометрическая система во Flutter-приложении, портирование игр на Аврору, видеозвонки с Лили и многое другое. Подключайтесь!

Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

Читать дальше →

Превращаем планшет в терминал самообслуживания: осваиваем режим Kiosk в KNOX сервисах

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

Что такое киоск? Это ограничение набора приложений, которые доступны пользователю. Иными словами — замена лаунчера по умолчанию. Когда доступно только одно приложение, нельзя открыть браузер, другие приложения и даже залезть в настройки. Вообще ничего не доступно. Это как защита от нецелевого использования, так и от дурака…

Давайте сделаем киоск режим для нашего приложения на планшете. Через сервис KNOX Configure это делается быстро и без программирования. Ниже расскажу об этом на примере сервиса для бронирования переговорных.

Читать далее

Впечатления от доработки Telegram Android

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

Я являюсь давним и постоянным пользователем Telegram, никакие мессенджеры не заменят мне белый самолетик на фоне чистого голубого неба. Не то, чтобы я был большим поклонником Дурова, просто так исторически сложилось. И естественно, поскольку я постоянно пользуюсь Telegram на десктопе и на телефоне, мне со временем захотелось некоторых дополнительных фичей и возможностей, отсутствующих в официальных и распространенных неофициальных клиентах. Ждать милости от природы занятие бесперспективное, поэтому я решил реализовать доработки самостоятельно. Начал с десктоп версии, о чем уже писал на Хабр. Сейчас закончил первый этап доработок Android версии, и решил поделиться впечатлениями и результатом с сообществом.

Ссылка на итоговое приложение и исходный код находится в конце статьи.

Читать далее

Прочие оптимизации кода Gradle Convention Plugins, выводы по результатам использования подхода

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

Всем привет! На связи Дима Котиков, и мы завершаем цикл статей о том, как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах. В предыдущих статьях мы подготовили и настроили базовый модуль для написания Gradle Convention Plugins, написали несколько convention-плагинов в файлах -.gradle.kts, сделали еще один модуль и создали convention-плагины на базе kotlin-классов. В заключительной части мы немного порефакторим написанный код, попытаемся настроить области видимости convention-плагинов и extension-функций для конфигурации сборки, а также подведем итоги. 

Читать далее

ByteWeaver в Open Source: инструментирование байт-кода Java во имя великого блага

Уровень сложностиСложный
Время на прочтение14 мин
Охват и читатели9.5K

Про байт‑код написано уже немало. Он везде, и никого этим не удивить: его генерирует компилятор, переупаковывает система сборки, «портит» обфускатор и изредка читают программисты. Естественно, для работы с байт‑кодом есть немало инструментов, которые используются в разных областях и на разных платформах. Среди них и ByteWeaver — инструмент для патчинга байт‑кода во время сборки, который может быть полезен разработчикам под Android.

Меня зовут Александр Асанов. Я Android‑разработчик в OK, Tracer, ByteWeaver. В этой статье я разберу, что такое байт‑код, как и зачем с ним работать, расскажу о ByteWeaver и покажу примеры работы с байт‑кодом.

Читать далее