Как стать автором
Обновить
1
0
Евгений @Zhenika

Программист

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

Пример исследовательского реверс-инжиниринга приложения Zone Launcher

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

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

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

Deep Dive Into Deep Link. Часть 1. Введение и исходная задача

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

Давно хотели разобраться, как работают Deep Link-и? Мы стартуем новый цикл статей, который посвящен работе Deep Link в Android. В первой части мы зафиксируем основные понятия: ​​Deep Link, Web Link, App Link. Разберем особенности каждого вида Deep Link-ов и разницу между ними.

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

Патчим байт-код для просмотра логов в Android. Подробная инструкция и примеры кода

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

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

В принципе, есть множество приложений, которые позволяют просматривать содержимое logcat на устройств. Но с ними часто возникают самые разные проблемы:  такие приложения нуждаются в специальных разрешениях или наличии root доступа, запускают отдельные процессы или сервисы. Или же они могут просто не работать на некоторых устройствах (например, там, где выключен logd). В этой небольшой статье предложено решение большинства подобных проблем. Оно основано на трансформации байт-кода приложения. Поехали!

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

Распознавание картин без распознавания

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

Обычно распознавание чего угодно реализуется с помощью технологий компьютерного зрения и машинного обучения. Нейросети “скармливают” набор изображений, по которым она учится узнавать предметы. Но что делать, если распознавать нужно сразу на мобильном устройстве, а дообучать модель в случае увеличения количества классов нет возможности из-за ограничений на стороне клиента? В таком случае использовать нейросеть не получится.

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

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

Как выложить свою первую библиотеку в open source

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

Привет. Меня зовут Роман Аймалетдинов, я разрабатываю под Android в inDriver. Сегодня я решил поделиться своим небольшим знанием о том, как выложить в open source свой проект. Приятного чтения!

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

Гайд по архитектуре приложений для Android. Часть 1: обзор

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

Перевод обновлённого гайда Android по архитектуре приложений. Это — первая часть из пяти: обзор рекомендаций по архитектуре.

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

8 распространенных ошибок при разработке Android-приложений

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

Экосистема Android стремительно растет по всему миру и распространяется на различные группы людей. Люди из разных слоев общества, люди с ограниченными возможностями, пользователи, которые просто хотят иметь новомодные фичи, такие как ночной режим (темная тема), начинают использовать приложения Android в своей повседневной жизни.

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

Как правильно идентифицировать Android-устройства

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

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

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

Kotlin DSL: Теория и Практика

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

Sql, RegExp, Gradle — что их объединяет? Всё это примеры использования проблемно-ориентированных языков или DSL (domain-specific language). Каждый такой язык решает свою узконаправленную задачу, например, запрос данных из БД, поиск совпадений в тексте или описание процесса сборки приложения. Язык Kotlin предоставляет большое количество возможностей для создания собственного проблемно-ориентированного языка. В ходе статьи мы разберемся, какие инструменты есть в арсенале программиста, и реализуем DSL для предложенной предметной области.


Весь синтаксис, представленный в статье, я объясню максимально просто, однако, материал рассчитан на практикующих инженеров, которые рассматривают Kotlin, как язык для построения проблемно-ориентированных языков. В конце статьи будут приведены недостатки, к которым нужно быть готовым. Используемый в статье код актуален для Kotlin версии 1.1.4-3 и доступен на GitHub.


Читать дальше →
Всего голосов 40: ↑35 и ↓5+30
Комментарии12

Android Studio. Kotlin. Сохранение файла в общедоступной папке Download

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

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

Виной всей этой сложности - множество факторов. Языковой барьер: русский - английский, Kotlin - Java. Различия в способах копирования в разных версиях Android. Разобраться было не просто. В итоге - пишу этот гайд, чтобы облегчить жизнь тем, кто пойдет за мной следом...

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

Android App Bundles. Как уменьшить размер вашего приложения?

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

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

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

Публикация Android библиотеки

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

Недавно у меня появилось желание попробовать создать свою собственную Android библиотеку и выложить ее на Maven Central репозиторий.

Это оказалось не так просто, как я думал. В интернете полно непонятных статей на эту тему, в которых легко запутаться.

Я решил поделиться процессом публикации моей библиотеки Awesome-Buttons.

Ну что ж, приступим.

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

Как оседлать радугу: история создания тёмной темы

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


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


Меня зовут Михаил Лихачёв, я ведущий дизайнер VK. Расскажу, как небольшой командой адаптировали 300 экранов и систематизировали все существующие в мобильных приложениях цвета — для этого мы синхронизировали их между платформами и вынесли работу с ними в единую дизайн-систему с токенами. Поделюсь впечатлениями о том, как нам теперь с этим живётся и усложнился ли процесс дизайна.

Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии34

Дизайнеру приложений: как создать и передать в разработку тёмную тему

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


В конце 2019 года зарелизили iOS 13 и Android 10 с поддержкой автопереключения на тёмную тему. Мы решили добавить её в приложение «Ростелеком Ключ» под iOS и Android, над которым работали в тот момент. В процессе не обошлось без сложностей. Рассказываем о нашем опыте, чтобы вы в аналогичной ситуации сэкономили время и нервы.
Всего голосов 10: ↑10 и ↓0+10
Комментарии5

FigmaExport: как автоматизировать экспорт UI-Kit из Figma в Xcode и Android Studio проекты

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


Если вы iOS- или Android-разработчик и дизайн вашего проекта разрабатывается в Figma, то скорее всего вы сталкиваетесь с проблемами при экспорте ресурсов: цвета выгрузить нельзя, а иконки и картинки экспортировать неудобно. В этой статье я расскажу, как можно облегчить себе жизнь и автоматизировать экспорт UI-Kit из Figma напрямую в Xcode и Android Studio.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии13

Обзор Google Play Billing 4.0.0

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

Всем привет. Я SDK Engineer в Qonversion Мария Бордунова.

Сегодня речь пойдет о библиотеке Google Play Billing Library 4.0.0, которая к концу этого года должна открыть новые возможности для приложений со встроенными покупками.

Согласно анонсу Google, четвертая версия Billing Library позволит оптимизировать покупки внутри приложений:

Появится возможность приобретать несколько расходуемых (consumable) in-app продуктов единовременно. На данный момент можно покупать только 1 единицу продукта за раз. 

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

Так как еще не все перешли на Billing Library v4, я бы хотела рассказать, на что стоит обратить внимание при миграции на новую версию.

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

Регулярные выражения (regexp) — основы

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

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.

Читать далее
Всего голосов 50: ↑42 и ↓8+43
Комментарии76

Android in-app purchases, часть 1: конфигурация и добавление в проект

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

Начинаем серию статей о подключении подписок в мобильных приложениях на Android. В этой статье разберём:

• как создавать продукты в Google Play Console;
• конфигурировать подписки: указывать длительность, стоимость, пробные периоды;
• получать список продуктов в приложении.

Познакомьтесь с остальными статьями из этой серии:

1. Android in-app purchases, часть 1: конфигурация и добавление в проект. - Вы тут.

2. Android in-app purchases, часть 2: инициализация и обработка покупок.

3. Android in-app purchases, часть 3: получение активных покупок и смена подписки.

4. Android in-app purchases, часть 4: коды ошибок от Billing Library и как не облажаться с тестированием.

5. Android in-app purchases, часть 5: серверная валидация покупок.

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

Безопасность REST API от А до ПИ

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

Введение


Умение реализовать грамотное REST API — полезный навык в наше время, т.к. все больше сервисов предоставляют свои возможности с помощью API. Но разработка REST API не ограничивается реализацией HTTP запросов в определенном стиле и формированием ответов в соответствии со спецификацией. Задача обеспечения безопасности REST API не так очевидна, как, например, обеспечение безопасности баз данных, но ее необходимость не менее важна.
В настоящее время многие онлайн системы с помощью API передают приватные данные пользователей, такие как медицинские или финансовые. Текущая же ситуация с безопасностью в веб-приложениях весьма печальна: по данным Comnews порядка 70% содержат кри­тичес­кие уязвимости. Поэтому всем, кто участвует в проектировании, реализации и тестировании онлайн систем, важно иметь общую картину по существующим угрозам и способам обеспечения безопасности как всей системы, так и используемого REST API.

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

image
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии22

Рисование собственных представлений (View) в Android

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

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

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

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

Зачем создавать собственные представления?

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

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

Информация

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