В многомодульных приложениях Android существует проблема организации зависимости gradle. Каждая зависимость указывается отдельно.
Android разработчик в КION by MTS Digital
Отключаем Jetifier и ускоряем сборку: опыт Тинькофф.Бизнес
Привет, Хабр!
Уже пять лет наша команда разрабатывает Тинькофф.Бизнес – мобильный банк для юридических лиц. За это время наше Android-приложение успело набрать целых 200 модулей и 400 тысяч строк компилируемого кода.
Модуляризация приложения не всегда идет ему на пользу – нам приходится решать большое количество задач и проблем, связанных со скоростью сборки.
В этой статье я расскажу и покажу, как мы ускорили билд, отключив Jetifier.
Интересные приёмы, взятые из исходников Android
В процессе чтения исходников Android SDK я замечал интересные механики и приёмы написания кода, какие-то из них до сих пор используются при создании новых библиотек, другие, напротив, заменены более логичными и понятными конструкциями. В этой статье я постараюсь перечислить всё, что смог заметить сам при изучении исходников Android'а. Сразу отмечу: эта статья не претендует на полноту материала и возможно вы нашли даже больше интересных моментов при чтении кода, ладно, погнали, короче!
Как сделать свой сервер мобильному разработчику, если он никогда такого не делал?
У меня ушел один месяц на создание своего сервера. Две недели ушло на понимание функционала и сборку прототипа. Одну неделю я писал Ktor-сервер на Kotlin и визуал в приложении на Flutter. И еще одну неделю тестировал. И я хочу, чтобы вы сэкономили две недели, когда решите создать ваш бэкэнд.
Измеряя sequences
Измерение sequences в сравнении с обычными коллекциями. Смотрим под капот и разбираемся, как работают sequences и за счет чего мы получаем выигрыш в производительности.
Много кода и теории...
Как перестать бояться Proguard и начать жить
Здравствуйте, я Android разработчик и я больше не боюсь ProGuard...
Обычно, об этой утилите вспоминают, когда сталкиваются с dalvik dex-limit issue или с требованием улучшить безопасность приложения. К сожалению, правильно настроить Proguard удается далеко не с первого раза. Я часто наблюдал, как многие, сломав проект, выключают Proguard и включают поддержку Mulditex и каждый раз немножечко грустил по этому поводу, ведь Proguard помогает как сократить размер приложения, так и повысить его производительность.
В итоге, я решил написать статью, в которую смогу поместить всю полезную информацию, которую я узнал за несколько лет работы с Proguard и которая могла бы помочь как совсем новичкам, так и тем, кто уже что-то знает.
Как настроить Charles
Приложение Charles Proxy - большой помощник и тестировщику, и разработчику. Мы хотим рассказать вам про функции «Чарльза», показать, как им пользуемся в своей работе. Но для начала поможем разобраться с приложением и правильно его настроить.
Ошибка в stacktrace из продакшена
В этой статье я расскажу про исключительную ситуацию, которая произошла с одним исключением в продакшене нашего Android приложения.
«Наташ, вставай!» или как научить GitHub присылать вам SMS
Привет, Хабр! В одной из прошлых своих статей я уже писал про API для работы с SMS-сообщениями от компании МТТ (входит в экосистему МТС). На этом можно было бы и остановиться, если бы не одно «но». Не так давно вышла в свет платформа МТС Exolve за авторством всё той же компании МТТ. Методы для работы с SMS у MTT Telecom API и MTC Exolve очень похожи, за исключением одного: чтобы «покрутить в руках» MTC Exolve, не нужно заключать договор.
Cегодня мы «поймаем двух зайцев»: посмотрим, как работает GitHub Actions и научимся отправлять SMS с помощью МТС Exolve.
Как мы запустили рекомендацию похожих фильмов в онлайн-кинотеатре
Привет, Хабр! На связи Леша Мельников, Коля Ундалов и Паша Беловол. Леша — менеджер по продукту в KION (онлайн-кинотеатр в экосистеме МТС), отвечает за все, что связано с работой искусственного интеллекта и виртуальных ассистентов. Коля — ML-разработчик, а Паша — Android-разработчик. В этой статье мы расскажем, как, зачем и с каким эффектом мы запустили функционал «Похожие» в онлайн-кинотеатре KION.
CustomView Android. Кольцевая диаграмма для отображения статистики
Наверное, каждый Android-разработчик на этапе обучения или в процессе выполнения задач в коммерческом проекте задумывался о создании своей CustomView без использования сторонних библиотек, с собственной отрисовкой, анимацией, а также хорошей оптимизацией, чтобы CustomView адаптировалась под переданные ей размеры, правильно отображалась в независимости от экрана пользователя.
Самый верный и действенный способ постичь Дзен в реализации CustomView является работа над диаграммами и графиками. Чем сложнее будет задуманная диаграмма, тем больше этапов будет пройдено в её реализации: начиная от собственного расчета размеров, заканчивая многоступенчатой анимацией при отрисовке. Каждый из вас способен сделать что-то своё, но порог входа для этого, я соглашусь, достаточно высокий. Поэтому необходим некоторый пример, который поможет разобраться в этом темном лихолесье неизвестности.
Что ж, в этой статье мы пройдем все этапы реализации своей CustomView, с подробным описанием шагов, чтобы каждый смог повторить такое в своих проектах. Мы будем реализовывать кольцевую диаграмму для отображения какой-либо статистики, добавим много возможностей кастомизации диаграммы под любые виды задач, а также приправим это дело красивой анимацией отрисовки и сохранением состояния. Все будет написано на языке программирования Kotlin.
«Извините, но вам придется закодировать Щелкунчика»
Так и не попав на всем известный балет в декабре, мы решили организовать своего Щелкунчика. Речь не о балете, а о первом в мире IT‑контесте по переводу сказки на Python, Go, C#, JavaScript и Java, задача которого звучала так: «Извините, но вам придется закодировать Щелкунчика».
Меня зовут Вадим Рощин, я деврел МТС Digital, и сейчас я расскажу о том, как это было.
Как устроена бесшовная авторизация в онлайн-кинотеатре
Привет, Хабр! На связи Ваня Семенков из МТС Digital и команда продукта МТС ID, мы отвечаем за продуктовую вертикаль авторизации в онлайн‑кинотеатре KION. Наша цель — увеличивать% авторизованных пользователей, поэтому в этой статье мы расскажем, какие способы авторизации применяются в KION, разберем их плюсы и минусы, заглянем «под капот». А еще поговорим о том, как бесшовная авторизация повлияла на воронку C0.
Как сделать анимацию с помощью MotionLayout
Привет, Хабр! Меня зовут Павел Беловол, я Android-разработчик на проекте онлайн-кинотеатра KION в МТС Digital. Это новая часть сериала о внедрении фичи Autoplay в KION, в которой я расскажу про свой личный опыт работы с MotionLayout на примере продакшн-задачи в KION. Из этой статьи вы узнаете, где нужно использовать MotionLayout, а где лучше обойтись без него и писать код анимации самостоятельно.
ML-задача на 30 минут: гадаем по cookie
«Я тебя по IP вычислю!» – помните такую угрозу из интернета времен нулевых годов? Мы в Big Data МТС решили выяснить, можно ли составить хотя бы приблизительное представление о человеке, обладая информацией о сайтах, которые он посещает. Мы сгенерировали полусинтетические данные, чтобы понять, насколько смелыми можно быть в этих ваших интернетах.
Приглашаем вас попробовать составить портрет пользователя на основе этих данных и посмотреть, насколько точным он получится. Также под катом вы найдете наш baseline решения, написание которого займет около получаса.
Двадцать лет с юзкейсами: выжимаем практический опыт
Я буду использовать разговорное «юзкейс» вместо неуклюжей кальки «прецедент использования». Надеюсь, уважаемая публика меня за это простит.
Принцип единственной ответственности: глубокое погружение
Эта статья — попытка дать более глубокое объяснение принципу единственной ответственности, а также показать как его всё таки можно применять на практике. Кому интересно — добро пожаловать под кат.
Java собеседование. Коллекции
Как правильно внедрять изменения, которые никто не хочет
Типичная история тимлида. Съездил на конференцию, узнал новые вдохновляющие идеи и загорелся ими. Начал сходу внедрять то, что (по его мнению) точно сработает, и получил закономерный отпор команды: «Зачем нам вообще что-то менять?»
«Но доклад был классный! Это точно рабочий инструмент!» — думает тимлид. Он начинает поддавливать, иногда уговорами, иногда — другими способами. Команда — «в штыки». Лид получает странный опыт: пришел с благой целью, а получил негатив. Теперь он больше ничего не хочет менять, даже когда это на самом деле нужно. Команда тоже пострадала: после неумелого change-менеджмента она не готова к изменениям вообще. Знакомая история?
И что же, теперь обходить конференции и заразительные идеи стороной? Не внедрять изменения в рабочие процессы команды, пока коллеги сами их не захотят? Совсем нет. Сейчас я ведущий разработчик в облачной платформе Selectel, возглавляю команду Compute. На собственном примере расскажу, как правильно внедрять новые идеи в работу команды и можно ли собрать целый «фреймворк» для улучшений.
Если мошенники украли деньги с банковской карты — не спешите в полицию
Мне давно надоели эти банки, но инфопространство постоянно забито историями, как мошенники в очередной раз украли деньги, причём даже без социальной инженерии.
Народ жалуется на Tinkoff, Альфа-банк и прочие банки, на операторов сотовой связи. Портал banki.ru ввёл драконовские правила, что у него решения судов без оценок в народном рейтинге, на форуме нельзя написать, что itsoft выиграл дело у ВТБ — это реклама itsoft видите ли, то есть видно надо писать одна компания, но не скажем какая выиграла суд у ВТБ.
В статье “Банки не хотят внедрять многофакторную авторизацию и покончить с мошенничеством” есть простые рецепты, которые бы исключили случаи мошенничества хотя бы для тех, кто не разговаривает с мошенниками и не сообщает им коды. Народ хочет аппаратные токены, а банки не дают.
К написанию данной статьи меня ещё подвиг наш конфликт с хостером Leaseweb. 7 лет мы платили одну цену в месяц за аренду серверов там. А потом она внезапно выросла в 70 раз. Leaseweb решил, что за действия злоумышленников деньги надо списать с нашей корпоративной карты.
Банки и корпорации разрабатывают свои договоры и внутренние инструкции таким образом, чтобы не иметь никакой ответственности перед клиентом, а клиента ободрать до нитки за действия третьих лиц, даже если закон прямо говорит, что банк обязан вернуть клиенту деньги.