Vincent Ritter

Writing

All my blog posts for your viewing pleasure.

Looking for testers for Status, an app for updown.io

I’m looking for some brave people to try out my other app called Status. It’s an app that you can use for updown.io. It’s in a “pre-alpha” at the moment and has still a way to go. iOS only at the moment. Interested? status@vincentritter.com.

When I say “pre-alpha” I mean exactly that. This is what works:

  • Login with both read-only and full access tokens.
  • See all your checks.
  • See any checks that are down.
  • Webhooks can be seen also.
  • You can view all the updown nodes.
  • You can register for push notifications, so the app notifies you when something goes down. More on this in a moment.
  • You can enable and disable checks.
  • Very basic check detail screen. This one is going to take some time.

Regarding push notifications: this will register a unique device token on a small API that I wrote, which in turn creates a webhook at the updown end. This is all happening in-app and no updown token or any other personal info is shared with my API. Once updown sees a site down, it will send the details to the Status API, which in turns sends out a nice push notification.

It’s been working well the past few times.

Gluon speed improvements, Android update and Push Notifications

I’ve got an exciting update coming to Gluon, pretty much right now, and I’m super happy to share the juicy details with you.

“I’ve got the need… the need for speed”

Gluon was already fast, but I took time to work around a few edge cases and dramatically reduce the calls to the Micro.blog API. In the past, for convenience, I called the API every time you switched screens, this was to mitigate the, at the time, slowness of it. Manton worked hard on speed improvements and it shows. Now, I apply my own sort of cache to these calls and only load when I think it should, within reason. Of course, pull to refresh will always work to the way you want.

Now that the API call is less aggressive, it will also a bit faster to move around ever so slightly. This is thanks to way more less background activity.

I also worked on every screen to reduce the load times for those also. Conversations are quicker to load as I now check the API as soon as you tap on the timeline item. In the past this happened after you went on the screen.

There was also some code that I just didn’t need anymore, so I took it all out. Overall I shaved off around 100KB of code. Which is nice and makes me happy.

Overall, I think the app flies.

Push Notifications

This is one feature I’m super excited about! And I’m super happy to announce that proper push notifications are coming to Gluon. Today!

This is thanks to Manton and Micro.blog, who was super kind enough to put in the work to support third party apps. This will also include Icro and other iOS clients when they’re ready. Manton already posted a reply to Icro on this matter and can’t wait for it to come there also.

So, thank you Manton for the work and enabling developers to do this!

Push notifications are controlled from the Micro.blog end, so there is no third party involved. Whilst running my own server with logic would bring other benefits, it dramatically reduces my own overhead and I’m happy that there are uniform expectations on push notifications from the service.

Notifications are sent in the same fashion as per the official Micro.blog app. This means, non disruptive and come in quietly without sound. Suits me. The world is too loud and too busy anyway.

To enable push, just head to the settings screen and then “Push notifications”. Should be easy and without trouble.

Other tweaks

In general I cleared up a few styling points and made other improvements to screens throughout the app. Which clears a path for a slightly cleaner and simple look throughout.

Search now lives in the “Discover More” section and is removed from the tab bar. The tab bar looked very cluttered, so having a bit of zen back is nice.

Throughout the app, on iOS, you will always be able to get to your profile if needs be from the top bar. This used to be only some screens in the past. Now any top level screen will show it.

I made a further tweak to swipe back gestures in the app. I think it’s a good middle ground. A weird problem to have had… just one of those things I guess.

Android loving

All the above is iOS only… which brings me to my next topic. Android.

Whilst I was hoping for feature parity I’m now facing difficulty in bringing it across to Android. Let’s just call that a limitation of the framework I’m using… and I guess my understanding of Android too.

In the next few weeks I’ll be dedicating time just for the Android build to bring across all the latest changes whilst also tweaking it ever so slightly to bring Android only design styles and app layouts.

The current Android build still feels very Alpha to me so I’m hoping to get this to Beta level soon, where I’ll then open up the app for proper public beta testing.

Closing thoughts

Gluon is getting there, although I always think it’s never going to be in a finished state. I have particular goals with my apps but as the days go I also change my mind on things.

I’m aware there are features I still need to add for posting to Micro.blog and also third party websites. This will come… as I always keep saying.

I’m not in a rush to launch the app to the App Store and I’m happy to take my time. Too many times do I rush things.

Thank you to all my wonderful testers and your continued feedback and trust.

Hoping for a better future for frontend development

Last week I listened to the Ruby Rogues episode 428 podcast… and I’m really looking forward to what they have in store when it comes to a frontend framework. I think it’s going to be worth holding on for. The way frontend development works this day and age is just wrong. The episode certainly struck a chord.

True… my day to day evolves around popular “modern” frameworks like React, but I certainly think there is room for something much better and clearer. It certainly is a shit show at the moment.

One thing I love about Ruby, and I guess Rails, is that there is an easy barrier of entry. You can come from zero experience and get something going. Ruby is a beautiful language which makes it easier for you as a developer to bring your ideas to life. It’s lovely to read and gets out of your way so you can pretty much express yourself in your code.

Something like this needs to exist for frontend also. It certainly isn’t React or whatever other hot new framework. We have HTML and CSS, the building blocks. Now we just need to find a low entry barrier for making it great together.

Given the choice today I’d always build HTML and CSS first (server side). With a sprinkle of lightweight Javascript to enhance certain areas. But never full-on JS first approach. I know… it “depends” on the project.

What is sad though, is that these frameworks are popular… so when a client comes knocking they think they want it and demand it.

Anyway, here is hoping for the future of something better with a low barrier of entry to save us developers… or perhaps just the ones that want to be saved.

Coming from a pilot’s perspective I see it like this: I’m flying on autopilot with what is given to me, but when I have control I only have myself and my experience on what to do and what not. This translates to me… “do the work you are given, guide if you can, and once you are truly in control on your own projects do what’s right with the right tools. It’s my choice”.

Hard to explain I guess.

Anyway, here is for a hopefully better future of frontend development.

Status for updown.io - Initial check details header styling, read only api keys and re-auth screens

Made some more progress with Status. Although it doesn’t seem much “customer facing”, I’ve done a lot behind the scenes especially handling logging in again if, for some reason, your API key becomes invalid.

Also started to implement the “read-only” check. If you’re using updown.io you’ll know there are two keys you can use. With that in mind, I also had to add a re-auth screen.

Before I worked on that, though, I started work on the initial header of the actual “check” details screen. So far I’m pretty happy with the results. Here’s a few early screenshots.

Quick summary in the header of your uptime. If you have an alias set, it’ll show that together with the URL underneath. You can tap on that and it will take you to the URL in question.

This one shows an error right at the top of the page, with the corresponding error message.

Of course you can pull to refresh to update the necessary check. If it comes back to life, it’ll go nice and green again (except perhaps the uptime - which depends on the percentage).

If you have a bad SSL, it’ll show that too. I still need to populate the whole screen with data… so more details will be shown soon.

Before I go, here is a screenshot of the re-auth modal that pops up if your API key becomes invalid for some reason:

I’m using the same screen, without the big error, for re-authenticating with another key - for example if you logged in with a read-only key.

The settings screen also reflects what kind of API key you have… and will also tell you if it’s invalid.

Tapping on that will bring up the re-auth screen.

Overall happy with the achievement today.

Status, an app for updown.io - progress

I spend a few days last week, and the weekend, to start my little project up again for an app that you can use with updown.io. If you haven’t heard of it, it’s a website monitoring tool which is, hands down, one of the best tools out there. It’s simple, doesn’t cost you an arm and a leg and gives you enough customisation to really monitor your websites and services with ease.

The project stalled because I just had too much client work, and when you freelance you just have to do those things! However, I’m slowly going back to my zen place of a good mix of client projects and free time just for my own stuff. Nope, this is not my “secret project”.

Saying all that I set up a completely vanilla project last Wednesday. Blank slate, start again, throw away the old. I pretty much used most things I learned from Gluon and took the best bits (the foundation) and got cracking.

The updown.io API is really great and simple, with enough good data. So it was super easy to just get started. For login purpose you’ll have to use the API key that you can find in your account. There is both a full access key and a read-only key.

Whilst Status can work with read-only keys, it will be much better with full-access. Status will lock certain sections of the app depending on which key you use.

It was actually quite fun to code so far, here is the login screen:

It’s got my standard login form that I used on Gluon. However, I actually re-wrote it all. Just kept the styles.

It’ll show you some useful messages when typing in a read-only key, or if your key is wrong. On “Login” the app will make a call to the updown API and try and fetch the checks you have on your account. If there are any problems, it will let you know straight away.

The login flow is pretty fast and your checks will be waiting for you.

Yesterday I spent some time to style the cells, they’re very much updown inspired. It’s a great interface!

It’s quite basic with the right information in front of you. I may add the option to allow you to view the graphs also, although I’ll certainly implement that on the details screen. Note that I’m hiding a few names in the screenshots.

Of note, you can see there are 4 websites that are down/throwing an error. That’s a dedicated section just for those. Your normal Checks screen will also show you any down sites:

You can see a good mix here of errors, disabled and normal sites, including errors that are relevant.

If your site is served via HTTPS, the scheme will be correctly colour coded to tell you if the SSL cert is valid or not. Again, if you’re used to updown, that works in a similar way.

The “Down” screen looks like this when there are errors:

Easy enough and quick to reach. Once you’re all up and running again the header will be green and a small message is shown to say it’s all up and running.

The app also works on Android, here is screenshot of the “Check” screen:

I'm pretty happy with the results so far and it certainly has been fun doing something a bit different. Change of scenery is nice.

I’ll be spending the rest of the week on the details view and perhaps allow you to add/edit checks also (as a stretch goal).

There is also a small API to write for it to allow push notifications for any errors. Updown provide webhooks and Adrien, the creator, kindly added an endpoint to allow you to add web hooks via the API. Nice!

Anyway, so far I’m pretty happy with the result and can’t wait to work on it a bit more this week.

Close