SwipeIt - Reddit with a swipe
Run the following two commands to install Xcode's command line tools and bundler, if you don't have that yet.
[sudo] gem install bundler xcode-select --install
The following commands will clone the repo and install all the required dependencies.
git clone https://github.com/ivanbruel/SwipeIt.git cd SwipeIt bundle install bundle exec pod install
Now you can open
SwipeIt.xcworkspaceand Run the
SwipeIttarget onto your simulator or iOS device.
You can also run the tests by calling:
bundle exec fastlane ios test
This project will follow the GitHub Swift Styleguide in every way possible.
In order to enforce this, the project will also have a Swiftlint build phase to run the linter everytime the app is built.
Variable naming conventions will be ignored whenever a RxSwift-based variable is created (as the naming convention of the library is to start it with rx_ (e.g.
The project follows this folder structure:
SwipeIt ├── App │ └── AppDelegate ├── Enums ├── Extensions ├── Externals ├── Globals ├── Helpers ├── Models ├── Networking ├── Protocols ├── Resources │ ├── LaunchScreen.storyboard │ ├── Localizable.strings │ └── Info.plist ├── Structs ├── ViewControllers │ ├── Onboarding │ │ └── Onboarding.storyboard │ └── Main │ └── Main.storyboard ├── ViewModels └── Views
In order to enforce it to the filesystem we're using Synx to keep the folder structures clean and mirroring the project structure.
To make sure Fabric and iTunes can deploy, make sure you have them set to something similar to the following environment variables. The values are only examples!.
Note: For ENV variables to work in Xcode you to set
$ defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NOand launch Xcode from the terminal. Apple Developer Forums
SWIPEIT_SIGNING_IDENTITY_DIST: iPhone Distribution: Company Name (ID)
SWIPEIT_CERTIFICATE_KEY: The Certificate key used in Match
SWIPEIT_CERTIFICATE_USER: The username for the git being where Match is saving the Certificates.
SWIPEIT_CERTIFICATE_TOKEN: The access token for the git being where Match is saving the Certificates.
SWIPEIT_CERTIFICATE_GIT: The address or the git being where Match is saving the Certificates. (e.g. https://gitlab.com/username/Certificates)
SWIPEIT_FABRIC_CLIENT_ID: API Key from Fabric Organization
SWIPEIT_FABRIC_SECRET: Build Secret from Fabric Organization
SWIPEIT_TEAM_ID: Team ID from iTunes Membership
SWIPEIT_ITUNES_TEAM_ID: Team ID from iTunes Connect. (
$ pilot listto check the number)
SWIPEIT_TEAM_NAME: Your Company Name
SWIPEIT_APPLE_ID: Your Apple ID (e.g. [email protected])
SWIPEIT_ITUNES_PASSWORD: The password for your Apple ID
Although all the deployment is done through Travis, you can do it manually through Fastlane:
bundle exec fastlane fabric
bundle exec fastlane itc
Should anyone want to contribute to this long-term benchmark, feel free to do pull requests, open up issues and even join me on Twitter to discuss the architecture.