Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

Awesome Lists containing this project

README

        


Icon representing the OpenBytes iOS-base template project.

iOS-Base


The OpenBytes template for iOS projects using SwiftUI



MIT License



Community Chat

iOS Version

## 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