Обновить
256K+

Android *

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

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

7 ножей в спину web-отладки

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

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

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

Читать далее

Утечки памяти в мобильных приложениях: руководство для QA-инженеров

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

Меня зовут Ира и я руковожу отделом тестирования мобильной платформы: наш отдел занимается разработкой инструментов для автоматизации тестирования мобильных приложений Ozon и тестированием внутренних библиотек, которые используются в наших приложениях. Около года назад мы пытались понять, почему у одной из команд джоба с автотестами отваливается по тайм-ауту. К слову, это был проект мобильного приложения для продавцов, и на нем у нас для автоматизации тестирования используются нативные фреймворки: Kaspresso + Kotlin для Android и XCTest + Swift для iOS.

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

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

Читать далее

Генеративный ИИ в Android и эффективность фоновой работы приложения — важное с Google I/O 2024

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

Всем привет! Меня зовут Тимур, я Android-разработчик в KTS

Состоялась конференция Google I/O, и наша команда решила выпустить обзор докладов. В этой статье — про интеграцию передового генеративного ИИ в Android-приложения, который предлагает идеальные ответы или даже делает сводку по вашей аудио записи. Также спецы из Google дали практические советы по оптимизации фоновой работы приложения для увеличения времени работы от аккумулятора.

Читать далее

Как создать аудиоплеер. Часть 1. Что под капотом

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

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

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

Поехали!

Читать далее

Новая жизнь или начало экзистенциального кризиса?

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

Ни для кого не секрет, что популярные языки программирования развиваются по схожему сценарию. Сначала появляется новый язык программирования с амбициозной и благой целью решить те или иные проблемы уже существующего языка, которые иначе, как созданием нового языка программирования, не решить. Далее язык набирает популярность, часто путем обрастания различными модными фичами. Теряет связь с миром свою простоту и лаконичность в бесконечной погоне за новыми возможностями. В какой-то момент наступает экзистенциальный кризис в виде Франкенштейна. А как отмыть кровь решать подобные проблемы, мы уже знаем. Или я несколько утрирую (или нет?), и, возможно, не все так плохо? Сегодня поговорим об этом в общем и о новом функционале языка Dart в частности.

Читать далее

Мобильная разработка за неделю #538 (13 — 19 мая)

Время на прочтение4 мин
Охват и читатели4.3K
В новом дайджесте обсуждаем прошедшую I/O, проводим карантин UI-тестов и смотрим как Notion ускорил запуск на Android в 2 раза, отмечаем новые Flutter и Dart, боремся с догмами программирования и многое другое. Подключайтесь!

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

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

Слежка через пуш-уведомления на смартфонах

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


Недавно стало известно о новом виде слежки за пользователями смартфонов: через пуш-уведомления в iOS и Android. Газета Washington Post написала, в частности, что эту тактику начало использовать ФБР (кэш статьи).

Довольно интересно, как работает такой метод выслеживания.

Согласно расследованию, для идентификации пользователей ФБР запрашивает у компаний Apple и Google данные пуш-уведомлений, так называемые «пуш-токены» (push token). Эти данные можно запрашивать без предъявления ордера. С помощью пуш-токенов можно идентифицировать конкретный смартфон, а потом запросить у компании данные о его владельце.
Читать дальше →

Как использовать Python в нативном Android приложении. Мой опыт

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

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

Читать далее

Flutter и натив. Пример с Яндекс OAuth

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

В жизни каждого flutter разработчика наступает момент, когда нужно пересесть с удобного кресла Dart , на нативные табуретки swift или kotlin для реализации пары фичей. Показываю, как работать с хост-приложениями на примере Яндекс ID.

Читать далее

Второй пошел: Google опубликовала новую бета-версию Android 15

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

Источник: lavanguardia.com

Операционную систему Android 15 ждут многие, но она появится лишь в третьем квартале 2024 года. Для всех желающих ознакомиться с ОС корпорация Google опубликовала вторую бета-версию.

Протестировать новую версию «робота» можно на Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8 Pro, Pixel Fold и Pixel Tablet, а также на ряде мобильных устройств от Honor, iQOO, Lenovo, Nothing, OnePlus, OPPO, Realme, Sharp, Tecno, vivo и Xiaomi. Что нового и интересного появилось? Подробности под катом!
Читать дальше →

Поэтапный гайд Android-разработчика с нуля

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

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

Этот гайд — попытка помочь таким же начинающим, каким я когда‑то был, быстрее попасть в профессию.

Читать полностью

Как написать свой клиент для YouTube, не привлекая внимания санитаров

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

Привет, Хабр! Когда‑то давно я наткнулся на ролик, где парень писал консольный клиент для YouTube. Идея была просто потрясающей!

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

Стоит ли говорить о том, что такое решение сильно теряет в производительности и абсолютно нежизнеспособно на какой‑либо длительный период времени?

Читать далее

Как я доказывал Google, что мне нужны данные юзеров, но я не скамер

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

Привет! Я Влад, Android-разработчик. Три года я делаю корпоративное приложение банка. Сегодня поделюсь темой, из-за которой я фрустрировал три месяца, столько же общался с проверяющими из около-гугловой компании, наблюдая, как приложение теряет баллы в сторе.

Речь пойдёт про спортивный челлендж. Однажды мы пригласили сотрудников посоревноваться в количестве шагов. На мне была реализация функционала на Андроид. А я всегда говорил: хочешь спокойствия — выбирай Айфон, хочешь веселья — Андроид.

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

Читать далее

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

Гейминг за 300: как я купил и оживил дешевую игровую консоль на Android. Можно ли поиграть, сэкономив на шаурме?

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

Несмотря на незаурядное название, наверняка многие олдовые читатели будут рады видеть статью в «старом» формате с оживлением и попыткой использования чего-то очень дешевого, грязного и нерабочего. В процессе подготовки подробного материала о том, как работали 2D игры на телефонах из прошлого, я не терял времени и искал различные интересные девайсы на онлайн-барахолках «за копейки». Так уж получилось, что на моей карте осталось 60 рублей, ещё 250 рублей задонатил читатель и я увидел её: Android-игровую консоль «на запчасти», которую мне удалось забрать всего за 300 рублей. Сегодня мы с вами: поговорим, есть ли смысл брать дешевые консоли на Android, во всех подробностях отремонтируем и отреставрируем нерабочий, грязный девайс «из подвала» и проведем бенчмарки эмуляторов, дабы понять — реально ли получить игровую консоль по цене шаурмы. Интересно? Тогда жду вас под катом!
Читать дальше →

Developer Keynote Google I/O 2024: официальная поддержка KMP, развитие Gemini и AI в Андроиде

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

Всем привет! Меня зовут Мялкин Максим, я лид мобильной команды в KTS. Сейчас проходит Google IO 2024, и мы с ребятами в команде решили выпустить обзор треков, которые нам показались интересными. Мы сконцентрируемся на Android-направлении. На основном keynote все внимание было уделено развитию AI, также это коснулось и части разработки.

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

Читать далее

Опыт публикации Андроид приложения в Google Play независимым разработчиком в 2024 году

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

Прошло почти 2 месяца с момента выпуска моего не первого бесплатного приложения в Google Play в 2024 году, хотел бы поделиться своим опытом/граблями.

Как разбогатеть Андроид разработчику в 2024 году.

Читать далее

Копаемся в встроенном приложении камеры старого Xiaomi. Часть 2

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

Попытаемся отреверсить и заглянуть в реализацию фото-эффектов приложения камеры Xiaomi 8 летней давности

[Начать реверс!]

Как мы реализовали кнопку со свайпом на Jetpack Compose

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

Привет, Хабр! Меня зовут Женя Мельцайкин, я работаю в команде мобильной разработки Контура.

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

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

Читать далее

Как мы отслеживаем просадки FPS в Альфа-Мобайл?

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

Всем привет ? я Максим Кузнецов a.k.a. Android-developer из Альфа-Мобайл. В этой статье я хочу поделиться нашим опытом внедрения механизмов мониторинга производительности в продукты компании. Почему это важно? Потому что производительность напрямую влияет на опыт пользователей, рейтинги приложений и конверсии. Мы рассмотрим статистику, проблемы, наш горький опыт и планы на будущее. Давайте начнем! ?

Читать далее

Мобильная разработка за неделю #537 (29 апреля — 12 мая)

Время на прочтение4 мин
Охват и читатели3.2K
Собрали дайджест сразу за две недели — в нем материалы про Composable Architecture и новый компилятор K2, Room для Kotlin Multiplatform и будущее магазинов приложений, самые скачиваемые и зарабатывающие приложения в России в апреле, превращение игрушечного робота-доставщика в ровер и многое другое. Подключайтесь!

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

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