Как стать автором
Обновить
11
0
Артём @kolipass

Мобильный разработчик

Отправить сообщение

Оптимизация ресурсов в Android. Ускорение сборки и уменьшение размера APK

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

Один из эффективных способ ускорения проектов - разделить генерацию R классов по отдельным модулям. Хоть эта возможность уде добавлена давно в Android Gradle Plugin, но её до сих пор не включили по умолчанию. Из статьи вы узнаете как выключить эту фичу и какие результаты по скорости сборки проекта удаётся достичь

Читать
Всего голосов 9: ↑9 и ↓0+9
Комментарии10

Автоматизация повышения качества кода в Android

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

Современные мобильные приложения уже вполне серьезные Enterprise проекты, которые разрабатываются десятками, а то и сотнями разработчиков, содержат в себе множество тысяч строк кода и постоянно меняются и развиваются. Уследить за такой огромной кодовой базой помогает процесс автоматизации проверок кода и работы приложения. Сегодня расскажу о том какие инструменты вы можете использовать, чтобы улучшить стабильность вашего кода и не допускать ошибок, а также сэкономить время коллегам во время pull request.

Вы разрабатываете проект в маленькой команде, а то и вовсе один? Тогда эта статья вам ещё важнее, так как вы скорее всего не настраивали у себя такие проверки, а я расскажу почему это нужно сделать.

Читать
Всего голосов 11: ↑11 и ↓0+11
Комментарии11

Дикая природа Gradle Task: руководство по выживанию

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

Приветствую, Gradle-адепт! В статье тебя ждёт авторский тур по Gradle Task. В маршрут включено хождение по граблям, изучение секретных практик buildscript-тасок, проведение раскопок по deprecated API, а ближе к концу зарядимся силой Custom Gradle Task, попрактикуемся в строительстве билд-кеша и узнаем, кто такой Worker API.

Читать далее
Всего голосов 14: ↑13 и ↓1+15
Комментарии2

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

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

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

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

Вот какие изменения должны были произойти.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Автоматизация UI-тестирования в приложении Недвижимости на Android. Доклад Яндекса

Время на прочтение16 мин
Количество просмотров8.8K
Чем больше процессов тестирования автоматизированы, тем эффективнее релизный пайплайн и тем быстрее пользователи получают новые возможности в сервисе. Руководитель Android-разработки Яндекс.Недвижимости Александр Рогов вспомнил, как эволюционировало UI-тестирование в его команде, как разработчики пришли к идее автоматизации, почему использовали фреймворк Espresso, с какими проблемами столкнулись и что в итоге получили.

— Начать хотелось бы с небольшого исторического экскурса.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+7
Комментарии1

Безопасность в мобильных приложениях

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

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

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

Одним из основных столпов хорошей защиты, является журналирование действий и мониторинг всех нестандартных событий. Тяжело выстраивать защиту, если вы даже не знаете что вас ломают и каков вектор угрозы. Тут многое специфично для ваших процессов, но в качестве примеров могу привести использование большого количества разных аккаунтов с одного устройства; попытки обратиться к API к которому у аккаунта не должно быть доступа; многочасовые сессии в случаях, когда среднее время измеряется в минутах; нестандартные сбои и так далее.

Читать далее
Всего голосов 20: ↑19 и ↓1+22
Комментарии1

Пишем свой профайлер для анализа производительности приложения на Android

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

По мере развития приложения стоит проводить её аудит для выявления неявных деградаций в производительности. Недавно я проводил аудит раздела комментариев iFunny и написал собственный профайлер. Он не заменит имеющиеся на рынке инструменты Android Profile из Android Studio, Battery Historian и Systrace, но обладает рядом плюсов:

1. Негативное влияние профилировщика на производительность приложения сводится к минимуму.
2. Документация итераций оптимизации работы приложения.
3. Гибкость в сборе метрик.

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

Читать далее
Всего голосов 27: ↑26 и ↓1+31
Комментарии0

Разработчики не могут исправить ошибки управленцев

Время на прочтение8 мин
Количество просмотров8.2K
Мне постоянно попадаются статьи, в которых разработчиков упрекают за нежелание вникать, зачем нужна их работа, и доказывают им, что это неправильно – вслепую вносить изменения, не разбираясь, какая за этим стоит цель. Звучат призывы в духе «оглянитесь вокруг, не уходите с головой в написание кода!». На мой взгляд, эти статьи обращены не к тем людям.

В большинстве компаний ответственность за то, что разработчики оказываются отрезаны от пользователей и их нужд, лежит на руководстве. Если кто не знал: разработчики ничего не имеют против того, чтобы создавать крутые программные решения под реальные потребности, и наоборот, перспектива тратить время на то, что никому не нужно, как минимум не вызывает у них энтузиазма, а то и действует на нервы. Ну то есть, процесс написания программ разработчикам и сам по себе нравится, поэтому пока можно получать деньги за код и никаких более привлекательных вариантов не наблюдается, они будут продолжать работать. Однако как только представится возможность заняться чем-то более осмысленным с сохранением оплаты, машины на автопилоте делать, допустим, или инсулиновую помпу закрытого цикла, – только вы их и видели.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+24
Комментарии8

Google I/O 2021: что нового для Android-разработчиков (полный обзор)

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

В этом году Google I/O снова проходил в виртуальном формате. Как это было, например, 3 года назад, можно прочитать в прошлой статье. Привычка делать саммари интересных докладов для разработчиков у меня осталась, так что решил поделиться своими заметками после просмотра сессий и чтения блог-постов. Думаю, что это будет полезно не только внутри Wrike.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии7

Google I/O: что нового представили Android-разработчикам

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

Перевод официального анонса с комментариями от Android Developer Surf Олега Жило.

Как Android разработчики мы стремимся создавать опыт, который будет радовать людей по всему миру. Работа разработчика не становится легче: сейчас, когда люди зависят от ваших приложений больше, чем когда-либо, их ожидания значительно выросли. Сегодня в рамках Google I/O мы рассказали о том, как мы помогаем разработчикам в создании красивых и качественных приложений. Мы представили Android 12, который получил масштабное обновление дизайна интерфейса, показали Jetpack, Jetpack Compose, Android Studio и Kotlin. Также мы помогаем увеличить охват ваших приложений будь то поддержка носимых устройств или устройств с большим экраном. Вы можете посмотреть полную версию Developer Keynote, но в этой статье мы расскажем обо всех ключевых пунктах конференции.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии3

Производительность Android Runtime vs NDK

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

Разрабатывая игровой движок для Android, я был уверен, что нативный код C/C++ будет исполняться быстрее чем аналогичный код на Java. Это утверждение справедливо, но не для последних версий Android. Чтобы проверить почему так происходит, решил провести небольшое исследование.

Для теста использовался Android Studio 4.1.3 - для Java Android SDK (API 30), для C/C++ Android NDK (r21, компилятор CLang). Тест довольно тупой, который выполняет арифметические операции над массивом int в двух вложенных циклах. Ничего осмысленного и специфичного.

Читать далее
Всего голосов 19: ↑10 и ↓9+3
Комментарии52

Как использовать облачную ферму устройств Huawei для тестирования и отладки в Android Studio

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

Как ни странно, мало кто знает о том, что у Huawei есть ферма устройств в облаке, которую можно использовать для отладки и тестирования. И речь идет не об отладке через веб-интерфейс, что является более-менее известной фичёй консоли разработчика Huawei и нередко используется разработчиками. Мы же поговорим об отладке непосредственно из студии, с возможностью пользоваться ADB.

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

Следующим шагом открываем студию и устанавливаем плагин HMS Toolkit из магазин плагинов в самой студии (File -> Settings -> Plugins).

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии5

Пишем unit тесты так, чтобы не было мучительно больно

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


Любую задачу в программировании можно выполнить массой разных способов, и не все они одинаково полезны. Хочу рассказать о том, как можно накосячить при написании модульных тестов. Я пишу мобильные приложения уже 6 лет, и в моем «багаже» много разных кейсов. Уверен, что кому-то будет полезно.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии1

Советы по работе с Gradle для Android-разработчиков

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

Всем привет! Я пишу приложения под Android, в мире которого система сборки Gradle является стандартом де-факто. Я решил поделиться некоторыми советами по работе с системой с теми, у кого нет чёткого понимания, как правильно структурировать свои проекты и писать build-скрипты.


Всего голосов 15: ↑14 и ↓1+14
Комментарии6

0x7E5 Рассуждения о главном

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

За 11 лет работы, заметил как недооценивают либо переоценивают те или иные принципы разработки, такие как SOLID и KISS. Как непонимание архитектуры приводит к "аду" вместо "кода". Как любовь к DI приводит к инжекту констант и как ненависть к архитектурам приводит к хаосу. Хотелось бы чуть глубже нырнуть в смысл этих понятий, попытаться раскрыть их для начинающих и, возможно, заставить переосмыслить для опытных программистов.

Нырнуть глубже
Всего голосов 20: ↑18 и ↓2+22
Комментарии28

Android — запрещенные приемы

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

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

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

Читать далее
Всего голосов 10: ↑6 и ↓4+5
Комментарии4

Уязвимости Android 2020

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

Операционная система Android считается одной из самых защищенных операционных систем в наше время. Разработчики этой ОС на своем официальном сайте рассказывают, что в ОС сделано очень много работы для того чтобы создание традиционных эксплойтов было нерентабельно, сложно, невозможно. Возникает вопрос, а есть ли вообще уязвимости в ОС, которые могли бы привести к компрометации системы? Будут ли эти уязвимости отличаться от стандартных уязвимостей программного обеспечения? Можно ли найти эти уязвимости в CWE TOP 25? Или в Android уникальные уязвимости? Эта статья попытка собрать воедино несколько уязвимостей платформы Android в разных частях её архитектуры за 2020 год.

Уязвимости Android
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Материалы митапа для андроид-инженеров: поиск проблем сборки, защита от них и работа с Gradle

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

Недавно прошёл наш Android meetup, где ребята из платформенной команды Авито делились своим опытом работы с Gradle, показывали способы защиты от частых проблем при сборке проектов и рассказывали о нашем подходе к решению проблем. 

Собрали в посте видеозаписи выступлений с таймкодами и ссылки на презентации спикеров. 

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

Готовьсь, цельсь, пли! Как не обжечься при сборке Gradle-приложения, и настолько ли всё серьезно?

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

Доброго дня, читатель! Меня зовут Стручков Михаил и я Android-разработчик в команде мобильного оператора Yota. 

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

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

Читать далее
Всего голосов 12: ↑11 и ↓1+21
Комментарии9

Как устроена библиотека дизайн-системы Авито в Фигме

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

В Авито колоссальное количество интерфейсов и экранов — около 1000 на десктопе и в мобильных приложениях. Чтобы интерфейсы были консистентными и корректно работали, а создавать их получалось быстрее и проще, у нас есть дизайн-система.

На самом базовом уровне дизайн-систему понимают как набор компонентов и стилей. В нашу входят ещё гайдлайны для дизайнеров и спецификации для разработчиков. Актуальность нашей библиотеки в Фигме поддерживает команда дизайн-системы. Её пользователи — дизайнеры и разработчики. Расскажем, как библиотека устроена. 

Читать далее
Всего голосов 16: ↑15 и ↓1+18
Комментарии20

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность