Produto próprio · iOS

Vinstack

Avaliação e organização de álbuns, faixa a faixa.

SwiftSwiftUICloudKit
Estante de álbuns avaliados
Estante de álbuns avaliados
Nova avaliação, faixa a faixa
Card para os Stories
Site do app

A landing que leva à App Store

vinstack.app
Site do Vinstack
Decisões

Três escolhas que definiram o app

01

Migração de catálogo

A base do app é o catálogo musical, e a fonte original cobria menos do que os usuários procuravam. Migrei para o Deezer por alcance de acervo — mas o problema não era trocar a API: era não quebrar as avaliações já feitas, presas a IDs da fonte antiga. Cada álbum passou a carregar um campo catalogSource, e a biblioteca antiga migra de forma assistida em vez de ser reescrita de uma vez. O app reconhece de onde cada registro veio e reconcilia sob demanda, com o usuário confirmando o que for ambíguo. Reescrita em massa é rápida de programar e impossível de desfazer.

02

Listas tipadas

Uma coleção genérica de álbuns serve para tudo e não resolve nada: acervo avaliado, lista temática e o que ainda vou ouvir querem comportamentos diferentes. Dei tipo às listas em vez de deixar tudo numa estrutura só. O modelo ficou mais rígido de propósito — o app deixa de perguntar ao usuário o que cada lista significa, e cada tipo pode ter regra própria sem virar condicional espalhada pela interface.

03

Card de compartilhamento

O card para Stories não é funcionalidade de conveniência: é canal de aquisição. App de nicho sem verba de mídia depende de o próprio usuário divulgar, e o compartilhamento só acontece se o que sai for bonito o bastante para a pessoa querer postar. Tratei o card como peça de marca do produto, não como screenshot exportado. É a única parte do Vinstack que existe para ser vista por quem ainda não tem o app.

Stack

Com o que foi feito

linguagemSwift 6
dadosSwiftData · CloudKit
uiSwiftUI
distribuiçãoApp Store · TestFlight

Quer algo assim?

Me conte o que você tem em mente. Respondo em um dia útil.

Chamar no WhatsApp