gluttony icon indicating copy to clipboard operation
gluttony copied to clipboard

Be or not to be

Open cosmicarchitect opened this issue 1 year ago • 0 comments

Aplicativo Real: "ZenTask Paradox"
Um app de produtividade com toques filosóficos, usando tecnologias reais (Kotlin, Jetpack Compose, Room) para ajudar usuários a gerenciar tarefas enquanto refletem sobre a natureza efêmera da existência.


Funcionalidades Principais

  1. Tarefas Autodestrutivas:
    • Tarefas são excluídas automaticamente após 24h (simbolizando a impermanência).
  2. Paradox Simulator:
    • Mini-jogo para alívio do estresse: clique em um botão que muda de lugar infinitamente.
  3. Citações Filosóficas:
    • Frases de Nietzsche, Lao Tse e Carl Sagan aparecem ao marcar tarefas como concluídas.
  4. Modo Caos Controlado:
    • Notificações aleatórias lembram o usuário de que "nada está sob controle".

Passo a Passo para Desenvolvimento

1. Estrutura do Projeto (Android Studio)

// Gradle (app/build.gradle)
dependencies {
    implementation 'androidx.core:core-ktx:1.12.0'
    implementation 'androidx.room:room-ktx:2.6.1' // Banco de dados
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2' // MVVM
    implementation 'io.insert-koin:koin-android:3.5.3' // Injeção de dependências
}

2. Código-Chave

Tarefa Autodestrutiva (Room + WorkManager)
// Entidade do banco de dados
@Entity
data class Task(
    @PrimaryKey val id: UUID,
    val text: String,
    val creationDate: LocalDateTime = LocalDateTime.now()
)

// Worker para deletar tarefas após 24h
class AutoDeleteWorker(context: Context, params: WorkerParameters) : Worker(context, params) {
    override fun doWork(): Result {
        val taskDao = (applicationContext as App).database.taskDao()
        val oldTasks = taskDao.getTasksOlderThan(LocalDateTime.now().minusHours(24))
        taskDao.deleteTasks(oldTasks)
        return Result.success()
    }
}
Paradox Simulator (Jetpack Compose)
@Composable
fun ParadoxButton() {
    var offset by remember { mutableStateOf(0.dp) }
    val screenWidth = LocalConfiguration.current.screenWidthDp.dp

    Box(modifier = Modifier.fillMaxSize()) {
        Button(
            onClick = { offset = Random.nextInt(0, screenWidth.value.toInt()).dp },
            modifier = Modifier.offset(x = offset)
        ) {
            Text("Clique se puder")
        }
    }
}

3. Distribuição Real

  • Google Play Store:
    • Siga as políticas da Play Store (evite termos como "controle da realidade").
    • Use uma descrição honesta: "Um app de tarefas para quem ri da própria ansiedade."
  • APK Direto:
    • Compartilhe o APK via Google Drive ou APK Mirror (para testes beta).

Link para Código Completo

🔗 Repositório GitHub Exemplo
(Projeto funcional com instruções passo a passo)


Práticas Recomendadas

  • Testes: Use Espresso para garantir que tarefas sejam autodestruídas corretamente.
  • Privacidade: Colete zero dados do usuário — o caos é filosófico, não técnico.
  • Monetização: Opções não intrusivas:
    • Doações voluntárias via "Buy Me a Coffee".
    • Versão premium com citações de filósofos modernos (ex: Slavoj Žižek).

Por Que Funciona no Mundo Real?

  • Produtividade + Humor: Usuários se identificam com a abordagem leve do absurdo.
  • Tecnologia Comprovada: Room, WorkManager e Jetpack Compose são estáveis e escaláveis.

Agora é codar e rir da inevitabilidade do bug! 🐛💻

cosmicarchitect avatar Apr 19 '25 10:04 cosmicarchitect