Sign in

Horizon Dev

@dev.horizon.holme.tech
10 followers 1 following 21 posts

Dev Diary for Horizon, a SwiftUI based iOS Bluesky client by @josh.holme.social #BuildInPublic

PostsRepliesMedia
Horizon Dev @dev.horizon.holme.tech · 15/11/2024
Another #BuildInPublic thread. This time for the Post Compose Window for Horizon. Still working with ATProtoKit on the like and repost functionality, but shifted to the compose window in the meantime to keep things moving. Going to continue the thread below from my main account @josh.holme.social
120
Horizon Dev @dev.horizon.holme.tech · 22/10/2024
Okay, I've reacquainted myself with the project and figured out where I left off before. This thread is going to be another #BuildInPublic thread, this time about what I call Post Action Buttons. 🧵 (I'm going to switch things up this time and write the rest from my main account @josh.holme.social)
110
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
I want to take another crack at it and this time I'm going to #BuildInPublic and hope that that helps me to stay interested and work through these issues I run into. The app might never ship, but building it out has still been fun, and I'm going to make a new thread for each feature I work on
120
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
Working on unliking a post was not as straightforward and I started to lose interest in the project again. I took another long break from the project, which is where we are now
110
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
Once the migration was complete, I started trying to get the action buttons on the posts working, first with likes. I got likes working. It was awesome to be able to see me like a post in my app and see the changes reflect on the official bluesky app, but unfortunately that didn't last long
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
This migration took a while, but @cjrriley.com was able to give me pointers on how the project worked and I was able to work with him on different bugs and rough edges I came across while integrating. Ultimately I was able to cut out a TON of code and felt a lot better about the project
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
Fast forward a while and I found github.com/MasterJ93/AT... made by @cjrriley.com. This was exactly what I was looking for. Something to make the backend integration easy so I could focus on doing what I like which is front end development. With this I went back to working on the project
github.com
GitHub - MasterJ93/ATProtoKit: A straightforward solution for using the AT Protocol and Bluesky, written in Swift.
A straightforward solution for using the AT Protocol and Bluesky, written in Swift. - MasterJ93/ATProtoKit
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
I took a break from the project for a while after this. Trying to get media working in posts was pretty discouraging and I kind of lost the drive to keep going, so back on the shelf it went.
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
The dates were actually coming back in the wrong time zone, and they weren’t formatted how I wanted. So I cleaned that up, and now dates were displaying in relative format instead of absolute
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
This is when I started to get to posts to dynamically pull in from atproto. I started to try to implement fettered() thinking it was the profile feed, but it was really your following feed. Whoops. I was able to get the name handle avatar date and text loading. Media was being a little difficult
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
Merge conflicts are hard sometimes, and sometimes they can lead to funny bugs
Screenshot of the profile page of horizon. Instead of just having the banner at the top of the page, the profile photo is showing full width and taking up half the screen
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
I was able to kind of band aid the situation for the time being to keep working on the UI, but had a note to go back and clean it up in the future. I really wanted to get posts loading in dynamically and do UI stuff rather than mess with authentication and backend stuff.
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
At this point I started running into a lot of bugs surrounding auth and credentials being sticky due to user default in iOS persisting after deleting the app. I didn’t have a logout function yet, so I relied on that to swap accounts to test different things.
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
Speaking of logged in users, we needed a better way of swapping accounts while dev testing without having to change hard coded credentials and recompile each time, so I built out a rudimentary login page. Very basic, but it had a explainer for what an app password was (this was before oauth)
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
At this time I was trying to implement the atproto APIs from scratch, and was able to pull in live data for a logged in user and display it in app. The timeline is still hard coded, but the banner, avatar, display name, handle, bio, and account statistics are all live data
Screenshot of in progress profile view for the Bluesky client Horizon. The avatar, banner, username, display name, bio, follower count, following count, and post count are all pulling live data from atproto. The timeline of posts is still hardcoded. The profile information is now left aligned like it should be
100
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
This was the first pass at the profile page. Everything here was hardcoded from my profile at the time, the main focus of this was trying to just get the layout working and make some reusable components for the post view and the action buttons below it #SwiftUI #iOS #BuildInPublic
Screenshot of early build of Horizon. The profile bio and avatar are centered when they should be left aligned, with a banner picture up top and a rudimentary timeline below
120
Horizon Dev @dev.horizon.holme.tech · 19/10/2024
Work on Horizon has been going on for a little bit now. This thread will serve as a “catch up” to show where it started and where it is now 🧵 #BuildInPublic
142