Pull to refresh
4
0
Александр Фокин @alexander_fokin

Android Developer

Send message

Android Lint: оптимизируем проверку мердж-реквестов

Reading time 6 min
Views 1.1K

Привет, это Android-разработчик из «МТС Диджитал» Никита Пятаков. Когда я только начал работать над приложением «Мой МТС», мне нужно было время, чтобы адаптироваться и ознакомиться с проектом. На первых МР-ах коллеги подсвечивали готовые решения, которые можно переиспользовать. Когда к нам стали приходить новые разработчики, такие комментарии оставлял уже я. Это натолкнуло меня на мысль, что использование синтаксического анализатора оптимизирует процесс проверки. К тому моменту мы уже использовали Android Lint, так что выбирать не пришлось. 

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

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 0

Корни RxJava — о чем мы не подозревали

Level of difficulty Medium
Reading time 6 min
Views 5.2K

В этой статье описано то, как под капотом работает RxJava и почему она работает именно так, а не иначе. Статья рекомендуется к прочтению разработчикам уровня junior - middle, так же очень желательно перед прочтением статьи ознакомиться/вспомнить паттерн Observer, потому что вся история основана на нём.

Читать далее
Total votes 14: ↑12 and ↓2 +10
Comments 9

Статический анализатор Detekt для Kotlin

Reading time 3 min
Views 14K

Пора полюбить статические анализаторы! Встречайте Detekt на Kotlin


Если Вы уже знаете о чем пойдет речь и Вас интересут только внедрение в проект, переходите сразу к пункту установки.

Что-же это такое?


image

Анализ программного обеспечения, производимый (в отличие от динамического анализа) без реального выполнения исследуемых программ. Википедия

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

Статические анализаторы облегчают работу ревьюера и в целом экономит время команды на разработку.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 6

Detekt: как статический анализ помогает улучшить код автотестов

Level of difficulty Medium
Reading time 11 min
Views 3K

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

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

Это может касаться как простых ошибок, на которые не хочется тратить время специалистов, так и неочевидных ошибок, у которых иногда непросто определить причину.

Меня зовут Николай, и я инженер в мобильной платформенной команде Яндекс Еды. В этой статье я расскажу, как мы повышаем качество кода автотестов Android-приложения. И в этом нам помогает статический анализ.

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 0

Разделение презентационного слоя фичи на модули в Android приложении

Level of difficulty Medium
Reading time 6 min
Views 4.4K

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

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 5

Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)

Level of difficulty Medium
Reading time 13 min
Views 31K

Проектирование REST API - это процесс создания дизайна методов обмена данными. Дизайн - это субъективное. У одних "так", у других "сяк". А кто прав? Иногда все, а иногда нет.

Можно ли сделать в проекте все методы POST? Как правильно именовать эндпоинты - ед. число или мн. число (/user или /users)? Можно ли использовать метод POST для получения данных? ...

Холиварные вопросы! Вкусовщина! Давайте разбираться!

Читать далее
Total votes 28: ↑24 and ↓4 +20
Comments 302

Оптимизируя sequences — или как мой код попал в kotlin

Level of difficulty Hard
Reading time 12 min
Views 6.2K

Рассказ о том, как я оптимизировал несколько функций kotlin sequences и как мои оптимизации попали в релиз kotlin 2.0

Читать далее
Total votes 41: ↑41 and ↓0 +41
Comments 13

Свободный* интернет без рекламы с минимальным энергопотреблением в режиме ожидания на смартфонах (в картинках)

Level of difficulty Easy
Reading time 7 min
Views 9.6K

Данная статья относится к "личному опыту" автора, выбранные решения не являются "уникальными", но как показал опыт, являются оптимальным решением трёх проблем: простой "VPN своими руками", интернет без раздражающей рекламы и трекеров, максимально низкое энергопотребление в idle (актуально для смартфонов и планшетов). Для нормального функционирования данного решения потребуется устройство с сервисами Google Play и желательно Samsung Knox. Выбор NaïveProxy обусловлен низким энергопотреблением, высокой устойчивостью к детектированию и MITM атакам.

Читать далее
Total votes 5: ↑4 and ↓1 +3
Comments 3

Разбираем формат EXIF на примере Apple Photos

Level of difficulty Medium
Reading time 11 min
Views 8.1K

В этой статье мы познакомимся с форматом EXIF и узнаем, какую информацию содержат метаданные фотографий, как эту информацию можно получить, и каким образом использовать. В качестве примера будем использовать фототеку, управляемую с помощью Apple Photos.
Читать дальше →
Total votes 56: ↑54 and ↓2 +52
Comments 5

Исчерпывающее руководство по настройке Jenkins под iOS в 2023 году

Level of difficulty Medium
Reading time 10 min
Views 2.7K

На дворе 2023 год, и вот вы и ваша команда наконец решили отказаться от CI-пайплайна, которым вы пользовались, в пользу автономного Jenkins CI. Замечательно! В этой статье мы не будем разглагольствовать о плюсах и минусах использования одних CI-систем в сравнении с другими, а сразу сосредоточимся на том, как настроить полностью функциональную среду Jenkins CI для iOS.

Читать далее
Total votes 10: ↑9 and ↓1 +8
Comments 0

Какие параметры компьютера влияют на скорость сборки Gradle проекта

Level of difficulty Medium
Reading time 16 min
Views 5.7K

Как вы думаете, какие характеристики сильнее влияют на скорость сборки вашего проекта: частота CPU или частота оперативной памяти? Количество ядер CPU или количество оперативной памяти? Влияет ли скорость постоянной памяти на скорость сборки? Однажды у меня в голове возникли такие вопросы, и я решил найти на них ответы. Лучший способ для этого — провести тесты. Поэтому представляю вам их результаты и попытаюсь их объяснить в меру своих знаний. Если хотите узнать, что больше всего влияет на скорость сборки, ну или, может быть, хотите обновить компьютер для сборки, но не знаете, во что лучше вложится, то добро пожаловать в статью.

Читать далее
Total votes 14: ↑13 and ↓1 +12
Comments 10

Побеждаем Android Camera2 API с помощью RxJava2 (часть 1)

Reading time 21 min
Views 37K


Как известно, RxJava идеально подходит для решения двух задач: обработки потоков событий и работы с асинхронными методами. В одном из предыдущих постов я показал, как можно построить цепочку операторов, обрабатывающую поток событий от сенсора. А сегодня я хочу продемонстрировать, как RxJava применяется для работы с существенно асинхронным API. В качестве такого API я выбрал Camera2 API.


Ниже будет показан пример использования Camera2 API, который пока довольно слабо задокументирован и изучен сообществом. Для его укрощения будет использована RxJava2. Вторая версия этой популярной библиотеки вышла сравнительно недавно, и примеров на ней тоже немного.


Для кого этот пост? Я рассчитываю, что читатель – умудрённый опытом, но всё ещё любознательный Android-разработчик. Очень желательны базовые знания о реактивном программировании (хорошее введение – здесь) и понимание Marble Diagrams. Пост будет полезен тем, кто хочет проникнуться реактивным подходом, а также тем, кто хочет использовать Camera2 API в своих проектах. Предупреждаю, будет много кода!


Исходники проекта можно найти на GitHub.

Читать дальше →
Total votes 59: ↑59 and ↓0 +59
Comments 9

Чтобы найти хороших разработчиков, заставьте их читать чужой код

Reading time 4 min
Views 39K
При найме разработчиков можно смотреть на различные навыки, но за годы работы я выяснил, что самое важное — простая способность кодить, и этот навык сильно опережает по важности все остальные. Я могу быстро обучить человека, чтобы он получил знания в определённой области, но никогда не видел, чтобы простая способность кодить исходила из чего-то иного, кроме как из личного стремления к упорной и глубокой практике. Благодаря этому я выяснил, что одни способы лучше подходят для выявления талантов, чем другие.
Читать дальше →
Total votes 99: ↑99 and ↓0 +99
Comments 67

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

Reading time 13 min
Views 7.8K

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

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

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

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

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

Самое интересное далее
Total votes 5: ↑5 and ↓0 +5
Comments 16

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

Reading time 24 min
Views 9.8K

Всем привет, меня зовут Юрий Шабалин, я один из основателей компании "Стингрей Технолоджиз" (входит в группу компаний Swordfish Security), мы разрабатываем платформу анализа защищенности мобильных приложений iOS и Android. Этой статьей я бы хотел открыть серию материалов, посвященных мобильной безопасности. И сегодня поговорить о тех уязвимостях, что мы встречаем чаще всего при автоматическом анализе.

Читать далее
Total votes 17: ↑17 and ↓0 +17
Comments 3

Россия 2022: как хранить криптовалюту в условиях санкций?

Reading time 10 min
Views 74K


Peace, Хабр!


Последние дни много разговоров, что криптовалюта — способ: a) сберечь свои рублевые сбережения от обесценивания, b) вывести из под риска национализации валютные сбережения.


И действительно (хорошая новость): на текущий момент ограничений по покупке и хранению криптовалют для резидентов РФ нет. Ну почти нет. По сравнению с фиатными биржами — нет.


Но (плохие новости):


  • Американские сенаторы уже обсуждают меры по ограничению использованию криптовалют для обхода санкций со стороны России [1],
  • Евросоюз занят тем же самым [2],
  • ФБР появилось подразделение по контролю за оборотом криптовалюты ([3], анонс от 17 февраля 2022, хотя межгосударственные финансовые дела вряд ли в их юрисдикции).

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


Снова плохая новость (не последняя):
Если Вам кажется, что риски в этом потенциальном будущем для Вас, как для частного инвестора, высокие, то Вам не кажется.


И что с этим делать?
Правильно — разобраться что, где, как (и надо ли) хранить условиях санкций.

Читать дальше →
Total votes 35: ↑31 and ↓4 +27
Comments 63

Android 12: история поддержки

Reading time 11 min
Views 9.8K

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


Совсем недавно вышла новая версия всеми нами любимой OS. Вот и пришло время нашему приложению поддержать её. Было очень много обзоров на новые возможности Android 12, а также изменений для разработчиков. Сегодня я расскажу про наш тернистый путь. Наливайте чай/кофе и готовьтесь к увлекательному погружению в мир Android.


Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 6

Как проводить тестирование на удалёнке и обходиться без тонн разных девайсов. Опыт Surf

Reading time 7 min
Views 9.4K

Осень, ковид, «нерабочие дни». Это у разработчиков рабочее место там, где есть компьютер. А вот тестировщикам мобильных приложений на удалёнке гораздо сложнее: им, помимо прочего, нужно много девайсов разных версий и ОС. Наши тестировщики научились работать откуда угодно и не таскать за собой сумку с устройствами. В статье найдёте, как это сделать и вам. 

Читать далее
Total votes 6: ↑5 and ↓1 +4
Comments 4

Эволюция CI в Android

Reading time 18 min
Views 3.3K

“Твою ж мать, какая же это хтонь!”. Примерно так можно было охарактеризовать все наши инфраструктурные скрипты до недавнего времени. Нужно было что-то менять, и мы сделали это. 

Меня зовут Павел Стрельченко, я – Android-разработчик компании hh. Я расскажу вам как эволюционировали наши CI скрипты на протяжении трех лет, с какими проблемами мы сталкивались, как анализировали их и пытались изменить, а также что вообще делали и к чему в итоге пришли. 

Это текстовая расшифровка выпуска нашего влога, поэтому если вам удобнее смотреть, а не читать, добро пожаловать на наш Youtube-канал. В статью получилось добавить множество дополнительных ссылок, так что можно почитать ещё и их. 

Узнать про хтонь
Total votes 7: ↑6 and ↓1 +5
Comments 0

Компьютерное зрение в ритейле: как мы научили нейронную сеть распознавать товары по фото

Reading time 5 min
Views 5.6K

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

Читать далее
Total votes 10: ↑9 and ↓1 +8
Comments 2

Information

Rating
Does not participate
Location
Томск, Томская обл., Россия
Date of birth
Registered
Activity