I'll be sending out TestFlight invites for Gluon to everyone that messaged me their email. Then I will publish a blog post with details and a public invite URL. Android coming next week (or maybe earlier).
Vincent Ritter

Gluon for Micro.blog
A beautiful, nimble and customisable app purposely built for Micro.blog. Now archived. Thank you to all through the years βοΈβ€οΈ

Gluon is a highly opinionated, but customisable, cross platform app for Android and iOS for Micro.blog.
If youβd like to find out more, please visit the Gluon website. Or keep scrolling to read the development blog.
With Gluon, you can do the following:
- View your timeline, mentions and favourites.
- Reply or post to Micro.blog and also set favourites.
- Discover the discovery feed including all the βemojiβ tagged discover sections.
- Search users or posts on Micro.blog.
- View user profiles and follow, or, unfollow.
- Add multiple accounts to the app, if you have more.
- Customise the app from theme, font, accent colours and more.
- And much more.
Project posts JSON/RSS Feed...
Hmmm, how should I handle microcasts...
Just wrapping up a few things for Gluon, so it's ready for the TestFlight to go out. I added the "Conversation" view too - and it highlights the one you tapped on when you scroll down:


TestFlight build approved for Gluon. Tomorrow I will send out invites and share a link for everyone. This is exciting. π

I added a basic "Following" screen for now. If you load your own list of followers you will see all. If it's a different user then I'll only show you who you're not following. Going to add a website button too, if there is a URL available (I guess there always will be).

Added follow and unfollow functionality to Gluon. Also started with displaying follower count. This will only show people you aren't following though once you tap through, in reverse order...

Gluon - Progress Update 5
I'm going to keep this one short. A bit overdue from this very early A.M.
Progress has been steady, I worked a lot on getting the feeds to work better on initial load when logging in. Once you login, I used to call the 'posts/all' API endpoint to grab a bit more details for the user, here I said to take no posts as I didn't need them... however, as it was doing the call anyway I thought I should grab the posts there and then and save them. This reduces the amount of calls on initial login, plus it gives you your timeline fast once you are presented with the home screen! Before this change I called the 'posts/all' endpoint to save user data (like the avatar url) and then moved onto the home screen with your feed. Here I then load that exact call again but this time with posts. Inefficient.
Next I worked on getting images to load quicker across the board. All images are lazy loaded and cached locally. I'm happy I did this as my initial implementation was too slow and render blocking. I didn't like that. Android still needs a bit of work here but I'm happy it's actually working there too.
Another small tweak was how you navigate to a user profile, and then another one when you tap on a mention or something like this. When you tap on your own name, it actually takes you to the profile screen too.
Tapping on the tab bar icons, where you have any sort of feed, will scroll you to the top of the timeline. I know I know... every app does that anyway... so here we are.
To be honest, is was pretty early in the morning by the time I finished all of this... took me a long time, but was totally worth it. Anyway, I also started adding mentions, discover and favourites. So those are now in.
Here are some screenshots of the Discover section and Home Feed:


The Discover section is not final at all, I just wanted to get the API hooked up and the feed showing.
Another note about the Discover timeline is that it always grabs all posts that the API returns, this then saves it locally. When you reload, or it reloads itself, it will just override those posts with a new set - no flicker, promise. It's a bit limited but I guess that is the point of the discover section.
Also worth mentioning that the tab bar and icons are not final.
I have a TestFlight up that is waiting approval from the App Store team, I hope this happens between today and tomorrow so I can get the app into the hands of a few people.
My intentions for today are to work on conversation view and work on getting the images to show nicely. I'll also try and implement the favouriting to a post. I'm yet to figure out how to lay it out without messing around with the clean look. I do like swipe gestures but I feel the years of deleting email and messages just tells me swiping is for deleting stuff... Maybe just me going even more crazy. If you have suggestions or opinions, let me know.
And one more thing, I tested the app out in the wild today - seems to work nicely even with poor connectivity. I'll need to implement something that stops the loading bar from showing when it can't connect.
Getting the TestFlight build ready...

I made loads of improvements to Gluon tonight. I dramatically increased the speed of loading images and also the rendering performance. I fixed a few bugs and other things, which took me longer than I wanted.
Mentions and Favourites are all being pulled in now. I'll do a write up a little later. First some sleep!
Gonna work on getting a few bugs solved for Gluon and then adding Mentions and Favourites. I need to work on better error handling, for example when deleting your token and trying to fetch posts or other account related things.
One thing I want to try and solve with Gluon is to pull in posts that were missed or showed up later in the feed when initially grabbing the posts.
Would anyone be interested in trying out Gluon, via TestFlight, even though it's not finished and you can't do anything else except just look at your posts for now? I'm thinking of doing something by Thursday. I have the build up on TestFlight already, just need to submit it for approval.
Gluon - Evening 4 Update
Today I focused mainly on the profile screen. It's important and it's also important that it's up to date.
I rewrote some of the feed logic and also encountered a few bugs that I had to fix. However, I'm happy to report that I pretty much completed the profile section. There are bits missing like follow count and a link to the 'following' section, so I'll get to it at some stage this week.
So, both the logged in user profile is set and hooked up including anyone being mentioned in a post or anyone you happen to tap on in your feed. Right, here we go:

And one more for good measure:

It also works on Android:

Also looks great with a black and white profile image:

And a profile with a bigger bio:

Excuse the red. It's different. I'm planning to do something special with themes though at some stage. So if someone doesn't like seeing red... I understand. More a pinky red anyway π
All profiles you look at will have basic data locally stored, so it's quick to open if you happen to go back at some stage. I pull 10 posts (for the moment - I'll increase it to 25). I couldn't implement the loading logic for older posts as I think there is a bug in the API. I have raised this on the Micro.blog Slack channel. Anyway, as soon as you have loaded anything from cache, it will go ahead and grab the latest it can find - this updates any data and also updates all of the latest posts. It's pretty nice and seems to work quite quickly.
For the actual user profile (the logged in one, in the app) I'm going to add a settings header/icon that will open settings for you including some other settings. I know that in the image above there is a "Settings" tab. That will be gone! This is for me for testing purpose, allowing me to clear all cache, all user data (currently logged in user) and of course a logout button which takes me back to the login screen. It's useful as I'm making sure I start from a clean slate and that it loads and sets everything properly.
I have plans, in the distant future, to add something extra special to the user icon on the home screen. If there is a use case for it... I won't say what it is, but you can probably guess.
Ah yes, profile images. So... the API returns the avatar url without a problem, but when it comes to the Gravatar images, they seem to be super tiny. I wanted large profile images. So, I have to check if the URL is a Gravtar one and change the query string to grab a different size, if it's not from there I just leave it alone. Needs better testing though.
I also added link support to each post item. If it's a Micro.blog URL, I check where it goes and try and see if it's a user. If so, you got to the user profile page. If it's a link to something else I open up a Safari window that slides up. I'm planning to detect any links going to the Micro.blog Discover pages at some stage too, so that it loads within the app - might make that a user setting.
That's it for today. I'm pretty tired. I've had some weird head cold since Friday night and it's affecting my ability to sleep, hence I'm coding so late/early.
I'm not sure what I'll work on next, it will either be conversation view or I'll look at getting mentions and favourites working in the tab bar.
I'd love to get it up on TestFlight this week at some stage. It will certainly still be in active development but I think it would be great to get it into the wild to see what people think so far.
Working on the profile screen for Gluon now. Won't be too complicated. I found a few issue that I'd like to address, for example loading the profile image on first login - because I have a feeling it might not always be the correct one. I might be wrong though.
Gluon for Android screenshot:
