Skip to content

Instantly share code, notes, and snippets.

@git58
Created February 10, 2026 13:18
Show Gist options
  • Select an option

  • Save git58/e83aa7a1009bb9dbde7bdd3640ee719a to your computer and use it in GitHub Desktop.

Select an option

Save git58/e83aa7a1009bb9dbde7bdd3640ee719a to your computer and use it in GitHub Desktop.

Этот этап можно назвать «Фаза Троянского коня». Ваша цель — создать полный набор приложений, которые выглядят и ощущаются как независимая ОС, но работают внутри Android. Это позволит вам отшлифовать UX на 100%, прежде чем вы столкнетесь с суровым миром системных драйверов Linux.

Вот бизнес-план для этой фазы.


Бизнес-план: Проект «OpenBarbet Shell» (Dual-Stack Edition)

1. Концепция продукта

Создание экосистемы приложений-заменителей (Replacement Apps) на Qt 6, которые перехватывают основные функции смартфона (звонки, сообщения, запуск приложений), имитируя интерфейс Sailfish OS.


2. Архитектура "Dual-Stack" (Принцип абстракции)

Чтобы код был полезен и в Android, и в будущем Linux, каждое приложение строится по схеме:

  • UI Layer (QML): Единый код для всех систем.
  • Service Bridge (C++): Интерфейс (интерфейсный класс), который имеет две реализации:
  • Android Implementation: Использует Qt JNI для общения с API Android (Java).
  • Linux Implementation: Использует Qt D-Bus для общения с ofono, bluez и т.д.

3. Roadmap разработки (Покрытие приложений)

Этап I: Базовая коммуникация (The Core)

  • Dialer (Звонилка): Журнал вызовов, номеронабиратель, экран активного вызова.

  • Android-сложность: Запрос разрешений на управление звонками.

  • Messages (SMS): Список диалогов и чат.

  • Android-сложность: Требуется стать «Default SMS App» (в Qt это делается через манифест).

Этап II: Контент и Организация (The Life)

  • Gallery & Camera: Просмотр фото с поддержкой жестов Sailfish (свайп для возврата в сетку).
  • Contacts: Книга контактов с интеграцией в звонилку.
  • Calendar: Специфический виджет «событий дня» в стиле Sailfish.

Этап III: Системная оболочка (The Illusion)

  • Launcher (Рабочий стол): Приложение, которое заменяет стандартный лаунчер Pixel.
  • Функция: Отображение сетки приложений + реализация Active Covers (миниатюры запущенных Qt-приложений).
  • Риск: В Android сложно реализовать настоящие "Active Covers" для сторонних приложений, поэтому на этом этапе они будут работать только для ваших собственных Qt-утилит.

4. Технологический стек (Инвентарь)

  • Фреймворк: Qt 6.8+ (для лучшей поддержки Android 14/15).
  • Компоненты: Форк glacier-components (QtQuick Controls 3 / Nemo).
  • Бэкенд: Qt Android Extras (для JNI вызовов).
  • Сборочная среда: Fedora + Android SDK/NDK + Qt Creator.

5. Анализ покрытия (Что вы получите в итоге)

Приложение Статус в Android Статус в Linux (после миграции)
Звонилка Работает через JNI Переключается на D-Bus (ofono)
Настройки Открывает системные настройки Android Управляет конфигами /etc/
Браузер WebView (Chromium) QtWebEngine
Музыка Android Media Store PulseAudio/Pipewire + Tracker

6. Риски и минимизация

  • Риск: Android убивает фоновые процессы Qt.

  • Решение: Написание маленького Service на Java, который держит Qt-библиотеку загруженной.

  • Риск: Невозможность перехватить системные жесты (например, свайп снизу вверх).

  • Решение: Использовать "режим киоска" или просто смириться с тем, что в Android-версии жесты системы и приложения сосуществуют.


7. KPI (Критерии успеха)

Проект считается завершенным в фазе Dual-Stack, если вы можете провести целый день, не выходя из своих Qt-приложений, используя Android только как "ядро" для запуска ваших APK.

Ваш первый шаг:

Вам нужно создать Базовый проект-библиотеку (Common Library), в которой будут описаны все ваши UI-стили (цвета, шрифты, базовые элементы Silica).

Хотите, я помогу составить структуру папок для такого мульти-платформенного проекта, чтобы вы могли начать писать первый код, который запустится и на Fedora, и на вашем Pixel?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment