Skip to content
DEV Community iOS App
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
DEV-Simple.xcodeproj
DEV-Simple Folder reorganization, Smart Invert fix Feb 7, 2019
DEV-SimpleTests Swiftlint config and linter corrections with minor improvements. Nov 30, 2018
DEV-SimpleUITests Change to new files Nov 12, 2018
fastlane restoring fastlane Jan 2, 2019
.codeclimate.yml
.gitignore
.swiftlint.yml Swiftlint config and linter corrections with minor improvements. Nov 30, 2018
.travis.yml
Cartfile Setup network reachability Dec 4, 2018
Cartfile.resolved
Gemfile
LICENSE
README.md

README.md

Build Status GitHub License Language Maintainability Test Coverage

DEV iOS 💖

This is the repo for the dev.to iOS app.

Status:

Released first version, more info: https://twitter.com/bendhalpern/status/1061323718058786822

Design ethos

We will grow to include more native code over time, but for now we are taking the approach of native shell/web views. This approach lost favor early in iOS days, but I believe it is a very valid approach these days. It is inspired by how Basecamp does things. Our tech stack is a bit different, but the ideas are the same.

https://m.signalvnoise.com/basecamp-3-for-ios-hybrid-architecture-afc071589c25

https://signalvnoise.com/posts/3743-hybrid-sweet-spot-native-navigation-web-content

https://signalvnoise.com/posts/3766-hybrid-how-we-took-basecamp-multi-platform-with-a-tiny-team

https://www.youtube.com/watch?v=SWEts0rlezA

By leveraging wkwebviews as much as possible, I think we can make this all pretty awesome and sync up with our web dev work pretty smoothly. And where it makes sense, we can re-implement certain things fully native, or build entirely native features. Life's a journey, not a destination.

Contributing

  1. Fork and clone the project.
  2. Install Carthage. If you use Homebrew then you can install Carthage by running brew install carthage.
  3. Now run carthage update in the project's root directory.
  4. Build and run the project in XCode.
  5. To enforce code style we're using SwiftLint which is loosely based on GitHub's Swift Style Guide. CodeClimate is enabled for this repository, so your pull request build will fail if there are linting errors!
  6. To install, brew install swiftlint.
  7. If you are using Xcode, add a new "Run Script Phase" (Xcode project > Build Phases > add New Run Script Phase):
if which swiftlint >/dev/null; then
  swiftlint
else
  echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

This will run on build and show linting errors in Xcode. If you are using a different IDE there are alternative install methods in the SwiftLint docs. 3. Alternatively you can run $ swiftlint in the root directory.

Feedback and Pull Requests are welcome! As this is a new and constantly evolving project, please be sure to include unit tests with changes.

Thanks for your help!!!

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.