π WeAreOpenSource Swift - Beta
This project is a Swift stack that can be ran as a standalone FrontEnd. Or in a fullstack with another repo of your choice (ex: Node, Vue).
Quick links :
- Mindset and what we would like to create
- How to start a project and maintain updates from stacks
- Global roadmap and ideas about stacks
- How to contribute and help us
Our stack Swift is actually in Beta.
- Swift wiki - wip
- Knowledges Swift
- [Demo] Follow Instalation Guide (working with Node stack, email: [email protected], password: TestWaos@2019)
Subject | Informations |
---|---|
Available | |
Architecture | Layered Architecture : everything is separated in layers, and the upper layers are abstractions of the lower ones, that's why every layer should only reference the immediate lower layer (vertical modules architecture with Services Pattern)) |
Server / DB | Our Node stack. |
Reactive | RxSwift - ReactorKit RxOptional - RxDataSources - RxDataSources - RxAppState |
Requests | Moya - Kingfisher - images, with cookie plugin |
Models | Validator - Models struct & Validatable |
Flow | RxFlow |
Tools | SnapKit - Then - Reusable - ReusableKit |
UX | Eureka - Toaster - FontAwesome - SwiftSpinner |
Logs | CocoaLumberjack - LogFormatter services available |
CI | Travis CI fastlane & Slather |
Linter | SwiftLint - SwiftGen |
Developer | Code Climate standard-version / semantic-release - commitlint - commitizen - @weareopensource/conventional-changelog |
Dependencies | SPM |
Being released | |
Testing | in development |
In reflexion | |
wip | .... |
-
User : classic register / auth or oAuth(microsoft, google) - profile management (update, avatar upload ...)
-
User data privacy : delete all data & account - send all data by mail
-
Tasks : list tasks - get task - add tasks - edit tasks - delete tasks
-
Uploads : get upload stream - add upload - auto delete old via api (ex : image => kingfisher: jwt, styles, cache, or sharp via node api)
-
Notification : example of notificaiton management
Make sure you have installed all of the following prerequisites on your development machine:
- Git - Download & Install Git
- Xcode (10.x) - Download & Install Xcode
- HomeBrew -
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- SwiftLint -
brew update && brew install swiftlint
(swiftlint autocorrect
) - SwiftGen -
brew update && brew install swiftgen
For CI :
- install ruby for MacOs users
- Fastlane & Slather -
bundle install
It's straightforward :
git clone https://github.com/weareopensource/swift.git && cd Swift
./carthage-build.sh --platform iOS --no-use-binaries
- click on play !
- in develompment
- lint:
swiftlint autocorrect
- commit :
npm run commit
- release :
npm run release -- --first-release
standard version, changelog, tag & choose version number : -- --release-as 1.1.1 - release:auto :
GITHUB_TOKEN=XXXXX npm run release:auto
semantic release, changelog, tag, release require repositoryUrl conf in package.json
In develompment
- enable notifications in config/default/development.json
- Or
xcrun simctl push booted me.weareopensoruce.vue.testing example.apn
(on simulator launched) - Or
xcrun simctl push XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX me.weareopensoruce.vue.testing example.apn
(xx => device token) - Or drag and drop example.apns on device
- article
βοΈ Contribute
This work is based on MEAN.js and more precisely on a fork of the developers named Riess.js. The work being stopped we wished to take it back, we want to create updated stack with same mindset "simple", "easy to use". The toolbox needed to start projects, but not only with Node and Angular ...
Today, we dreams to create Backs/Fronts, aligns on feats, in multiple languages, in order to allow anyone to compose fullstack on demand (React, Angular, VusJS, Node, Nest, Swift, Go). Feel free to discuss, share other kind of bricks, and invite whoever you want with this mindset to come help us.
Feel free to help us ! :)