- Notifications
You must be signed in to change notification settings - Fork3
The template for SwiftPM-based highly modularized (iOS) applications
License
CaptureContext/basic-ios-template
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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.gitmv<your-app-name>-ios Appcd App
You can choose any name or avoid nesting, but we recommend to follow the example (including the case) to get the best result 😌
- Renameproject.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
SeeExtensions andDependencies 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 yourSources
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 shared resources and generated boilerplate, but you can declare target-specific resources too, see https://github.com/capturecontext/spmgen}
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 🚀
- 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
About
The template for SwiftPM-based highly modularized (iOS) applications
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.