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

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

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

Нелегкий путь к динамическому анализу мобильных приложений

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

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

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

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

Мы открыты к общению!

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

Знакомьтесь: библиотека TiRecycler

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

Всем привет! Меня зовут Александр Гузенко, и в Тинькофф я занимаюсь всякими техническими вещами вроде CI/CD, gradle и внедрением новых подходов. Хочу рассказать вам про библиотеку, которую мы создали в команде Тинькофф Бизнеса, когда столкнулись с многословными адаптер-делегатами.

Прочитать подробнее
Всего голосов 23: ↑21 и ↓2+19
Комментарии4

Асинхронный код синхронно: как устроено юнит-тестирование в СберМаркете

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

Привет! Меня зовут Владислав Сединкин, я работаю iOS-разработчиком в СберМаркете. Сегодня я расскажу, как мы проводим юнит-тестирование, с какими сложностями сталкивались при написании тестов и как их решали.  

Я выступал с этим докладом на iOS Meetup | СберМаркет Tech, здесь его сжатая версия.

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

Сравниваем готовые решения для реализации MVI-архитектуры на Android

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


Когда прежние инструменты не соответствуют растущей сложности программ, появляются новые подходы в программировании, паттерны проектирования. MVI помогает там, где не справляются MVP- и MVVM-подходы. Сейчас, в том числе, этот подход активно используется и на многих крупных приложениях. В одних случаях MVI задействован только на части экранов, в других – все экраны построены на нем. В нашей команде знание MVI – одно из обязательных требований.

В этой статье мы разберем решения для реализации MVI-архитектуры на Android, большинство из которых применимы в работе. Описали их преимущества и недостатки, основываясь на опыте коллег и собственной практике. Материал будет полезен для разработчиков, ещё не знакомых с паттерном MVI, и для тех, кто выбирает библиотеку для своего проекта.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Как мы используем фича-флаги в мобильном приложении QIWI Кошелек

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

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

Меня зовут Василий Материкин, я — Android-разработчик в QIWI. В этом посте я расскажу о применении фича-флагов в QIWI Кошельке.

Внедрение Trunk-Based Development и Feature Flags

В процессе работы над большими приложениями, в которых много фич и над которыми трудится большая команда разработчиков, часто приходится сталкиваться с такой проблемой как конфигурация приложения помощью фича-флагов. Мы в QIWI столкнулись с этим два года назад, когда в QIWI Кошельке было создано несколько feature-команд. Выяснилось, что разрабатывать новые фичи с помощью стандартных feature-веток не так удобно, потому что когда над одним проектом работает несколько feature-команд, ветки становятся достаточно объёмными. Потом смержить их в мастер становится довольно непростой задачей, появляются постоянные конфликты. 

Поэтому мы решили перейти на Trunk-Based Development (TBD). TBD предлагает работать в небольших ветках и, желательно, чтобы они как можно быстрее были влиты основную ветку. Для этого, конечно же, реализацию нового функционала нужно оформлять небольшими пулл-реквестами, чтобы они быстро проходили ревью и были влиты в основную ветку. Это, в свою очередь, создает другую проблему — когда в главной ветке может появиться код, который ещё не готов к релизу, но при этом нам нужно как-то релизить с этим кодом приложение. Мы же релизы выпускаем достаточно часто. И для этого TBD предлагает пользоваться такими подходами, как Branch by Abstraction (BBA) и Feature Flags (FF).

BBA позволяет выделить какой-либо функционал в отдельную абстракцию. Для этого создается интерфейс, который описывает контракт для работы с этим функционалом. Сразу же можно создать его текущую реализацию, просто скопировав код, который сейчас в продакшене. Также создается другая реализация (уже с новым функционалом) и с ней уже начинается работа. То есть обычно первый пулл-реквест при работе с фичей — это выделение кода, создается две реализации, эти изменения вливаются в главную ветку и далее продолжаем работать уже над новой реализацией. При этом в проекте (в продакшене) используется всё ещё старая реализация, пока мы не закончим работать над фичей.

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

Kotlin, обрабатываем исключения в корутинах правильно

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

Возможно вы думаете обработка таких исключений происходит как обычно в Kotlin/Java коде. К сожалению, при использовании вложенных корутин, все может работать не так как ожидается.

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

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

Письмо счастья: как мы разделили наши сборки для AppGallery и Google Play

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

В марте Google Play стал рассылать письмо-предупреждение для разработчиков, использующих Huawei Mobile Services в своих мобильных приложениях. И в этом письме было сказано, что использование HMS в сборках для Google Play противоречит политикам стора приложений, а на решение проблемы дается 120 дней. В противном случае Google Play обещает перестать принимать обновления для таких приложений.

После получения такого “письма счастья” мы окончательно убедились, что наша единая сборка приложения для всех сторов с переключением платформенных сервисов в рантайме – не самое надежное решение в столь изменчивом мире. В общем, мы решили оперативно перейти на раздельные сборки. Особенность нашего решения в том, что мы сохранили GMS+HMS сборку приложения для AppGallery, добавив в наш проект возможность сделать чистую GMS-сборку для Google Play. Мы использовали флейворы, но в связке с многомодульностью нам удалось затащить под флейворы лишь минимальное количество кода. 

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

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

Тест-ревью: как прошли два года написания unit-тестов

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

Часто слышу мнение, что unit-тесты не нужны для мобильной разработки: в приложении должно быть минимум логики, основная работа с UI, а его сложно тестировать, да ещё и тесты отнимают время, которое можно было бы потратить на написание фич. 

За этим мнением скрывается простая правда — люди, которые так говорят, не умеют писать тесты. Не умеют писать их быстро; писать там, где нужно; писать так, чтобы была ощутимая польза для бизнеса. Я тоже был таким — понимал, что тесты нужны, но не понимал какие, где и как их писать. 

Рассказываю, что поменялось спустя 2 года и 4 тысячи тестов. 

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

Как мы сделали мобильные устройства круглосуточно доступными для распределенной QA-команды и не только

Время на прочтение9 мин
Количество просмотров5.8K
Мы можем гонять тесты на эмуляторах, но некоторые вещи нельзя проверить без реальных устройств. Не получится виртуально протестировать функционал VPN, GPS, прохождение девайс-специфичных FRW и сценариев и многое другое. Изначально для решения таких проблем мы использовали россыпь устройств, которые передавали из рук в руки. И хотя это помогало тестированию, мы постоянно упирались в поиски конкретного устройства и логистику по его передаче. С этим нужно было что-то делать.

image

Меня зовут Дмитрий Мухаев, я — тест-менеджер в мобильном штабе «Лаборатории Касперского». В этой статье я расскажу о том, как с помощью мобильной фермы мы сделали парк из более чем 500 устройств доступными в режиме 24/7 любому в большой распределенной команде из QA, UX, саппорта и отдела документирования и локализации, а это в общей сложности более 200 пользователей.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии5

Топ вопросов работодателю от Android-разработчика

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

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

Меня зовут Костя, я – Android-техлид в hh.ru, и сегодня я расскажу об идеальных вопросах от Android-разработчика на собеседовании. Объясню, почему я выбрал именно эти вопросы, на что обращать внимание в ответах работодателя, а также отвечу на них так, как мы отвечаем нашим Android-соискателям. Эта статья будет полезна не только мобильным разработчикам, но и специалистам других направлений, которые проходят собеседования.

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

Kotlin, как работает suspend под капотом

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

Как компилятор Kotlin преобразует suspend код? Что получается в итоге? Разбираемся в машине состояний suspend кода.

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

Build.prop — улучшение качества звука

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

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

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

Путь к автотестированию Android нативными инструментами: испробовали всё, что есть на рынке и сделали свои выводы

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

Давайте сначала представимся. Мы - команда управления тестирования и контроля качества в БКС Мир Инвестиций. Наш продукт - это приложения и сайты, созданные для удобства всех желающих окунуться в мир ценных бумаг и инвестиций. Конкретно в нашем “ведомстве” приложения на IOS  и Android, сайт личного кабинета, инвест стратегии Fintarget, новостной портал BCS-Express, сайт ФГ БКС и прочее.

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

Конечно же, автоматизация наших процессов важна, ведь без этого невозможно построение действительно сильного QA отдела. Безусловно, мы встретились с множеством разнообразных проблем.

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

Начать эти рассказы мы решили с повести о становлении мобильного автотестирования. Первым “попался под руку” Android, про него и начнем.

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

Как мы в QIWI внедряли Kotlin Multiplatform Mobile (KMM)

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

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

Меня зовут Кирилл Васильев, и я хотел бы рассказать, как мы в QIWI внедряли Kotlin Multiplatform Mobile (KMM). 

КММ — это технология кроссплатформенной разработки, позволяющая писать общий код под основные платформы за исключением UI-слоя. Все продукты со временем накапливают очень большой технологический контекст; КММ, в свою очередь, позволяет его облегчить, делая компоненты технологического стека общими для команд и платформ. Такие технологии дают неоспоримые преимущества — возможность использовать ресурс каждого разработчика при создании новых фич, единый набор тестов, улучшение инженерных практик в командах и прочее.

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

Это была хорошая охота: 13 лет CTO от прихода до ухода

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


У нас в Туту в марте уходит CTO Вадим Мельников, который за 13 лет успел перевезти компанию из подвала с дошираком в мир высоких технологий. Не один, конечно, но Вадим был очень крутым CTO, и я хочу рассказать, как он поменял всё за это время.

В общем, никто не рассказывает про уходящих людей, ну, знаете, потому что они уже уходят. Но это, имхо, не совсем справедливо. Его история — это почти история позднего Рунета, потому что всё начиналось чуть ли не как хобби силами студентов МГУ. Дальше пришлось закупать свои сервера, ночью переезжать из Каравана в Стордату из-за конфликта хозяйствующих субъектов почти как в 90-х, учиться ставить процесс разработки от уровня «одна команда делает всё» до «это скрам-мастер, и он будет жить с нами», делать невероятно прогрессивный монолит с библиотеками с фасадами, переходить на архитектуру с шиной и потом ещё раз переходить на микросервисы в контейнерах, строить своё персональное облако на своём железе, с удивлением узнавать, что ИБ всё-таки нужна (иначе ляжем и быстро) и много других вещей.

Так что Вадим для меня — человек, который застал всё и при этом всё время принимал правильные решения. Ладно, почти всё время. И почти всегда правильные. Сейчас расскажу, что ему досталось на старте, как он менял компанию и почему сейчас уходит.
Читать дальше →
Всего голосов 79: ↑76 и ↓3+96
Комментарии8

Стратегия своими руками

Время на прочтение11 мин
Количество просмотров17K
Он стратег, он даже тактик, словом — спец,
Сила, воля, плюс характер — молодец!

В. Высоцкий


Никогда не писал статей для Хабра, даже комментариев. И на тематические порталы не выкладывал ничего лет 5.

Но недавно прочитал на Хабре материал об отсутствии стратегий у компаний и не смог пройти мимо — опросы под статьёй показывают, что проблема волнует многих. Решил поделиться своим опытом и объяснить, почему важно понимать не только куда идти, но и каким маршрутом. К тому же я имею отношение к стратегии самого Хабра (статью, на которую я откликаюсь, можно прочитать здесь).


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

Эволюция UI-тестов в iOS-приложении

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

Test-driven development — по-прежнему спорная тема. Часто встречается обоснованное, в общем-то, мнение, что такая разработка нужна только большим компаниям, потому что только у них достаточно ресурсов для создания и поддержки большого количества тест-кейсов. Но сегодня на примере iOS-приложения Маркета я покажу, что стремление как раз обратное: хочется, чтобы тесты поглощали как можно меньше времени разработчиков.

Меня зовут Даша, работаю в команде iOS-разработки Яндекс.Маркета. Два года назад мы поняли, что без автотестов нам тяжело: с их помощью мы снизили вероятность крешей после релиза и ускорили регрессионное тестирование. Релизы приложения происходят еженедельно, и это большая нагрузка на тестировщиков и разработчиков — протестировать всё руками и быстро внести правки за несколько дней не получилось бы. Я постараюсь порефлексировать и рассказать, как эволюционировал наш подход к UI-тестам за это время, и, более конкретно, какие работы мы провели для их «улучшения»: почему решили избавиться от JSON-моков и как справились с этой задачей.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+12
Комментарии3

Как проходит интервью мобильных разработчиков в Тинькофф

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

Привет! Я Максим Коробов, руководитель отдела разработки мобильного приложения Тинькофф. В статье расскажу о том, как проходит отбор кандидатов на вакансии разработчиков iOS и Android, что спрашивают на первичном и техническом интервью и какие задачи предлагают решать во время практической секции. 

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

Читать далее
Всего голосов 25: ↑21 и ↓4+23
Комментарии24

«Горячие» и «холодные» Feature toggles: принципы работы

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

В этой статье мы расскажем про принципы безопасной работы с переключателями функционала – Feature Toogles: 

— Что из себя представляют переключатели функционала и для чего их использовать.

— Какие проблемы возникают при неправильном использовании.

— Что такое «горячие» и «холодные» переключатели, и как они способны решить проблемы из прошлого пункта. 

— Реализация «холодных» toogle-ов с помощью условной компиляции и линковки.

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

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

«Ваше приложение нарушает правила Google Play»: сводки из ада

Время на прочтение4 мин
Количество просмотров17K
Для начала представлюсь тем, с кем мы незнакомы: я системный администратор на Linux и также много работаю с кодом, в основном для собственного удовольствия. Среди моих личных проектов есть и приложения на Android, самое популярное из них называется Catima. Catima доступна только на Google Play и F-Droid и, вероятно, в обозримом будущем останется экслюзивом для этих платформ.

Вы спросите: «Но почему твое приложение не продается в других магазинах, например, Samsung Galaxy Store, Amazon AppStore или Huawei App Gallery? Что тебя в них не устраивает?». Мой ответ, возможно, вас удивит: я не размещаю свое приложение в других магазинах не из-за проблем с ними, а из-за проблем с Google Play. Публикация на этом маркете отнимала у меня столько сил и времени, что на другие уже не оставалось. Сейчас страсти немного улеглись, и я, наверное, обдумаю вопрос о привлечении дополнительных площадок. Только сначала удостоверюсь, что не на всех творится то же самое, что и на Huawei App Gallery.
Читать дальше →
Всего голосов 23: ↑19 и ↓4+23
Комментарии23

Информация

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