DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

I put an early DEV iOS app up on GitHub and would love your help!

I spent a bit of time building a the beginnings of an iOS app:

GitHub logo forem / DEV-ios

DEV Community iOS App

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. Build and run the project in XCode.

This is a call for anyone who wants to improve it in any way. I'm not super experienced in this arena, and neither are the other folks on the DEV team. I do think we're taking a good approach to start off (described briefly in the Readme), but you're welcome to debate me on the million ways to build native apps. 😄

By the way, we're actually getting close to open-sourcing our whole codebase. It will happen some time in July. We'll announce a target date at some point next week. We can't wait to give the code back to the community.

Thanks for being wonderful. I look forward to learning from any iOS devs who care to make an issue or PR on this project to improve it in any way.

Happy coding ❤️

Latest comments (26)

Collapse
 
lawgimenez profile image
Law Gimenez

I would love to contribute as long as it is native written in Swift. For Android written in Kotlin.

Collapse
 
ben profile image
Ben Halpern

Yep, that's the plan on both sides. Feel free to start messing around with the iOS app, it's not tooooo far from a beta :)

Collapse
 
cromanelli profile image
Christian Romanelli • Edited

I am a swift developer , I might be able to contribute to create a native app for iOS

Collapse
 
ben profile image
Ben Halpern

Wonderful!

Collapse
 
diogomqbm_ profile image
Diogo Mafra

Have you considered a hybrid app development? Like React Native?

 
ben profile image
Ben Halpern

This is great, I'll respond to your DMs 😄

Collapse
 
restoreddev profile image
Andrew Davis

Are you looking at creating some screens natively or will it be a web view wrapper? I believe that Basecamp's app pulls some data from an API and shows it natively and then some screens are web focused, depends on the feature set I guess.

Collapse
 
ben profile image
Ben Halpern

Yeah, that’s the idea, but starting with the simplest web view approach and growing from there as seems appropriate. Not looking to rush into anything.

Collapse
 
hu9osaez profile image
Hugo Sáez

Question: Why not use React-Native for Android and iOS? It works very well.

Collapse
 
maximfilimonov profile image
tpaktop

My first thought, exactly :) Though, I presume that maybe basecamp approach is easier to get started with for RoR developers. AFAIK dev.to is written in RoR.

 
ben profile image
Ben Halpern

I’m not sure, but starting with the webview should get us on the way. I’d imagine we can feel around for our needs as we go.

 
coolshaurya profile image
Shaurya

Play Store presence is not required because as soon somebody visits dev.to on Android the browser displays a note at the bottom of the page to add the page to the home screen.

Collapse
 
cyril profile image
Cyril Niobé

I asked to the DEV twitter account, few months ago, about an API cause I really wanted to start an native android app so if there is an official github repo to build it that's really cool :)
I'm gonna dive in during summer.

Any android dev here to discuss about it with ?

Collapse
 
ben profile image
Ben Halpern

Awesome, have at it!

Collapse
 
coolshaurya profile image
Shaurya

There's a PWA you can add to your homescreen so an Android app is not necessary. I think the only reason an iOS app is being built is lack of proper support of PWAs on iOS.