Как стать автором
Обновить
140.17

Разработка под Android *

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

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

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

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

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

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

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

Новости

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 13

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

Ускоримся!
Всего голосов 30: ↑28 и ↓2 +26
Комментарии 39

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

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

Целевая аудитория этой статьи — люди, которые решили заняться исследованием .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 вид. В третьих: подби

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

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

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

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

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

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

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

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

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

ActivityResult API и Compose

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

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

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

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

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

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

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

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

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Яндекс Backend Tour
Дата 13 – 26 ноября
Время 18:00 – 23:00
Место Москва Нижний Новгород Екатеринбург Новосибирск Санкт-Петербург Онлайн
Национальный рекламный форум
Дата 15 – 17 ноября
Время 10:00 – 19:30
Место Москва
Онлайн IT HR-конференция HR42
Дата 17 – 18 ноября
Время 10:00 – 14:00
Место Онлайн
Импульс Т1
Дата 17 ноября
Время 13:00
Место Иннополис Онлайн
HighLoad++ 2023
Дата 27 – 28 ноября
Время 9:00 – 20:00
Место Москва Онлайн
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн

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

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

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

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

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

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

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

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

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

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

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

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

Построение графа покрытия UI-тестами бизнес-логики на основе VisualFSM

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

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

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

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

Обзор невизуальной доступности смартфонов под управлением операционной системы Android

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

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

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

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

Потерял месяц согласований, психанул. Теперь только платные брифы

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

Однажды ко мне пришел крупный застройщик, хотел обновить дизайн приложения. Провели два созвона, определились, что будет в дизайне. Делаю простенькое ТЗ на доп. разработку. Все круто, казалось бы. Потом выяснилось, что нужно интегрироваться с 1С. Это сложная доработка, поэтому с командой делаем полноценное техническое задание. Присылаем им готовое ТЗ, договор и счет — ждем ответа. Проходит день, два… неделя. Мы забили, а потом увидели кейс у коллег по нашему ТЗ.

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

Читать далее
Всего голосов 16: ↑12 и ↓4 +8
Комментарии 26

Что будет с мобильными релизами, если улучшать и автоматизировать процессы

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

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

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

Вклад авторов

Работа