Об этом проекте
Intrakill (InternalStorageOverkill) — локальное зашифрованное приложение для хранения медиафайлов, написанное на Kotlin Multiplatform. Оно ориентировано на JVM desktop и Android; iOS не поддерживается. Автор отмечает, что оно лучше всего подходит для группированных медиавложений, таких как манга и комиксы.
Модель данных и хранение
- Хранилище — это список записей; каждая запись имеет имя, вложения и теги.
- База данных — это зашифрованный SQLCipher файл SQLite с именем secured.db.
- Путь на desktop: ~/.Intrakill/databases/secured.db (Windows: c:\Users\%username%\.Intrakill\databases\secured.db).
- Путь на Android: context.getDatabasePath("secured.db"), управляется ОС.
- Приложение в основном предназначено для изображений и видео.
Импорт/экспорт
- Экземпляр на desktop может экспортировать своё хранилище по локальной сети.
- Импортирующий указывает IP-адрес исходного устройства и пароль; после импорта тот же пароль разблокирует хранилище на импортирующем устройстве.
- Дизайн намеренно избегает облачного обмена.
Поведение пароля
- Сброса пароля нет. Забытый пароль означает потерю хранилища; возможность перебора зависит от надёжности пароля.
- Нет специальной функции для пересоздания хранилища; предлагается удалить файл базы данных или переустановить приложение.
Сборка и запуск
- Отладочная сборка Android: ./gradlew :composeApp:assembleDebug (или gradlew.bat на Windows).
- Запуск desktop: ./gradlew :composeApp:run (или gradlew.bat на Windows).
- Также поддерживаются конфигурации запуска в IDE.
Примечания по реализации
- Архитектура UI/состояния построена вокруг библиотеки Decompose, которую автор считает заслугой в упрощении управления состоянием.
- Автор заявляет, что ИИ-ассистенты повлияли на части реализации, и что Kotlin Multiplatform имел крутую кривую обучения по сравнению с Flutter и React.
Вклад приветствуется через issues или pull request.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.