As you may have already seen on my Twitter, or in my journal entries, I’ve started to work on the second major version of Text Case, 2.0. The major changes will be to the user interface, so I want it to be slightly more colourful, fit more in what I see as the latest design language Apple has set out in the Shortcuts app, and also have the formats structured better.
The project started with me making a list of all the things that I will need to implement for it to be level with the functionality of the current version. Here’s that list:
- Drag and Drop
- Input Field
- Use Copied Text
- From File?
- Keyboard Shortcuts
- Formats List
- Tap to Copy
- Hold to Share
- Siri Shortcuts Support
- Add to Siri
- Shortcuts App
- Backwards Compatibility
- Action Extension
- Title Case Format
- Reorder Groups
- Enable/Disable Formats
- Custom App Icons
I started working on the most important section of the app, the formats list. Over the past few days I’ve been building up the style similar to the Shortcuts app, so instead of being simple white boxes that contain the formatted text, they’re more colourful and even have a slight gradient to add a bit of depth (I’m planning on experimenting with a small shadow as well).
So once the list was working, I added the core logic from the current version and made the formats work. I did adapt it slightly though, as it now groups similar formats together, which I think makes the app look a lot tidier. This change means that when I add the reordering feature, it will most likely me limited to reordering the groups rather than individual formats. You’ll still be able to hide any you don’t want to see though.
Then I added the input field. It’s also a bit cleaner, and fits with the new style. But it has essentially the same capabilities as before. I plan on investigating importing text from a file, and implementing drag and drop, but I think that’s supported automatically.
After I had the list displaying, input working, and the text being formatted, I worked on the interaction with the resulting formatted text. I’ve had a few bits of feedback in the past saying they would appreciate one-touch copying, and now I’ve added it! So you can simply tap any formatted text in the app, and you’ll get a nice alert at the bottom showing the exact text you’ve copied. Or alternatively, you can still tap and hold on formatted text to bring up the contextual actions, which are the same as before, copy and share.
The next step from here will be to start working on the settings section of the app, as that also allows me to test the rest of the app in different scenarios much easier. I’m already planning two changes to the settings in this new version. The first is changing the idea of an accent colour to a theme, as I want the format groups to control the colour. But I also appreciate that a light and dark theme is a minimum. The second change is custom app icons, they may be a basic selection, but the app no longer has a “main colour” so I’d like to give a few options.
If you want to stay up to date with the development of Text Case 2.0, You can find more regular content on my Twitter, brief updates on my journal, and I’ll still post any major progress here.
Another update to Text Case has just hit the store!
Just a small one this time though, to tie up a few things, before anything big can be planned or worked on. In fact it can be boiled down to three things:
- A new text format, this time it’s KebabCase. And as usual it was requested, so I added it! There’s no chance that I can come up with every format possible, so if you want one added then please just let me know.
- About section added (website links, App Store link, app version…)
- And I’ve fixed a bug in the Action Extension. As the UI used to inherit some of the styles from the encompassing app, but it wouldn’t always look correct. I’ve fixed this by keeping it matching with the rest of the app, along with the chosen accent colour.
It’s not an extravagant update, but then again, they can’t all be.
Find Text Case on the App Store.
It’s been in my head for a while, but I’m finally making my decision about Slate official. If you weren’t already aware of what Slate actually is (was), it’s an iOS app for the Micro.blog platform. I’ve spent quite a lot of time working on it, and I used to use it quite a lot myself, as it was good enough for reading posts, and also publishing text-only posts.
I always knew the next steps for the app. The main things I planned to work on next were:
- Image uploading
- Markdown preview when composing posts
- Faster timeline parsing/scrolling
- A caching mechanism for timelines
- Support for non-Micro.blog micro blogs
These are totally achievable features, and it’s what I classed as being necessary before being able to release it as a public app (It’s currently been in TestFlight beta for months).
But about two or three months ago, I basically stopped using Micro.blog. I transitioned my posts over here, but I still planned on using the service but have it tied to one blog. I’m not sure what really made me stop using it, but it sort of faded over a long period of time, and I didn’t feel like missing anything, so I didn’t go back.
This all tied in with me slowing down on the development of Slate. Although I was still doing occasional small updates, and it was in my head that I would soon spend some time on the bigger features that I wanted to implement. But the time never came. And I became less interested in building an app for a service that I wasn’t using anymore.
It also combined with me starting to focus on good UX in my apps, and trying to really create great experiences. And as a user of Tweetbot (Twitter client for iOS and macOS), I didn’t think I would realistically be bale to put the time and effort into making a great app for Micro.blog.
So after a huge chunk of time (probably just over two months), I’ve decided that I will no longer work on Slate. And at least for the foreseeable future, I don’t see myself touching the code at all.
It doesn’t mean I’m completely over with Micro.blog, the platform, though. I’ve listened to the Micro Monday podcast, where Jean MacDonald, the community manager, talks to members of the Micro.blog community), pretty regularly. Even since stopping using the service. And it still sounds like Micro.blog is a nice place to be, with loads of interesting people. So there’s a possibility of me returning as a normal user, but very unlikely that I’ll work on Slate again!
If you want to find me on Micro.blog, I am still under the username chrishannah. However, the only content that gets posted there currently is the RSS feed of this blog. But that’s where I’ll be if I return.
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
- Mocking Spongebob (This one is for fun)
More formats will be added in the future!
Download Text Case on the App Store!
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.
Say you write an iOS app, and now you want to write the Mac version.
Assuming there’s a data model, maybe a database, some networking code, that kind of thing, then you can use that exact same code in your Mac app, quite likely without any changes whatsoever.
I agree with Brent here. I’ve never really understood the argument that AppKit is that difficult to understand, so that’s why people don’t port native apps over. Surely the underlying logic of the app is the hard part, and linking the functionality to the interface is the easier part?
I would say I’m more of an iOS developer, simply because I’ve spent more time on it. But I’ve also made a few Mac applications. Sure, a resizing window is a bit more complex than a relatively fixed screen size, and some the interface elements are names slightly differently.
It’s just different, for both sets of people. But not as difficult as it may seem.
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.
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.
Jordan Smith has 15 short Swift snippets, that may help you write more readable code, and also introduce you to a few new techniques. For example, custom subscript notation, labelling loops, and variadic parameters.
Read the full post.
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:
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.
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.