16th April 2018

It’s time for v0.2!

The second public version of Slate is on it’s way to all current beta testers. And it’s so much better than v0.1.

I’ve been doing a lot of refinement recently, to the way things are parsed, to even how images are cached, and how the views are dynamically built.

One major feature, that may not even seem impressive, is inline images. I removed this from the posts because they were causing the app to really slow down, due to the image downloading happening synchronously with the HTML parsing. However, I now extract these from the content, hide them from appearing in the main text, and then control them myself.

This allows me to set the layout depending on the number of images, and then load them asynchronously in the background.

They’re slightly styled at the moment, with rounded corners, and a background if they aren’t an exact square. But the next step is to maybe allow for a preference on preview sizes and also to be able to tap and view the image full screen.

Of course, this version also brings the new themes, which I wrote about in the last development log. And as I keep developing the app, I’m sure these will be fine-tuned.

If you want to be part of the beta, all I require is an email address to send the TestFlight invite to. Feel free to email me, or find me on Twitter or Micro.blog.

You can keep up to date with the development of Slate, in it’s own category.

15th April 2018

Just a small update today. But Slate, now has three full themes!

You can choose from Light, Dark, and Black. And it changes live when you toggle between them!

I’ve noticed a few issues coming my image caching system, which is what I’ll be focusing on next. After that is sorted, I’ll have to get inline images working properly, which is the last thing I have planned for this beta build!

Just a reminder: The beta is completely open, and all I require is an email address to send the TestFlight invite. Feel free to email me, or find me on Twitter or Micro.blog.

12th April 2018

Over the past few days I did a bit more work on Slate. I must say, it doesn’t really get regular attention. But it’s still improving!

The main feature I’ve been working on is the support for themes. I previously laid the ground work for this, with the three options being light, dark, and true black.

The app was originally designed to have a dark theme, so the way I’m initially testing it, is by analysing the colours as I go, while having the theme preference set as the light theme. This way I get an obvious sign on what interface elements I’ve moved over to the new system. After the bulk is done, I can then fine tune the colours, and test every theme to make sure they’re perfect.

A benefit of trying to separate the formatting of interface elements, is that I’m making views more generic (I think I say this in very development log). But I want to get to a point where, every interface element e.g. a post in a table, someone’s profile, or just as generic as a text field, has an explicit style. So the actual main application logic will just be placing these already formatted interfaces, in the right sections, with the correct data.

I do already have a lot of this going on in the app, with the conversation list, list of a user’s following, and a few other things, all using the exact same view controller. All it needs is an array of any type of object, and then it just asks the CellFactory for a cell that will suit it, and then it presents it.

As you can see form the screen shot, the profile view is looking a bit odd at the minute. It’s a mix of the colours and layout I think. I will definitely need to do some work on this.

And, one thing I keep forgetting about. I still need to work on inline images. They don’t actually appear at all at the minute, so it’s not even in a usable state for just reading Micro.blog!

It’s getting better though! Unfortunately, I’m just doing it a bit slowly.

18th March 2018

Some more work going on in Slate today.

The next area I’m going to work on is speeding up the conversion from a post’s content (which is html), into it’s rich text counterpart (NSAttributedString).

The way it used to work was, it converted all the content, including all the inline images. Which would dramatically decrease speed, as it downloaded them synchronously. It meant I had nearly zero control over how the content was transformed or presented.

So the obvious way to test this was to remove the images from the posts as I’m parsing them. I did this with a small bit of regex, and it’s so much better. It can of course still be improved, but this was a massive boost in the right direction.

Obviously I can’t just keep all images hidden in the timeline, but one of my plans was to try and separate inline images into their own section anyway. This would also allow me to add a tap to preview action, and just generally better support for additional media/attachments.

Along with a few extra changes to the style, and maybe support for themes, this is what will be in v0.2.

15th March 2018

As you may have realised, development on Slate, my Micro.blog client for iOS, hasn’t really been going anywhere recently.

I’ve been meaning to just get a very early build on TestFlight for a while now. Simply so people can have early access, and see how it feels for them as I progress.

However, since my first development log, I’ve spent most of the time trying to optimise the code and nothing that adds any features to the app. And at the same time, the only things I had left on my plan for the first beta version, was just some icons. So I’ve lost a long time, simply because I’ve been procrastinating about creating a few images.

Tab Bar

I’m sure everyone will be pleased that, I’ve created some icons for the menu, and the tab bar at the bottom of the app. I did also plan to make an app icon, but this is really going to hold the project back because I simply can’t be bothered to make one yet.

So, right now I’m going to start all the boring procedures for getting the app set up iTunes connect, and then getting a build to TestFlight.

If you want immediate access to the first beta, then all I’ll need is an email address. Feel free to email me, or find me on Twitter or Micro.blog. Everyone’s welcome.

You’ve just got to remember, that it is super in development.

23rd January 2018

As you may or may not know, I’ve been building my own iOS app for Manton Reece’s Micro.blog.

A short description of Micro.blog, if you aren’t already familiar:

A new social network and publishing platform for independent microblogs, created by Manton Reece.

Development is going well, and I’m nearly ready to announce the first beta version, but I thought I’d write about the current progress, and what you can expect to see in the first beta version. This development log will hopefully become a regular thing as I add more features to the app.

b0.1 – Read Only

The codename for this version is “Read Only”, and that stems from the fact that it will not have any ability to write posts. That is something I want to spend a lot of time getting right, and shouldn’t hold back a beta version from being released.

Right now, there are 5 main sections in the app:

  • Timeline
  • Mentions
  • Favourites
  • Discover
  • Profile

The first four are pretty much the same, except they present different lists of posts. But they are what you’d imagine.

On each post in these lists, at the minute you see the name and username of the author, the posts content (of course), and the date. Each post also has a favourite/unfavourite button in the top-right corner. Swiping right to left on these cells, will show you the full conversation relevant to this post.

I currently also do some basic link detection in posts, and if there’s a @ mention with a link to their Micro.blog profile, it will navigate to their profile page. Anything else at the minute will launch inside a Safari View inside the app.

In the profile page, for yourself, or other users, you currently only see the name, username, photo, and also the number of people you are following. You cannot see how many followers you have in any case. Tapping the following will show a list of all of these users.

The app currently supports both methods of authentication, app token, and also by requesting an email that contains a link to open the app.

I started on a side menu as well, which at the minute simply shows the version number. But this will be expanded heavily in the future.

What Else

Of course one thing I need to add, is the ability to log out! It will be placed in the side menu.

I also want to expand the profile pages, by adding the bio, and also a link to their website. And also, features surrounding the user that I want to add, is the ability to tap on a users image to open their profile, and also the ability to follow and unfollow a user.

Finally, I need to make some icons for the overall app (most likely a quick draft for beta purposes), the different tabs, and also one for the menu.