Как стать автором
Обновить
0
0
Андрей @AndreyBN95

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

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

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

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

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

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

Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости

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

Всем привет! Снова с вами Юрий Шабалин. Уже много лет я занимаюсь безопасностью мобильных приложений и в своих исследованиях доношу важность этого направления для бизнеса.

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

Давайте посмотрим!

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

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

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

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

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

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

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

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

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

Где 15 минут пешком от дома до метро в Москве и как различать панельные дома…

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

Продолжаем изучать географию столицы и как она влияет на комфорт жилья. В этой публикации подключим маршрутизацию и расчитаем пешеходные расстояния от входа в метрополитен до жилых зданий. В прошлый раз я анализировал жилье в городе на удаленность от негативных факторов и поделился инструкцией "Где в Москве жить «неплохо»". Теперь же перейдем на позитивные факторы выбора места квартиры и найдем в Москве жилые дома в шаговой доступности от метро.

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

Как зловредные приложения могут скрывать работу с буфером обмена в Android 14

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

Вы когда-нибудь копировали в буфер обмена уязвимую информацию, например, пароли, номера кредитных карт, сообщения или личные данные? Если да, эти данные могут оставаться в буфере устройства достаточно длительное время. Доверяете ли вы буферу обмена и приложениям, получающим доступ к этим данным? В этой статье мы изучим Android Clipboard Manager и продемонстрируем необходимость более качественной защиты копируемых данных.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+51
Комментарии3

Читаем/записываем файл в Андроиде без запроса пермишинсов

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

Считаете, что для чтения файла в андроиде нужен

Manifest.permission.READ_EXTERNAL_STORAGE

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

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

Как я создавал мобильное приложение для хранения прочитанных книг BookDesk

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

Всем привет! Меня зовут Александр, мне 33 года и я React-разработчик из Беларуси (10 лет опыта во фронтенде).

Я хочу рассказать о моем опыте создания мобильного приложения для хранениях прочитанных книг BookDesk.

Все началось еще в 2020 году, когда началась пандемия коронавируса, и всем пришлось находиться в изоляции. Тогда и пришла идея о создании своего приложения. У меня богатый опыт разработки веб-приложений на React, и поэтому я решил попробовать себя в новом направлении. Я решил долго не думать над технологиями и использовать React Native в связке с Node.js и MongoDB, т. к. ранее я уже работал с Node.js и MongoDB для создания веб приложений и, поэтому, выбор был очевиден.

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

Изучаем веб-сервисы ChatGPT и пробуем программировать

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


Прямого доступа к сервисам OpenAI в РФ, как известно, нет. Для работы с ChatGPT многие пользуются телеграм-ботами, чаще всего бесплатными. В основном, запросы к ним — непритязательные. Пользователи практикуются в английском и, не раздражая никого пробелами в орфографии, получают списком все свои ошибки. Можно задавать ботам относительно простые вопросы.

Но, боты, в подавляющем большинстве работают на версии GPT3.5, возможности которой ограничены. Поэтому даже на хороший, но не релевантный запрос можно получить очень странный ответ, который начинается чем-то вроде «Да, я просто языковая модель и не могу сделать того, что вы от меня хотите...» и т. д. Нельзя забывать и о том, что телеграм-бот едва ли сможет хранить контекст, размером более 4000 токенов.

Поэтому в некоторых случаях удобнее использовать именно веб-сервисы, у них функции побогаче.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+20
Комментарии8

Установка кастомных прошивок. Root-права и Magisk

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

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

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

Ломаем Android. Русификация китайских авто

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

Как я ломаю и кастомизирую Android и как я до этого дошел.

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

Читать с удовольствием
Всего голосов 33: ↑29 и ↓4+34
Комментарии76

Возможна ли жизнь после плеймаркета?

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

Привет, старина! Представь свой обычный рабочий день андроид разработчиком. Ты открываешь почту и видишь сообщение как на картинке. Твои действия?

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

Разбор Android 14 для разработчиков

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

Полный разбор всех изменений в Android 14, которые полезно знать всем кто занимается разработкой приложений и их развитием: новые требования по работе в фоне, новые разрешения для работы с медиа, а также закрытие уязвимостей и конечно же немного полезных фичей для пользователей! Все подробности читайте в статье!

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

Ускоряем поиск по коду в Android Studio

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

Рассмотрим возможности Android Studio, позволяющие быстрее ориентироваться в коде: находить нужные фрагменты и выявлять связи между ними.

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

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

Библиотека «Jetpack Compose» для начинающего Android-разработчика

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

Здравствуй, дорогой читатель. Каждому Android-разработчику во время разработки своего приложения необходимо сталкиваться с созданием пользовательского интерфейса. Для этого существует несколько способов, и сегодня будет рассмотрен один из них - Jetpack Compose UI.

Jetpack Compose - это библиотека, которую представила Google в 2019 году. Данная библиотека позволяет удобным способом создавать и организовывать интерактивный UI, облегчает тестирование и дает возможность грамотно использовать ресурсы устройства.

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

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

Паттерны проектирования в Kotlin

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

Паттерны проектирования в Kotlin


Говорят, что «паттерны проектирования — это обходные пути недостатков определенного языка программирования». Интересное суждение, если бы только оно не было сказано апологетами Lisp и Schema.


Но, похоже, разработчики языка Kotlin восприняли это высказывание по-настоящему близко к сердцу.

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

Koin: Простой и легковесный фреймворк для внедрения зависимостей

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

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

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

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

Ракету пустил и забыл. Или как заставить DI работать

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

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

Сегодня нужно написать простенький экран, который будет отображать список. Вы с огромным энтузиазмом начинаете реализовывать прекрасный список - каталог товаров магазина. Один запрос, один список. Все сделали красиво, фрагмент создался, подтянул из DI ViewModel, которая в свою очередь передала остальным слоям, чтоб загрузить данные по АПИ и закешировать их. Все эти компоненты правильно освобождаются, так как все это сделано как надо отдельным Субкомпонентом с отдельным скоупом.

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

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

Читать далее
Рейтинг0
Комментарии21

Лучший спутник в вашем творческом процессе: Android Studio Bot VS ChatGPT для разработчиков

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

Недавно Google анонсировала Android Studio Bot – нового чат помощника для нативной андроид разработки, который помимо генерации ответов на вопросы обладает дополнительным набором фичей, в разы облегчающие работу разработчика. В этой статье мы разберемся на что способен новый инструмент от Google, сравним его с нашумевшим ChatGPT и выясним сделает ли он вас эффективнее при погружении в разработку и решении повседневных задач.

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

Авторизация по биометрии — Kotlin

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

Возможно вы знаете, что есть такая штука, как «менеджер паролей», где хранятся абсолютно все ваши логины, пароли и сайты, к которым они прикреплены. Удобная штука, чтобы не запоминать пароли и уж тем более не писать их вручную. Кому такое надо common. Поэтому многие и пользуются такими штуками по типу KeePass. А теперь смоделируем ситуацию:

Вы решили сходить в магазин и купить какой‑нибудь чешский нефильтрованный напиток, посмотрели на время и увидели, что сейчас 21:45, и совсем скоро магазины закроются. Поэтому вам пришла гениальная идея — побежать, пока магазин не закрылся, но по пути вы уронили телефон и даже этого не заметили. Когда вы возвращались домой с напитком, вы обнаружили, что вашего телефона нет, а каким‑то чудом вы пообещали себе 2 дня назад, что поставите пароль на телефон «на следующий день», что, конечно же, не сделали. Через пару минут вы заходите через ноутбук или компьютер, нажимаете на кнопку «выйти со всех устройств» и думаете, что всё — никаких проблем не будет, но тут вы заходите в вашу любимую социальную сеть и видите, что вашим друзьям или коллегам было отправлено сообщение о займе 1000 рублей. В этот момент вы понимаете, что у вас был включен тот самый менеджер паролей, в который мог зайти абсолютно любой, получив ваш телефон в руки.

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

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

Ручной DI на Котлине? Легко! Ну, почти…

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

Все мы знаем, что Dagger - бич современного общества стандарт индустрии, если это касается Dependency Injection. Все мы знаем, что Dagger хоть и является мощным фреймворком, но сборка проекта с ним занимает довольно много времени, Dagger - страшный сон для многих. А что если отказаться от него? Но в пользу чего? Может быть писать все руками?

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

Информация

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

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

Mobile Application Developer
Junior
От 80 000 ₽
Java
Kotlin
Android development
Android Studio
Android SDK
Retrofit
Flow
Coroutines
Room
MVVM