Обновить
128K+

Android *

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

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

Многомодульный BDSM. Бутылочные горлышки среди модулей

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

Часто бывает, что после разбиения проекта на модули скорость его сборки сильно ниже ожидаемой. Причины могут быть разные, от кривых настроек Gradle до неподходящего железа. Сегодня я хочу разобрать одну из причин — бутылочные горлышки среди модулей, и как с ними бороться.

Читать далее

С какими сложностями встретится новичок в IT на первой работе?

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

Всем привет, меня зовут Борис, я iOS и Android разработчик. Сегодня я хочу поделиться своими наблюдениями о том, с какими проблемами встречается новичок в IT, устроившись на работу, и как вообще выглядит сам процесс.

Цель этой статьи развеять мифы о том, как выглядит работа в IT по версии онлайн-курсов, чтобы потом не было совсем уж грустно. Многие онлайн-школы обещают вам, что вы за пол года-год станете крутым разработчиком, будете сидеть в Тайланде и, попивая смузи, получать огромные деньги особо не напрягаясь. Это крайность, и сегодня я предлагаю взглянуть на такую же крайность, только с другой стороны. Правда, как всегда, по середине.

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

А еще напоминаю, сейчас я занимаюсь менторингом и помощью начинающим в iOS, потому вы всегда можете написать мне в личные сообщения в телеграм по любому вопросу: verbitckii_b.

Приятного чтения!

Читать далее

Что под капотом у Leak Canary?

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

LeakCanary – библиотека, позволяющая находить утечки памяти во работы приложения в фоновом режиме. При всем при этом, со стороны клиента ничего делать не нужно. Просто указал либу в зависимостях Gradle, и она сама начинает работать. 

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

Читать далее

«Прокачиваем» кнопочный Android смартфон за 13$. Как довести до ума телефон без официальной поддержки?

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

Не всегда производители различной техники выпускают действительно удобные и юзабельные гаджеты на рынок. Иногда на полки магазинов попадают довольно сырые устройства, а в случае бюджетных моделей — про них забывают сразу после выхода с конвейера. Другое дело, когда девайс оказывается непаханым полем в плане моддинга и всем свои видом намекает «давай, начни во мне копаться!», как и сегодняшний герой — Android-кнопочник Nobby 230! Сегодня мы с вами: напишем свой лаунчер, переработав UI телефона, портируем кастомное рекавери, добавим поддержку ROOT-доступа, вычистим хлам от производителя, предустановим необходимые приложения и оформим это всё в виде готового образа, который сможет поставить себе каждый владелец подобного телефона! Интересно?
Читать дальше →

Принципы построения многомодульного Android-приложения и их применение в СберЗдоровье

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

Всем привет! Меня зовут Александр Ровнов. Я Android разработчик в СберЗдоровье.

Статей про «чистую» архитектуру и многомодульность очень много. Но не многие компании готовы делиться своим опытом и полученными результатами от внедрения этих практик. Я хочу попробовать исправить ситуацию.

В этом материале я расскажу о принципах построения многомодульного приложения, как мы применяем их при разработке мобильного приложения СберЗдоровье под Android и что это нам даёт.

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

Приступим.

Чистая архитектура и ее цель.

Читать далее

Кащеева смерть — защищаем свои пароли с помощью аппаратного хранилища ключей Android

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

Несколько лет назад меня начала посещать мысль, что менеджеры паролей всё-таки «для честных людей». Как раз все встречные и поперечные стали заявлять, что у них теперь сквозное шифрование… И настали типа спокойные и безопасные времена (ну если не считать миллиардов, которые крадут с криптобирж каждый второй день, прослушки всех этих чатов со сквозным шифрованием, слива баз паролей, взлома LastPass…)

Короче, решил я замутить что-то своё, чтоб не хранить все свои доступы удобно (не)доступными в одном файле KeePass, а то ведь мало ли что. Просто так, из принципа. Биткойнов не держу.

Шли годы…

Читать далее

Как прогнать все UI-тесты на мерж-реквесте и не состариться

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

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

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

Читать далее

Как создавать пользовательские представления в Android (Custom Views)

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

В данной статье расскажу как создать свои кастомные представления(view) при разработке приложений для андроид устройств. Если вы не знакомы с разработкой приложений для андроид предлагаю прочитать официальную документацию. В статье будет использовано язык программирования Kotlin(официальный язык программирования для создания приложений для андроид). Можно прочитать про Котлин здесь.

Перед тем как перейти к основной части статьи, предлагаю разобраться в двух вопросах:

1) Что такое пользовательское представление(custom view) в Android ? Пользовательское представление - это элемент пользовательского интерфейса, который полностью создается разработчиком. Пользовательские представления используются, когда существующие представления, предоставляемые Android, не соответствуют конкретным требованиям к дизайну или функциональности. Пользовательские представления создаются путем расширения класса View, который предоставляет базовую структуру для рисования и обработки пользовательских взаимодействий.

2) Когда или при каких условиях может понадобится создать свои view при создании Android приложений ?
Создание пользовательского представления(Custom View) в Android - важнейший навык для разработчиков, которые хотят создавать инновационные и уникальные приложения. Пользовательские представления предоставляют разработчикам возможность создавать сложные визуальные элементы, которые улучшают пользовательский опыт, обеспечивая при этом гибкость и кастомизацию. В этой статье мы расскажем вам, как создавать пользовательские представления в Android.

Читать далее

Мобильная разработка за неделю #481 (20 — 26 марта)

Время на прочтение4 мин
Охват и читатели2K
В нашем новом дайджесте легковесная миграция Core Daya и утечки памяти в iOS, реверсинжинеринг московского метро и конец любви к Flutter, бестолковый дизайн, тест на ручник для ChatGPT и многое другое.

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

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

Расширяем Android Lint

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

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

Читать далее

Как правильно бегать — с пятки или с носка? Измеряем, сравниваем ударные нагрузки, время в полете. Android, акселерометр

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

В интернет почти все "бегают" с носка, а в реальных соревнования и пробегах - с пятки. В статье описаны результаты измерения ударных нагрузок, возникающих при беге разными стилями с помощью обычного смартфона.

Читать далее

Реверсинжинерим московское метро

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

Получим матрицу весов метро Москвы из APK файла. Обработаем эти данные и попытаемся сделать некоторые визуализации.

Читать далее

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

Мобильная разработка за неделю #480 (13 — 19 марта)

Время на прочтение4 мин
Охват и читатели1.7K
В нашей новой подборке ошибки начинающих разработчиков и отсутствие работы у тех, кто работает, вкатывание в геймдев и выкатывание GPT-4, мобильные игры 2022 и многое другое.

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

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

Переходим на Flutter: за и против

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

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

Меня зовут Данил Абдрафиков и уже более пяти лет я занимаюсь мобильной разработкой, три из которых — на Flutter. Последние несколько лет я разрабатываю продукты для энтерпрайза в TAGES, и за это время у меня успел накопиться определенный опыт, которым я бы хотел поделиться с вами в сегодняшней статье. Я расскажу, что нужно знать опытному мобильному разработчику для перехода на Flutter, с какими особенностями можно столкнуться и стоит ли вообще переходить на него.

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

Читать далее

Подходы для создания системы управления доступом устройства на ОС Android. Что изменилось в 2023 году?

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

Максим Денисов, разработчик в Лиге Цифровой Экономики, поделился опытом создания системы управления доступом на Android и рассказал, как менялся подход к контролю доступа.

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

Нашей задачей была разработка приложения, которое заблокирует доступ к потерянному устройству на Android, будет отправлять действия пользователя на сервер и обновляться также с сервера.

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

Разработка началась в 2015 году, когда 5-я версия Android была последней.

1.           Подход на основе блокирующей view

1.1.  Блокировка

Суть подхода — работа блокирующего окна, которое отображается поверх всех остальных. После авторизации оно закрывается.

В манифесте приложения нужно добавить следующее разрешение:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

С API 23 необходимо явно его указывать. Поэтому при настройке приложения администратор должен выбрать «Разрешать всегда».

У блокирующего экрана добавить свойства:

WindowManager.LayoutParams.TYPE_SYSTEM_ALERT

WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN

Кроме того, следует создать сервис, в котором ресивер отлавливает выключение экрана и вызывает блокирующую view.

Читать далее

Jetpack Compose — сила Android-разработки

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

Jetpack Compose — это набор инструментов для построения современных UI (пользовательских интерфейсов) в Android‑приложениях. Компания Google анонсировала Jetpack Compose в 2019 году, а уже в марте 2021 года выкатила бета‑версию фреймворка.

Стабильный Jetpack Compose 1.0, который мы ждали почти 2 года, вышел 28 июля 2021 года. К этому моменту мы в GO Digital уже были подкованы в знаниях библиотеки и активно тестировали разработку UI с помощью фреймворка (без XML‑файлов) в текущих проектах. Об одном из таких кейсов расскажем ниже.

Читать далее

Мобильная разработка за неделю #479 (6 — 12 марта)

Время на прочтение4 мин
Охват и читатели2.1K
В нашем новом еженедельном выпуске переводы на арабский и решения судоку на Compose, быстрое создание бизнес приложений и быстрый завоз темных тем, ускорение ТТМ, ИИ-сервисы, ARCore, красивые цвета и многое другое!

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

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

Небезопасный android часть 2: эксперименты с sun.misc.Unsafe

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

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

Читать далее