Обновить
128K+

Android *

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

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

Дайджест интересных материалов для мобильного разработчика #465 (7 — 13 ноября)

Время на прочтение4 мин
Охват и читатели2.3K
В новом выпуске никакое место в конкурсе Telegram и незнание стандартов, большой переезд и актуальное время, приложения на Go, собственный SDK, простое предсказание LTV и многое другое.

В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

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

Как оптимизировать работу с Paging 3 и работа над ошибками. Boilerplate ч. 4

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

Всем привет после такого длительного перерыва возвращаем серию статей Boilerplate. Сегодня будем разбирать как облегчить пагинацию с помощью библиотеки Paging 3. За это время достаточно правок произошло в самом репозитории Boilerplate которые мы сегодня тоже разберем.

Читать далее

Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч

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

Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.

Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Читать дальше →

Разработка мобильных приложений на Go

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

Язык программирования Go стал настоящим открытием для разработчиков инструментов для системного администрирования и DevOps благодаря комбинации возможностей низкоуровневой разработки (и в этом он подобен C) и поддержке автоматической сборки мусора, исключению прямой работы с указателями, наличию конкуретной многозадачности (goroutines) и возможности компиляции непосредственно в исполняемый образ. Постепенно Go начал использоваться для других целей: создание веб-приложений, разработка для микроконтроллеров. Почему бы не использовать все его возможности для создания мобильных приложений? В статье мы обсудим некоторые подходы к разработке приложений на Go для мобильных устройств.

Читать далее

Android. Starting Kivy App and Service on bootup

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

Как запускать приложение или сервис написанные на python (Kivy) под Android (до API 25 версии) при запуске устройства. Что бы это сделать придется разбираться как работает buildozer и pythonforandroid. Т.к. на текущий момент сделать это по человечески не представляется возможным, из-за того что разработчики Kivy не позаботились об этом. Узнать что такое Kivy, как собрать первое приложение можно здесь или по ссылкам в конце статьи.

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

Deep Dive Into Deep Link. Часть 4. Проблемы: ссылки без схемы, второй хост, перехваты всего

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

Привет! Мы на шаг от завершения цикла. В прошлый раз мы сделали выводы о том, что оболочка ОС не влияет на обработку deep link. А приложение, из которого открывается ссылка, влияет. Сегодня мы посмотрим, как работают ссылки без scheme, почему важно помнить обо всех host и как быть, когда приложение начинает перехватывать всё…

Читать далее

Туда и обратно: как мы пытались отследить актуальное время в Android

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

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

Читать далее

Kotlin Extensions для Android проекта

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

Всем привет! Меня зовут Николай Попов. Сегодня я поделюсь с вами опытом использования одной из самых классных фишек языка Kotlin, а именно — функции расширения или Kotlin Extensions. Эти функции позволяют расширять базовый класс без необходимости наследования или использования шаблонов проектирования, таких как декоратор. Использование функций расширения позволяет избавиться от написания однотипного кода, также сделать его простым и лаконичным.

Читать далее

Дайджест интересных материалов для мобильного разработчика #464 (31 октября — 6 ноября)

Время на прочтение3 мин
Охват и читатели2K
В нашем новом дайджесте делегаты и умные View, лучшие приложения и игры 2022, еженедельные релизы, качество продукта, закон о цифровых рынках, реклама в пушах и многое другое!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

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

Умный BottomNavigationView без боли: настройка нижнего меню навигации с динамической конфигурацией в Android-приложении

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

Привет, Хабр! Меня зовут Сергей Велеско, я Android-разработчик. Сегодня трудно представить сколько-нибудь серьезное мобильное приложение без нижнего меню навигации. В этой статье я поделюсь опытом, как гибко и приятно организовать настройку BottomNavigationView и научить его загружать свою конфигурацию из удаленного источника.

Читать далее

Каникулы — как мы это сделали

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

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

Читать далее

Используем делегаты в android-приложениях

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

Всем привет, меня зовут Алексей, и я отвечаю за разработку android-приложений в Константе. У нас в компании есть несколько проектов с большим набором функций, часть из которых присутствует во всех (или, по крайней мере, во многих) разделах интерфейса приложения. Речь идет об авторизации (регистрация + вход), добавлении товаров в корзину, информации о балансе пользователя, уведомлениях о новых входящих сообщениях или т.д.

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

Читать далее

Дайджест интересных материалов для мобильного разработчика #463 (24 — 30 октября)

Время на прочтение4 мин
Охват и читатели3.8K
В нашем новом дайджесте учимся работать с Metric и DivKit, превращаем макеты в код Compose, пишем тексты для экранов подтверждений и сообщений об ошибках, настраиваем Charles, создаем игру для Windows Mobile (самое время!) и делаем многое-многое другое!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

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

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

Всем выйти из сумрака: как добавить тень на Android

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

Когда заходит речь про тени на Android, возникает сразу несколько вопросов. Первый: зачем они нужны? Второй: почему нельзя использовать системные тени и жить счастливо? Третий: если нельзя использовать системные тени, как реализовать кастомные?

Это Сергей Петров, Android-разработчик в команде Design System inDrive, и вместе мы поговорим о тенях на Android.

Читать далее

Как в Android запрещали фоновую работу и улучшали расход батареи

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

Когда-то работа в фоне была простой. Теперь в Android есть множество ограничений: работа в фоне, доступ к файловой системе, разрешения на которые надо получить одобрение модераторов Google Play и другие. Со всеми ними разработчикам приходится работать. Недавно я выступил с докладом на эту тему на конференции DUMP, а теперь написал текст на его основе для Хабра. Давайте вспомним, с чего все начиналось и как менялись требования с каждой новой версией Android.

Читать далее

Китай, Android и чипы RISC-V: зачем китайские компании добавляют поддержку открытой архитектуры в мобильную ОС

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

Несколько дней назад на сайте RISC-V появилась новость о том, что китайцам удалось добавить поддержку архитектуры RISC-V в Android. На самом деле, никакой сенсации в этом нет — китайские компании занимаются этим проектом уже несколько лет. Да и успех пока неполный — поддержка пока лишь частичная (в частности, речь идет об Android Open Source Project, но все равно, продвижение очень заметное. Но зачем это Поднебесной?
Читать дальше →

Хоть Android, хоть iOS: о чём расскажут на Mobius 2022 Autumn

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

Конференция по мобильной разработке Mobius в этот раз пройдёт в хитром формате. Два дня будут полностью онлайновыми, а в отдельный третий день можно будет хоть лично прийти на мероприятие в Москве, хоть поучаствовать удалённо.

А вот общая идея конференции остаётся прежней: здесь будут доклады и по Android-разработке, и по iOS, и «универсальные». В этом хабрапосте пометили всё значками ?, ? и ♾️ соответственно.

Какие именно будут доклады в этот раз? Собрали в этом хабрапосте описания всех и разделили на тематические блоки, чтобы удобнее было разобраться. 

Читать далее

Экспресс до стора: как мы запускали релизный поезд

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

Всем привет! Меня зовут Николай, я тимлид android-команды СберМегаМаркета. Сегодня расскажу вам, как мы меняли релизный процесс в компании.

С чего все начиналось

Когда мы начинали разработку android-приложения нашего маркетплейса, процесс релиза выглядел очень просто: разработчик работал по стандартному gitflow, создавал Merge request. Когда задача попадала в релиз, тимлид команды вливал Merge request в релизную ветку и отправлял релиз в тестирование. После успешной проверки всех задач релиз публиковался в сторе.

Читать далее

Что там по автотестам на Android в 2022?

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

Всем привет!

Меня зовут Женя, и я люблю автотесты. Причем люблю так сильно, что даже стал соавтором Kaspresso, OpenSource библиотеки для написания автотестов под Android, и автором ряда докладов и статей про тесты (Kaspresso: фреймворк для автотестирования, который вы ждали, Автотесты на Android. Картина целиком, Kaspresso tutorials. Часть 1. Запуск первого теста, Дмитрий Мовчан, Евгений Мацюк — Как начать писать автотесты и не сойти с ума). Также со мной полюбил автотесты и мой товарищ, Сергей Ярцев, который является CTO в HintEd, и также вынужден трогать автотесты, причем под разные платформы.

В одной из своих статей (Автотесты на Android. Картина целиком) я описывал, что вообще в себя включают Автотесты под Android. Если кратко, то я выделял 4 большие области: Процесс написания автотестов, Runner, Инфраструктура и Остальное, которое включало в себя отчеты, интеграцию с CI/CD и тд. В свое время (2019-2020) когда мы делали Kaspresso, мы закрывали боль с написанием автотестов. Теперь разработчики и тестировщики могут писать красивый и понятный DSL и не думать про проблемы с флаканием, логами, скоростью и тд. По другим же областям были некоторые решения, но команды, выстраивающие весь процесс, должны были сами со всем этим разбираться и все это стыковать. Особенно больно было с Инфраструктурой, где приходится нырять в дивный мир DevOps и частично даже Highload.

Недавно мне стало интересно, а как сейчас обстоят дела у разных команд с автотестами. Для этого мы с Сергеем провели ряд интервью с более, чем 30 разными командами. Да, это далеко не вся выборка, и данное исследование точно не претендует на абсолютную истину. Но 30 больше, чем 1 или 2 или 5, и поэтому исследование точно может наводить на кое-какие мысли.

Читать далее

Откуда возникает TransactionTooLargeException, если я ничего такого не делал?

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

Android-разработчиков часто спрашивают на технических собеседованиях, как запускать фрагменты, как передавать туда данные, почему нельзя класть много в аргументы, а много — это сколько, а что может пойти не так и т.д. Мы в Dodo тоже иногда такие вопросы задаём. Я думал, что понимал всё это, но оказалось, что довольно поверхностно. Всё изменилось, когда я столкнулся с частыми крашами TransactionTooLargeException в приложении Дринкит.

TransactionTooLargeException — это исключение из области IPC-вызовов (interprocess communication) и Android Binder. Но его можно получить в безобидной ситуации, когда, казалось бы, мы ничего такого не делали, и не пользовались IPC.

В этой статье предлагаю разобраться с этим крашем и поговорить про IPC-вызовы и Binder.

Читать далее