В этой небольшой статье разберем большой путь, который проходит код Android-приложения от написания в IDE до выполнения на устройстве. Разберем, какие трансформации претерпевает код на каждом этапе, как можно посмотреть их результат, и для чего это может пригодиться.
Разработка под Android *
Пишем под самую популярную мобильную ОС
Новости
Пишем транзишинометр для Андроид. Как понять, что мои экраны открываются быстро?
Все Android-разработчики хотят одного: чтобы интерфейс их приложения был плавным и отзывчивым, а переходы экранов — быстрыми. Уверенность в плавности и чёткости интерфейса дают замеры метрик. Но как измерить ту самую плавность, как оценить гладкость анимаций? У кого-нибудь есть плавнометр или транзишинометр?
Google даёт нам Macrobenchmark и JunkStats — инструменты для оценки общей отзывчивости и стабильности интерфейса. Но их недостаточно, чтобы понять, быстро ли у нас открываются экраны.
В этой статье мы поговорим о том, как получить полную картину по метрикам UI-перформанса. Как замерить плавность и отзывчивость интерфейса, и как оценить время открытия экрана — одно из самых частых действий для пользователя. Напишем собственный транзишинометр и замерим рендер экрана до первого onDraw и до последнего, причём и во Fragments, и в Compose.
Мобильная разработка за неделю #566 (25 ноября — 1 декабря)
Как я купил нерабочую подделку iPhone 14 Pro Max за «косарь» и портировал на неё чистый Android
Осторожно: в отличие от других обзорных статей о китайских подделках брендовых смартфонов, в этой мы ещё и узнаем, что у устройства «под капотом», проведем диагностику, отремонтируем и доведём его до ума путём портирования чистого дистрибутива Android. В материале всё описано максимально простым и понятным языком, даже если вы не фанат такого своеобразного класса устройств, как подделки на брендовые девайсы. Будет интересно!
Истории
Делаем из смартфона рацию Push-To-Talk, вызываем диспетчера или подаём SOS одним нажатием. Обзор XCover7 и MIL-STD-810H
Самое первое защищённое устройство (rugged device) Samsung появилось в далёком 2011 году. С виду укреплённый корпус и заменяемая батарея, что продлевает жизнь смартфона, но всё не так просто. Линейка rugged моделей создана для снижения расходов бизнеса при эксплуатации смартфонов в долгосрочной перспективе, потому что на производстве условия суровые, а отношение сотрудников к устройству не бережное.
В этой статье я опишу малоизвестные подробности использования смартфонов в бизнесе и расскажу о модели защищенного смартфона Galaxy XCover7, а также о трёх способах программировать кнопку XCover на его левой стороне.
Как ускорить проверку приложения с помощью Impact-анализа: Часть 1 — Статические анализаторы
Когда команда растёт, а кодовая база стремительно увеличивается, время выполнения проверок может стать настоящей проблемой. Unit-тесты, UI-тесты, статический анализ — все эти процессы начинают занимать слишком много времени, замедляя разработку. Звучит знакомо?
В этой статье я поделюсь опытом нашей команды в Циан: расскажу, как мы перешли от полного выполнения всех проверок к выборочному запуску, снизив их длительность. И почему сделать это проще, чем кажется. Если вы считаете, что выборочный запуск статических анализаторов — это сложно и дорого в поддержке, я покажу, как обойтись всего 200 строками кода.
Хочется запускать проверки только там, где это действительно нужно, и ускорить работу своей команды? Тогда читайте дальше.
Всё о новых штрафах за утечки данных. Сколько светит и как защитить своё приложение
На этой неделе Госдума ужесточила ответственность за нарушения в работе с данными — для компаний штрафы вырастут до 3% от выручки или до 500 миллионов рублей.
По оценке нововведения затронут каждую третью компанию в стране. Поэтому сегодня совместно с лидом Android-разработки Surf Алексеем Рябковым попробуем рассказать, что владельцам приложений стоит сделать и проверить, чтобы обезопасить себя и свой продукт от возможных утечек.
BDUI — это спасение от релизов: «Какие ваши доказательства?»
Если вы видели no-code-проекты, где можно просто блоками перетаскивать интерфейс, то отчасти вы уже знакомы с BDUI-подходом, ведь они по сути и построены на BDUI. Суть в том, что мы делегируем наполнение интерфейса серверу. Фронтенд не отвечает за то, что будет нарисовано, а только определяет список допустимых компонент, которые сервер может показать пользователю. Но в вебе BDUI не очень популярен.
А зря. Ведь в первую очередь он нужен как спасение от релизов.
Но, если быть точнее, он нужен как средство для снижения количества релизов, затрат на разработку и выкатку фичей. Давайте это и обсудим, а также как работает BDUI, разберём примеры, реализованную фичу, которую мы недавно релизили, посмотрим на другие варианты реализации и подведём итоги.
Вряд ли узнаете, как на 100 % реализовать или внедрить BDUI в свой проект, ибо это слишком категорично, потому что для каждого проекта всё индивидуально. Но… об этом я и расскажу в моей обзорной «лекции».
Мобильная разработка за неделю #565 (18 — 24 ноября)
Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
Пишем Android приложение для фильтрации спам-звонков
Всем привет! Меня зовут Иван Чечиков. В этой статье я расскажу о своем пет-проекте - Android приложении, которое может идентифицировать нежелательные входящие звонки.
Подробности – под катом.
Стили, темы и адаптивная верстка в React Native
Из этой статьи вы узнаете, как эффективно организовать очень важную часть разработки на React Native - работу со стилями и ресурсами для создания адаптивных и доступных интерфейсов под три платформы: iOS, Android и Web, и нужны ли для этого библиотеки. Также в целом обсудим особенности верстки и проблемы производительности в рамках данного фреймворка.
Huawei уходит от Android. Придётся ли бизнесу делать приложения для HarmonyOS Next
В 2023 году Huawei заявили об окончательном уходе от Android и переходе на собственную HarmonyOS Next. Для разработчиков это значит, что не получится создавать нативные приложения силами одной команды. Бизнес ждут новые расходы или снижение охвата аудитории.
Меня зовут Сергей, я техлид Android-разработки в Surf. В статье расскажем, чего ожидать владельцам приложений в России, стоит ли готовиться к очередной разработке на новой ОС и как это сделать.
Мой вариант приложения для запоминания популярных английских слов
Несколько лет назад я начал учить английский язык. Я стал пользоваться приложениями для запоминания слов. И вроде бы они удобные, красивые, даже почти бесплатные, но там можно было выбирать слова по группам или учить то что есть. Например выбираем категорию Медицина, а там по мимо основных базовых терминов еще и названия болезней, которые в русском языке употребляются раз в 100 лет. Не думаю что американцы или англичане сильно от нас отличаются физиологически.
И вот мне пришла мысль создать приложения для изучения слов где слова можно выбирать самому из списка. А что бы не учить всякий шлак я нагуглил в интернете список самых частых 1000 английских слов. Три месяца ушло на изучение явы и написания приложения. Хотел выложить в плей маркет, но началась война и плей маркет был закрыт.
Получилось вот так https://www.rustore.ru/catalog/app/com.example.word_1000_eng
Вот так выглядит мой список популярных слов
Ближайшие события
Такие разные Android AppLinks, WebLinks, DeepLinks. Разбираемся и пытаемся сломать
Всем привет! На связи Юрий Шабалин и Веселина Зацепина, эксперты по безопасности мобильных приложений в компании Стингрей. С каждым годом мобильные приложения становятся всё более сложными и взаимосвязанными, предлагая пользователям бесшовный опыт взаимодействия. Одной из ключевых частей этого опыта являются ссылки, которые могут направить пользователя прямо на определённый экран приложения или на конкретный контент. Однако многие (как и мы до того, как написать эту статью) путают такие термины, как Deep Links, Web Links и App Links, что может привести к ошибкам в реализации и уязвимостям.
Цель этой статьи — разобраться в различиях между этим похожим функционалом, понять, какие атаки могут быть на них направлены и как ведёт себя Android, если несколько приложений пытаются зарегистрировать одни и те же ссылки. Сразу оговорюсь, что это статья не совсем похожа на наши обычные материалы — она призвана скорее рассказать, что мы узнали в процессе внутреннего исследования и консолидировать эту информацию в небольших "заметках на полях".
Надеемся, что эта статья поможет вам (как и нам в свое время) разобраться с различиями этих механизмов и даст почву для размышлений, как еще их можно проверить.
Избавляемся от Android в api-модулях
Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами»
На решение, которое будет описано ниже, меня натолкнула статья Оптимизация Gradle: избавляемся от Android-модулей. В ней приведен синтетический бенчмарк, из которого видно, что количество gradle-модулей с Android-плагином негативно влияет на скорость конфигурации проекта, а также на количество необходимой памяти. Мы, как инженеры, должны воспользоваться каждой возможностью ускорить сборку проекта. Однако в статье приведено несколько недостатков описанного подхода, и на момент написания статьи они были критичными и не давали возможности использовать его в нашем проекте.
Итак, теперь сначала..
Работа с CoordinatorLayout: шапочный разбор
Приветствую тебя, уважаемый читатель! Меня зовут Пятаков Никита, я Android-инженер в команде MT&S Авито. Здесь я делюсь опытом реализации двух версий шапки на главном экране приложения Avito. Эта статья будет особенно полезна разработчикам, которые хотят познакомиться с CoordinatorLayout и научиться делать похожие задачки с нетривиальным взаимодействием view между собой.
Что нужно, чтобы тебя увидели в Play Market?
Если вы пришли за ответом на вопрос в заголовке - то не хочу расстраивать вас, я и сам не знаю.
15 ноября этого (2024) года я опубликовал своё приложение в Play Market. Казалось бы, вот оно - начало пути к "миллиардам пользователей", как говорит Гугл при публикации игры, большим онлайнам и заработку. Но в я отдаю себе отчёт, что моя игра нишевая, и никогда сверх-популярной не станет. Однако, даже несмотря на это, я пытаюсь привлечь людей всеми способами.
Сейчас передо мной стоит один важный вопрос: я не наблюдаю свой проект в поисковой выдаче Play Market, и имею довольно слабое представление, что нужно сделать, чтобы он там вообще появился.
Изучаем конкурентов. Моими прямыми конкурентами можно назвать два проекта - Rival Regions - проект, администрация которого не ведёт соцсети и не обновляет сам проект примерно никак, и eRepublik, про который я вам ничего сказать не смогу. Во всех трёх играх, включая мою Wild Politics, игроки взаимодействуют друг с другом чтобы создать лучшее государство игры, однако если в WP и RR государства могут быть какими угодно по названию и территориям, то, насколько мне известно, eR позволяет существовать только странам, подобным реальным.
В поисковой выдаче по запросу "симулятор политики" RR, несмотря на свою заброшенность поддержки, находится на шестом месте - сказывается те времена, когда администрация не жалела денег на привлечение игроков со всех концов света.
Выше неё - весьма известная Rebel Inc., и целых три симулятора президента одного и того же издателя. Видимо, людям нравится играть за лидеров и только за них.
Готовим лоб к пробитию стен: как Android-разработчику найти первую работу в 2025-м
Привет, друзья!
Я Илья Попов, действующий senior android разработчик, ментор начинающих андроид-разработчиков и автор телеграм-канала Android Dev Notes.
Итак, вы приняли решение стать андроид-разработчиком. Как найти дорогу в этом океане неизвестного впереди?
Раз наша цель – работа в андроид-разработке, то первое, что нужно сделать – изучить рынок вакансий и понять, а что от вас вообще нужно работодателям?
Идём на основные сайты для поиска работы (hh, superjob, career.habr, geekjob, getmatch и тд) и анализируем пару десятков вакансий джуниоров и то, какие требования в них фигурируют чаще всего. Составляем себе список навыков, библиотек, фреймворков, инструментов для освоения.
Следующее, с чем надо определиться: к какому из пунктов приступать первым? Здесь два варианта:
– самостоятельно изучаем программы существующих курсов в интернете и на этой основе пытаемся понять, в какой последовательности что обычно учат
– просим помощи в составлении программы у компетентного разработчика, который занимается обучением начинающих
Эта программа не будет высечена на камне – нам может потребоваться её изменять, а часто придётся импровизировать и отходить от неё. Но мы теперь не плывём в океане наудачу – у нас есть маяк. А дальше дело за малым – поднимаем якорь, надуваем паруса и вступаем на тернистый, но интересный путь разработчика!
Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая
Описание проблемы
Задача
Я — андроид разработчик. Обычно ко мне приходят с фразой вроде “вот мы тут придумали фичу, сделаешь?” и с макетом дизайна, вроде такого.
Я смотрю на это всё и вижу: вот экраны, эти данные на них — статические, а вот эти динамические, значит их надо откуда-то взять; вот тут интерактивные компоненты: при взаимодействии с ними надо что-то сделать. Иногда просто открыть другой экран или виджет, иногда выполнить логику. Исходя из этого я проектирую то, как будет выглядеть логика фичи. Описываю ее в компонентах архитектуры, разбиваю на задачи, узнаю где и как взаимодействовать с сервером, и прочее.
Скрытые кейсы
Но потом я обнаруживаю, что далеко не все переходы такие простые, как нарисовано на дизайне, например, как в случае с авторизацией. Не все явно присутствуют, как, например, переходы назад. А в некоторых случаях не хватает всевозможных экранов ожидания, экранов “пустых” состояний и экранов ошибок.
Знакомо?
Подборка книг для мобильных разработчиков: от начинающего до продвинутого уровня
Подборка книг для мобильных разработчиков на Android на разных уровнях подготовки — от новичков до тех, кто уже уверенно чувствует себя в индустрии. Список составлен на основе книг, которые я читал лично, и литературы, о которой узнал из бесед с разработчиками, с которыми работаю.
Вклад авторов
InlyIT 3040.0alizar 1936.0RoboForm 1926.0bodyawm 1704.1phillennium 1618.0aleksandrit 1145.6Developers_Relations 938.8vedensky 832.0myshyak 679.6Leono 661.0