Один репозиторий — отдельные приложения, независимые конфигурации и сборки.
| Проект | Описание | Состояние |
|---|---|---|
| GeraKLab | Лаборатория интерактивных экспериментов для iPhone | Существующий проект |
| Spectra | Основа нового iOS-приложения для обнаружения и изучения устройств умного дома | В разработке |
Каждое приложение находится в собственной папке Projects/<Имя>, имеет свой project.yml, исходный код, ресурсы, конфигурацию и отдельный workflow сборки.
GeraKApps/
├── Projects/
│ ├── GeraKLab/
│ │ ├── App/
│ │ ├── Core/
│ │ ├── Models/
│ │ ├── Resources/
│ │ ├── Services/
│ │ ├── Views/
│ │ └── project.yml
│ └── Spectra/
│ ├── Sources/
│ │ ├── App/
│ │ ├── Core/
│ │ ├── Domain/
│ │ ├── Data/
│ │ ├── Services/
│ │ └── Presentation/
│ ├── Resources/
│ ├── Configs/
│ ├── Tests/
│ └── project.yml
├── .github/workflows/
│ ├── build-geraklab.yml
│ ├── build-spectra.yml
│ └── validate-repository.yml
├── .gitignore
└── README.md
- Swift, SwiftUI, XcodeGen и GitHub Actions.
- Текст документации и пользовательского интерфейса — на русском языке.
- Bundle ID приложений использует префикс
com.gerak: например,com.gerak.geraklabиcom.gerak.spectra. - Конфигурации, ресурсы и секреты одного приложения не должны случайно попадать в другое.
- Каждое приложение собирается отдельно; общие workflow не должны ломать независимую сборку проектов.
Для сборки iOS-приложений требуется macOS с совместимой версией Xcode. Установите XcodeGen:
brew install xcodegenЗатем выберите приложение и перейдите в его каталог. Например, для Spectra:
cd Projects/Spectra
xcodegen generate
xcodebuild -project Spectra.xcodeproj -scheme Spectra -destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO buildСборки в GitHub Actions запускаются отдельно для каждого проекта. Готовые артефакты публикуются в разделе Actions соответствующего workflow.
iOS ограничивает сетевое обнаружение и работу приложений в фоне. Реально доступные устройства зависят от локальной сети, протокола, разрешений и реализации самого устройства. Spectra не обещает обнаружить абсолютно все устройства и не обходит сетевую изоляцию или механизмы безопасности.
Гера Кухтов / madebygood · GitHub
Экосистема GeraK · Документация на русском языке