Обновить
512K+

Android *

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

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

Избавляемся от Android в api-модулях

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

Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами»

На решение, которое будет описано ниже, меня натолкнула статья Оптимизация Gradle: избавляемся от Android-модулей. В ней приведен синтетический бенчмарк, из которого видно, что количество gradle-модулей с Android-плагином негативно влияет на скорость конфигурации проекта, а также на количество необходимой памяти. Мы, как инженеры, должны воспользоваться каждой возможностью ускорить сборку проекта. Однако в статье приведено несколько недостатков описанного подхода, и на момент написания статьи они были критичными и не давали возможности использовать его в нашем проекте. 

Итак, теперь сначала..

Читать далее

Работа с CoordinatorLayout: шапочный разбор

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

Приветствую тебя, уважаемый читатель! Меня зовут Пятаков Никита, я Android-инженер в команде MT&S Авито. Здесь я делюсь опытом реализации двух версий шапки на главном экране приложения Avito. Эта статья будет особенно полезна разработчикам, которые хотят познакомиться с CoordinatorLayout и научиться делать похожие задачки с нетривиальным взаимодействием view между собой. 

Читать далее

Что нужно, чтобы тебя увидели в Play Market?

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

Если вы пришли за ответом на вопрос в заголовке - то не хочу расстраивать вас, я и сам не знаю.

15 ноября этого (2024) года я опубликовал своё приложение в Play Market. Казалось бы, вот оно - начало пути к "миллиардам пользователей", как говорит Гугл при публикации игры, большим онлайнам и заработку. Но в я отдаю себе отчёт, что моя игра нишевая, и никогда сверх-популярной не станет. Однако, даже несмотря на это, я пытаюсь привлечь людей всеми способами.

Сейчас передо мной стоит один важный вопрос: я не наблюдаю свой проект в поисковой выдаче Play Market, и имею довольно слабое представление, что нужно сделать, чтобы он там вообще появился.

Изучаем конкурентов. Моими прямыми конкурентами можно назвать два проекта - Rival Regions - проект, администрация которого не ведёт соцсети и не обновляет сам проект примерно никак, и eRepublik, про который я вам ничего сказать не смогу. Во всех трёх играх, включая мою Wild Politics, игроки взаимодействуют друг с другом чтобы создать лучшее государство игры, однако если в WP и RR государства могут быть какими угодно по названию и территориям, то, насколько мне известно, eR позволяет существовать только странам, подобным реальным.

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

Выше неё - весьма известная Rebel Inc., и целых три симулятора президента одного и того же издателя. Видимо, людям нравится играть за лидеров и только за них.

Читать далее

Готовим лоб к пробитию стен: как Android-разработчику найти первую работу в 2025-м

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

Привет, друзья!

Я Илья Попов, действующий senior android разработчик, ментор начинающих андроид-разработчиков и автор телеграм-канала Android Dev Notes.

Итак, вы приняли решение стать андроид-разработчиком. Как найти дорогу в этом океане неизвестного впереди?

Раз наша цель – работа в андроид-разработке, то первое, что нужно сделать – изучить рынок вакансий и понять, а что от вас вообще нужно работодателям?

Идём на основные сайты для поиска работы (hh, superjob, career.habr, geekjob, getmatch и тд) и анализируем пару десятков вакансий джуниоров и то, какие требования в них фигурируют чаще всего. Составляем себе список навыков, библиотек, фреймворков, инструментов для освоения.

Следующее, с чем надо определиться: к какому из пунктов приступать первым? Здесь два варианта:

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

– просим помощи в составлении программы у компетентного разработчика, который занимается обучением начинающих

Эта программа не будет высечена на камне – нам может потребоваться её изменять, а часто придётся импровизировать и отходить от неё. Но мы теперь не плывём в океане наудачу – у нас есть маяк. А дальше дело за малым – поднимаем якорь, надуваем паруса и вступаем на тернистый, но интересный путь разработчика!

Читать далее

Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая

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

Другие статьи из серии:
1. Почему MVx архитектуры всегда получаются плохо
2. Как поправить 3 проблемы MVx архитектур
3. Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая
4. Т-функция: подключаем логику к UI как к БД


Описание проблемы


Задача


Я — андроид разработчик. Обычно ко мне приходят с фразой вроде “вот мы тут придумали фичу, сделаешь?” и с макетом дизайна, вроде такого.



Я смотрю на это всё и вижу: вот экраны, эти данные на них — статические, а вот эти динамические, значит их надо откуда-то взять; вот тут интерактивные компоненты: при взаимодействии с ними надо что-то сделать. Иногда просто открыть другой экран или виджет, иногда выполнить логику. Исходя из этого я проектирую то, как будет выглядеть логика фичи. Описываю ее в компонентах архитектуры, разбиваю на задачи, узнаю где и как взаимодействовать с сервером, и прочее.


Скрытые кейсы


Но потом я обнаруживаю, что далеко не все переходы такие простые, как нарисовано на дизайне, например, как в случае с авторизацией. Не все явно присутствуют, как, например, переходы назад. А в некоторых случаях не хватает всевозможных экранов ожидания, экранов “пустых” состояний и экранов ошибок.


Знакомо?

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

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

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

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

Читать далее

Мобильная разработка за неделю #564 (11 — 17 ноября)

Время на прочтение4 мин
Охват и читатели2.4K
Новый выпуск — разбираем iOS-приложение и сенсорный пин-пад, моделируем состояния ViewModel в Android и начинаем работу с LiteRT, самые трудные вопросы с собеседований, о зацикливании рекомпозиции в Jetpack Compose, алгоритмы, с помощью которых мы разрабатываем программное обеспечение и многое другое. Подключайтесь!

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

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

О зацикливании рекомпозиции в Jetpack Compose

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

Фотограф: Laura Cleffmann: https://www.pexels.com/ru-ru/photo/20001993/

Jetpack Compose — это мощный инструмент, который упрощает создание UI в Android, но его освоение может быть не таким уж простым. Многие разработчики сталкиваются с неожиданными результатами и ошибками, которые на первый взгляд кажутся неочевидными. Сегодня разберем один из таких примеров и посмотрим, как зациклить рекомпозицию в Compose — и самое главное, как этого избежать.

Читать далее

Сенсорный пин-пад и как он работает

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели28K
Приветствую всех! Ещё пару лет назад Android POS и прочие платёжные терминалы с сенсорным экраном вместо традиционной клавиатуры были у нас редкостью. Но всё меняется, и вот уже обычные терминалы во многих магазинах навсегда ушли в историю.

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



Итак, в сегодняшней статье поговорим про Android POS и про то, чем такие девайсы отличаются от обычных терминалов. Заодно разберём такой экземпляр и посмотрим, как он устроен и какими методами защиты обладает.
Читать дальше →

Как реализовать методы скроллов через Appium для Android-приложений

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

Привет, меня зовут Сергей и я SDET-специалист в IT-компании SimbirSoft. В своей практике мне приходится тестировать как веб-, так и мобильные приложения на Android. Особенность тестирования мобилок в том, что шаги автотеста нужно максимально приблизить к действиям пользователя. О чем это я? Да все о том же — на смартфонах не кликают, а тапают; не закрывают по крестику модалки, а свайпают. Это как на флоте, эти все словечки понятны только тем, кто драил гальюн или бакланил из камбуза хлеб. 

В этой статье рассмотрим несколько методов скроллов класса TouchAction инструмента Appium, которые позволяют скроллить до нужного элемента или проверить свайп модального окна. И несмотря на то, что в новой версии Appium используются методы executeScript(), класс TouchAction все еще актуален. Поэтому я рекомендую к прочтению эту статью, в первую очередь, тем, кто использует в своих проектах Appium.

Читать далее ⚡

Как поднять инфраструктуру для запуска автотестов Android в облаках

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

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

Статья будет полезна тем, кто хочет организовать инфраструктуру для запуска тестов, но не обладает подходящим для этого «железом». Материал также будет интересен тем, у кого есть желание попробовать технологию Emcee в деле.

Читать далее

Приложение SMD CODES  для смартфонов для поиска электронных компонентов по маркировке на корпусе

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

Увидев однажды пост про свое приложение, решил написать небольшую статью, описав все возможности разработки. Думаю, многим будет интересно..

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

Читать далее

Описываем UseCase'ы правильно

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

Слова usecase и interactor попали в обиход Android‑разработчиков из книги про «чистую» архитектуру. Книгу эту почти никто не читал внимательно, плюс изложенные там свойства «чистой» архитектуры сформулированы неточно (многие до сих пор уверены, что «чистая» архитектура — это про то, как на слои абстракций логику делить). Чтобы в них разобраться, нужно прочитать еще пару книг из 90-х, мало кто этим занимается.

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

Призываю читателя не использовать эти абстракции в принципе. Всегда на собеседованиях спрашиваю, есть ли в проекте юзкейсы. Если есть, это в 99% значит, что проект будет комком грязи. НО — если уж эти абстракции везде используются и про них спрашивают на собеседованиях, я хочу предложить своё видение того, как можно их использовать.

Читать далее

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

Как разобрать и собрать обратно apk под windows

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

Короткий практический пример как разобрать apk приложение, что-то в нем изменить и собрать обратно в среде windows без использования android studio. Статья подойдет для новичков, сложного ничего не будет. Будем изменять (русифицировать) не полностью русифицированное приложение для видеокамеры ordro pro ep8.
Читать дальше →

Как силами мобильных разработчиков автоматизировать процесс разработки

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

Всем привет! Меня зовут Женя Мельцайкин, я старший инженер-программист в компании Контур. Большую часть времени в Контуре я работал и работаю Android-программистом, но статья будет не про Android и даже не про мобильную разработку. А про команду мобильной разработки и про наш процесс разработки! Давайте же начнем разбираться, причем тут мобильные разработчики, автоматизация и бэкенд.

Читать далее

Мобильная разработка за неделю #563 (5 — 10 ноября)

Время на прочтение3 мин
Охват и читатели2.7K
Наш небольшой, но очень интересный дайджест за четыре дня — искрящиеся и переливающиеся кнопки с помощью Metal и SwiftUI, суперкастомизированное Android-приложение в 2024 году, антитренды в мобильной разработке на Flutter, почему спринты отнимают радость от создания программного обеспечения и многое другое. Подключайтесь!

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

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

DPC (Device Policy Controller): админим блокировку экрана в Android

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5K
Если вы занимаетесь защитой от несанкционированного доступа к устройству, то наверняка ваш самый первый и самый простой шаг — это защита разблокировки экрана. Графический пароль, цифровой PIN-код, доступ по биометрии (например, скан отпечатка пальцев, распознавание лица) и так далее — эти механизмы знает каждый.



Я же расскажу, как можно настроить способ блокировки/разблокировки экрана с помощью Device Policy Controller (DPC) — приложения-администратора нужного профиля устройства (если на устройстве развернуты несколько профилей — например, и рабочий, и личный) или же всего устройства в целом.

Статья будет полезна тем, кто интересуется безопасностью мобильных устройств и различными способами управления ею. А в конце, если тема будет вам интересна, я добавлю еще несколько полезных ссылок на посты моих коллег по команде мобильной разработки «Лаборатории Касперского».
Читать дальше →

Apex Architecture: Модульность и стабильность в Android-разработке

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

Архитектура, с которой мы работаем изо дня в день, оставляет желать лучшего. Иначе как объяснить тот хаос и стресс, который каждый из нас испытывает, приходя на новое место работы? В большинстве случаев самым сложным слоем является UI, и эта сложность зачастую обусловлена не разнообразием элементов интерфейса, а неправильным подходом к архитектуре этого слоя. Отсюда можно сделать вывод, что нельзя дробить приложение в привычной форме: на UI, domain и data. Необходимо добавить еще один дочерний слой — ui/viewModel, и на этом слое, одном из самых важных, я хочу акцентировать ваше внимание.

Меня зовут Илья и мы начинаем! 

Читать далее

Адаптеры в Android: «сервируем» данные красиво

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

В Android разработке адаптер — это компонент, который служит мостом между источником данных (например, списком элементов) и элементом пользовательского интерфейса (например, списком или сеткой). Он преобразует каждый элемент данных в визуальное представление, которое пользователь видит на экране.

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

Погнали вглубь!

Как инженеру техподдержки трансформироваться в мобильного разработчика

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

Цель статьи: Показать и продемонстрировать кейс как можно перейти в разработку из позиции инженера технической поддержки.

Основные тезисы:

1) Важный пункт статьи – необходимо УЖЕ быть в IT и работать в этом направлении;

2) На данный момент я работаю Application менеджером, но уже поправил пару багов и реализовал несколько фич. Как?

3) Сложности, переживания? Это все профит!

4) GrayLog. Данный инструмент улучшает насмотренность;

5) Изучайте LogCat – это мощный инструмент для первичной аналитики;

6) Подведение итогов и планы на будущее.

Читать далее