Обновить
256K+

Android *

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

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

Как моя 9-месячная дочь заработала больше 1000 долларов в программе bug bounty

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

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

Читать далее

Приложение для мобильных бригад: «толстый клиент» и полмиллиона строк кода

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

Привет, меня зовут Александр, я начальник отдела мобильной разработки в СИГМЕ. Хочу рассказать, как мы делали приложение для мобильных бригад. Тех самых ребят, которые выезжают на место аварий на объектах энергетики и делают так, чтобы свет и энергия в наших домах не отключались.

Читать далее

Менеджер паролей SmallKey

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

Всем привет! Меня зовут Николай, я Android-разработчик, и в этой статье я хочу рассказать про свой первый pet-project под названием SmallKey.

Читать далее

Быстрый старт в сборке метрик по билдам в android-проекте

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

Привет, Хабр! Меня зовут Андрей, я новый Android-разработчик в команде онлайн-кинотеатра PREMIER. 

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

Решение задачи

После проведенного анализа я выявил два варианта решения.

Читать далее

Бруклинский мост. Зачем генерируем C++ на Kotlin

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

Нелегко на рынке найти senior разработчика для конкретной сферы. Каждый из них имеет уникальные знания в своем языке и фреймворке, будь это Java, Kotlin, С++, JS или Swift. Каждый накапливал свои знания годами. Но найти senior разработчика, который одинаково хорош и C++ и в Kotlin, утром переписывает openssl, а по вечерам пинает мидлов за неправильное использование корутин, почти нереально.

Для каждого проекта нужны высококлассные специалисты, поддерживающие проект на плаву, развивающие его, предоставляя клиенту новые фичи, а заказчику - большие деньги. Уход каждого специалиста для компании приносит новые убытки, но вот уход ndk специалиста может привести проект к краху. Ладно, не все так драматично. Если у вас все под контролем.

Читать далее

Мобильная разработка за неделю #514 (7 — 12 ноября)

Время на прочтение4 мин
Охват и читатели2.7K
В новом выпуске новые правила Google Play для новых разработчиков и первый App Shortcut, корутины против потоков, навигация во Flutter и вредные тесты, перформящие креативы, собственные GPT и многое другое!

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

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

Как продвигать приложения: советы от RuStore

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

RuStore — российский магазин приложений, который предоставляет разработчикам широкий спектр возможностей для продвижения своих приложений. В этой статье мы поделимся практическими рекомендациями по продвижению приложения, уделив особое внимание оформлению его карточки. Рекомендации приведены в том числе с точки зрения ASO (App Store Optimization — оптимизация страницы мобильного приложения в интернет-магазине).

Читать далее

Мобильная разработка за неделю #513 (30 октября — 6 ноября)

Время на прочтение5 мин
Охват и читатели3K
В этом дайджесте задачи Yandex Cup и сложные фичи, стабильный Kotlin Multiplatform и собеседования в SberDevices, стартапы из одного человека, игры с помощью нейросетей, интерактивные виджеты и многое другое!

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

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

Как стилизовать текст на Compose через Spannable

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

Как часто вам приходилось стилизовать текст в jetpack Compose, хайлайтить ссылки, обрабатывать клики по ним? Скорее всего вы использовали только AnnotatedString, но что, если чуть-чуть добавить магии старого доброго Spannable?

Читать далее

Kotlin Multiplatform перешёл в stable. Что это значит?

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

Привет! Меня зовут Максим, я руководитель мобильной разработки в KTS.

1 ноября состоялся релиза Kotlin 1.9.20, beta компилятора k2. 

Но для нас интереснее глобальное изменение статуса KMP. Мы используем эту технологию в мобильной разработке и написали про неё несколько статей.

В статье подробнее рассмотрим, что изменилось в технологии с переходом в релиз.

Читать далее

Как сделать тесты на Espresso более читабельными и стабильными

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели5.2K
Если вы писали тесты на Espresso — тестовом фреймворке от Google с открытым исходным кодом, — то вы знаете, что они не всегда стабильны и легко читаемы. Меня зовут Ксения Никитина, я являюсь Android-разработчиком в мобильной команде «Лаборатории Касперского». В этой статье я предложу вам способ, как сделать так, чтобы ваши автотесты отвечали всем ключевым качествам: были хорошо читаемы, стабильны, логируемы, давали возможность делать скриншоты, работали с AndroidOS и, наконец, имели продуманную и понятную архитектуру.



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

Как реализовать приостановку трансляции и фоновый стриминг на Android с помощью опенсорс-библиотеки

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

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

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

Этот материал — продолжение моей предыдущей статьи про создание мобильного приложения для стриминга на Android. В ней я рассказывал о базовых моментах разработки. А сейчас поговорим о нюансах. Расскажу, как технически реализовать приостановку трансляции и фоновый стриминг на Android с помощью опенсорс-библиотеки rtmp-rtsp-stream-client-java.

Фоновый стриминг

Сначала разберём кейс, когда приложение переходит в фон и обратно на передний план. Если заглянуть чуть глубже в исходный код rtmp-rtsp-stream-client-java, станет понятно, что стриминг сам по себе проходит в отдельном потоке:

Читать далее

Байт-код — это просто! Как сделать DI по-настоящему быстрым

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

Привет! Меня зовут Григорий Юрков, и я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Два года назад мы начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.

Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения. В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.

Ускоримся!

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

В помощь тем, кто погружается в Smali

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

Целевая аудитория этой статьи — люди, которые решили заняться исследованием .apk файлов, имеющие опыт разработки под Android и знакомые с основами синтаксиса Smali. Эта статья является оригинальной и ранее нигде не публиковалась. При копировании, прошу указывать ссылку на этот источник.

Поскольку устройства, использующие операционную систему Android сегодня устойчиво сохраняют лидерство на рынке, программы для них не пишет разве что самый ленивый мобильный разработчик. Иногда программы ведут себя так, как мы этого ожидаем, а иногда (все чаще) не совсем так. И тогда, у пользователя программного продукта, особенно если он сам занимается разработкой, появляется ожидаемый интерес, и ему хочется понять почему программа делает то или это. Тогда пользователь, с чисто научно-позновательной целью, решает произвести вскрытие субъекта. Тут то на помощь ему и приходит множество инструментов для изучения файлов .apk.

Мой стандартный хирургический набор, на сегодняшний день, состоит из таких инструментов:
apktool - для декомпиляции и сборки apk
jadx-gui - когда хочется получить код приложения (или, что чаще — часть кода) в виде Java.
Bytecode Viewer — когда хочется получить код в виде Java, используя разные декомпиляторы, что дает иногда весьма интересные результаты.
zipalign — утилита из состава Android Studio, предназначенная для выравнивания содержимого файлов, упакованных в .apk.
apksigner - утилита из состава Android Studio, предназначенная для подписи исследуемого файла, и успешного его запуска на устройстве.

средства автоматизации собственной разработки — накапливаются с опытом. Иногда возникает столько рутинной работы, типа заменить A на B во всех файлах, что руки опускаются. Но, мы не из тех, кто сдается. И поэтому, исключительно из-за своей лени пишем утилиты, которые, собственно и позволяют нам лениться ). Однако, для меня, основными инструментами все же являются: файловый менеджер с хорошо организованным внутрифайловым поиском ( я использую Krusader, потому что Ubuntu), и редактор с какой-никакой подсветкой синтаксиса (я использую Kate, потому что Ubuntu).

На основании своего опыта исследования классических .apk (когда программа написана на Java или Kotlin c UI на xml шаблонах), ответственно заявляю, что получить из оригинального .apk рабочий проект Android Studio МОЖНО! И я говорю далеко не про Hello World. Но и тут есть свои особенности. Все зависит от того, насколько автор программы позаботился о защите ее кода. По моим наблюдениям до 80% программ уровня ширпотреба не имеют никакой защиты кроме примитивной обфускации.

Однако, и в этом случае для получения рабочего проекта на Java, скорее всего придется потрудиться. Во-первых: многие куски кода придется дописывать самому — декомпиляторы очень часто не справляются, но честно пишут, там где не могут воспроизвести код. Во-вторых: необходимо будет восстанавливать ресурсы из десятичного индекса в их привычный для разработчика Android вид. В третьих: подби

Читать далее

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

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

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

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

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

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

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

Читать далее

ActivityResult API и Compose

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

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

Читать далее

Мобильная разработка за неделю #512 (23 — 29 октября)

Время на прочтение5 мин
Охват и читатели3K
В новом дайджесте изучаем Swift OpenAPI Generator и работу Spotify на Bazel, вспоминаем 15 лет Android и обозреваем невизуальную доступность, внедряем карты, пишем бесполезные программы, возвращаемся к Windows Phone и многое другое!

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

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

Ситуация на российском рынке Android-разработки. Как разработчику оставаться востребованным специалистом?

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

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

Читать далее

Электронные книги? Аудиокниги? Смешать, но не взбалтывать

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

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

Читать далее

Оптимизируя sequences — или как мой код попал в kotlin

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

Рассказ о том, как я оптимизировал несколько функций kotlin sequences и как мои оптимизации попали в релиз kotlin 2.0

Читать далее