Sobre el proyecto

Intrakill (InternalStorageOverkill) es una aplicación local de almacenamiento multimedia cifrado escrita en Kotlin Multiplatform. Está dirigida a escritorio JVM y Android; iOS no es compatible. El autor señala que es más adecuada para adjuntos multimedia agrupados, como manga y cómics. Modelo de datos y almacenamiento - El almacenamiento es una lista de entradas; cada entrada tiene un nombre, adjuntos y etiquetas. - La base de datos es un archivo SQLite cifrado con SQLCipher llamado secured.db. - Ruta de escritorio: ~/.Intrakill/databases/secured.db (Windows: c:\Users\%username%\.Intrakill\databases\secured.db). - Ruta de Android: context.getDatabasePath("secured.db"), gestionada por el sistema operativo. - La aplicación está pensada principalmente para imágenes y vídeo. Importación/exportación - Una instancia de escritorio puede exportar su almacenamiento por la red local. - El importador proporciona la IP y la contraseña del dispositivo de origen; tras la importación, la misma contraseña desbloquea el almacenamiento en el dispositivo importador. - El diseño evita deliberadamente el uso compartido en la nube. Comportamiento de la contraseña - No hay restablecimiento de contraseña. Olvidar la contraseña significa perder el almacenamiento; la viabilidad de la fuerza bruta depende de la fortaleza de la contraseña. - No hay una función dedicada para recrear un almacenamiento; se sugiere eliminar el archivo de base de datos o reinstalar la aplicación. Compilación y ejecución - Compilación de depuración para Android: ./gradlew :composeApp:assembleDebug (o gradlew.bat en Windows). - Ejecución de escritorio: ./gradlew :composeApp:run (o gradlew.bat en Windows). - También se admiten configuraciones de ejecución del IDE. Notas de implementación - La arquitectura de UI/estado se construye en torno a la biblioteca Decompose, a la que el autor atribuye haber facilitado el manejo del estado. - El autor afirma que asistentes de IA influyeron en partes de la implementación y que Kotlin Multiplatform tuvo una curva de aprendizaje pronunciada en comparación con Flutter y React. Las contribuciones son bienvenidas mediante issues o pull requests.