Как стать автором
Поиск
Написать публикацию
Обновить
151.76

Android *

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

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

Githab CLI и Github Actions на страже вайб кодинга с мобильными агентами Cursor

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

В этой статье, я расскажу, про опыт работы с агентами Cursor, github actions и великолепный Github Cli. Статья не претендует на истину и является частным практическим опытом.

Вступление

Лето. Время отпусков. Делать не фиг.

Можно залипать в рилсах или сериальчиках на пляже, но зачем, если можно создать что-то прикольное с мобильниого телефона, с помощью агентов. А конкретно, с помощью https://cursor.com/agents (стоит 20 баксов в месяц https://docs.cursor.com/account/pricing или 3к рублей в год, если немного поискать).

Итак, создаем репозиторий (В моем случае github.com/RobotAvi/MoneyGame) или берем готовый. Даем задачу агенту.

Читать далее

Новости

PWA и WebView — как сделать ваше веб-приложение доступным в офлайн-режиме

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

Привет! Меня зовут Алексей Егоров. Сегодня поговорим про офлайн-режим в PWA и WebView, без лишней теории и с прицелом на мобильные приложения. В разработке я уже больше трёх лет, большую часть этого времени посвятил WebView и мобильным решениям. В этом материале мы разберём, как работают PWA и WebView в офлайн-режиме, посмотрим на инструменты, которые помогают реализовать такую функциональность, и в завершении я поделюсь примером: какую технологию мы выбрали для календаря и как внедрили офлайн-режим на практике.

Читать далее

Mobile System Design. Проектируем новостную ленту

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

Элементы System Design уже прочно вошли в процесс собеседований. Однако в мобильной разработке довольно часто возникает недопонимание что же все-таки необходимо продемонстрировать чтобы получить заветный офер. В этой статье я разберу один из кейсов, который может встретиться на реальном собеседовании и кроме этого покажу примерный сценарий такого интервью. Данная статья будет интересна мобильным разработчикам, как Android, так и iOS. Сам формат System Design Interview я разбирал в предыдущей статье. Здесь же мы сконцентрируемся на практике.

Итак, задача: спроектировать новостную ленту. 

Читать далее

Погружение в разработку плагинов для Android Studio

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

В одной из прошлых статей было рассказано, как начать разработку собственного плагина для Android Studio (или IntelliJ Idea). В этой статье окунёмся немного глубже и создадим более сложные и, хочется верить, ещё более полезные инструменты для повседневной работы в IDE.

Рассмотрим разработку плагинов для IntelliJ Idea и Android Studio на нескольких нетипичных, но простых и боевых задачах. Будет много полезных ссылок, пояснений и несколько примеров с кодом.

Читать далее

Geely и ECARX, что с вами не так?

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

Периодически читая Хабр, я еще не находил статей, описывающих внутренний мир штатных головных устройств (далее — ГУ) на базе Android, хотя я уверен, что не только мне было бы интересно, как там всё устроено и работает. Речь пойдет про одни из самых популярных авто на нашем рынке: Geely Coolray и частично Geely Tugella.

Эта статья обещает быть длинной с вырезками кода из JADX и не только, добро пожаловать под кат.

Читать далее

Что общего у Silent Hill и сервиса доставки?

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

Когда‑то давным‑давно, аж в далёком 2002 году, мы с другом проходили первую часть Silent Hill на первой PlayStation. В этом месте могли бы быть слова восторга и трепета от атмосферы, саспиенса, сюжета и музыки моего любимого Акиры Ямаоки, но сегодня мой пост не про это.

Полностью игру нам тогда пройти не удалось... И не потому что она была сложная или страшная. Нет‑нет. Потому что там была корявая локализация. Те, кто играл в видео‑игры в конце 90-х и начале 00-х должны помнить «замечательные» переводы от Фаргус с их слоганом‑издевательством «только качественные переводы». И если по сюжету всё было более‑менее понятно, то с головоломками, где важны нюансы, была полная беда. И если на экране был виден текст оригинального письма, записки, таблички, то знание английского спасало (хотя тогда он был у меня так себе). А поменять язык полностью нельзя было. В итоге мы упёрлись в ряд квестов, которые решить было нереально, так как текст перевода был и кривой, и битый. Walkthrough тогда не было, поэтому игра так и осталась незавершённой где‑то на 95%.

К чему эти мемуары? Прошло больше 20 лет, но что‑то я сталкиваюсь с похожими парадоксами и по сей день. И это не игры, а мобильные приложения крупных международных компаний. Дабы быть local‑friendly, разработчики делают автоматическую локализацию приложений в соответствии с регионом или системными настройками смартфона. В итоге это выглядит иногда кринжово, иногда смешно, но чаще очень раздражающе, когда надо воспользоваться сервисом, а там «утюг для корочек парашюта». И речь идёт не про автоматическую локализацию каталогов, как у «алика» например, а даже про какие‑то базовые фичи. И вишенка на торте — язык вручную поменять нельзя.

Читать далее

«Open Tracker: как разработать Android-приложение для автоматического трекинга коммерческих представителей. Часть 2»

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

Во второй части статьи рассматривается реализация пользовательского интерфейса Android‑приложения Open Tracker для автоматического трекинга коммерческих представителей. Основное внимание уделено минималистичному дизайну, работе с системными разрешениями и механизму передачи данных между фоновым сервисом и UI. Описаны три ключевых экрана (OverView, Log, Settings), а также особенности их взаимодействия с ядром приложения. Статья будет полезна разработчикам, создающим аналогичные решения с использованием Jetpack Compose, StateFlow и современных архитектурных подходов.

Читать далее

«Open Tracker: как разработать Android-приложение для автоматического трекинга коммерческих представителей. Часть 1»

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

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

Читать далее

Мобильная разработка за неделю #594 (14 — 20 июля)

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

В новом выпуске понимаем и улучшаем производительность SwiftUI, решаем проблему «деградации» YouTube на Android, определяем потолок в разработке, разбираем большую ложь чистой архитектуры, смотрим на рост цифровой веры и многое другое. Заходите!

Читать далее

Как мы переписали мобильное приложение с React Native на Flutter

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

React Native не справился. Flutter — как глоток свежего воздуха.

Рассказываем, как наша команда переписала большое приложение (60+ экранов, оффлайн режим, карта, камера) на Flutter, с чем пришлось повозиться и почему теперь не жалеем.

Читать далее

Android. Кража данных через клавиатуру: миф или реальность?

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

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

Узнать сейчас (4 мин)

Каскадное меню в Jetpack Compose Kotlin

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

В Jetpack Compose легко реализуется меню первого уровня. Но реализация вложенного (каскадного) меню не очевидна, поскольку в лямбде onClick пункта меню DropdownMenuItem() невозможно вызвать @Composable функцию, которая будет отображать вложенное меню.

Мне пришлось потратить значительное время на поиски решения. Для того, чтобы помочь ищущим предлагаю разработанный мной вариант.

Тест меню реализован на основе проекта Empty Activity Android Studio.

Читать далее

Мобильная разработка за неделю #593 (7 — 13 июля)

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

В этом дайджесте снова про фоновую работу в Android и обрезку Text в SwiftUI, про опыт внедрения Kotlin Multiplatform и как сделать любую задачу интересной, про акторы, структуры, программы раннего доступа, роботов Hugging Face и многое другое. Заходите!

Читать далее

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

Автоматизация тестирования мобильного приложения КриптоАРМ Mobile на Android

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

В этой статье мы проведем обзор современных инструментов и подходов для тестирования мобильных приложений на примере приложения КриптоАРМ Mobile под Android. Подробно расскажем о настройке окружения для создания тестов, а также разработаем Docker-контейнер, который обеспечит удобный запуск тестов. Кроме того, мы рассмотрим процесс автоматизации тестирования и его интеграцию в CI/CD, что позволит упростить и ускорить процесс разработки и тестирования приложений.

Читать далее

Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 2

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

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

Читать далее

Я написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?

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

Каждый раз, нажимая кнопку «Connect» в очередном VPN-приложении, я ловил себя на мысли: а что там, под капотом? Как эта магия на самом деле работает на уровне Android? Вокруг сотни готовых решений, но простое пользовательское любопытство переросло в профессиональное: мне захотелось не просто использовать, а понять. Понять, какие подводные камни скрывает VpnService, как реализовать весь цикл от авторизации до поднятия защищённого туннеля и что на этом пути может пойти не так.

Эта статья — мой личный "бортовой журнал". Я не претендую на создание самого безопасного решения, это скорее история о пути, граблях и открытиях для тех, кто тоже решит заглянуть под капот VPN-технологий на Android.

Так родилась идея этого проекта — создать свой, пусть и простой, VPN-клиент. Это не попытка сделать коммерческий продукт, а скорее исследовательское погружение, мой личный "челлендж" и способ разложить всё по полочкам.

Заглянуть под капот

Рулим светодиодом по UDP и ESP8266

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

Привет, Хабр!

Сегодня я поделюсь опытом работы с протоколом UDP вместе с микроконтроллером ESP8266, где я управлял светодиодом, а также получал температуру с датчика DHT11. Всё управление будет происходить из Android-приложения, написание логики которого также будет рассмотрено.

Читать далее

Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 1

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

Чистая архитектура — не просто модный термин, а способ держать код в узде по мере роста Android-приложения. В этой статье — подробный разбор того, как выстроить работу с UseCase’ами: от базовой интеграции в ViewModel до сложных кейсов с несколькими провайдерами и платежными системами. Разберёмся, как применять принципы SOLID на практике, не скатываясь в оверинжиниринг — и при этом не жертвовать гибкостью архитектуры.

Читать далее

Хроника изменений API фоновой работы в Android

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

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

Читать далее

Функциональное программирование в Android. Теория категорий и DI

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

Кульминация цикла о функциональщине в Android! Сегодня изучаем чистые функции — ещё один важный принцип функционального программирования.

Учтём контекст и познакомимся с сопутствующими терминами, раскрывающими суть чистых функций. А ещё обсудим место концепции Dependencies Injection в функциональном программировании. В общем, вперёд за новыми знаниями!

Читать далее
1
23 ...

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