This is the repo for the dev.to iOS app.
Released first version, more info: https://twitter.com/bendhalpern/status/1061323718058786822
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.
brew install swiftlint
.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.
$ 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.