Об этом проекте
Kickstarter for iOS — это официальный open-source релиз нативного iOS-приложения Kickstarter, опубликованный компанией как образовательный ресурс о том, как её нативная команда создаёт и поддерживает приложение. Android-версия также выпущена в open source отдельно.
Для начала работы требуются Xcode (в README указана поддержка Xcode 14.3 / Swift 5.8) и клонирование репозитория. Установка `KsApi.Secrets.isOSS` в значение `true` предоставляет мок-версию, которая сразу отдаёт жёстко закодированные данные, поэтому приложение можно изучать без реальных учётных данных бэкенда.
Примечательные инженерные практики, описанные в README:
- Snapshot-тесты: каждая папка фичи в `Kickstarter-Framework-iOS` содержит каталог snapshots, в совокупности хранящий почти 600 скриншотов, покрывающих множество языков, устройств и граничных состояний; они используются для поддержания стабильности поведения UI.
- View models: используются как лёгкий способ изолировать побочные эффекты вокруг функционального ядра, написаны как чистые отображения входных сигналов в выходные, с обширными тестами, включая локализацию, доступность и отслеживание событий.
Тесты можно запускать из командной строки с помощью `make test-all` или по отдельным схемам в Xcode через CMD+U. Дополнительная документация находится в отдельном репозитории `native-docs`.
Зависимости включают собственные библиотеки Prelude (типы и функции, отсутствующие в стандартной библиотеке Swift) и ReactiveExtensions (операторы, добавленные к ReactiveCocoa, построенной на ReactiveSwift), а также сторонние проекты, такие как AlamofireImage, SnapshotTesting, Apollo, Stripe, Kingfisher, SwiftSoup, Facebook SDK, Firebase, Appboy и PerimeterX. Уведомления о сторонних компонентах находятся в `NOTICE.md`.
Вклад приветствуется в первую очередь в виде GitHub issues для обратной связи и сообщений об ошибках, с инструкцией указывать операционную систему, устройство, номер версии и шаги воспроизведения. Ко всем участникам применяется кодекс поведения. Проект лицензирован под Apache License 2.0, Copyright 2021 Kickstarter, PBC.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.