Как стать автором
Обновить
2
0

Пользователь

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

Что будет если команда, не видавшая Compose, решила делать новую сложную фичу на нём?

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

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

Звезды сошлись таким образом, что произошло 2 события:

Настало время делать кардинальный редизайн одного из наших главных экранов — карточки продукта

Мы приняли решение переходить на стек Jetpack Compose в нашем Android приложении.

В этой статье я расскажу, как мы сделали кастомный Compose экран с кастомным скроллом и снаппингом.

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

Как безопасно использовать открытый код и не лишиться прав на ПО

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

Привет! Я Олег Макаров, ведущий юрист ispmanager. Эта статья будет полезна всем, кто зарабатывает на ПО с открытым кодом. Расскажу, как безопасно работать с лицензиями Open source и что бывает с нарушителями — а уже попадались D-Link и Cisco Systems. Российский разработчик Антон Мамичев выиграл дело о нарушении его авторских прав на открытый код у Veeam Software, дочерней компании Amazon.

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

Автоматизация публикации Android приложений в Google Play и Huawei AppGallery — инструкция от А до Я

Уровень сложностиСложный
Время на прочтение19 мин
Количество просмотров16K

Всё еще публикуете релизы Android приложений вручную? Почитайте наше подробное руководство как полностью автоматизировать публикацию Android приложений в Google Play и Huawei AppStore через Gradle и CI/CD. Подробно от А до Я.

Почитать инструкцию
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

Передача данных между фрагментом и BottomSheetDialogFragment с использованием Dagger и Navigation Component

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

Передача данных между фрагментом и BottomSheetDialogFragment может быть эффективно организована с использованием Dagger и Navigation Component, избегая использования передачи данных чрез конструктор или интерфейс, а также SharedViewModel и Hilt. Данный подход позволяет сосредоточиться на интеграции зависимостей и управлении состоянием через стандартные инструменты.

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

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров12K

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

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

Читать далее
Всего голосов 57: ↑53 и ↓4+62
Комментарии15

Применение методологии OWASP Mobile TOP 10 для тестирования Android приложений

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

Согласно BetaNews, из 30 лучших приложений с более чем 500 000 установок 94% содержат по меньшей мере три уязвимости среднего риска, а 77% содержат хотя бы две уязвимости с высоким уровнем риска. Из 30 приложений 17% были уязвимы для атак MITM, подвергая все данные перехвату злоумышленниками.


Кроме того, 44% приложений содержат конфиденциальные данные с жесткими требованиями к шифрованию, включая пароли или ключи API, а 66% используют функциональные возможности, которые могут поставить под угрозу конфиденциальность пользователей.


Именно поэтому мобильные устройства являются предметом многих дискуссий по вопросам безопасности. Принимая все это во внимание, мы в ByteCodeрешили рассмотреть методологию OWASP Mobile TOP10 с целью продемонстрировать процесс проведения анализа мобильных приложений на уязвимости.


OWASP Mobile TOP 10 — одна из основных методологий тестирования приложений на уязвимости. В таблице 1 описаны 10 уязвимостей, которые применяются для характеристики уровня безопасности приложения. [2,7,11]

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

Жизнь без AppStore и Google Play: работаем с Huawei Mobile Services и AppGallery

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

С конца 2019 Huawei поставляет Android-смартфоны без сервисов Google, в том числе без привычного всем магазина приложений Google Play. В качестве альтернативы китайская компания предлагает собственные разработки — Huawei Mobile Services (HMS), а также магазин AppGallery. В этом тексте мы расскажем, как с этим жить и работать.

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

Модульность и DI в современном Android-приложении. Большой туториал от Яндекса

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

Всем привет! Я Денис Загаевский из Android-разработки Яндекс.Карт. Если вы развиваете многомодульное приложение или хотите разбить на части пока ещё одномодульное, этот туториал для вас.


Под катом расскажу, как удобно разбить приложение на модули, зачем это нужно и как потом приготовить в нём DI (dependency injection). Кто-то мог слышать мой доклад на Mobius 2021 Piter или в Школе мобильной разработки, а для всех остальных я написал эту статью.


Смотреть доклады

На Mobius:



В ШРИ:



Местами буду ссылаться на опыт Яндекс.Карт. Кстати, рабочий пример нашего подхода есть на GitHub.


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

От LiveData к Flow…

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

Мы Дима и Настя, Android-разработчики в компании СберЗдоровье. В этой статье мы хотим рассказать о том, как мы перевели весь наш проект с LiveData на Flow, с какими трудностями столкнулись и что полезного узнали. Эта статья будет полезна тем, кто работает с LiveData, уже пробовал / хочет попробовать Flow для хранения состояний во ViewModel, а также командам, которые планируют миграцию всего проекта на новый инструмент. 

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

Edge-to-edge в Android: делаем правильно

Время на прочтение8 мин
Количество просмотров16K
Прошедший Google I/O 2019 принёс массу нашумевших новинок, многие из которых будут влиять на индустрию мобильной разработки в ближайшие годы. Не менее интересно было следить за зарождающимися трендами. Сначала в историю ушли механические клавиши управления, экраны смартфонов становились всё больше, а боковые рамки всё незаметнее. На смену экранным системным кнопкам пришли жесты, оставляя всё больше пространства для потребления контента. Приложения отображаются на всей видимой поверхности дисплея, от нижней до верхней рамки, не стесняя себя условными границами статус-бара и навигационной панели. Мы на пороге эры Edge-to-Edge.


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

Рисуем эффект «Таноса» на Android (и не только)

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

Привет! Вопрос мобильным разработчикам: часто ли вам приходится работать с необычным UI? Если вы ответили утвердительно, то я по-доброму вам завидую. В своей повседневной практике мне в основном приходится работать со стандартным набором компонентов и их базовой настройкой. Абсолютно ничего не имею против, но хочется чего-то «эдакого»: кастомных компонентов, написанных с нуля, необычных анимаций и эффектов. Часто подобные вещи вызывают много споров (как среди разработчиков, так и конечных пользователей) а-ля «А на кой оно вообще надо», но лично для меня это ни что иное, как творчество. Кто-то красиво рисует, кто-то красиво поёт, а кто-то пишет красивые уникальные приложения, которыми интересно и приятно пользоваться. И мы, пожалуй, не можем обвинять авторов за бессмысленность «украшательств», как по-хорошему не можем судить художника за его работу.

К чему я – спросите вы. Я отвечу: настраиваю на нужный лад :) В рамках этой статьи мы коснёмся полезной темы и создадим что-то бесполезное в практическом смысле, но несомненно интересное и достаточно уникальное.

Уже интересно
Всего голосов 23: ↑23 и ↓0+23
Комментарии9

Как зарегистрировать Apple Developer в App Store для юридических лиц. Самый подробный гайд 2024 года

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.4K

Из-за санкций зарегистрировать аккаунт разработчика в App Store становится если не наказанием, то как минимум испытанием. Прочитайте эту инструкцию, прежде чем приступить к созданию Apple Developer. Рассказываем про нюансы с регистрацией и оплатой лицензии юридического лица.

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

Как зарегистрировать аккаунт разработчика в Google Play в 2024 году: пошаговая инструкция

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров12K

Мы часто помогаем клиентам не только с модерацией приложений, но и с регистрацией аккаунта разработчика в Google Play. Казалось бы — что такого? Вводишь данные и готово. Но лицензия платная, а на пользователях РФ санкции. Как в таких реалиях создать аккаунт, чтобы опубликовать мобильное приложение — рассказываем в статье.

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

Шпаргалка по шаблонам проектирования

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

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Всего голосов 192: ↑179 и ↓13+166
Комментарии66

Знай сложности алгоритмов

Время на прочтение2 мин
Количество просмотров1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Всего голосов 312: ↑296 и ↓16+280
Комментарии99

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

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров6.8K

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

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

Приложение отвечает: как мы уменьшили количество ANR-ошибок в шесть раз. Часть 1, про сбор данных

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

Пожалуй, одна из худших проблем, которая может случиться с вашим приложением, — ошибка ANR (Application Not Responding), когда приложение не отвечает. Если таких ошибок много, они могут негативно влиять не только на пользовательский опыт, но и на позицию в выдаче Google Play и фичеринг. 

В начале прошлого года количество ANRs в приложении Badoo превышало порог “Bad Behaviour” в Google Play. Поэтому мы собрали команду для решения этой проблемы и потратили несколько месяцев, экспериментируя с разными подходами. В результате мы смогли уменьшить количество таких ошибок более чем в шесть раз.

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

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

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

Приложение отвечает: как мы уменьшили количество ANRs в шесть раз. Часть 2, про исправление ошибок

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

В первой части статьи мы поговорили о том, что такое ANR (Application Not Responding), и рассмотрели несколько способов сбора информации об этих ошибках. А сегодня я расскажу о проблемах, которые мы обнаружили в нашем приложении, о том, как мы их исправляли и что из этого в итоге получилось.

Время запуска приложения

Первое, что можно сделать, чтобы уменьшить количество ANR-ошибок, — попробовать найти самые частые причины их возникновения. Начать можно с консоли Google Play — проанализировать самые большие группы ошибок.

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

Игры и деньги: риски правовой неопределённости

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

Игровая индустрия одна из самых динамически развивающихся индустрий, которая приносит огромную прибыль не только организаторам MMOG (Massively Multiplayer Online Game, массовая многопользовательская онлайн-игра), но и их пользователям. Сделки с виртуальными артефактами и игровыми объектами приносят большой доход. Например, самая дорогая официально подтверждённая покупка была совершена в игре Entropia Universe — пользователь приобрел виртуальной недвижимости на $ 2 500 000.

В мире сейчас насчитывается почти 2,5 млрд геймеров. Для некоторых людей онлайн-игры становятся второй реальностью, местом социализации, пользователи общаются, прокачивают своих героев, покупают цифровые артефакты. Возникает вопрос, какое место занимают виртуальные игры в правовой системе России. На многих игровых площадках можно совершать микротранзакции: покупать улучшенную экипировку, доспехи или новое оружие для персонажей, технику. Когда суммы, вложенные в игровые объекты, разрастаются до десятков тысяч рублей, а то и долларов/евро, на ум приходит вопрос: а как регулируются отношения, связанные с продажей и покупкой игровых артефактов, сделками по передаче игровых персонажей и аккаунтов, каковы риски и гарантии защиты имущественных прав геймеров при осуществлении таких сделок?
Всего голосов 16: ↑16 и ↓0+16
Комментарии19

Написание шейдеров в Unity. GrabPass, PerRendererData

Время на прочтение9 мин
Количество просмотров29K
Привет! Я хотел бы поделиться опытом написания шейдеров в Unity. Начнем с шейдера искажения пространства (Displacement/Refraction) в 2D, рассмотрим функционал, используемый для его написания (GrabPass, PerRendererData), а также уделим внимание проблемам, которые обязательно возникнут.

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


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

Информация

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

Специализация

Application Developer
Android development
Java
Kotlin
Clean Architecture