Обновить
128K+

Android *

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

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

Производительность Android приложений Kotlin в сравнении с С++ или цена управления памятью

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

Взгляд на скорость выполнения кода с применением NDK.

Вычисление фрактала Мандельброта с помощью Kotlin и С++ и тест на реальных устройствах

Читать далее

React Native vs нативные языки программирования: что выбрать бизнесу?

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

Современные технологии – это истинное благо для любого бизнеса. Но точно так же они могут стать самым настоящим проклятьем. Только представьте. Вы захотели создать собственное мобильное приложение. Идея уже есть, спонсоры найдены, и, казалось бы, выпускай себе приложение и покоряй им мир стандартными «Efficiency, Resilience and Innovation • Trust • Human-Centered approach • Passion • Excellence». Но в действительности все оказывается куда сложнее. Вы приходите к специалистам и не понимаете, кого слушать. Одни наперебой убеждают вас, что приложение стоит сделать на технологии React Native, а другие упорно доказывают, что нет лучшего решения, чем разработка на Swift/Kotlin. Звучит знакомо? Тогда эта статья точно вам поможет.

Читать далее

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

Время на прочтение4 мин
Охват и читатели2.7K
В нашем новом дайджесте подготовка к собеседованию и оптимизация для сетевой доступности, тестирование с Robolectric и “подводные камни” Jetpack Compose, плохие MVx архитектуры и даже конец программирования, каким мы его знаем.

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

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

Почему MVx архитектуры всегда получаются плохо

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

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

Я познакомился с понятием “архитектурные паттерны” и MVC в частности еще в 2012, и с тех пор заболел идеей архитектур программного обеспечения. Я восхищался людьми, которые пишут архитектурные фреймворки. Я тратил дни и недели читая их исходники и просматривая видео на YouTube. Но чем больше я в это погружался, тем больше я чувствовал себя в состоянии, которое я называю “начинающий иллюзионист”: пока смотришь на фокусы - это магия, но когда начинаешь их делать, то они становятся банальными.

За годы я попробовал разные существующие паттерны и фреймворки, на разных языках и в разных проектах. Какие-то реализации я писал с нуля, с какими-то знакомился в чужих проектах, но почти каждый раз упирался в их несовершенство. И каждый раз это было очень болезненно. И вот я думал, что в следующий раз все сделаю правильно, но опять что-то шло не так. Тогда я решил разобраться в этом вопросе и сделал своей миссией поиск того самого подхода, который имеют ввиду, когда говорят “нормально делай - нормально будет”.

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

В своих скитаниях я нашел кое-что не менее интересное: причину почему MVx всегда получается плохо. И вот об этом и пойдет речь сегодня.

Читать далее

Виджеты: Android против iOS

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

Долгое время виджеты были отличительной чертой Android, пока на айфонах царили стройные ряды одинаковых иконок. Но в 2020-м они масштабно пришли и на iOS. Обычно мобильные разработчики знают одну из этих платформ, но у Анны Жарковой (@anioutka) есть опыт работы с обеими — и она выступила у нас с докладом о виджетах на обеих.

Сейчас мы готовим конференцию Mobius 2023 Spring, где также освещаются обе платформы, а Анна выступит с новым докладом. И в ожидании этого решили сделать для Хабра текстовую версию доклада о виджетах (видеозапись также прилагаем). Далее — текст от лица спикера.

Читать далее

Что о мобильной разработке можно будет узнать на Mobius 2023 Spring

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

Кое-что на ближайшей конференции Mobius будет необычно. Два дня она будет проходить в Москве (с возможностью онлайн-участия), а ещё два дня в интернете — такого масштабного сочетания офлайна с онлайном на Mobius ещё не было.

А кое-что остаётся привычным: это по-прежнему конференция по мобильной разработке, где в докладах не вода и общие темы, а техническая конкретика. За четыре дня докладов будет много, сейчас они уже известны — и мы представляем Хабру все их описания. Для удобства снабдили здесь описания значками ? (Android), ? (iOS), ♾️ (не привязанные к платформе), ?(Flutter). И поделили на тематические блоки (но порой это деление условное, один доклад может хорошо подходить в две категории сразу).

Читать далее

Jenkins + Android

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

Нередко управление «мобильным» CI/CD ложится на плечи разработчиков, хотя это и не относится к их основным обязанностям напрямую. Тогда возникают проблемы, связанные со снижением производительности и неэффективным расходованием времени. 

Чтобы оптимизировать управление «мобильными» CI/CD, важно иметь в команде человека, который разбирается и в мобильной разработке, и в CI/CD. Идеальная ситуация, когда это бывший разработчик мобильных приложений, который перешёл на должность инженера. Но, конечно, такой человек есть не везде. В статье дальше делимся правилами и рекомендациями, которые помогут избежать трудностей при настройке Jenkins для Android-проектов.

Читать далее

Circuit-фреймворк для Jetpack Compose и тестирование с Robolectric

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

Тестирование приложений Jetpack Compose обычно основано на использовании библиотеки Compose UI Test и создании юнит-тестов поверх библиотек мокирования или DI. Однако этот подход требует наличия эмулятора и не всегда применим для использования в конвейере CI/CD, где обычно используется Robolectric вместо настоящего Android Runtime. При этом нередко в тестах используется скриншотное тестирование (например, через использование captureToImage в Compose UI Test) и сравнение рендеров с образцом, что изначально недоступно в Robolectric из-за особенностей рендеринга. В этой статье мы рассмотрим использование библиотеки Roborazzi, которая решает эту проблему, совместно с новым подходом к архитектуре Jetpack Compose приложений, которая была предложена Slack в библиотеке Circuit.

Читать далее

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

Время на прочтение5 мин
Охват и читатели2.3K
В этом дайджесте сторонние загрузки в iOS и ускорение дебага на Android, схемы кампусов и неочевидные палки в колеса, свои “Герои”, артефакты пришельцев в вашем коде, руководство для начинающих по автономным агентам и многое другое.

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

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

CustomView Android. Кольцевая диаграмма для отображения статистики

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

Наверное, каждый Android-разработчик на этапе обучения или в процессе выполнения задач в коммерческом проекте задумывался о создании своей CustomView без использования сторонних библиотек, с собственной отрисовкой, анимацией, а также хорошей оптимизацией, чтобы CustomView адаптировалась под переданные ей размеры, правильно отображалась в независимости от экрана пользователя.

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

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

Вперед за CustomView!

Берём Glance Widgets под контроль

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

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

Читать далее

Написали UI для чата поддержки с помощью Jetpack Compose: как это было

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

В предыдущей статье я упоминал кейс приложения «Бланк». Этот материал — логическое и более глубокое продолжение.

В официальном приложении «Бланк» на Android мы работали над пользовательским интерфейсом чата поддержки. Конечная цель — сделать удобный и отзывчивый UI. Задача – интегрировать Chatwoot с приложением с помощью Jetpack Compose.

Стек технологий: Android Studio, Kotlin, Jetpack Compose, Chatwoot.

Читать далее

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

SingleRecyclerAdapter плюс ViewBinding или зачем я написал библиотеку для списков

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

Работа со списками в Android проектах — это база. Большинство проектов использует RecyclerView из-за его гибкой настройки и переиспользования ViewHolder'ов. Но даже так существуют библиотеки, которые улучшают работу с RecyclerView.Adapter и RecyclerView.ViewHolder с более удобной компоновкой большого числа элементов списка.

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

Читать далее

Ultron — самый простой фреймворк для разработки UI тестов Android

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

Ultron — самый простой фреймворк для разработки UI тестов Android.

В данной статье я познакомлю вас с малоизвестным фреймворком, который позволит вам облегчить android ui тестирование.

А это еще что?

Интервью с сооснователем Coffee&Code Владиславом Мокровым: зачем программисту комьюнити?

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

В этой статье мы возьмём интервью у сооснователя проекта Coffee&Code, Владислава Мокрова. Coffee&Code — уникальный проект, объединяющий русскоговорящих мобильных разработчиков по всей России и за её пределами. Владислав расскажет нам о своём проекте, поделится подробностями с прошлых встреч, организованными Coffee&Code, и планами на будущее. Приятного чтения!

Читать далее

Ускоряем дебаг в разы. Зачем и как использовать брейкпоинты

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

Всем привет! Меня зовут Вадим Джибалов, и я Android-разработчик в AGIMA. Свою первую статью на Хабре я посвящаю простой, но важной теме — брейкпоинты. Пишу я её для джуниоров, которые только знакомятся с отладкой. Мы уделяем много внимания развитию наших стажеров и росту специалистов. А когда только начинаешь программировать, найти даже элементарные вещи бывает нелегко. Мы готовы помочь.

Читать далее

Почему так удобно использовать паттерн MVI в KMM

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

Привет!

Меня зовут Стефан Серхир. Я мобильный разработчик в KTS. Пишу под Android, iOS и КММ (Kotlin Multiplatform Mobile) и веду курсы в школе Metaclass.

Недавно мы провели вебинар, в котором разобрали Model-View-Intent (MVI) в KMM на практике и посмотрели, как это выглядит в коде iOS и Android. Это статья написана по мотивам этого вебинара. Подход MVI в KMM полезен, потому что:

— Удобно шарить бизнес-логику между всеми платформами
— Можно выделять отдельный функционал в фича-модули
— Сам MVI позволяет легко разделять экран на различные состояния и менять их в зависимости от действий пользователя
— MVI очень легко ложится на Jetpack Compose (Android) и SwiftUi (iOS)

В статье я расскажу, что такое MVI и KMM вообще, опишу преимущества и недостатки MVI и разберу на практике подход MVI в KMM.

Читать далее

Vivaldi 6.0 для Android — Мобильный мультитул

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

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

Читать далее

Приложение для инженеров на Flutter

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

На связи Саша Хрущев, технический директор IT-компании WINFOX. Недавно мы сделали кроссплатформенное приложение для прикладных инженеров крупной компании на самом современном фреймворке от Google. Почитайте, чем хорош Flutter, какие возможности разработки он открывает и почему заказчикам выгодно использовать этот фреймворк.

Читать далее