I spent a bit of time building a the beginnings of an iOS app:
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.
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.
- Fork and clone the project.
- 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 ❤️
Top comments (33)
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 ?
Awesome, have at it!
What changed your mind over serving just the pure PWA?
So far iOS PWA has been super buggy and basically unusable as a PWA.
Things like this stackoverflow.com/questions/497581... and more.
We're not really shifting strategies so much as putting more feelers out in terms of possible long-term approaches. By going with the web wrapper approach I'm pretty sure this means we can continue developing for web as we wanted to and see what works out.
Also, this was a fun chance to put something out there as fully open source, we've been itching to do that.
Not to say that this is everyone’s experience by any means, but that functionality has been fixed and I’ve been using the iOS pwa for a while now :)
Are you able to log in? Are we missing something? I can't say we've been super scientific about our approach to trying to figure the whole thing out.
Since you now have access to the code we definitely welcome any inspection of how we could make things work as Apple gets fixing things.
Yeah Apple made it so that all links and redirects stay within the standalone window. So the twitter stays in the pwa and redirects just fine but it also loses the ability to open links in a new tab once im actually in an article. And since standalone removes the browser controls I have to reset the app to go “back”. Apple also has it setup that the page refreshes every time you close and reopen the pwa (even just to the home screen).
It’s not perfect and chrome definitely still has the better UX here but I do login and check up on things. ((I’m on 11.4.1 btw))
Missing ad revenue xD
Yep, it will probably be even less worked out but if you’re willing to buy in to the same type of direction as the iOS one I can get that repo up ASAP.
I would love to contribute to the Android app, as long as it's native.
Okay, here it is blank, I welcome any kind of PR that moves along, as long as it's in line with the ethos (or convinces me of a direction change)
thepracticaldev / DEV-Android
DEV Community Android App
This is the repo for the dev.to Android app. There is nothing here, but with your help, maybe we can get this up and running soon! Thing should relate ideologically to the concepts we are building with the iOS app.
We are bought in to the Basecamp idea of building for native, described in a few articles and talks from them:
Our app doesn't have the exact same needs that they do, and we don't use Turbolinks in our web app, so we can't just copy their approach full-on, but I still think this jives for now. To be clear: I'm not sure whether we use Turbolinks native or not, but the part I do agree with is using web views and native nav etc. where possible to start, and thene evolving as is natural.
By leveraging web views as much as…
To be clear, I'm not sure we need or want to use Turbolinks per se, but their ideas are agreeable to me.
This is awesome!
I was thinking about learning some Ruby to be able to help once the web version is out, but this got me even more excited!
Question: Why not use React-Native for Android and iOS? It works very well.
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.
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.
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.
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.
I am a swift developer , I might be able to contribute to create a native app for iOS
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.
Have you considered a hybrid app development? Like React Native?
I would love to contribute as long as it is native written in Swift. For Android written in Kotlin.
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 :)
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.
This is great, I'll respond to your DMs 😄