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

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

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

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

Используем UI-тесты для поиска утечек

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 718
Блог компании Циан Разработка под Android *
Кейс

Утечки памяти — штука неприятная. Они могут приводить к снижению производительности, а в некоторых случаях и к падению приложения. Поэтому их определённо стоит находить и исправлять. Проблема в том, что если вы достаточно хорошо проработали архитектуру вашего проекта или у вас опытные разработчики, то утечки будут появляться редко. Даже очень редко. Как следствие, ручной поиск утечек, на который надо потратить кучу времени, почти всегда будет с нулевым результатом. Чтобы избежать лишней траты времени, представляю вам простой и довольно очевидный способ — встраивание поиска утечек памяти в UI-тесты.

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

Новости

Использование Compose для ТВ-версии приложения Иви: мощный фреймворк для создания эффективных Android-приложений

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 1K
Блог компании Онлайн-кинотеатр Иви Разработка под Android *Jetpack Compose *
Кейс

В компании ИВИ, ведущем онлайн-кинотеатре, наша команда разработчиков занимается созданием приложения для платформы Android. Недавно мы успешно выпустили версию для Android TV, используя инновационный инструмент — Jetpack Compose. Несмотря на то, что библиотека Compose для ТВ еще находится в альфа-версии, мы хотим поделиться своим опытом, рассказать о трудностях, с которыми столкнулись, и обратиться к вопросу: стоит ли использовать Jetpack Compose, особенно для ТВ-приложений?

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

Vivaldi 6.2 для Android — Внимание к деталям

Время на прочтение 1 мин
Количество просмотров 1K
Блог компании Vivaldi Technologies AS Разработка под Android *Браузеры

Несмотря на летние отпуска мы продолжали работу над улучшением мобильной версии Vivaldi (а также выпустили несколько внутренних сборок версии для iOS, которую уже тестируют некоторые пользователи), так что сегодня нам есть что вам показать.

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

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

Библиотека «Jetpack Compose» для начинающего Android-разработчика

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 2.1K
Разработка под Android *Kotlin *Jetpack Compose *
Туториал

Здравствуй, дорогой читатель. Каждому Android-разработчику во время разработки своего приложения необходимо сталкиваться с созданием пользовательского интерфейса. Для этого существует несколько способов, и сегодня будет рассмотрен один из них - Jetpack Compose UI.

Jetpack Compose - это библиотека, которую представила Google в 2019 году. Данная библиотека позволяет удобным способом создавать и организовывать интерактивный UI, облегчает тестирование и дает возможность грамотно использовать ресурсы устройства.

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

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

Истории

Запускаем IDEA и CLion на Android

Уровень сложности Средний
Время на прочтение 18 мин
Количество просмотров 3.4K
Разработка под Android *Текстовые редакторы и IDE *
Туториал

На современных Android телефонах и планшетах стоит отличное железо - многоядерные CPU с несколькими гигабайтами памяти. Этого всего вполне хватит для запуска даже таких тяжеловесных программ как IDEA и CLion. И сейчас я вам расскажу как это сделать.

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

Мобильная разработка за неделю #503 (21 — 27 августа)

Время на прочтение 4 мин
Количество просмотров 1.4K
Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
Дайджест
В новом выпуске любовь и терпение Swift и Objective-C, подводные камни тестирования и построение инфраструктуры, универсальные пуши, чтобы править всеми, подписки в App Store и многое другое.

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

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

Приглашаем на Ozon Tech Community Mobile Meetup

Время на прочтение 2 мин
Количество просмотров 560
Блог компании Ozon Tech Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Тестирование мобильных приложений *

Всем привет!

Меня зовут Павел, я руководитель отдела разработки мобильных приложений торговой площадки.

Приглашаем на Ozon Tech Community Mobile Meetup, на котором подробно обсудим дизайн-систему — это продукт, который структурирует набор компонентов и гайдлайнов. Это позволяет дизайнерам и разработчикам создавать последовательный и согласованный визуальный язык для продуктов и услуг компании. 

Наша цель — упростить разработку интерфейсов для дизайнеров и разработчиков. Для этого мы создали и развиваем дизайн-систему BX для мобильных и веб-приложений.

Об этом поговорим на Ozon Tech Community Mobile Meetup в Москве, 29 августа в 19:00.

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

Как тестировщики с помощью пользовательского десктопа и видеокарты инфраструктуру строили

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 2.2K
Блог компании «Лаборатория Касперского» Тестирование IT-систем *Разработка под Android *Тестирование мобильных приложений *DevOps *
Кейс
Тестировать андроид — сложно. Автоматизированно тестировать андроид — очень сложно. А если автоматизированно тестировать 6 очень разных приложений на 10 разных версиях ОС Android с использованием 3 языков программирования, используя внутреннюю систему CI/CD, которая написана для десктопных платформ, то это проходит по разряду «медленно и за очень много денег».



Меня зовут Сергей Павлов, и я работаю в команде Mobile Solutions Testing «Лаборатории Касперского» на позиции Senior Software Development Engineer in Test (SDET), где совмещаются навыки разработчика, тестировщика и DevOps. Я расскажу, как у нас получилось создать инфраструктуру на пользовательских десктопах, способную относительно стабильно и быстро запускать до 8 эмуляторов Android на машине. А также как мы запаковали практически все в Docker и научились грамотно разделять потоки тестов.
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 7

Ускоряем сборку за счёт миграции с kapt на ksp

Время на прочтение 11 мин
Количество просмотров 1.1K
Блог компании HeadHunter Разработка мобильных приложений *Разработка под Android *
Кейс

Всем привет! Меня зовут Катя Гущина, я — Android-разработчик hh.ru. Хочу поделиться нашим опытом отказа от kapt в пользу ksp для обработки аннотаций и ускорения скорости сборки в большом проекте. В этой статье расскажу, что такое ksp, почему мы решили на него перейти, как проводили исследование и что из этого получилось.

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

Миграция приложения на Jetpack Compose

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 3.2K
Блог компании AvitoTech Разработка под Android *Jetpack Compose *

Jetpack Compose — крутой набор инструментов, который упрощает работу над интерфейсами для Android. С ним не нужно писать так много кода, как в обычных XML-разметках. А ещё в нём много полезных для разработчика фич — в этой статье расскажем о них подробно. И, конечно, выясним, как перенести UI и архитектуру приложений на Jetpack Compose и забыть View на 10 000 строк, как страшный сон.

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

Мобильная разработка за неделю #502 (14 — 20 августа)

Время на прочтение 4 мин
Количество просмотров 1.6K
Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
Дайджест
В новом дайджесте своя прошивка с нуля и поваренная книга SwiftUI, автоматическая публикация приложений и работа в Apple без Leetocde и колледжа, защита простых архитектур, самые быстрорастущие приложения августа, стартовый набор для ИИ-города и многое другое.

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

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

Как Maningame зашли в RuStore

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.6K
Блог компании VK Разработка мобильных приложений *Разработка под Android *IT-компании
Кейс

Разработчикам игр стоит делать свои проекты мультиплатформенными, считают в Maningame. Компания разместилась в RuStore и получила аудиторию, готовую платить больше, чем на других площадках. Секретом успеха поделился CEO Maningame Александр Щевелёв.

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

Yandex MapKit для новичков: разрабатываем карты в Android-приложении

Уровень сложности Простой
Время на прочтение 19 мин
Количество просмотров 1.6K
Блог компании Joy Dev Разработка под Android *Maps API *Яндекс API *Kotlin *
Туториал

А давайте познакомимся поближе и поработаем с Яндекс-картами в Android-приложении! Внедрим и настроим библиотеку Yandex MapKit: откроем определенную область на карте, выставим метку в нужном месте, установим на неё желаемые растровые и векторные изображения, поиграемся с зумом, обработаем нажатие на пин, а также будем визуально выделять объекты на карте при клике и получать от них интересующую нас информацию.

Поехали!
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 4

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

CROC Service Partner Day
Дата 7 сентября
Время 10:00 – 18:00
Место Москва
Okkam. О цене и ценности
Дата 12 сентября
Время 12:00 – 19:00
Место Москва
«Стачка» — IT-конференция
Дата 15 – 16 сентября
Время 09:00 – 18:30
Место Ульяновск
Business⁢ Day: Retail CPG
Дата 28 сентября
Время 09:50 – 14:00
Место Онлайн
XIX конференция разработчиков свободных программ «Базальт СПО»
Дата 29 сентября – 1 октября
Время 10:00 – 19:00
Место Переславль-Залесский Онлайн
Kokoc Hackathon
Дата 29 сентября – 1 октября
Время 19:00 – 21:00
Место Онлайн
Russia Risk Conference 2023 — 19-я конференция по риск-менеджменту
Дата 25 – 26 октября
Время 10:00 – 19:00
Место Москва Онлайн

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля

Уровень сложности Средний
Время на прочтение 17 мин
Количество просмотров 50K
Блог компании Timeweb Cloud Разработка мобильных приложений **nix *Разработка под Android *Разработка под Linux *
Кейс
image

К огромному сожалению, старые смартфоны всё чаще и чаще находят своё пристанище в мусорном баке. К прошлым, надежным «друзьям» действует исключительно потребительское отношение — чуть устарел и сразу выкинули, словно это ненужный мусор. И ведь люди даже не хотят попытаться придумать какое-либо применение гаджетам прошлых лет! Отчасти, это вина корпораций — Google намеренно тормозит и добивает довольно шустрые девайсы. Отчасти — вина программистов, которые преследуют исключительно бизнес-задачи и не думают об оптимизации приложений совсем. В один день я почувствовал себя Тайлером Дёрденом от мира IT и решил бросить вызов проприетарщине: написать свою прошивку для уже существующего смартфона с нуля. А дабы задачка была ещё интереснее, я выбрал очень распространенную и дешевую модель из 2012 года — Fly IQ245 (цена на барахолках — 200-300 рублей). Кроме того, у этого телефона есть сразу несколько внешних шин, к которым можно подключить компьютер или микроконтроллер, что даёт возможность использовать его в качестве ультрадешевого одноплатника для DIY-проектов. Получилось ли у меня реализовать свои хотелки? Читайте в статье!
Читать дальше →
Всего голосов 239: ↑237 и ↓2 +235
Комментарии 134

Kodein DI для Android. Основы API

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 2.1K
Блог компании Dodo Engineering Разработка мобильных приложений *Разработка под Android *
Туториал

Android разработчики обожают DI. Куда ни посмотри, куча статей и выступлений про Dagger 2, Hilt или Koin, но очень мало про Kodein. Даже на Хабре всего пару неплохих статей, но и те от 2018 года. Но с тех пор Kodein бурно развивался, и вышло много мажорных версий, API значительно изменился.

Мы используем Kodein в приложении Drinkit и успели прочувствовать на себе плюсы и минусы этого инструмента. Я расскажу, как пользоваться Kodein, как у него дела со скоупами и многомодульностью.

Итак, погнали
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 3

Книга «Head First. Программирование для Android на Kotlin. 3-е изд.»

Время на прочтение 4 мин
Количество просмотров 3.9K
Блог компании Издательский дом «Питер» Разработка мобильных приложений *Разработка под Android *Профессиональная литература *Kotlin *
image Привет, Хаброжители!

Вам уже пришла в голову гениальная идея мобильного приложения, которое завоюет весь мир? Дело за малым — воплотить ее в жизнь.

Эта полностью переработанная и обновленная книга поможет сразу приступить к работе. Вы на практике узнаете, как структурировать приложение, создавать гибкие и интерактивные пользовательские интерфейсы, сохранять информацию в базе данных и использовать новейшие возможности Android Jetpack и Jetpack Compose. Все, что вам нужно для успешного старта — это немного базовых знаний о языке Kotlin.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 2

А это можно запустить в фоне?

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 1.5K
Блог компании Usetech Разработка под Android *
Обзор

В мае 2023 г. команда ГК Юзтех организовала в Томске Usetech Meetup «Тренды мобильной разработки», где своим опытом поделились эксперты российского ИТ-рынка. По итогам мероприятия мы написали серию статей, каждая из которых транслирует выступление одного из спикеров. Начали с выступления Mobile Developer Алексея Гладкова на тему: «The State of Kotlin Multiplatform». Продолжим выступлением Кирилла Розова.

Коллеги, приветствую! Меня зовут Кирилл Розов, я руководитель группы Android разработки в Тинькофф, а также автор YouTube-канала «Android Broadcast».

В Android все больше ограничений на запуск и выполнение задач, когда приложения находятся в фоне. Сегодня я расскажу о разных рецептах и правилах, как уживаться (а не сражаться!) с системой и выполнять работу в фоне. Мы поговорим про WorkManager / JobScheduler, DownloadManager, Foreground Servise, Sync Adapter, AlarmManager, о вендорах, а также о том, как выбрать API для задачи. 

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

KivyMD на «кухне»

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 1.2K
Python *Разработка под Android *Разработка под Linux *Разработка под Windows *
Туториал

Доброго времени суток, всем!

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

Для тех, кто не в курсе, поясню, что KivyMD - это "фреймворк на языке Python для кроссплатформенной разработки Kivy и библиотеки виджетов в стиле Google Material Design". Или же простыми словами, вы можете собрать вполне приличное, хорошо выглядящее приложение, как для Windows, так и для Андроид, Linux and еtс.

На Хабре есть много статей посвященных отдельным частям Kivy и KivyMD. Но, полазив в том числе по Интернет, я не нашел хорошего демонстрационного примера. Все проекты либо заточены по старую версию KivyMD и сходу не работают, либо достаточно куцые. Поэтому решил "наполнить раковину" сам. ;)

Проект лежит здесь: https://github.com/longvalery/KitchenSink.KivyMD.git

Он собран под текущую на данный момент версию KivyMD - kivy.require("2.2.1")

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

Но позволю себе дать некоторые пояснения общего характера, а затем кратко описать элементы приложения.

Итак, я специально постарался сделать приложение в одном файле и использовать по максимуму картинки и иконки из Интернет, чтобы легче было переносить проект и собирать с помощью Buildozer. К сожалению, не для всех элементов это получилось, поэтому для корректной работы нужно всё же тащить ещё директорию assets.

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

Получение данных виртуальной клавиатуры Android в web проекте

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 687
JavaScript *Программирование *Разработка под Android *
Туториал

Постоянное взаимодействия помогает удерживать хоть какие то знания в голове, эта статья удержание знаний javascript.

А вдруг пригодиться?
Всего голосов 6: ↑3 и ↓3 0
Комментарии 8

Ракету пустил и забыл. Или как заставить DI работать

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 2K
Java *Разработка под Android *Kotlin *

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

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

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

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

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

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

Работа