Все потоки
Поиск
Написать публикацию
Обновить
323.41

Android *

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

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

Превращаем планшет в терминал самообслуживания: осваиваем режим Kiosk в KNOX сервисах

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

Что такое киоск? Это ограничение набора приложений, которые доступны пользователю. Иными словами — замена лаунчера по умолчанию. Когда доступно только одно приложение, нельзя открыть браузер, другие приложения и даже залезть в настройки. Вообще ничего не доступно. Это как защита от нецелевого использования, так и от дурака…

Давайте сделаем киоск режим для нашего приложения на планшете. Через сервис KNOX Configure это делается быстро и без программирования. Ниже расскажу об этом на примере сервиса для бронирования переговорных.

Читать далее

Впечатления от доработки Telegram Android

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

Я являюсь давним и постоянным пользователем Telegram, никакие мессенджеры не заменят мне белый самолетик на фоне чистого голубого неба. Не то, чтобы я был большим поклонником Дурова, просто так исторически сложилось. И естественно, поскольку я постоянно пользуюсь Telegram на десктопе и на телефоне, мне со временем захотелось некоторых дополнительных фичей и возможностей, отсутствующих в официальных и распространенных неофициальных клиентах. Ждать милости от природы занятие бесперспективное, поэтому я решил реализовать доработки самостоятельно. Начал с десктоп версии, о чем уже писал на Хабр. Сейчас закончил первый этап доработок Android версии, и решил поделиться впечатлениями и результатом с сообществом.

Ссылка на итоговое приложение и исходный код находится в конце статьи.

Читать далее

Прочие оптимизации кода Gradle Convention Plugins, выводы по результатам использования подхода

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

Всем привет! На связи Дима Котиков, и мы завершаем цикл статей о том, как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах. В предыдущих статьях мы подготовили и настроили базовый модуль для написания Gradle Convention Plugins, написали несколько convention-плагинов в файлах -.gradle.kts, сделали еще один модуль и создали convention-плагины на базе kotlin-классов. В заключительной части мы немного порефакторим написанный код, попытаемся настроить области видимости convention-плагинов и extension-функций для конфигурации сборки, а также подведем итоги. 

Читать далее

ByteWeaver в Open Source: инструментирование байт-кода Java во имя великого блага

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

Про байт‑код написано уже немало. Он везде, и никого этим не удивить: его генерирует компилятор, переупаковывает система сборки, «портит» обфускатор и изредка читают программисты. Естественно, для работы с байт‑кодом есть немало инструментов, которые используются в разных областях и на разных платформах. Среди них и ByteWeaver — инструмент для патчинга байт‑кода во время сборки, который может быть полезен разработчикам под Android.

Меня зовут Александр Асанов. Я Android‑разработчик в OK, Tracer, ByteWeaver. В этой статье я разберу, что такое байт‑код, как и зачем с ним работать, расскажу о ByteWeaver и покажу примеры работы с байт‑кодом.

Читать далее

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

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

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

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

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

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

Читать далее

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

Время на прочтение15 мин
Количество просмотров955

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

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

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

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

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

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

ООП в Dart

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

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

Okaaaay let's go!

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

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

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

Читать далее

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

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

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

Читать далее

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

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

Введение

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Что за идея?

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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


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



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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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