basic-ios-template
Getting started
-
Fork the repo as a template.
-
Create a local folder for your app and navigate to it
mkdir <YourAppName>
cd <YourAppName>
- Clone the template, rename cloned folder to
App
and navigate to it
git clone https://github.com/<your-profile>/<your-app-name>-ios.git
mv <your-app-name>-ios App
cd App
You can choose any name or avoid nesting, but we recommend to follow the example (including the case) to get the best result
😌
- Rename project.yml, .config/project.yml and .config/preview.yml contents accordingly to your needs
- bundleIdPrefix:
org-domain.org-host
to your bundleID prefix - targets:
MyTarget
to<your-app-name>-ios
- info.properties.CFBundleDisplayName:
MyApp
to<YourAppName>
- Bootstrap the environment
make bootstrap
See Makefile for details
Than you can commit changes and you are ready for the actual development
open Package.xcworkspace
Structure
See Extensions and Dependencies for more details for these modules
Main work is happenning in the root package.
<#Module#>Feature
naming is used for modules user directly interact with<#Service#>
naming modules is used for modules that are used by developers to build feature modules
Basically your Sources
folder structure will look kinda like this
Sources { // Main modules
AppFeature // Entry point for the app, contains AppDelegate, RootViewController, AppState etc., coordinates app flows
MainFeature // Main app flow, non-main flows may be Onboarding/Admin/Auth for example.
<#SomeFeature#>Feature // Any other feature
AppUI // App-specific UI components
APIClient // Service module example
Resources // Contains resources and generated boilerplate
}
Note:
Scripts can be improved later so we advice you to keep an eye on the repo and a tracking reference to our
main
branch to keep your infrastructure up to date🚀
Recommended dependencies
- https://github.com/pointfreeco/swift-composable-architecture
- https://github.com/pointfreeco/swift-identified-collections
- https://github.com/pointfreeco/swift-parsing
- https://github.com/capturecontext/swift-declarative-configuration
- https://github.com/capturecontext/swift-composable-environment
- https://github.com/capturecontext/swift-standard-clients
- https://github.com/capturecontext/swift-capture
- https://github.com/capturecontext/spmgen
- https://github.com/snapkit/snapkit
Will be recommended later (yet in alpha or beta)
- https://github.com/capturecontext/composable-architecture-extensions
- https://github.com/capturecontext/swift-foundation-extensions
- https://github.com/capturecontext/swift-cocoa-extensions
- https://github.com/capturecontext/combine-extensions
- https://github.com/capturecontext/combine-cocoa
- https://github.com/capturecontext/combine-cocoa-navigation
- https://github.com/capturecontext/swift-prelude
- https://github.com/capturecontext/swift-generic-color
- https://github.com/capturecontext/swift-palette