Обновить
128K+

Android *

Пишем под самую популярную мобильную ОС

122,91
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Мобильная разработка за неделю #484 (10 — 16 апреля)

Время на прочтение4 мин
Охват и читатели2.4K
В этом выпуске потоковое вещание и старые смартфоны, маски ввода номера и исследования трафика, архитектура микросервисов, закрытое сообщество для открытых проектов, запуск аналогов ChatGPT, ИИ-помощник для программирования от Amazon и многое другое.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

Чем новее, тем лучше: как мы с GSON на Kotlinx.Serialization переезжали

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

Привет, Хабр! Я Андрей Мещеряков, Android-разработчик в команде роста Тинькофф Инвестиций. Мы в Инвесте всегда стараемся пробовать новое и поддерживать современный стек технологий. Не обошли стороной и библиотеку Kotlinx.Serialization, которой сейчас пользуемся. Меня удивило малое количество русскоязычных публикаций по Kotlinx.Serialization, и я решил поделиться опытом Инвеста по миграции с Gson на Kotlinx.

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

Читать далее

Сам себе экосистема: Как я адаптировал старый смартфон под современные реалии и написал клиенты нужных мне сервисов

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели34K
image


Время неумолимо бежит вперед: выходят новые гаджеты, постепенно заменяя старые, превращая их в тыкву или в лучшем случае, в «тапочек» для звонков. Сейчас смартфоны стали практически одинаковы во всем: дисплей на всю площадь передней панели, почти полное отсутствие аппаратных кнопок, беспроводная зарядка… Это всё, конечно, здорово, но ведь иногда так хочется взять в руки старый, но такой необычный в наше время QWERTY-смартфон и попытаться его использовать как основной, да и цены на них могут приятно удивить: БУ девайс можно купить за несколько сотен рублей (~5-10$). Одна проблема — клиенты приложений на версии Android 1.6-2.0 безбожно устарели и давно не работают. Но иногда желание воскресить старый девайс превыше потребительского качества и тут я пришёл к мысли… а почему бы не написать с нуля свои клиенты популярных приложений? ВК с музыкой, YouTube, трекинг посылок. Так я и сел писать необходимые в повседневной жизни приложения, с нуля, на голом API Android, без каких либо фреймворков (и даже AppCompat). Получилось ли у меня это? Узнаем в статье!
Читать дальше →

Как мы улучшили самозащиту приложения благодаря KNOX

Время на прочтение9 мин
Охват и читатели5.3K
Привет! Меня зовут Сергей Занкин, я старший разработчик в мобильном штабе «Лаборатории Касперского» на проекте Kaspersky Safe Kids — это программа родительского контроля и защиты ваших детей в режиме 24/7.

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

image

Статья будет полезна тем, кто связан с MDM-технологиями, для управления мобильными устройствами, в частности через Samsung KNOX. А также тем, кто хочет узнать, какие возможности предоставляет KNOX для управления устройствами и как внедрить его в собственное приложение, и интересуется, какие могут быть сложности при внедрении и как подобрать нужный тип лицензии.
Читать дальше →

Как настроить автомиграцию в Room

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

Привет, Хабр! Меня зовут Роман, я Android-разработчик в IT-компании SimbirSoft. В этой статье я расскажу про автомиграцию в Room (версия не ниже Room 2.4.0), варианты ее использования, преимущества, которые она дает, и проблемы, с которыми мы можем столкнуться.

Автомиграция поможет упростить процесс работы с базой данных, особенно если она большая, и в нее часто вносятся изменения. Она позволит не писать самостоятельно сложные SQL-запросы, а сгенерирует их автоматически в специально отведенной директории. Это позволит избежать опечаток при миграции и сэкономить время (если у нас запросы с огромным количеством полей).

Дисклеймер: в этой статье я буду ориентироваться на то, что мы уже умеем работать с Room и знаем, для чего нужна миграция. Материал будет полезен Android-разработчикам уровня Middle.

Читать далее

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

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

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

Рассказываем про нейросети в Android-приложениях: какие есть инструменты для внедрения, как создавать свои модели и использовать готовые.

Читать далее

Исследование https-трафика мобильного приложения

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

Обычно я такими непотребствами не занимаюсь и уважаю частную жизнь приложений. Однако на днях мне довелось исследовать одно мобильное приложение написанное индусом в метро под iOS, а затем адаптированное под Android пьяным студентом «в комнате раздумий». Все действия выполнялись с целью дебага и понимания оптимальных условий для работы. Само приложение мы анализировать не будем, но подготовим среду для проведения исследований.

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

Читать далее

Custom View в Android — краткое руководство

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели49K

Обзор возможностей кастомных View с примерами кода на Kotlin + бонус в виде ссылок на полезные статьи и обучающие видео по данной теме.

1. Введение.
— Когда может понадобиться реализация собственного View?
— Способы создания собственного View.
— Иерархия View в Android.
2. Жизненный цикл View.
3. Конструкторы View.
4. Методы View.
onAttachToWindow()
onMeasure()
onLayout()
onDraw()
onSizeChanged()
onSaveInstanceState() и onRestoreInstanceState()
onTouchEvent()
5. Обновление View.
invalidate()
requestLayout()
6. Атрибуты для Custom View.
7. Дополнительные материалы для изучения.

Читать дальше

Мой ТОП эмуляторов Андроид обзор, сравнение

Время на прочтение9 мин
Охват и читатели249K

Здравствуйте! Как часто в вашей работе требовалось запустить какое-то непонятное приложение, которое очень не хочется или очень опасно запускать на личном смартфоне, а тестового устройства (жертвы будущих экспериментов) для запуска под рукой нет. 

Да, можно запустить Android Studio, но данное программное обеспечение требует предварительного изучения мануала - без этого не получится на нем что то запустить, но время и желание на такие задачи есть не всегда. Считается: что лучшая задача - та, которую можно делегировать другому человеку, а на все его возникающие вопросы ответить ссылкой на статью.

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

Читать далее

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

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

Тем, кто только начинает свой путь в разработке, сейчас сложно. Помимо малого количества вакансий ещё и везде реклама курсов, обещающих работу мидла через 6 недель обучения (а ведь когда-то я думал, что никто не переплюнет знаменитое «С++ за 21 день»).

С другой стороны лагеря бородатые сеньоры, последний раз искавшие работу где-то лет 10 назад, утверждающие, что высшее образование обязательно для того, чтобы красить кнопки. Ведь не может быть такого, что их годы, проведённые в ВУЗе, бесполезны. Истина, как обычно, где-то посередине, но найти эту середину придётся самостоятельно, готовых решений нет. Но я могу вам помочь.

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

Читать далее

Компонентный подход. Организуем навигацию с помощью библиотеки Decompose

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели15K

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

В статье много практики. Сначала я покажу, как с помощью Decompose и Jetpack Compose создавать отдельные флоу приложения. Далее обсудим реализацию bottom-навигации. И, наконец, объединим несколько флоу воедино, чтоб получить навигацию по всему приложению.

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

Читать далее

Мобильная разработка за неделю #483 (3 — 9 апреля)

Время на прочтение4 мин
Охват и читатели2.1K
В нашем новом дайджесте async/await и кодогенерация для Kotlin, перспективы развития Flutter, решение темной темы, -10х инженеры, игровые механики, человечество после GPT-4 и многие другие материалы.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

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

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

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

Читать далее

Ближайшие события

Настройка Fastlane в React Native

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

Цель:
Одним скриптом загружать новые билды в TestFlight и Google Play.

Идея для статьи зародилась после того, как я потратил кучу времени на настройку Fastlane для своего проекта на React Native. Во время настройки, я так и не смог найти публикацию, которая давала бы простую инструкцию по интеграции Fastlane от А до Я. Эта статья должна стать не более чем простой инструкцией по базовой настройке Fastlane под обе платформы IOS и Android.

Читать далее

Как уменьшить размер APK

Время на прочтение11 мин
Охват и читатели8.3K

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

Подробности

Смартфон-раскладушка на Android с двумя AMOLED дисплеями. Ремонтируем и смотрим на редчайшний Samsung SM-W2014

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели23K
image

Казалось бы, в 2023 году мобильный рынок уже давно заполонили одинаковые смартфоны, где меняются только технологии изготовления дисплеев, разрешение, железо, и иногда чуть-чуть корпус, но в целом все выглядят практически одинаково. Но немногие знают, что одни из самых сочных и необычных устройств выпускаются только… для азиатского рынка! Разве ж где-то ещё встретишь людей, которые ходят всерьёз с полноценными смартфонами-раскладушками, с двумя полноразмерными дисплеями и флагманским железом!? Проблема одна: в РФ достать такие аппараты очень тяжело, особенно теперь. Однако мне удалось раздобыть Samsung Galaxy SM-W2014 за копейки с… нюансом, который требовал обслуживания. А это значит, что сегодня мы с вами: перепаяем аккумулятор, портируем кастомное рекавери, вычистим хлам из прошивки и оценим, каково пользоваться таким девайсом сейчас? Интересно? Жду вас под катом!
Читать дальше →

Jetpack Compose Layouts часть 2

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

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

Читать далее

Свое мобильное приложение: от идеи до разработки, продвижения и развития

Время на прочтение20 мин
Охват и читатели55K

В этой статье я объединил все свои знания и опыт, охватил все этапы разработки мобильных приложений. В статье не будет кода, она будет полезной не только для Android, iOS и Flutter-разработчиков, но также тем, у кого нет опыта в программировании.

Я пройдусь по основным этапам разработки мобильного приложения:

Проработка идеи
Проектирование UX/UI
Разработка
Аналитика
Продвижение
Дальнейшее развитие приложения

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

Читать далее

Мобильная разработка за неделю #482 (27 марта — 2 апреля)

Время на прочтение4 мин
Охват и читатели1.9K
В новой подборке материалы о подготовке к собеседованию и кнопочном Android, о создании дизайна с Midjourney, рекордах рынка приложений и многом другом.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

Kotlin Multiplatform Mobile: как усложнить жизнь себе и упростить её потомкам

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

На внутреннем проекте red_mad_robot не хватало iOS-разработчиков, и Head of Android red_mad_robot Central Asia Влад Бауэр задумался о том, как можно ускорить процесс. И в итоге решил пошарить часть кода и перенести его в Kotlin Multiplatform Mobile. Спойлер: у него получилось, и теперь он рассказывает о нюансах, с которыми пришлось столкнуться.

Читать далее