このプロジェクトについて
Intrakill(InternalStorageOverkill)は、Kotlin Multiplatformで書かれたローカル暗号化メディアストレージアプリケーションです。対象はJVMデスクトップとAndroidで、iOSはサポートされていません。作者は、マンガやコミックなどグループ化されたメディア添付ファイルに最適だと述べています。
データモデルとストレージ
- ストレージはエントリのリストであり、各エントリには名前、添付ファイル、タグがあります。
- データベースはSQLCipherで暗号化されたSQLiteファイルで、名前はsecured.dbです。
- デスクトップのパス: ~/.Intrakill/databases/secured.db(Windows: c:\Users\%username%\.Intrakill\databases\secured.db)。
- Androidのパス: context.getDatabasePath("secured.db")、OSによって管理されます。
- このアプリは主に画像と動画を対象としています。
インポート/エクスポート
- デスクトップインスタンスは、ローカルネットワーク経由でストレージをエクスポートできます。
- インポート側は元のデバイスのIPとパスワードを入力し、インポート後は同じパスワードでインポート先デバイスのストレージを解除できます。
- 設計上、クラウド共有は意図的に避けられています。
パスワードの挙動
- パスワードリセットはありません。パスワードを忘れるとストレージを失います。ブルートフォースの実現可能性はパスワードの強度に依存します。
- ストレージを再作成する専用機能はありません。データベースファイルを削除するか、アプリを再インストールすることが提案されています。
ビルドと実行
- Androidデバッグビルド: ./gradlew :composeApp:assembleDebug(Windowsではgradlew.bat)。
- デスクトップ実行: ./gradlew :composeApp:run(Windowsではgradlew.bat)。
- IDEの実行構成もサポートされています。
実装上の注意
- UI/状態アーキテクチャはDecomposeライブラリを中心に構築されており、作者は状態処理を簡単にしてくれたと評価しています。
- 作者は、AIアシスタントが実装の一部に影響を与えたこと、またKotlin MultiplatformはFlutterやReactと比べて学習曲線が急だったと述べています。
コントリビューションはissueやpull requestで歓迎されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.