Sobre o projeto
Kickstarter para iOS é a versão oficial de código aberto do aplicativo nativo Kickstarter para iOS, compartilhada pela empresa como um recurso educacional sobre como sua equipe nativa constrói e mantém o aplicativo. Uma contraparte para Android também é disponibilizada separadamente como código aberto.
Para começar, é necessário o Xcode (o README informa suporte a Xcode 14.3 / Swift 5.8) e clonar o repositório. Definir `KsApi.Secrets.isOSS` como `true` fornece uma versão simulada que serve dados codificados imediatamente, permitindo explorar o aplicativo sem credenciais de backend ativas.
Práticas de engenharia notáveis descritas no README:
- Testes de snapshot: cada pasta de funcionalidade em `Kickstarter-Framework-iOS` contém um diretório de snapshots, totalizando quase 600 capturas de tela que cobrem muitos idiomas, dispositivos e estados de casos extremos, usadas para manter o comportamento da interface estável.
- View models: usados como uma forma leve de isolar efeitos colaterais em torno de um núcleo funcional, escritos como mapeamentos puros de sinais de entrada para sinais de saída, com testes extensos incluindo localização, acessibilidade e rastreamento de eventos.
Os testes podem ser executados pela linha de comando com `make test-all`, ou por esquema no Xcode com CMD+U. Documentação adicional está no repositório separado `native-docs`.
As dependências incluem bibliotecas próprias Prelude (tipos e funções ausentes na biblioteca padrão do Swift) e ReactiveExtensions (operadores adicionados ao ReactiveCocoa, construídos sobre ReactiveSwift), além de projetos de terceiros como AlamofireImage, SnapshotTesting, Apollo, Stripe, Kingfisher, SwiftSoup, Facebook SDK, Firebase, Appboy e PerimeterX. Avisos de terceiros estão em `NOTICE.md`.
Contribuições são bem-vindas principalmente como issues no GitHub para feedback e relatórios de bugs, com instruções para incluir sistema operacional, dispositivo, número da versão e passos de reprodução. Um código de conduta se aplica a todos os participantes. O projeto é licenciado sob a Apache License 2.0, Copyright 2021 Kickstarter, PBC.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.