Check out Miniroll.app, a way to create, share, and explore blogrolls!

Using GitHub and Xcode Together

It’s been just under a year since I published my article on how to connect an Xcode project to a GitHub repository. Since then, Xcode has kept being updated with new Source Control features, and the guide started to break. So I’ve decided to start fresh and show how you can quickly and easily use GitHub to track your Xcode project.

The Xcode used for this guide was version 10.1.

We will first go through initialising a Git repository, finding the Source Control features in Xcode, and then either link it to an existing GitHub remote, or create one directly inside Xcode.

Initialising a Git Repository

You will need to make sure your project is inside a Git repository. The easiest way is to check the “Create Git repository on my Mac” checkbox when first creating the project, but you can also use the git init command1 to create one inside the root folder.


Once your project is being tracked by Git, you will see your project in the Source Control pane on the left of Xcode. It’s the second icon from the left, and you can quickly access it using CMD + 2.

This shows any local branches, tags, and also any remote repositories you have set up, along with remote branches. So you’ll be able to use this pane, along with the Source Control option in the menu bar to manage your repository once it is set up.

Setting Up a Remote

From this stage you have two options, you can link this repository to an already existing remote you have set up, or you can use Xcode’s new tools to create a new one. Either option can be found by right-clicking on the Remotes folder.

I’ll go through both methods.

Using an Existing Remote

For this example, I created a blank repository on GitHub. Once a blank repository is created, they show you a few ways to initialise the repository. However the only thing you’ll need is the URL address inside the Quick setup section. For me, it’s https://github.com/chrishannah/Test-Existing-Remote.git .

So if you go back to Xcode, right click on Remotes, and select Add Existing Remote, a new window will appear from the top prompting for the location. You just need to paste in the URL you got from GitHub, and select Add.

Once you’ve done that, you should see the new remote appear in the Source Control pane, and you’ll be able to commit, push, pull, etc. from the menu bar in Xcode, along with the usual places.

Create New Remote

If you haven’t got a remote repository set up yet, this is the easiest way to do so, and you don’t even have to leave Xcode.

Like before, go back to the Source Control pane, right-click on Remotes, and select Create “Project Name” Remote. You’ll then be presented with a window where you can customise the new repository you will be creating.

First of all, you’ll need to connect your GitHub account if you haven’t already. To do this just click on the Account drop down menu, tap Add, and then enter your GitHub credentials.

You can then enter a repository name, which will also dictate the URL, an optional description, the visibility of the project, and name you will call the remote in Xcode. The default options are usually fine, although you may want to make the repository private. The last field, remote name, can be left as the default “origin. This is just a label you can give to the remote repository, and if you used multiple, it would be helpful to distinguish each of them. Origin is just the conventional name that most developers use.

Xcode will then create the repost on GitHub, and push your code. You should then see the new remote appear in the Source Control pane, and you’ll be able to commit, push, pull, etc. from the menu bar in Xcode.

You’ll also find your code on the remote repository on GitHub.


I hope you found this guide helpful. If not, then please let me know either in the comments below, or on Twitter where I’m @chrishannah.

MacBook Air

Michael Rockwell of Initial Charge:

As some of you may know, I recently started a new job. I’m now a Happiness Engineer at Automattic, helping WordPress.com users build their online business, share their ideas with the world, or do just about anything you could think of with a website. This new change in my life is at least partly to blame for the lack of publishing here on Initial Charge, but now that the holidays are behind us, I should have a bit more time for writing.

I’ve added quite a bit of new tech to my setup over the past few months and have plenty of thoughts and ideas to share about what’s happened in the world of Apple recently. But today, I thought I’d spend a bit of time discussing the new MacBook Air.

I found this to be a really insightful review. By no means am I thinking about getting a MacBook Air in the future. But I’ll forever be interested in how people use their devices for their work.

Journal: 6 Jan 2019

Another relaxing day to mark the end of the weekend.

It started with me and my partner going to the local cafe for breakfast. Of course I had a full English, topped with brown sauce.

Between that and a obligatory Sunday roast, it was time to play some video games! My choice as usual was World of Warcraft.

The day ended with us watching last years Christmas special episode of the BBC series, Call The Midwife.

Anyway, back to work tomorrow morning. I’ll hopefully be reporting back with a bit more of an interesting day.

Journal: 5 Jan 2019

First Saturday of the year, and it was a relaxing one! It was filled with watching various programmes on the history channel. The kind of ones that most people would class as boring.

There was some football to watch as well, with Arsenal playing their first FA Cup game of the season against Blackpool. There’s an obvious difference in stature and quality of the two clubs, so the Arsenal team were mainly young and fringe players. They ended up winning 3-0 though, so you can’t really complain. We go through to the next round of the competition, and a lot of young players got some more experience under their belt.

Apart from television consumption, I’ve started to think about my next app project. As I mentioned in my 2018 – Year in Review post, I want to work on one big project this year. However the idea hasn’t quite hit me yet, and I don’t have any issue that I need to solve either. I was looking on the App Store and places like Product Hunt for inspiration, but as of today, none was found.

Journal: 4 Jan 2019

As I mentioned in yesterdays journal entry, today is the day for Text Case 1.4! It’s now been released, so you can view the blog post, and check it out on the App Store. Of course I did a little emojified tweet1 for the update. I always find they get the most attention.

Apart from trying to spread the word about the update, I’ve been at work for most of the day. After which I went out for dinner with my family. Nothing special, just a pub/restaurant chain.

Since I got back, I’ve played two games of FIFA 19 Seasons, played some guitar, and then got stuck inside YouTube for about an hour. I even ended up watching a 10 minute video of Japanese chefs slicing things, which was actually pretty mesmerising after a while.


  1. I’m pretty sure emojified isn’t a word, but it sounds like it should be. 

Text Case 1.4

It’s time for an update to Text Case! It contains four changes, and three of them were taken from user feedback! Which I really like, as it means I can tailor the app to how the app is actually being used, not an idea in my head.

So, here are the improvements:

  • A new format! Strip HTML will clear any HTML tags and any whitespace either side of the result.
  • You can now alter the order of the way formats appear in the app.
  • Pasting text via the keyboard shortcut (CMD + V) will now work even if the textfield is not selected, meaning you can get the formats much faster.
  • Any settings in the app are now synced between your devices.

Check out Text Case on the App Store.

Journal: 3 Jan 2019

This morning started with a quest to find an alternative app for reading my RSS feeds on my Mac, so of course I wrote about it.

I decided to finally investigate making my blog support HTTPS, which in the end took about 5 minutes to complete. I used LetsEncrypt, and their command-line tool automated the whole thing. I honestly thought it was a big job. I also made the choice to redirect all HTTP traffic to HTTPS. All it took was one extra 'Y' in the process.

When I got home from work I was greeted by a late birthday present from my girlfriend. A new skateboard! It’s by a local company to me, Lovenskate. It features one of their slogans “Real men skate curbs” but made just a bit funnier.

There were two other things that were accomplished tonight as well. The first being an AirBnB being booked for the trip to Oslo in March, and the second being the Text Case update being approved by Apple. I’m planning on releasing the update tomorrow, and the blog post will be published at the same time.

Finding a New RSS App for Mac

Up until today I used Reeder 3, and it’s served me well for a very long time. However, in August the developer announced that Reeder 4 is being worked on, and in the meantime version 3 would be free to download. I planned on waiting for the update, but there’s a few minor issues that are causing me a bit of friction. The main one being that while it supports Dark “modes” on macOS, when using actual Dark Mode on my Mac it doesn’t actually alter the whole app.

I started my searching via SetApp, as I already pay for that. An app called Cappuccino took my fancy, and it also had a companion for iOS, which is ideal. That lasted about 5 minutes, as I discovered it doesn’t support external RSS feed services like Feedly that I currently use, so everything is stored in that app. That wasn’t the immediate turn off though, as I could use the iOS app as well. But then I checked out a few articles, and there just wasn’t any level of user presences apart from a few themes, and things like block quotes just weren’t being displayed correctly. So that was off the table. The other option on SetApp is News Explorer, and that looked okay, it also had an iOS app that I didn’t particularly like the look of.

So I checked out the Mac App Store (that I actually really like using), and I discovered that had already purchased a copy of Leaf in the past. So I’ve started using that again, and it feels good to have an app that lets me fine-tune my experience. It doesn’t seem to support macOS Dark Mode, but that is actually okay. As it supports its own themes like most other RSS readers. And unlike other apps without Dark Mode support, parts of the UI aren’t “automatically” adapted via the OS, so it doesn’t look half-baked.

For now I’ll keep on using Reeder on iOS, as there’s nothing there that irritates me. But that could be something I look at in the future. As there are a lot of alternatives available.


After having a search through my blog and past tweets, I discovered the reason why I switched to Reeder was the fact that it was free. It’s strange that the same reason that brought me to the app was essentially the reason I’m now leaving it behind.

Journal: 2 Jan 2019

It’s the second day of the year, so that means it’s no longer a bank holiday, and it’s back to work!

That doesn’t mean it’s not been an interesting day. As it started with the bad news of my train fares being increased by 3%. However that was countered by the new 26 – 30 Railcard, which is an evolution of the 18 – 25 Railcard that gave young people a third off all rail travel. It’s not an ideal scenario as you still have to pay for the railcard, but it brings the prices down to a more reasonable level.

The other I thing I did was finalise the new update to Text Case. Which adds a new format, format reordering, syncing, and also a keyboard shortcut. I completed my “Prerelease” phase today, which included sending a final build to Apple, composing all the release notes, taking screenshots for all the devices, and then getting a blog post ready for it’s release. It’s now waiting for review before it goes live, but expect a blog post here in the next few days with all the information.

I also managed to fit in the latest episode of Doctor Who, the New Years Day special. It was very good, and I think one of the best with the current doctor.

Journal: 1 Jan 2019

Well it was a good day to start the new year!

Technically the first few hours of the year was spent at a family party, which involved alcohol, bad singing, and questionable dancing.

However the afternoon was filled with a trip to watch Arsenal vs Fulham at The Emirates. A much needed improvement since the last game, and we won 4-1!

After that it was time for a Chinese takeaway for dinner. And who could possible turn down one of those?