Обновить
1024K+

Android *

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

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

Как я запустил AI-ассистента на старом Xiaomi 11T, который пылился в ящике

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

Убирался в комнате, наткнулся на старый Xiaomi 11T в ящике — 8 ГБ ОЗУ, Dimensity 1200, лежит без дела. Решил превратить его в персональный AI-сервер: поднял OpenClaw через Termux, подключил бесплатную модель через OpenRouter и теперь у меня в Telegram отвечает свой AI-ассистент. Бесплатно. Четыре способа установки, борьба с Android за живучесть процесса и подробный раздел про безопасность.

Читать далее

Создаем Java обертку для C++ класса в Android приложении и реализуем обратные вызовы из нэйтива

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

Кратко расскажу о себе и о том, зачем возникла необходимость в подобном. Я более десяти лет пишу приложения под Android, около 5 лет под IOS, и сейчас переношу свои наработки под десктопы. Приложения мои предназначены для сисадминов, это SSH клиент, сетевые сканеры и тд. В общем, самое сложное — не сам интерфейс, а то, что под капотом. Когда я лишь начинал, я думал, что остановлюсь на платформе Android и стал пилить все на Java. Но затем осознал свою ошибку и исправил ее. На данный момент все мои приложения состоят из двух частей: общего для всех систем ядра на С++ и платформозависимого интерфейса, написанного на Java/Swift/C++ в зависимости от системы.

Оговорюсь сразу, эта статья будет лишь своего рода вступлением. Я покажу, как работать с объектно‑ориентированным кодом на C++ в Java оболочке (в JNI нам доступен экспорт С функций). Инициализировать объект, делать из него вызовы, удалять, при этом имея аналогичный класс в оболочке, будто бы наш код был написан на Java. Задача эта не слишком сложная, но прежде чем опытные прогеры закрыли эту статью, я оговорюсь, что в следующей части мы уже будем работать с каллбэками — вызовами Java листенеров из нашего С++ кода, а вот это уже задача совсем нетривиальная, требующая понимания работы JNI и Dalvik. Но обо всем по порядку.

Итак, у нас есть некий CPP класс и Java оболочка. Через JNI мы можем вызывать только С‑функции, то есть не объектный код. Так как же нам работать с ООП? Главная проблема — не столько вызовы, сколько хранение адреса объекта нативного класса. Лично для себя я нашел решение — хранить его в Java классе, как long. То есть, у нас получается приблизительно такой код:

Читать далее

Первый в своем роде ИИ помощник на вашем телефоне

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

Мы с братом создали Sova AI (https://ayconic.io/sova), ИИ агента на Андроиде, который оперирует приложениями и выполняет ваши хотелки таски на телефоне. Это первый ассистент, которому не нужны ADB, USB, PC, root и т.д., просто самое обычно приложение, которое устанавливается на Андроид (пока IOS в разработке) и всегда с вами, куда бы вы не пошли (звучит страшно? 😁).

Зачем еще один ИИ ассистент?

Потому что он единственный в своем роде, все остальные “mobile-use” требуют подключения к PC, и это конечно неудобно и не интересно. Если уже есть PC, то лучше уже на нем и выполнять различные задачи, зачем тогда телефон мучать? Computer-use, browser-use вполне себе прекрасно работают на PC.

Нам хотелось ассистента, который всегда будет на телефоне, а не когда мы с кабелем USB возле компа, ассистента который будет делать на телефоне все, что может делать пользователь, а не еще один умный браузер (привет Perplexity) который будет требовать API чтобы что-то сделать, или кастрированный Gemini assistant который только и твердит что он ИИ модель и не может ничего. Они в большинстве просто бесполезны, как и все чатботы которые всего лишь чатботы, но почему-то называются AI assistant для маркетинга.

Что оно умеет

Как и computer‑use он делает клики, скроллы, открывает приложения, и симулирует любые действия пользователя. Под капотом — работа с Accessibility API Андроида, используем tree экрана и скриншоты. Только на скриншотах мало что сделаешь, модели не очень хорошо с ними работают, оптимизируют картинки каждый по своему и так далее. Поэтому мы сделали определенную комбинацию того и другого, с экономией токенов, чтобы пользователи не продавали себя в рабство из‑за одного заказа еды. Также его можно сделать асситентом по умолчанию и оно будет реагировать на ваши голосовые команды и делать что захотите, без этого всего «Я ИИ модель и ничего не могу делать, хнык‑хнык».

Читать далее

Как автор книг по Kotlin проверял мой проект: разбор ошибок в Coroutines и архитектуре

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

Проведя аудит GitHub, я обнаружил, что полноценных реализаций Gemini-клиента с глубокой проработкой архитектуры практически нет. Я решил стать первым, кто выложит в открытый доступ не просто обертку над API, а готовую архитектурную базу с точным повторением UI оригинального Gemini.

Читать далее

Как улучшить пейволл в мобильном приложении

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

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

А сейчас — как раз такой разбор. Делюсь саммари мастер-класса Джейка Мора и Дэвида Барнарда о базовых, но критически важных принципах, которые напрямую влияют на эффективность пейволла.

Читать далее

Новый народный мессенджер России. Можно, а зачем?

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

Telegram практически заблокирован. Max — официальный, удобный, но его не хотят ставить даже те, кто в курсе, что именно VK-экосистема уже хранит половину их цифровой жизни. В этом зазоре появляется вопрос: а нужен ли вообще «свой» мессенджер, и если да — каким он должен быть? Я попробовал ответить не словами, а кодом.

Читать далее

Наконец-то нашел Android Service своей мечты после того, как потерял его 13 лет назад

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

В этой статье я собираюсь показать вам Android фичу, представленную в 2012 году, и попробую написать для неё UI на Compose.

Изучая недра Android, я наткнулся на один Service, который привлек моё внимание. Класс, который я обнаружил, не только заинтриговал меня своим названием, но и снова удивил интересными возможностями, скрытыми внутри Android.

Узнать подробности

Мобильная разработка за неделю #625 (23 — 29 марта)

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

В новом дайджесте сетевой слой в iOS и сериализация Kotlin, 10 ошибок, которые Android-разработчиков и сожаление о выборе профессии, что происходит с подписочной моделью в приложениях, как перестать бояться Claude Code и научить его не ломать проекты, и многое другое. Заходите!

Читать далее

Fury: Как за 4 месяца разработки мессенджера с нуля не сойти с ума

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

Итак, продолжу рассказ о том, как в один прекрасный день, оказавшись на задворках блокировок мессенджеров, я решил создать свой собственный. Изначально проект задумывался как простое средство коммуникации с родными и партнерами по бизнесу. Но вот во что это вылилось спустя всего 4 месяца... Ранее писал о том как всё это начиналось [тут] и [тут]

Аудитория и первые стресс-тесты

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

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

Читать далее

Vivaldi 7.9 для мобильных устройств — Удобно и красиво

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

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

Читать далее

Я написал язык программирования на C — и он работает в Termux

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

Kite lang

Я написал язык программирования на C — и он работает в Termux

Почему вообще

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

Потом я наткнулся на один ролик который дал мне надежду. Я вспомнил что DeepSeek неплохо пишет код и решил попробовать — первый Python проект заработал. Я был на седьмом небе от счастья.

Но тот проект был сырой и недоделанный. А когда пытаешься сделать на нём что-то серьёзное — DeepSeek выдавал код полный ошибок. Я фиксил один баг, появлялись три новых. Стало ясно что просто просить AI написать язык — не работает.

Однажды я снова сидел на YouTube и наткнулся на видео с канала WeaklyHow — он создавал свой язык программирования с помощью нейросетей. Видео было на английском, но я смотрел просто так — контекст был понятен и без перевода.

Читать далее

Как я прошел ад публикации в App Store и Google Play и вывел первые деньги

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

Я просто хотел выложить мобильное приложение и начать зарабатывать. В итоге – блокировка Google-аккаунта, несколько кругов ада с тестированием и квест с выводом денег. Рассказываю, как это было и почему это оказалось сложнее, чем написать само приложение

Читать далее

Как настроить сериализацию Kotlin Any с поддержкой Parcelable и Serializable в Android

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

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

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

Узнать подробности

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

Что происходит с подписочной моделью в приложениях: уроки, тренды и ориентиры на 2026 год

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

Перевод статьи Лорелея Уитмен, RevenueCat

Ключевые выводы из крупнейшего в мире набора данных о подписочных приложениях

Краткое содержание

Рынок подписочных приложений быстро меняется. Старые приложения по-прежнему доминируют по доле выручки, но новые каждый день наводняют cторы. ИИ-приложения «умирают» быстрее, чем успевают выходить, а зона безопасной выручки для среднего приложения стремительно исчезает. «Выживания» больше нет: либо процветаешь, либо выгораешь.

Каждый год наш отчёт «Состояние подписочных приложений» ставит целью понять, что меняется в индустрии: что нового, что ушло в прошлое и что нас ждёт. В этом году наш набор данных снова вырос: более 115 000 приложений, представляющих более 16 миллиардов долларов выручки. И мы проанализировали данные по всем 115 тысячам из них.

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

Если перефразировать слова Дэвида Барнарда: «Есть много приложений, которые зарабатывают много денег».

Но если у вас (как это ни удивительно) нет времени читать каждую страницу полного отчета, то этот краткий обзор для вас. Начнем!

Читать далее

Мониторинг LTE модемов: Из dBm и палок

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

У всех же есть знакомый, постоянно меняющий сим-карты и тарифы на них. То акция, то безлимит включили, то не ловит, то не качает. У меня есть, Роман привет.

Да и сам я лет 8 назад устанавливал 3G комплекты интернета в частном секторе. Симки всех операторов имел и активно пользовался, следил за тарифами. Закрепишь антенну, поймаешь сигнал, скорость покажешь и всё, интернет работает. А как работает?

Да, как?

Ребрендинг глазами разработчика: как мы переходили к единому кластеру «КИОН»

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

Привет, Хабр! Меня зовут Андрей Юрин, я мобильный разработчик в онлайн-кинотеатре «КИОН». Недавно у нас произошел ребрендинг, который коснулся всех платформ, но ресурсов на весь идейный план не хватало. Было решено все делать в мини-команде супергероев из дизайнеров и разработчиков. Я был в зоне отвественности за Android TV и хочу поделиться, с какими проблемами пришлось столкнуться и как проходит ребрендинг в большой компании.

Читать далее

Как рисовать игровые облака для чайников

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

Ты — начинающий художник, который дорвался до Unreal Engine 5 и даже создал по гайду свою первую локацию. Но вот незадача: небо! Оно пустое и совсем не такое, как тебе хочется. А хочется, чтобы всё было «по красоте». Перерыв весь YouTube, ты нашёл кучу плохих роликов и парочку видео, где на протяжении 100 500 часов монотонный хмырь рассказывает художественную базу, от которой уши вянут.

Давай начнём с простого. Открываем Photoshop и создаём сцену 2048 x 2048 (можно и больше, тут стесняться не надо). Дальше нам нужно скачать два набора кистей. Вообще, их можно купить или найти официально, но мы — люди находчивые, поэтому ищем на «зелёном Ютубе под пиратским флагом».

Читать далее

Capacitor: от веба к мобильным приложениям. Часть 3. OTA обновления в обход сторов

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

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

Читать далее

SMS в MikroTik: Читай меня полностью

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

Наверно, все владельцы роутеров MikroTik знают, что они декодируют все SMS по стандарту 7-bit вне зависимости от того, как изначально было закодировано сообщение. Как оказалось, даже при декодировании 7-bit MikroTik использует не все 128 символов из стандартного алфавита (GSM 7-bit Default Alphabet).

А ещё вместо одного длинного SMS роутер покажет вам его части по отдельности, иногда с неполными дубликатами. Как же тогда нормально прочитать любое сообщение, отправленное на роутер? Надо стать протоссом и построить MotherSMS.

Построить

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

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

В новом выпуске отладка iOS-приложений на практике и решение для установки сторонних приложений на Android от Google, Remote Compose и Copy-On-Write, эффекты рисования и градиентного рендеринга, неверная реализация MVVM, рынок труда для джунов в 2026 году и многое другое. Заходите!

Читать далее