Takafumi Horiuchi

Practice Log n Share

Visão geral

Registrar a prática com um toque e mostrar a mesma tela ao professor na aula. Planejei e desenhei este app para iPhone para a minha própria prática de saxofone e o implementei em colaboração com IA.

Tela de registro. Uma grade de histórico aparece acima da barra de hoje (54 minutos no total) e dos cartões de categorias. A prática de peças está sendo cronometrada há mais de 27 minutos, destacada por uma cor mais clara e um contorno branco. Tela de compartilhamento. Do dia da aula, 17 de setembro, até o dia 24: 4 horas e 38 minutos, barras por categoria e uma tabela diária com todas as categorias sem rolagem horizontal.
Registro à esquerda, compartilhamento à direita. Toque em uma categoria para cronometrar e mostre na aula o resumo da prática entre aulas. As telas usam dados fictícios para ilustração. As capturas mostram a interface original em japonês.
Atuação
Planejamento, design UX/UI e implementação (com Claude Code e Codex)
Período
Setembro de 2026
Tecnologia
React · TypeScript; Swift (WKWebView, Live Activity, StoreKit, iCloud)

Origem — “Como vai a prática?”: eu não sabia responder

Nas aulas quinzenais, responder “principalmente escalas” não explicava o que eu havia praticado nem por quanto tempo. Escrever em um diário de papel com o saxofone pendurado no pescoço era difícil, e os apps de registro de tempo que experimentei serviam para eu mesmo rever os dados.

Entre duas datas de aula, aparecem barras de dias de prática e dias de descanso. A soma dos tempos diários por categoria em uma única barra abaixo resulta em 10 horas e 06 minutos.
As barras superiores mostram a prática diária; os contornos vermelhos marcam as aulas. Na aula, mostro o resumo do intervalo. Datas e tempos são fictícios; as barras superiores e inferiores têm a mesma duração total.

Registro — Com o instrumento nas mãos, um único toque

Durante a prática, só toco nos cartões de categorias. Um toque inicia o cronômetro, outro cartão muda a categoria e um novo toque no mesmo cartão para a contagem.

Tela de registro. Uma grade de histórico aparece acima da barra de hoje (54 minutos no total) e dos cartões de categorias. A prática de peças está sendo cronometrada há mais de 27 minutos, destacada por uma cor mais clara e um contorno branco.
1 Histórico
A prática acumulada. A primeira coisa que aparece ao abrir o app.
2 Hoje
Ordem e distribuição da prática. Cheia em uma hora.
3 Em curso
Só este cartão fica claro, com contorno branco.
4 Cartões
Toque para mudar. O tempo de hoje em destaque.

Um dia — Depois de cheia, a barra continua cheia

A barra de hoje fica cheia com uma hora. Depois disso, o total atual passa a definir a borda direita, para que nenhum espaço vazio reapareça em uma barra já preenchida.

Prática de hoje — 1 h 05 min

Escolhida

Descartada

Comparação com 65 minutos de prática. Acima, a opção escolhida usa o total como borda direita, com uma escala mínima de uma hora. Abaixo, a descartada amplia a escala de 60 para 90 e 120 minutos. Ao passar de uma hora, o espaço vazio reaparece apenas na barra inferior.

Acúmulo — Tudo à vista, desde o primeiro dia

Tons de verde indicam a prática; contornos vermelhos marcam as aulas. A rolagem horizontal permite voltar ao primeiro dia registrado. Priorizei consultar anos de prática em vez de reduzir o custo de renderização.

Grade do histórico. Tons de verde representam a prática de junho a setembro; contornos vermelhos marcam as aulas quinzenais.
Cinco níveis: 0 minutos, menos de 30, menos de 60, menos de 90 e 90 ou mais. Esse acúmulo é a primeira coisa que se vê ao abrir o app.

Compartilhar — No início da aula, uma tela que diz tudo de relance

Totais por categoria e detalhes diários resumem o período da última aula até hoje, prontos para mostrar ao professor. A tabela diária acomoda todas as categorias em uma tela, mesmo com letras menores, eliminando a rolagem horizontal.

Evolução — Cartões como painel de controle da prática

Construí as telas a partir de uma especificação elaborada em diálogo com IA, testando e revisando pessoalmente várias vezes. Explorei o registro e o compartilhamento numa versão web inicial antes de implementar o app para iPhone.

Versão inicial de 9 de setembro. Seis cartões pequenos e o total de hoje, 40 minutos, ficam em áreas separadas da tela de registro.

9 de setembro
Versão inicial

Versão web de 21 de setembro. Categoria e tempo de hoje se unem em cartões grandes; a leitura de partitura em curso, com 10 minutos, aparece destacada.

21 de setembro
Versão web

Tela de registro. Uma grade de histórico aparece acima da barra de hoje (54 minutos no total) e dos cartões de categorias. A prática de peças está sendo cronometrada há mais de 27 minutos, destacada por uma cor mais clara e um contorno branco.

24 de setembro
iOS 1.0

As versões inicial e web usam os mesmos dados fictícios (seis categorias, 40 minutos hoje). O iOS 1.0 usa outros dados fictícios.
Nome e tempo, juntos
Destaquei o tempo de hoje em cada cartão, ligando o que pratiquei ao tempo dedicado.
O estado atual, de relance
Clareei apenas o cartão em uso e escureci os demais.
Os controles dentro da tela
Fiz a rolagem parar onde uma fileira de cartões cabe na tela.

Na etapa final, repeti cerca de 15 vezes um ciclo: Claude Code apontava possíveis problemas, Codex verificava e corrigia, e eu decidia quais mudanças aceitar.

Sensação — Escolher como parar experimentando

Só instruções verbais não produziam a sensação de “mover suavemente e parar com precisão”. Criei com IA uma ferramenta para trocar métodos e valores na hora, comparei cinco métodos num dispositivo real e escolhi o encaixe de rolagem nativo do navegador.

Modelo de corcova

Cinco gestos em dispositivo real com Modelo de corcova. Eixo horizontal: 0–1200 milissegundos após soltar o dedo; vertical: distância da posição de encaixe. O zero pontilhado marca essa posição; o ponto final de cada linha é a última posição medida.

Destino projetado

Cinco gestos em dispositivo real com Destino projetado. Eixo horizontal: 0–1200 milissegundos após soltar o dedo; vertical: distância da posição de encaixe. O zero pontilhado marca essa posição; o ponto final de cada linha é a última posição medida.

Nativo proximity
Escolhida

Cinco gestos em dispositivo real com Nativo proximity. Eixo horizontal: 0–1200 milissegundos após soltar o dedo; vertical: distância da posição de encaixe. O zero pontilhado marca essa posição; o ponto final de cada linha é a última posição medida.

Nativo mandatory

Cinco gestos em dispositivo real com Nativo mandatory. Eixo horizontal: 0–1200 milissegundos após soltar o dedo; vertical: distância da posição de encaixe. O zero pontilhado marca essa posição; o ponto final de cada linha é a última posição medida.

Sem encaixe

Cinco gestos em dispositivo real com Sem encaixe. Eixo horizontal: 0–1200 milissegundos após soltar o dedo; vertical: distância da posição de encaixe. O zero pontilhado marca essa posição; o ponto final de cada linha é a última posição medida.
Posições após soltar o dedo, comparadas na mesma escala. O zero pontilhado marca o encaixe. Dos registros do dispositivo, selecionei cinco gestos por método com velocidades de 0,6–1,8 px/ms, calculadas pelas posições nos 60 ms anteriores, priorizando os mais próximos de 1,2 px/ms. Configurações, posições iniciais e direções variam entre os gestos.
Ferramenta de ajuste da rolagem. Opções para alternar entre cinco métodos e seus parâmetros ao lado de uma tela de celular para experimentar a interação.
Comparei como a rolagem parava num dispositivo real, registrando distância e velocidade. Abra a imagem para ampliar.

Como produto — Além da prática

A aparência acompanha as configurações do dispositivo. Os registros ficam no aparelho e recebem backup automático no iCloud.

Modo claro. Tela de registro. Uma grade de histórico aparece acima da barra de hoje (54 minutos no total) e dos cartões de categorias. A prática de peças está sendo cronometrada há mais de 27 minutos, destacada por uma cor mais clara e um contorno branco.Modo escuro. Tela de registro. Uma grade de histórico aparece acima da barra de hoje (54 minutos no total) e dos cartões de categorias. A prática de peças está sendo cronometrada há mais de 27 minutos, destacada por uma cor mais clara e um contorno branco.
A mesma tela de registro nos modos claro e escuro.
109 ícones temáticos para escolher conforme a prática, organizados em instrumentos, exercício, aprendizagem, pintura, artesanato e expressão.
O ícone do cabeçalho pode acompanhar a prática: 47 de música, 15 de exercício, 15 de idiomas e aprendizagem, 11 de arte, 14 de criação e cotidiano, e 7 de expressão. O saxofone se baseia em Qlementine Icons (licença MIT).

Em uso — A próxima pergunta: quanto detalhe registrar

Usei o app nas práticas de manhã e mostrei a tela ao professor na aula. O retorno foi que o conteúdo da prática ficava claro de imediato e que registrar os tipos de escalas seria ainda mais útil (paráfrase). Estou considerando um nível abaixo das categorias para registrar mais detalhes sem perder a simplicidade.

Materiais

A demonstração web permite experimentar o registro e o compartilhamento. Inclui meus registros de prática até 20 de setembro de 2026; as alterações ficam salvas apenas no navegador em uso.

  1. Slide 1. Capa: desenvolvimento de um app para registrar a prática e compartilhá-la com o professor. Takafumi Horiuchi.
  2. Slide 2. Visão geral: Log para registrar e Share para mostrar a prática ao professor. Atuação, período e ferramentas.
  3. Slide 3. Contexto: comunicar a prática de saxofone com precisão ao professor. Problemas do diário de papel e dos apps existentes.
  4. Slide 4. Abordagem: registro com um toque e visualização imediata. Acúmulo de prática em duas escalas: um dia e meses ou anos.
  5. Slide 5. Quatro usos de IA: pesquisa, implementação inicial, ferramenta para ajustar a interação e otimização.
  6. Slide 6. Colaboração com IA: pesquisa de apps existentes e concretização do conceito por diálogo.
  7. Slide 7. Implementação inicial: comparação entre V0 gerada por IA e V1 revisada com comentários sucessivos sobre layout e cores.
  8. Slide 8. Ajuste da interação: ferramenta criada com IA para comparar pessoalmente a velocidade e a parada da rolagem.
  9. Slide 9. Otimização: sugestões de problemas por Claude Code, verificação e correção por Codex e decisões humanas, em ciclos.
  10. Slide 10. Resultados e próximos passos: uso próprio, retorno do professor e consideração de subcategorias para registros mais detalhados.
Role horizontalmente para mudar de slide. Clique ou toque para ampliar. Os originais estão em japonês.

Abrir os materiais em PDF (japonês, 4,4 MB)