Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/0xopenbytes/ios-base
The OpenBytes template for iOS projects using SwiftUI
https://github.com/0xopenbytes/ios-base
ios swift swiftui template
Last synced: 2 months ago
JSON representation
The OpenBytes template for iOS projects using SwiftUI
- Host: GitHub
- URL: https://github.com/0xopenbytes/ios-base
- Owner: 0xOpenBytes
- License: mit
- Created: 2023-01-02T18:59:42.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-04T06:20:06.000Z (over 1 year ago)
- Last Synced: 2023-05-04T07:55:56.963Z (over 1 year ago)
- Topics: ios, swift, swiftui, template
- Language: Swift
- Homepage:
- Size: 145 KB
- Stars: 18
- Watchers: 4
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
## Project
### Structure
- base
- App: SwiftUI App and Views
- Data
- Mock: Static mock data and json reading functionality.
- Network: Network data models used in Services and Adapters.
- Adapters: Objects that can convert from Network to Device or Device to Network models.
- JSON: Network data model JSON files.
- Device: Device data models used in SwiftUI Views and ViewModels. Device models should be created from Network models by using Adapters.
- FileStorage: Local storage functionality.
- Navigation: SwiftUI NavigationPath using OpenBytesNavigation.
- Networking: Networking functionality.
- Notifications: Local Notification functionality.
- Persistence
- Caching
- Image: Memory storage for Images, used in ImageView.
- Data: Memory storage for anything conforming to DataCaching.
- Preview Content
- Settings: Shared app data and state.
- Utilities: Miscellaneous app utilities.
- baseTests
- Adapters: Test Network to Device and Device to Network transformations.
- Persistence: Tests for Persistence and Caching.
- UserRegistration: Tests for register using ViewModels and DI.
- Validation: Tests for different types of data validation.## Getting Started
### Installing development dependencies
1. Install [Homebrew](https://brew.sh)
2. Run `brew bundle`Learn more about [SPX](https://www.github.com/FullQueueDeveloper/SPX) and [Xcodegen](https://github.com/yonaskolb/XcodeGen)
### Renaming
There are some scripts to help rename base to whatever project name you want.
- Clone the templated repository
- run `./rename.sh`
- Enter a project name## Continuing onward
### Regenerate the project
spx xcodeproj
### Pushing to the App Store
This script expects `APPLE_TEAM_ID`, `APPLOADER_USERNAME` and `APPLOADER_PASSWORD` to be present in the environment.
It doesn't have to stay that way. Modify `SPX/Sources/appstore/Secrets.swift` to use an API key, or perhaps fetch credentials from a password manager like 1Password using [Sh1Password](https://github.com/FullQueueDeveloper/Sh1Password).
When that's settled, you can run
spx appstore