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

Разработка мобильных приложений *

Android, iOS, Windows Phone и прочие

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

Осознанная оптимизация Compose

Уровень сложности Средний
Время на прочтение 28 мин
Количество просмотров 237
Блог компании Ozon Tech Программирование *Разработка мобильных приложений *Разработка под Android *Kotlin *
Туториал

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

Наша команда Ozon Seller также столкнулась с этой проблемой. Мы решили собрать воедино все советы и наработки по написанию оптимизированного Compose-кода. Активное применение этих советов при оптимизации существующих экранов и написании новых существенно улучшило наши метрики: длительность лага по отношению к длительности скролла (hitch rate; чем меньше, тем лучше) экранов со списками упала в среднем с 15-19 % до 5-7 % (на 90-м перцентиле). Все эти советы и наработки мы описали в этой статье. Она будет полезна и начинающим, и опытным разработчикам, в ней подробно описаны оптимизации и механизмы Compose, а также рассказано про слабо задокументированных особенности и исправления ошибок, которые есть в других статьях. Давайте же начнём.

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

Новости

Как эволюционировали уязвимости в приложениях для Android

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 931
Блог компании Positive Technologies Информационная безопасность *Разработка мобильных приложений *Разработка под Android *Тестирование мобильных приложений *
Аналитика

История развития приложений для Android прошла несколько заметных этапов. Были небольшие приложения, работающие локально, клиент-серверные приложения, экосистемы приложений и, наконец, суперапы (super-app). Каждый из этих этапов повышал планку сложности, порождал новые уязвимости и заставлял разработчиков все больше заботиться о безопасности как самих приложений, так и данных, которыми они оперируют. Развивалась и сама операционная система — она давала разработчикам больше возможностей и механизмов обеспечения безопасности.

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

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

Пэйволлы: прокачиваем насмотренность

Уровень сложности Средний
Время на прочтение 23 мин
Количество просмотров 744
Разработка мобильных приложений *Интерфейсы *Usability *Дизайн мобильных приложений *Дизайн
Обзор

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

3000+ просмотренных мной пэйволлов превратились в статью с 200+ гайдлайнами и идеями по их улучшению. Всё во благо прокачки вашей насмотренности.

P.S. Материал доступен без пэйволла😊

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

Про тестирование мобильных приложений. Часть 4. Интеграционное тестирование

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 792
Разработка мобильных приложений *Разработка под Android *Тестирование мобильных приложений *
Обзор

Ранее мы с вами познакомились с 2 группами тестирования, расположенными в основании и на вершине пирамиды тестирования. Пришло время познакомиться с единственной, не рассмотренной на данный момент и наиболее интересной по моему мнению частью – интеграционным тестированием. 

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

Истории

Многопоточность в iOS-разработке

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 1.3K
Разработка под iOS *Разработка мобильных приложений *Swift *

Здравствуйте, уважаемые читатели Хабра!

Меня зовут Кирилл, я iOS-разработчик приложений для Сбера в Студии Олега Чулакова.

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

В этой статье мы разберемся с основами многопоточности и познакомимся с такими инструментами Swift, как Grand Central Dispatch (GCD), OperationQueues, NSLock. А также существующими низкоуровневыми технологиями, такими как pthread и NSThread. Бонусом я расскажу про async/await. Мы обсудим, как эти инструменты помогают управлять асинхронными и параллельными операциями, и посмотрим на некоторые примеры их использования.

Приятного чтения, и давайте начнем наше путешествие в мир многопоточности Swift!

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

Фантастический Compose и его побочные эффекты

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 1.6K
Блог компании Joy Dev Разработка мобильных приложений *Разработка под Android *Jetpack Compose *

Всем привет! Меня зовут Иван, я - android-разработчик в компании Joy Dev.

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

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

Немного о перечислениях в Swift

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 991
Блог компании Тензор Разработка под iOS *Разработка мобильных приложений *Swift *

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

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

Императивный UIKit‍ vs Декларативный SwiftUI

Время на прочтение 15 мин
Количество просмотров 1.9K
Блог компании Ozon Tech Программирование *Разработка под iOS *Разработка мобильных приложений *Swift *
Обзор

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

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

Читать далее
Всего голосов 23: ↑21 и ↓2 +19
Комментарии 24

Алгоритм создания бесшовного списка данных

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 1.4K
Блог компании РСХБ.цифра (Россельхозбанк) Разработка мобильных приложений *Dart *Тестирование мобильных приложений *Flutter *
Кейс

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

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

На смену CoreData пришёл новый фреймворк SwiftData. Разбираемся, как он упрощает хранение данных

Время на прочтение 7 мин
Количество просмотров 1.1K
Блог компании Surf Программирование *Разработка под iOS *Разработка мобильных приложений *Swift *
Обзор

Фреймворк для хранения данных Core Data был написан еще во времена Objective-C. Многим iOS-разработчикам хотелось иметь более современный инструмент, который бы поддерживал все новые возможности языка Swift. И теперь такой инструмент появился: на WWDC 2023 представили новый фреймворк SwiftData.

Разбираемся, что из себя представляет SwiftData, и пробуем его в тестовом приложении.

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

Книга «React. Быстрый старт, 2-е изд.»

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

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

По ходу чтения разработчики и программисты создадут полноценное приложение. Вы быстро поймете, почему многие выбирают React для разработки веб-приложений.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 6

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

Время на прочтение 4 мин
Количество просмотров 1.4K
Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
Дайджест
В новом дайджесте все еще обсуждаем WWDC, рассматриваем историю ограничений фоновой работы в Android и ускорение приложений, специфику мобильной разработки и самые популярные языки программирования, push-уведомления, стартап из одного за 50 млн и многое другое!

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

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

Подписываем Android-приложение внутренним ключом Google Play для публикации в сторонних магазинах (RuStore, Huawei..?)

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 3.8K
Разработка мобильных приложений *Разработка под Android *Монетизация мобильных приложений *
Из песочницы

В процессе публикации своего приложения в RuStore, я столкнулся с проблемой обновления сборки, первоначально-установленной из Google Play. Дело в том, что несколько лет назад, когда я размещал приложение в Google Play, я доверил управление ключами подписи Google App Signing. Это значит, что мой локальный ключ используется в качестве "загрузочного", а пользователи на устройства получают уже сборки, подписанные внутренним ключом Google. Прямого доступа к этому ключу нет, и, соответственно, я не могу подписать им сборку для RuStore для бесшовного обновления приложения.

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

История ограничений фоновой работы в Android для разработчиков

Уровень сложности Средний
Время на прочтение 19 мин
Количество просмотров 5.3K
Блог компании Android Broadcast Разработка мобильных приложений *Разработка под Android *
Обзор

Когда-то в Android были времена, когда запустить задачу в фоне было просто и гарантии ее работы были высоки. Теперь же в ОС есть множество ограничений: работа в фоне, доступ к файловой системе, системы оптимизации расхода батарейки, разрешения, часть которых требует одобрения модераторов Google Play. Разработчикам приходится работать в условиях всех этих ограничений и учитывать их при разработке функций. В рамках этой статьи я хочу разобраться с ограничениями, которые есть на разных версиях Android, чтобы вы смогли лучше понимать, что может происходить.

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

Мобильная разработка в мае: дайджест новостей от RuStore

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

Российский магазин приложений RuStore собирает самые интересные и важные новости, которые вы могли пропустить. В этом дайджесте — обновление Flutter, Android Studio и библиотеки Android Jetpack, а также аналитика по заработку на мобильных приложениях и включение монетизации самозанятых в нашем сторе.

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

Новенькое с WWDC23: Отчёты о тестировании и аудит доступности

Время на прочтение 7 мин
Количество просмотров 956
Блог компании Surf Программирование *Разработка под iOS *Разработка мобильных приложений *Тестирование мобильных приложений *
Обзор

Вот и закончилась очередная конференция Apple WWDC23, на которой ребята из Apple рассказали об изменениях Xcode и Swift. 

Поговорим о фичах Xcode 15, которые помогут добавить accessibility в приложение и поддерживать ваши тесты зелеными.

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

Как тестировать Android-приложения без использования эмуляторов? Знакомство с фермами мобильных устройств

Время на прочтение 5 мин
Количество просмотров 4.5K
Блог компании Selectel Тестирование IT-систем *Разработка мобильных приложений *Разработка под Android *Тестирование мобильных приложений *
Обзор

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

Многие энтузиасты пытаются найти «серебряную пулю», чтобы после проверки приложения можно было заявить, что оно работает на любом устройстве — вне зависимости от характеристик и производительности. И хоть написать приложение под все телефоны в мире невозможно, мы в Selectel нашли способ, как к этому приблизиться. Читайте статью и приходите тестировать решение на своих задачах бесплатно!
Читать дальше →
Всего голосов 39: ↑36 и ↓3 +33
Комментарии 14

Android-разработка для новичков: 20+ полезных ресурсов

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

Всем привет! Меня зовут Миша Вассер. Я руковожу мобильной разработкой в AGIMA, а ещё я наставник на курсе «Android-разработчик» в Яндекс Практикуме. Мы на курсе регулярно делимся со студентами полезными материалами. Сегодня публикую подборку, которая поможет новичку начать свой путь в Android-разработке.

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

Кто и в каких задачах быстрее? Coroutines, RxJava, Executor?

Уровень сложности Простой
Время на прочтение 14 мин
Количество просмотров 3.5K
Блог компании Циан Java *Разработка мобильных приложений *Разработка под Android *Kotlin *
FAQ

Вы когда-нибудь задумывались, какой из фреймворков для многопоточки самый быстрый? Я вроде и знал ответ, но задумывался периодически. В определённый момент сама судьба просто-напросто заставила меня взять и проверить. Так что если вам тоже всегда было это интересно, то я постарался протестировать, сравнить и предоставить результаты для вас. 

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

Где и как можно ускорить приложение на Android

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 3.2K
Блог компании Яндекс Разработка мобильных приложений *Разработка под Android *Kotlin *

Привет! Я Александр Попсуенко, руководитель инфраструктурной команды мобилок Маркета. Сегодня я хочу рассказать, как мы ускоряли наше приложение на Android.

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

Пост рекомендуется к прочтению:

— мобильным разработчикам и техлидам, чтобы почерпнуть идеи для реализации метрик и ускорения приложений;

— продуктовым и техническим менеджерам для осознания, что можно довольно дешёвыми способами ускорить приложение;

— UX‑дизайнерам, чтобы удостовериться, что мобильные приложения должны быть быстрыми и в это нужно вкладываться.

Почерпнуть, осознать, удостовериться
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 9

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

Работа