Обновить
512K+

Android *

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

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

Как и зачем мы затащили GeckoView в Почту

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

Начиная с июня 2023 года мы стали получать жалобы от пользователей о том, что у них не отображаются письма в Android-клиенте Почты Mail.ru. В ходе исследования мы даже приглашали пользователя к нам в офис для отладки. В конце концов мы поняли, что проблема на стороне WebView, компонента, с помощью которого мы можем отображать веб страницы. Ни для кого не секрет, что WebView используется во многих банковских и почтовых клиентах, в приложениях интернет-магазинов, сервисов доставки и многих других. Также изучили другие почтовые сервисы, нам хотелось понять, как они с этим справились. Оказалось — никак :)

А теперь обо всём в подробностях и с кодом

Как сломать скомпилированный код, не нарушая бинарную совместимость

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

Привет! Я Антон, Android-разработчик в команде Т-Бизнеса. Занимаюсь интеграцией нескольких наших внутренних SDK в приложение и иногда участвую в их разработке.

Хочу поговорить про проблемы обратной совместимости, которые я встречал в своей работе, и предостеречь от выстрела себе или клиентам вашей библиотеки в ногу.

Читать далее

Как создать аудиоплеер. Часть 3. Настройка приложения с аудиоплеером и обработка звука

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

Вот и снова я! Меня зовут Дмитрий Булгаков, я Android-разработчик в HiFi-стриминге Звук, и это третья часть нашего большого гайда, в котором я рассказываю, как можно создать аудиоплеер в приложении. Мы поговорим о дополнительных настройках приложения с аудиоплеером и аудио эффектах, которые можно применять к звуку.

Читать далее

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

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

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

Читать далее

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

Время на прочтение4 мин
Охват и читатели4K
В нашем новом выпуске исследуем рынок работы для iOS-разработчиков, использование ИИ и кроличьи норы оптимизации, погружаемся в мир Lint-a, строим BDUI, определяем рынок мобильных приложений в 1 квартале 2024 года и многое другое. Подключайтесь!

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

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

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности

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

Рубрика «сам себе экосистема» уже успела стать постоянной в моем блоге. Для тех, кто читает меня в первый раз, расскажу: одним из основных направлений блога всегда был моддинг и попытка использования устройств прошлых лет в современных реалиях. Именно поэтому я пишу клиенты нужных мне сервисов с нуля, дабы иметь возможность пользоваться такими замечательными смартфонами, как Xperia Pro, Xperia Play, Desire Z и конечно же Motorola Droid, а в статьях я делюсь с вами не только причинами своей мотивации, но и рассказываю, как разрабатываются приложения для 10+ летних смартфонов с нуля и с минимальным набором зависимостей и детали реализации тех или иных фишек. В сегодняшнем материале мы подведем с вами промежуточные итоги и узнаем, справляются ли смартфоны 14 летней давности с современными сервисами?
Читать дальше →

Mobius 2024 offline. День второй

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

Привет, Хабр!

Вот и вторая часть репортажа о конференции Mobius 24.

День начался сразу с первого доклада и теперь просторный зал Альфа принадлежал андроидам, в отличие от вчерашнего дня)

Multiplatform UI with Compose
Алексей Гладков

Алексей поделился полезными советами, как поддержать Compose на разных платформах и конфигурациях экрана. 

Судя по тому, что многие в зале на ходу конспектировали его доклад, с болью адаптации Compose-экрана под разные устройства мы встречаемся часто. Хотя фронтендеры с проблемами вёрстки сталкиваются постоянно, их опыт не всегда подойдет для Compose Multiplatform.

Мы посмотрели, как удобно реализовать архитектуру и навигацию в проекте, который будет собираться под разные платформы, какие common-компоненты лучше выделить. Хороший совет продумать обработку keyboard shortcut-ов для улучшения UX пользователей десктопа, и Compose Multiplatform даёт такую возможность.

Понравилась идея использовать репозиторий с Flow настроек приложения (AppSettings), чтобы слушать изменения и оперативно отрисовывать UI.

В проекте Compose Multiplatform Wizard можно найти весь актуальный на даный момент стек библиотек, единственное, он обновляется очень часто, примерно раз в неделю.
Общие советы, которые дал нам Алексей: смотреть на разные форм-факторы дисплеев, по возможности проектировать абстрактные экраны, рассматривать компонент экрана как контейнер, что близко к устройству супераппа. И, конечно, толкать дизайнеров, чтобы заранее продумывали UI под разные платформы :-)

Презентация

Читать далее

Как мы строили BDUI: опыт Яндекс Маркета

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

Привет! Меня зовут Алексей Морозов. Я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Наша команда делает проекты, которые должны были улучшить скорость приложения, его качество и скорость разработки. Однако раньше такие проекты решали эти проблемы только на время, приложение снова деградировало. Всё это напоминает древнегреческий миф, в котором Сизиф толкает в гору камень, он скатывается вниз, и всё начинается по новой.

Такое положение дел нас не устраивало, поэтому было принято решение изменить подход. И мы построили BDUI (Backend Driven UI). В этой статье я расскажу о том, как это случилось, что сделали и какой в итоге получили результат. 

Читать далее

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал)

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

В этой статье мы рассмотрим тонкости создания Proof of Concept (PoC) мобильного приложения, построенного с помощью фреймворка SwiftUI и бэкенда с использованием FastAPI и OpenAI API. Дополнительно я продемонстрирую эффективные архитектурные паттерны для SwiftUI-приложений, в частности MVVMP в сочетании с принципами SOLID и Dependency Injection (DI). Для андроид код можно легко перевести на Kotlin с помощью Jetpack Compose Framework.

Читать далее

NTP для мобильных разработчиков: Как точное время повысит качество ваших приложений

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

Все разработчики мобильных приложений сталкивались с проблемой точности времени. Часто для ее решения прибегают к различным методам, например, получают время с собственного сервера. Однако, существует гораздо более простой и удобный способ — использование NTP (Network Time Protocol). В этой статье мы разберемся, что такое NTP, как он может быть полезен для мобильных разработчиков, какие библиотеки существуют для работы с ним и в каких кейсах его использование особенно актуально.

Читать далее

Погружение в мир Lint'a в Android-проекте (часть 1)

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

Статические анализаторы уже давно являются неотъемлемой частью разработки проектов не только на Android. Они позволяют выявлять ошибки, несоответствия стандартам code style, производительности или безопасности, обозначать какие-то узкие места, сокращать code review и т. д. Android Studio «из коробки» содержит огромное количество всевозможных проверок, но, как правило, этого недостаточно, всегда есть какие-то неучтённые проблемы, внутренние правила компании или команды разработки. Кратко расскажем про Lint, как начинали делать свои правила, с какими задачами сталкивались на первых этапах и как решали. Это поможет вам впервые погрузиться в тему, так как интернет весьма скуден на статьи по ней.

Читать далее

Как создать аудиоплеер. Часть 2. Использование ExoPlayer

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

Всем привет! Меня зовут Дмитрий Булгаков, я Android-разработчик в HiFi-стриминге Звук, и я продолжаю рассказывать вам о том, как можно создать аудиоплеер в приложении. Во второй части гайда мы поговорим об использовании ExoPlayer.

Добро пожаловать на разбор!

Читать далее

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

Время на прочтение4 мин
Охват и читатели3.3K
В новом дайджесте разбираем основы iOS-разработки в Revolut и оцениваем финалистов Apple Design Award 2024, обновляем адаптивные макеты на примерах с I/O и продолжаем ставить на Flutter, тираним пользовательские интерфейсы, катим MobAIle-разработку, делаем кондиционер умным и многое другое. Подключайтесь!

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

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

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

Shared Element Transition в Jetpack Compose

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

Привет, Хабр! Меня зовут Артем и я занимаюсь разработкой приложений под Android, а еще с недавнего времени я стал рассказывать об этом.

Это текстовый вариант видео на моем YouTube канале Android Insights

В этой статье я хочу рассказать о том, как можно оживить ваше приложение, используя Shared Element Transition в Jetpack Compose

Читать далее

Превращаем Android-смартфон в USB-клавиатуру, мышь и флешку

Уровень сложностиСложный
Время на прочтение29 мин
Охват и читатели75K

Android-смартфон при подключении к компьютеру через USB может выглядеть как медиаустройство, модем или хранилище файлов. В этой статье мы научимся делать из него USB-клавиатуру, мышь и флешку.
Читать дальше →

Firebase Analytics в KMP: Android, iOS, Desktop (MacOS, Windows)

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

Я — Денис, Middle Android-разработчик в «Black Bricks». В этой статье я расскажу о том как я подключил Firebase Analytics в KMP проект для Android, iOS, Desktop (MacOS, Windows).

Читать далее

Mobius 2024 offline. День первый

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

Привет, Хабр!

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

Он был очень насыщенным, мне удалось побывать на шести докладах, в основном по android-разработке.

Проходит мероприятие в кластере Ломоносов - очень красивая и технологичная площадка снаружи и внутри. Сегодня, правда, было очень жарко, встречаем лето. При регистрации дают фигурку очаровательного Mobius-утенка, сохраню на память.

Тулкиты кодогенерации Android vs iOS, Анна Жаркова, Usetech

Первый доклад сегодня был насыщенным и хардкорным: Аня кратко рассказала о компиляции в целом и подробно - о способах кодогенерации в Android Studio (IntelliJ IDEA) и Xcode. С помощью кодогенерации можно решить самые разные задачи: от генерации View до упрощения генерации архитектурных компонентов.
Рассмотрели PSI (Programming Structure Interface), Xcode template, Android Studio Wizard template, создание собственных плагинов, Xcode Source Editor и SPM плагины, Android build-time генераторы (KSP, KCP). Упомянули ChatGPT, Copilot и Gemini, куда же без них.
Провели соревнование между Android и iOS, у кого инструменты удобнее. Спойлер: победила дружба)

https://mobiusconf.com/talks/536b1d2f4e0b4be8a60da58d4095c8c7/?referer=/schedule/today/

Нетворкинг

На первой “переменке” удалось побывать у стендов Ozon Tech и hh.ru. У обоих классные квесты, от классических опросов до призов за потение на гребном тренажёре. Лайк стикерам hh.ru, особенно с горящей перед дедлайном попой)

Как избавиться от рекурсии, или Как мой код попал в Google, Максим Сидоров, SberDevices

Читать далее

Один большой обман: как недобросовестные продавцы обманывают покупателей при покупке оригинальных смартфонов

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

За громким заголовком скрывается отнюдь не унылый кликбейт, а реальный случай с моим подписчиком Русланом. К сожалению, в последние годы на различных маркетплейсах появился развод с отправкой подделок вместо оригинальных устройств в попытке «впарить» реплику смартфона по цене оригинала, а также смартфоны «12GB RAM/1TB ROM S23+» по 7 тысяч рублей. Недобросовестные продавцы заполонили многие маркетплейсы, в том числе и российские и в сегодняшнем материале мы с вами узнаем: какие бывают разводы, как отстоять свои права и отличить реплику от оригинала, а также посмотрим, что за смартфоны присылают под видом оригинала и можно ли ими пользоваться. Интересно? Тогда добро пожаловать под кат!
Читать дальше →

Куда катится MobAIle-разработка

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели18K
Индустрия ИТ всегда была очень динамичной и быстро эволюционирующей. Например, мы в мобильной разработке всегда жили в информационном пространстве с конкурирующими и сменяющими друг друга фреймворками, парадигмами, библиотеками, операционными системами.

В целом, информационное пространство мобильной разработки довольно обособлено. Не выходя из него намеренно, мы редко узнаём про новости из мира backend, web-frontend или ML. При этом со временем тренды приходят из одной области в другую. Как пример — мода на реактивное программирование, завезенная из мира Java и бэкенда, которая постепенно сменяется асинхронным программированием благодаря языку Kotlin, который теперь активно захватывает свою долю в мире бэкенда. Или UDF-архитектуры, которые перетекли к нам из фронтенда, сменив MVP-архитектуру, когда-то перенесённой из бэкенда.

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

Мобильная разработка за неделю #539 (20 — 26 мая)

Время на прочтение4 мин
Охват и читатели5.5K
В этом выпуске работаем с SwiftUI на iOS 14, снова обсуждаем Google I/O 2024 и проводим скриншот-тестирование для превью Compose, оцениваем Flutter 3.22, пишем 2D-игры для кнопочных телефонов нулевых и многое другое. Подключайтесь!

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

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