origo

license GPLv3

Categories iOS
Stack SwiftUI, SwiftData, Google Maps SDK, AVFoundation

overview

Desenvolvemos o Origo como parte de um desafio focado em solucionar problemas de profissões específicas. A ideia era substituir as pranchetas e papéis usados em sítios arqueológicos por uma solução digital mais prática. O aplicativo permite o cadastro detalhado de artefatos encontrados em campo, incluindo dados técnicos como materiais, técnica de produção e estado de conservação, além de informações do sítio e número do processo correspondente.

Mais do que um simples formulário, o Origo atua como um companheiro de campo multimídia, permitindo anexar fotos e gravações de áudio a cada ficha, consolidando todas as informações da escavação facilmente.

Do ponto de vista técnico, o Origo foi um mergulho no SwiftData para persistência local, lidando com modelos que conectam artefatos a mídias variadas. Utilizamos o Google Maps SDK para capturar coordenadas geográficas, que convertemos para o formato UTM.

Outro destaque foi a implementação da API de Speech, que transcreve automaticamente as notas de áudio gravadas pelo usuário em texto, economizando tempo de digitação. A interface em SwiftUI gerencia fluxos de entrada de dados densos sem sacrificar a clareza e a usabilidade.

tech stack

SwiftUI
framework de UI
SwiftData
persistência local
Google Maps SDK
serviços de localização
AVFoundation
manipulação de áudio

code snippets

Usamos um padrão de 'rascunho' para lidar com o registro de artefatos. Usando um ObservableObject temporário em vez de escrever direto no SwiftData, garantimos que dados incompletos ou acidentais não poluam o banco de dados até o usuário salvar.

class RecordDraft: ObservableObject {
    @Published var id: UUID = UUID()
    @Published var name: String = ""
    @Published var createdAt: Date = Date()
    @Published var location: LocationInfoModel? = nil
    @Published var artifactData: ArtifactDataModel? = nil
    @Published var artifactDetails: ArtifactDetailsModel? = nil
    @Published var audios: [AudioModel] = []
    @Published var photos: [CapturedImageModel] = []
    @Published var geolocation: MapMarkerModel? = nil
    var asRecordModel: RecordModel {
        let artifact = ArtifactModel(
            location: location,
            artifactData: artifactData,
            artifactDetails: artifactDetails
        )
        return RecordModel(
            id: id,
            name: name,
            createdAt: createdAt,
            artifact: artifact,
            audios: audios,
            photos: photos,
            geolocation: geolocation
        )
    }
}

design choices

palette

rocha base #472500
ferrugem #C54302
poeira #F6D2B2
rio #436187

typography

Brasilero 2018 Free / onboarding e logotipo
Zebras jogam xadrez com o velho faquir
SF Pro Display / interface primária
Zebras jogam xadrez com o velho faquir

some fonts used in this project are proprietary and may not display correctly if they are not installed on your system.

rationale

Origo é um aplicativo feito para ajudar arqueólogos com o trabalho de registro e catalogação de artefatos achados em campo. A paleta de cores usa tons terrosos e naturais que remetem à terra e aos artefatos, criando uma conexão com a natureza e a história.

Para a tipografia, o onboarding e o nome do app utilizam a fonte Brasilêro, criada a partir da análise de milhares de placas e sinais escritos à mão em comunidades urbanas e rurais por todo o Brasil. Escolhemos essa fonte por remeter à cultura nacional e trazer um toque humano e artesanal ao design. Para o restante da interface, utilizamos a SF Pro Display, que é moderna, limpa e altamente legível em telas digitais, garantindo uma experiência prática e nativa de leitura.

O app conta ainda com mais um detalhe artesanal ligado ao trabalho em campo: escaneamos diversas folhas e pequenas plantas, cujas silhuetas foram vetorizadas e utilizadas como ornamentos e detalhes visuais no onboarding e no logotipo do app, reforçando a conexão com a natureza e o ambiente arqueológico.

credits