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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.