Knowledges: Swift
๐ Introduction
This page includes links to articles and tools related to our Swift-based stacks. The goal is to keep a history of the reflections and conclusions made for the construction of the stack.
๐ Informations
- Bold : used
- Italic : not used
๐ Menu
- ๐ Links
- ๐ Architecture
- ๐ฆ Dependencies
- ๐งช Tests
- ๐ CI
- ๐ป Logs
- โ๏ธ Configuration
Links
Architecture
๐ Articles :
๐ง Tools :
- SwiftRex - Swift + Redux + RxSwift = SwiftRex
- RxAutomaton - RxSwift + State Machine, inspired by Redux and Elm
- ReSwift - Unidirectional Data Flow in Swift - Inspired by Redux
- ReRxSwift - ReRxSwift: RxSwift bindings for ReSwift
- RxState - Redux implementation in Swift using RxSwift
- RxFeedback.swift - operator and architecture for RxSwift
- ReactorKit - framework for a reactive and unidirectional Swift architecture
- katana-swift - A modern framework for creating iOS apps, inspired by Redux.
- ReactiveCocoa - Streams of values over time
- Render - Swift and UIKit a la React.
- ios-architecture - iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs
- fantastic-ios-architecture - Better ways to structure iOS apps
- XCoordinator - Powerful navigation library for iOS based on the coordinator pattern
- CleanArchitectureRxSwift - Example of Clean Architecture of iOS app using RxSwift
๐ Conclusion
Store Based like MVVM (= Angular repository)
Framework ??? in reflexion
Dependencies
๐ Articles :
- pods-carthage-and-spm-swifts-package-management-dilemma
- apple-swift-package-manager-a-deep-dive
- carthage-or-cocoapods-that-is-the-question
๐ง Tools :
- SPM Swift Package manager
- Carthage
- Pods
๐ Conclusion
Probably Carthage.
Tests
๐ Articles :
- WIP
๐ง Tools :
- Quick - The Swift (and Objective-C) testing framework.
- Nimble - A Matcher Framework for Swift and Objective-C.
- RxBlocking - Set of blocking operators for easy unit testing.
- Stubber - A minimal method stub for Swift.
๐ Conclusion
WIP
CI
๐ Articles :
- creating-a-ios-app-from-scratch-part-3-travis-danger-and-fastlane
- Code-Coverage-report-with-travis-ci-coveralls-and-fastlane
- build-distribution-automation-with-fastlane-and-travis-ci-ios
- carthage-tutorial-getting-started
๐ง Tools :
- Travis - way to test and deploy your projects
- Circle - way to test and deploy your projects
- Fastlane - App automation done right for iOS
- Coveralls - See coverage trends emerge
- CodeClimate - Get automated code coverage, complexity, duplication ..
- SwiftLint - A tool to enforce Swift style and conventions
- SwiftGen - Swift code generator for assets, storyboards, Localizable ...
- slather - Generate test coverage reports for Xcode projects
- Danger - runs after your CI, automating your team's conventions
๐ Conclusion
Travis, Codeclimate, Fastlane + Slather + Coveralls, SwiftLint & SwiftGen, the goal being to stay close to the functioning of repo node / angular
Logs
๐ Articles :
๐ง Tools :
- CocoaLumberjack - A fast & simple, yet powerful & flexible logging framework for Mac and iOS
๐ Conclusion
CocoaLumberjack due to libhunt
Configuration
๐ Articles :
- managing-swift-application-configuration
- managing-different-environments-and-configurations
- switching-environments-with-configurations
๐ง Tools :
- IBM-Swift/Configuration - Hierarchical configuration manager for Swift applications
๐ Conclusion
We search a simple way to manage hierarchical configuration in the Node repo style (one by env, merged on build). We did not find anything, the IBM package is server side, so it will be done by hand ..