Все потоки
Поиск
Написать публикацию
Обновить
323.18

Android *

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

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

Такие разные Android AppLinks, WebLinks, DeepLinks. Разбираемся и пытаемся сломать

Время на прочтение7 мин
Количество просмотров5.8K

Всем привет! На связи Юрий Шабалин и Веселина Зацепина, эксперты по безопасности мобильных приложений в компании Стингрей. С каждым годом мобильные приложения становятся всё более сложными и взаимосвязанными, предлагая пользователям бесшовный опыт взаимодействия. Одной из ключевых частей этого опыта являются ссылки, которые могут направить пользователя прямо на определённый экран приложения или на конкретный контент. Однако многие (как и мы до того, как написать эту статью) путают такие термины, как Deep Links, Web Links и App Links, что может привести к ошибкам в реализации и уязвимостям.

Цель этой статьи — разобраться в различиях между этим похожим функционалом, понять, какие атаки могут быть на них направлены и как ведёт себя Android, если несколько приложений пытаются зарегистрировать одни и те же ссылки. Сразу оговорюсь, что это статья не совсем похожа на наши обычные материалы — она призвана скорее рассказать, что мы узнали в процессе внутреннего исследования и консолидировать эту информацию в небольших "заметках на полях".

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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


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


Задача


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



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


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


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


Знакомо?

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

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

Время на прочтение5 мин
Количество просмотров5.8K

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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



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

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

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

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

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

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

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

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

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

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

Читать далее

Пути увеличения выручки в 2025 году. Как мы увеличили продажи интернет-магазина на 34%

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

Разработали для Стройпарка мобильное приложение. На его примере рассказываем о трендах, которые будут актуальны для e-commerce в 2025 году и в особенности — для строительных и отделочных материалов и DIY-рынка.

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

Время на прочтение3 мин
Количество просмотров21K

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

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

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

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

Читать далее

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

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

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

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

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

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



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

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

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

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

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

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

Читать далее

Вклад авторов