Vincent Ritter

< back to challenges

Weekend and Week App Hack - Gluon

A Micro.blog cross platform app

I have an itch. I want to scratch it. I fear if I don’t scratch it now, I will never do it.

I’m going to be creating an iOS, and most likely Android, app for Micro.blog.

Gluon for Micro.blog - TestFlight

The time has come, the TestFlight build for Gluon is now available. I’m excited to get this into the hands of people.

This initial release is available for iOS. I’m going to be getting an Android build out next week and will announce this separately.

I have created a Trello Board for anyone interested to see what I’m working on, bugs and features. Here’s the link: https://trello.com/b/GSIj8AVi

If you find bugs, please email me at gluon@vincentritter.com… or support@vincentritter.com. They both work.

There are many things still outstanding and I will work on them in the coming days and week.

If you have messaged me with your details, you should now have the invite. If not, you can sign up to it using the public TestFlight invite URL:
https://testflight.apple.com/join/2sbnWuMK

Happy testing and please let me know what features you really want or where I can improve. Please remember this is an early build and has a few missing features.

Here are the notes from my TestFlight build:

-- -- --


Thanks for testing this early version of the Gluon.

Notes:

Replying and composing is not yet implemented.

Favouring posts is not implemented.

Please test the following:

1. App login with both email and/or token.

2. Browse feed, mentions, favourites and discover.

3. Tap on profile images to load info and posts.

4. Check for overall performance on loading each screen.

5. Navigate to other users followers.

6. Follow or unfollow (if you want).

7. Pull to Refresh on any screen - should update the feed/section in question.

8. Open links within posts.

9. Tap on a post and it will take you to a conversation view.

The app includes a settings screen, this is for test purpose only. You can do the following:

1. Logout - this will clear the secure storage of your user credentials and all posts data. This will also reload the app.

2. Clear posts - this clears all posts in your home feed.

3. Clear All Storage - this will clear all data stored on the device but will not clear the user token - this will reload the app.

4. Update build and reload - this will try and fetch the latest build and download it, it's magic, and I may ask you to do this sometimes if you're having issues which I'll hot fix. Note: this will only be available for the TestFlight builds.

-- -- --

I’ll be working on getting replies working and/or perhaps image viewing.

Happy testing.

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).

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.

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.

Close