Обновить
512K+

Android *

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

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

Как мы сделали приложение для партнёрской платформы, с которым любой может зарабатывать на туризме. Кейс Travelpayouts

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

Хотели бы вы иметь готовое приложение, которое можно адаптировать под свой бренд за пару кликов? Мы его уже сделали!

С идеей создания такого продукта к нам пришла компания Travelpayouts, объединяющая инфлюенсеров и тревел-бренды. Заказчику требовался цифровой продукт, который поможет им расширять свою партнёрскую платформу в направлении мобильных приложений, а самим партнёрам — дополнительно монетизировать входящий трафик, зарабатывая на комиссии за каждое бронирование.

Так появилось приложение White Label App — шаблон нативного приложения для поиска и бронирования авиабилетов и отелей по всему миру с обширными возможностями конфигурации. Он исполнен в двух вариантах: основной – White Label App — приложение с готовыми функциональными модулями, и White Label SDK — набор готовых экранов, которые можно встроить в собственное приложение. Любой из форматов можно кастомизировать под разные стилистики брендов. А ещё это решение будет гораздо дешевле и быстрее разработки собственного приложения для тревел-бизнеса.  

Подробнее про форматы:

Читать далее

Лента Мёбиуса мобильной разработки: что расскажут на Mobius 2024 Autumn

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

Что общего у мобильной разработки с лентой Мёбиуса? С первого взгляда видишь две стороны: вот же они, Android и iOS. А потом присматриваешься — и замечаешь, что одно может плавно переходить в другое.

Вот смотрите. Мы скоро проведём конференцию Mobius. Казалось бы, хабрапост с описаниями докладов логично поделить на две части, чтобы любому разработчику было удобно читать именно о «своей» платформе.

Но будет, например, доклад про корутины в Kotlin. Этот язык привычен в мире Android, однако с Kotlin Multiplatform выходит за рамки платформы. И кому тогда стоит знать про такой доклад: Android-разработчикам или всем?

Ещё есть доклады про Flutter. Они интересны только флаттеристам, или нативные разработчики с обеих сторон тоже следят «что там происходит»? И есть другие «кроссплатформенные» темы, не привязанные строго к платформе. Их в посте где лучше поставить, в начале или конце?

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

Программа Mobius 2024 Autumn

ООП в Dart

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

Йоу, юзер! Даннаястатья относится к циклу статей «База джуна на Flutter». Если ты не видел начальную ноду — ознакомиться можешь тут, а если уже видел — погнали дальше!

Okaaaay let's go!

Декларативный подход в организации gradle зависимостей в Android-проектах

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

В многомодульных приложениях Android существует проблема организации зависимости gradle. Каждая зависимость указывается отдельно.

Читать далее

Создание Convention Plugin-ов на базе Kotlin-классов

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

Всем привет! На связи Дима Котиков и мы продолжаем разговор о том, как облегчить себе жизнь и уменьшить bolierplate в gradle-файлах. В предыдущих статьях мы сделали отдельный модуль для написания Convention Plugins, провели необходимые настройки и написали несколько Convention Plugin‑ов в «‑.gradle.kts»‑файлах. В этой части мы будем создавать Convention Plugin‑ы на базе Kotlin‑классов.

Читать далее

Проблема UseCase-ов: что нужно знать разработчикам Android

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

Введение

Если вы уже определенное время занимаетесь разработкой Android, вы, вероятно, слышали о UseCases. Их часто представляют как Святой Грааль Clean architecture. UseCases призваны отделить бизнес‑логику от Presentation и Data слоев, сделав ваш код более модульным, переиспользуемым и тестируемым. Но вот в чем загвоздка: UseCases не всегда являются серебряной пулей. На самом деле, слепое их применение может привести к раздутому коду и ненужной сложности, чего как раз и пытается избежать Clean Architecture. В этой статье мы развенчаем миф о UseCases и обсудим, когда они необходимы, а когда — просто пустая трата времени. Если вы разработчик Android и задаетесь вопросом, приносите ли вы больше вреда, чем пользы, следуя этому шаблону, эта статья для вас.

Читать далее

Пишем свой генератор ID для мобильных приложений

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

Привет, меня зовут Андрей Богомолов, я Android-разработчик в команде Performance приложения Wildberries. 

Однажды, работая с кодом, я обратил внимание на использование UUID в UI и задумался об его влиянии на производительность. Тесты показали, что собственное решение может быть значительно быстрее стандартной реализации UUID в Java.

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

Читать далее

Мобильная разработка за неделю #556 (16 — 22 сентября)

Время на прочтение4 мин
Охват и читатели3.2K
В нашем новом дайджесте виджеты iOS 18 и шаблоны проектирования SwiftUI, Flappy Bird на Си для Android и заблуждение UseCase, магия ссылок, нативный Swift на Android, крадем впрок как художники и многое другое. Подключайтесь!

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

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

Нативные библиотеки для Android

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

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

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

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

Читать далее

Улучшаем автокомплит в смешанных Java-Kotlin проектах

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

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

Что за идея?

Flappy Bird на Си для Android весом APK всего 92 Килобайта

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

Это невозможно! И вы будете правы, только ошибка в том, что это — реальность.
Или как сказал один человек «Это компьютерная наука. Ограничений нет. Я могу делать все, что захочу. Это всего лишь биты информации.»

Читать далее

Приложение, идентичное натуральному: 7 способов прокачать свой pet-проект

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

Обучение программированию очень похоже на единоборства: это сложный комплексный навык, искусство, если угодно. Есть в программировании и свои «боксёрские мешки» — это pet‑проекты. Но в отличие от единоборств, не совсем очевидно, что свой домашний проект и реальный коммерческий — это не одно и то же. В итоге ребята, старательно разрабатывающие очередное приложение для списка дел и просмотра погоды, рискуют заложить фундамент сомнительного качества, выстраивая цитадель своей профессиональной экспертизы.

Если вы начинающий программист и хотите повысить положительный эффект от работы над pet‑проектом, то эта статья для вас. Мы обсудим, как сделать так, чтобы через свой pet‑проект вы развили навыки, необходимые при работе на коммерческом проекте.

Читать далее

МИТАП: собираем комбо вредных советов про карьеру мобильного разработчика

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

Расскажем, почему изоляция от коллег и руководителя – это база, и в чем польза cтагнации.


Нет в жизни разработчика более надоедливого архетипа коллеги, чем “неравнодушный советчик”, который спешит причинить добро вне зависимости от твоего желания и последствий этого причинения. Причем, каждый второй обязательно собрал целое комбо из этих квазиполезных рекомендаций и готов делиться ими при каждом удобном случае. Мы нашли целых четверых таких советчиков и решили предоставить им трибуну для причинения добра в особо крупных размерах!



26 сентября мы проведем онлайн-митап “10+ вредных советов мобильному разработчику: как точно завалить проект и карьеру”. На нем опытные лиды и разрабы расскажут, какие действия обязательно затормозят твой промоушн и подожгут любой релиз.
Читать дальше →

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

React Native Splash Screen — поддержка разных тем

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

Всем привет! На связи команда dev.family. В этой статье мы делимся кратким гайдом по установке Splash Screen в кросс-платформенное приложение, написанное на React Native, с поддержкой нескольких тем.

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

Но это не основная роль splash screen. Под ним, например, можно спрятать получение данных с API и прогрузку основного приложения. Мы так делаем, когда показываем лоадер на экране при загрузке тех же данных. Это позволяет улучшить UX и демонстрировать пользователю сразу готовое приложение. А как следствие — убрать лишний лоадер при первом открытии.

В этом кратком гайде мы разберем установку splash screen сразу для iOS и Android на фреймворке react-native с использованием библиотеки react-native-splash-screen.

Читать далее

Основы BDUI для продуктовых дизайнеров. Шпаргалка

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

Большая статья в двух частях о самом важном, что нужно знать и учитывать продуктовому дизайнеру, если проект, над которым он работает, будет реализован на BDUI: 

— в чём его суть и чем он отличается от классического подхода в разработке;
— что такое контракт экрана и контракт компонента, почему они главный источник истины в BDUI подходе, и как с ним работать дизайнеру;
— как дизайнеру читать JSON, разберём ключи и значения.

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

Читать далее

Магия ссылок Системы быстрых платежей

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

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

Открыть магию ссылок СБП

Что такое AndroidManifest.xml, его структура и важность

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

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

В данной статье мы подробно рассмотрим структуру и значение AndroidManifest.xml, а также его значимость. Информация взята у преподавателя по Android-разработке из онлайн-университета Urban.

Структура AndroidManifest.xml

Давайте начнем с анализа структуры AndroidManifest.xml:

Читать далее

Создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях

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

Всем привет! На связи Дима Котиков, и мы продолжаем разговор о том, как облегчить себе жизнь и уменьшить Boilerplate в gradle-файлах. В первой части поговорили о том, как подготовиться к созданию модулей для Gradle Convention Plugin. Двигаемся дальше!

Читать далее

Как следить за состоянием мобильного приложения?

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

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

Согласитесь, было бы здорово узнавать о проблемах раньше, чем пользователи начнут жаловаться в поддержку. Сегодня я расскажу, как мы в Циан создавали Техническую Мобильную Аналитику (ТьМА) и получили возможность в любой момент времени ответить на вопрос: «Всё ли в порядке с приложением?»

Читать далее

Gradle Convention Plugins: как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах

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

Привет, Хабр! Я Дима Котиков, ведущий android-разработчик в Т-Банке. Работаю в команде приложения Долями. Разработкой под Android начал увлекаться в 2020 году, а потом хобби переросло в работу. Люблю разбираться в технологиях, разрабатывать под Android и KMP и латте на фундучном молоке :)

Я расскажу о том, как облегчить работу с Gradle с использованием Gradle Convention Plugins. Всю информацию я разбил на серию статей для удобства. Они будут полезны всем, кто пользуется Gradle в качестве сборщика проектов. В первой части поговорим о проблеме с build.gradle-файлами и сделаем начальную настройку для написания Gradle Convention Plugins.

Читать далее