It’s time for the second major update to Text Case!
The first update added the ability to pick only specific formats to enable in both the app, and the action extension. It also added 5 extra formats.
The change in 1.1 to limit formats was partially due to the fact more formats could be added in the future, and it wouldn’t inadvertently affect users that didn’t want to use them.
In 1.2, the biggest update is the added flexibility in the title case format. As formatting titles isn’t a necessarily fixed style, but rather there are many different ones that writers use. The ones I’ve selected to include are:
- Associated Press (AP)
- American Psychology Association (APA)
- Modern Language Association (MLA)
- Chicago Manual of Style (CMOS)
And of course there are two new formats, sentence case, and Pascal case.
I hope you all enjoy the new additions, and if you ever have an issue with the app, or even have a suggestion, let me know by email or on Twitter.
You can find Text Case on the App Store.

The First Update to Text Case #
It hasn’t been long since the release of Text Case, but I’ve already had some great suggestions, so I decided to add them in!
So here it goes.
Five extra formats: – URL Decoded – Capitalise All Words – Camel Case – Snake Case – Hashtags
One format has been “fixed”, and that is Capitalise. It now does the obvious and also capitalises the first letter after a period.
You can now choose which formats you want to enable, by navigating to the Settings page, and flipping the switches. This will obviously allow for a more customised interface, as I imagine some people won’t want all 12 formats to show if there aren’t needed.
I still have two things I want to work on. One is the ability for the action extension to be able to replace the original selected text with the new converted value. The other is a pretty great idea that I can’t share until I figure out how exactly I’m going to implement it. But it will be an advanced feature.
I’d also like to say thank you to everyone that has already downloaded Text Case, and I plan to keep adding useful updates!
If you haven’t already, you can download Text Case on the App Store.

Text Case Has Been Released! #
I’m very glad to announce that Text Case is now released, and is live on the App Store!
Text Case is a simple utility that allows you to convert any text into various different formats.
It comes packed with an action extension that lets you select text anywhere in iOS, tap the Share button, and then you’ll find the “Convert Text” action. This will show you a preview of all available formats, and a simple tap on one of those will copy it to your clipboard, and you’ll be returned to the original app.
The available formats are currently:
- Title Case
- URL Encoded
- Uppercase
- Lowercase
- Capitalise
- Reversed
- Mocking Spongebob (This one is for fun)
More formats will be added in the future!
I’ve Decided to “Just Ship” Text Case #
I’ve been working on a small project called Text Case for a while now. It’s had my attention in small bursts, and I think it’s finally ready to be classified as a 1.0.
I won’t write a whole essay about it just yet, but it’s a utility app that converts raw text into various different formats. The main one being title case, which is very handy for me personally.
Along with the base app, it comes with an Action Extension, which you can access by selecting a portion of text, and then accessing the Share sheet. You then get to preview the possible formatted versions, and just one tap will copy it to the clipboard, and it’s dismissed.
I can already think about different ways the app can be expanded, but I don’t want this to become a habit of mine, where I never ship something because I always want to add one extra thing. There’s definitely going to be edge cases where formatting won’t be perfect, I’m thinking the title case will be 100% of these, but I can fix these quite fast.
But for once, I’m just going to ship an app, and see how it’s goes.
Here’s a preview:
Formatting Improvement in Slate #
A massive improvement has just been made to Slate! I’ve found a new way to convert the html content of a post into a format the app can read.
It’s so much faster, actually supports things like bold and italics, lists appear how you’d expect them to, and also doesn’t mess around with extra line breaks!
The speed increase is what about shocked me though, because the old method took about the same time it took to request the actual data from the Micro blog api. It was only ever a temporary solution, but this works near instantly.
Slate Development Log #7 #
Just a small update.
After putting a task in Slate off for at least a few months, I’ve got a big chunk of work out of the way, which makes future development so much easier.
Basically, when I first started developing the different sections (Timeline, Mentions, Discover, and Favourites), the code was completely split, and usually badly copied across classes.
I’ve done some work with protocols and inheritance, and now the before mentioned 4 parts of the app are using 99% the same code, except from the slight change in context. For example Mentions is exactly the same, other than a title change, and a few letters in the API endpoint.
As with most other people, WWDC is taking up a lot of time for me. So I think after I do just a tiny bit more work on composing posts, I’ll send another build out. I have composing working in my current build, but my 2 minimum requirements for the next public beta is a minimal version of Markdown formatting, and also replying to posts.
A Few Initial Notes on My Website Analytics Project #
I’ve done some minor researching into this idea of mine, that really became a thing when I started making my blog super lightweight. And I really want to carry that over into whatever this project becomes.
Whatever I do, will of course be personally oriented, and it will be packed full of decisions that wouldn’t work best for most people. But it’s a personal project first, and if it becomes more flexible and open in the future, that’s just a bonus.
What To Track
With Google Analytics, you get a whole bunch of stats. This can be really handy for someone trying to deeply understand interactions with a website, but it’s a bit over the top for the menial use I want out of it. There’s also the added fact that you’re tracking your users — it’s not a big deal, but I’d rather not invade people’s privacy.
There are very minimal metrics that I want to capture, and that is page views, referrer websites, and possibly number of sessions – although I don’t care about this too much. But regarding the first two, this can be completed by simply telling something the page that’s been loaded, and what referred it. Luckily for me, it’s all in the HTML DOM and I think I’ll be able to do this super minimally.
The way’s this basic data could be used is also rather interesting to me, as when the message is received (by a server, or whatever), a date can be applied. Which means the data can be sorted by the date, collated into individual pages, and some pretty cool graphs could be made from it.
How to do it
For the sake of the front-end implementation, I plan this to be a simple PUT request, which will send the (as mentioned above) data to whatever server that is in control of the analytics. From there, it will require no more work from the client.
For the back-end, the speed, and “heaviness” of the implementation isn’t super important for me at the beginning stage. Because initially it will only serve myself, so it’s not a big load that will be put on it. But my first idea is to use a cloud server on Digital Ocean, to host a Swift server app! Built using Perfect, because I had a great experience with it when I experimented with a text formatting API. There’s also the fact that I am mainly a Swift developer, and is more likely to get finished if I make use of that.
Progress
As with all my other projects, I’ll be pretty vocal with the progress, and try to share as much as possible. This will be done mainly on Twitter, where you can follow me at @chrishannah, and if you want to know something I haven’t shared yet, just ask!
What I’ve Been Up to Over the Past Few Weeks #
It’s been a while since I actually wrote something, and that’s mainly because of my university work that’s been piling up (I finish this June!), and also because I’ve been developing a few mini projects with Swift. The latter is what I’m going to be writing about today.
Basically, over the past few weeks I’ve been getting back into using the command line more. Why is a hard question, but mainly because I’m a nerd, and it’s pretty fun!
It started when I kept seeing a trend of more of the people I follow on Twitter, either retweet or post GIFs of command line apps. It also led me to Hyper, which is a terminal application, and it’s actually built using JavaScript, HTML, and CSS. You can also customise it a ton, especially with the massive amount of themes available.
I personally, have Hyper set up with the hyper-ayu
theme, and my favourite monospaced font, SF Mono.
This is getting a bit too meta, so I’ll bring it back on topic.
So I’ve actually developed four command line applications in the past two weeks, and they’ve all been build using Xcode/Swift[1]. The apps themselves are unix executable files, that can just be double-clicked and ran, but on each project I include more helpful installation/usage information.
cwiki
(Not to be mistaken with my macOS app, Qwiki)
This is the first one I made, and it was probably the easiest of them all. That’s because the majority of the code I could just reuse from my already released app, Qwiki! This app, cwiki , is just a super minimal version of that app.
You just type cwiki
followed by a search query, and it will print out the most relevant matches. It does however, only print out a basic description of the articles.
Check out cwiki on GitHub.
slink
So after the first project, I was a bit more intrigued, I decided to make a more interactive app. slink is purely a URL shortener that uses the Goo.gl API, but this lets you shorten, and also expand (Goo.gl) shortened links.
The slightly more complex functionality than before, led me to work out how options are managed in command line apps. So if you want to shorten or expand a link, just use either -s
, --shorten
, -e
, or --expand
. I also made a mini usage guide, that you can print out using -h
or --help
🤓.
Check out slink on GitHub.
hacker
The third project was a bit similar to the first two, in that it made use of a few different options to return different data, but it also presented it like cwiki.
It’s a basic interface for Hacker News, and by making use of the various options, you can retrieve the new, top, and best lists.
Check out hacker on GitHub.
TitleCase
Okay this one is really simple, it makes use of Brett Terpstra’s TitleCase API, which formats a given string of text to the AP Title Case style. I actually find these types of tools perfect when writing a blog post, as usually the title is formatted incorrectly.
The API was probably the easiest one I’ve ever used. But then again, there was only one parameter, no options, and one return type.
Check out TitleCase on GitHub.
Now I guess everyone knows what I’ve been up to, so I can get back to slaving away over university work, and making some random projects!
P.S. I actually have some other really great news that I’m going to share here soon, but I’m just waiting on it being finalised a bit more.
- My favourite programming language 😍. ↩︎