My Development Toolbox

Photo by Barn Images

As a developer, there are a handful of tools that I use (almost) every day. I thought I would write a blog post about them.

This post is about my the applications that I use every day for development. It doesn’t really get into my office/desk setup or some of my favorite applications. Only what I use on a day to day basis in order to get my job (as an iOS/tvOS developer) done.

Maybe in a future post, I’ll go more into my office/desk setup. I’ll save that for another time.

Xcode

Xcode is my primary development tool. It’s an Integrated Development Environment (IDE). Its got everything I need including a source editor, interface builder, compiler, profiling tools and much more.

I both love and hate Xcode on a daily basis.

Xcode has gotten much better over the years. It still has it’s moments. On most days, I really appreciate it and what it gives me as a developer.

There is at least one alternative to Xcode. AppCode has been around a while. I’ve tried it before and even purchased a license a few years ago. I’ve just never been able to fully commit to AppCode. I don’t know why, but I haven’t. I’ve stuck with Xcode instead.

Xcode is available on the Mac App Store for free.

Charles Proxy

Charles Proxy is an HTTP proxy/monitor application. It allows you to monitor web traffic from a variety of sources, including macOS/iOS/tvOS devices and the iOS/tvOS simulator.

Charles Proxy is a great tool. I don’t use it every day. I do use it 3-4 times a week. I like Charles Proxy so much that I’ve written about it before. Not just once, but twice.

I use Charles Proxy to look at the web data coming into the apps I develop over the network. I’m usually looking for a few things.

Firstly, I need to see what that data looks like coming across the Internet into the apps that I write. I need to know what it looks like so that I can use that data properly within the app.

Secondly, when there are issues with our apps, I like to make sure the data we’re getting from the services we use are what we’re expecting and seeing in the app.

Charles Proxy is available through their site for $50 (USD).

Tower

Tower is a source control client for Git. We use Git (through GitHub) at work and I use GitHub and BitBucket for my personal projects. Tower is a great tool for both of these sources.

I used to use SourceTree, but a change in the app about a year ago lead me to look for another tool. I don’t even remember what the change was, I just knew it was time for a change. I asked on Twitter for suggestions, and Tower was the overwhelming response.

During the writing of this post, I was describing how I wish Tower could squash commits. GitUp was one of the tools I tried while looking for a new Git client and it allows commits to be squashed. Turns out, Tower will allow you to squash commits. The instructions on how to do this is here. It’s not super intuitive, but I’m glad I’ve figured out how to do it.

Tower is available through their site for $69 (USD) a year.

Dash (with Alfred integration)

Dash is the perfect document browser. I use it constantly throughout the day for iOS and tvOS documentation. But it’s not limited to iOS/tvOS documentation. You can download documentation for almost any language or tool that you can think of.

Dash is perfect with Alfred. Alfred is an application launcher, but it’s so much more. If you purchase the Powerpack, you can set up (or install) more complicated workflows. One of these workflows I have is to launch Dash and search for terms I’m looking for. So, I will trigger Alfred (option + space) and then type dash {search term} and Dash will be launched and search for what I’m looking for. This doesn’t seem like a big deal, but it saves me a few steps dozens of times a day.

Dash is available through their site for $29.99 (USD) Alfred is available through their site for free. The Alfred Powerpack is available through the site for £19 (GBP).

Bear

Bear is a note taking app. I’ve got notes for everything in that app. I track my 1:1 meeting notes with managers and other folks. I track general conversations. I’ve got outlines on application and component designs in there. I’ve even got video game notes in there.

I could just use the built in Notes app, but Bear is much nicer. I love the built in Markdown support. I use Markdown for just about everything (documentation-wise). Bear supporting Markdown has made it my go-to note-taking app.

I have just started tinkering with Agenda, which is a different note taking app. I haven’t used it enough to make a decision one way or the other.

Bear is available on the Mac App Store for $14.99 (USD) a year.

Honorable Mentions

Here are some development apps that I love, but don’t use every day, or even on a weekly basis. They are great apps and I thought I would mention them.

BBEdit

BBEdit is a text editor. It’s a super simple, but (almost) perfect text editor. I’ve been using it forever. I think I got my first version of BBEdit in the late 90s. The first version I got came in a box and I’ve been using it ever since.

I learned how to write code in BBEdit. Sure, it was HTML, Javascript and CSS, but it started me down the path to where I am now.

BBEdit is perfect for editing single (or multiple) source files in a large variety of languages. I’ve used it for everything from HTML, to CSS, too Ruby, to Java, to Swift and Objective-C.

I don’t use BBEdit every day, but I do use it a lot. It almost made it onto the non-honorable mention list, but I left it off since I may only use it every other week. It will always have a special place in my heart.

BBEdit is available through their site for $49.99 (USD)

Paw

Paw is an HTTP client app. It can make HTTP requests to APIs and display the results to you in a variety of ways. This is a network tool, like Charles Proxy, but is used differently. This tool is to send requests to an API and inspect the results.

I use Paw a lot when I’m being introduced to a new API. I use it when I need to learn how call an API and what to expect from that API.

I will use Paw heavily when learning a new API, but once I’ve learned how that API works, I won’t use Paw as much.

Paw is available through their site for $49.99 (USD)

Soulver

Soulver is a fancy calculator. That simplifies things a bit. But I use it as a calculator/scratchpad. Instead of writing down numbers and doing calculations on paper, I use Soulver. I have a bunch of “scratchpads” in my iCloud account for a variety of different things.

Soulver is available on the Mac App Store for $11.99 (USD).

Supporting Developers

A lot of the apps I use have free alternatives. But I am a big believer in supporting app developers who do quality work. I use more apps than I have listed here, but these are my daily development apps.

In future blog posts, I may also go into my office/desk setup and other non-work related apps I use day to day.

June Books - Reading is for Losers

Photo by Dawn Armfield

Just when I thought I was doing well with reading, it all went wrong. June was a rough month. It should have been a great one for reading, but it just wasn’t.

The only thing I read in June were comic books. I finished three of them. They are:

The first week in June, I went to Apple’s WWDC conference in San Jose. I was traveling and did read a little bit while on the plane. But really, I spent most of my time while not conferencing watching movies on my iPad.

At the end of the month, I went on vacation with my family. I forgot my Kindle. Bad move on my part. I could have read on my phone, but the experience is so much nicer on the kindle. I got lazy and just hung out instead.

This mess of a month in reading means that I have a bunch of books that I am currently reading. I am in the middle of seven books. Seven books… I know, right? What was I thinking?!?! I have two paperbacks, a Kindle book, Apple Books book, a comic book, an audio book and a technical book that I’m currently reading. I’ve been able to keep them all straight. I need to start finishing these.

July should be a good month for finishing books. I’m reading all of these books at the same time. And I’m at least 50% through them all. I just need to start finishing them.

WWDC 2018

I was lucky enough to be able to attend Apple’s Worldwide Developer Conference this year. This was my fourth time attending the conference, but was my first time attending WWDC in San Jose.

The conference for me had a rough start. It started at home with a four hour delay of my flight. This meant I didn’t get into San Francisco and then to my hotel until after 11pm (2am EDT).

Things got much better after that. The conference was great. I had a great flight home, being moved to an exit row and having an empty seat next to me.

Overall, the conference was great. I did forget much of what I had learned by the end of the week. So many great sessions and things started to blur together.

Favorite “Features” of Upcoming Releases

Apple announced a number of new features and technologies this year.

  • iOS Performance updates
  • Long-form audio on watchOS
  • Dark Mode on macOS
  • Update DND
  • Screen Time
  • Siri Shortcuts
  • CreateML
  • Shared App Platform (early preview)

Favorite Sessions

I watched a lot of sessions while I was at the conference. Here are some of my favorites. I haven’t seen all of the sessions from WWDC, so there may be a number of better sessions out there.

My favorite session was probably What’s New in Swift. I love using Swift. It’s such a great language. I enjoy seeing what’s new in it.

Labs

The labs are probably the largest benefit to coming to WWDC. You can watch the sessions anytime from the comfort of your home. But labs give you an opportunity to talk 1:1 with Apple engineers.

I spent a bit of time in the labs talking and discussing issues I (and my team) have had. We were able to work through most of the issues I brought with me. There was an issue that the engineers weren’t able to solve. I ended up speaking to four different engineers and we decided to create a bug report with as much details as I could give. Hopefully, they’ll come back with an answer at some point (and not just mark it as a dup) and weren’t just trying to get rid of me.

I’m glad that I went prepared with a list of questions and issues to take to the labs.

Most Anticipated Feature

My single most anticipated feature is the ability to have apps play long-form audio on watchOS. I take multiple long walks every day and listen to either books (using Audible) or podcast (using Overcast / Castro). I would love to ditch the phone and walk with my AirPods and Apple Watch.

This feature alone will make daily walks much more enjoyable. I cannot wait for the app developers to implement this new feature.

Overall

It was a great conference. It started out a little shaky, but ended great. I’m looking forward to playing with the new features.

Gaming Update

Photo by wu yi

It’s been a while since I’ve posted anything other than lists of books I’ve been reading here. So I thought I would post something slightly different.

I posted about my gaming habits most recently in November of last year. Since then, not a lot has changed. I still play quite a bit of Star Wars: Galaxy of Heroes. I’ve played less and less of Hearthstone, but I think I’m going to pick it up again.

Mobile gaming is just so accessible to me. My phone is always with me.

Since November, I’ve been slowly (and I mean slowly) making my way through The Legend of Zelda: Breath of the Wild. I’ve managed to get through two of the Divine Beasts (Divine Beast Vah Ruta & Divine Beast Vah Rudania). I’ve still got quite a ways to go to finish the game. I suspect that it’ll take me six more months to do so.

Other than that, I haven’t done much gaming at all. I was thinking of a list of games I’d love to get (back) to. Here are some of them.

And so many more!

There are so many good games out there. I just wish I had the time to play more. I used to finish a game every other week or so. Now, I’m lucky if I can play a console game once a week. I’m not saying I wish that would change. What’s occupied my time is my family. I just wish there was more time… But then I think we all wished that too.

May - Books

Photo by Nathan Wright

Look at me! I’m getting this post out before the end of the month. Sure, it’s the last day of the month. But that’s better than a month or two late, right? Right?

May was a pretty light reading month. I still managed to read 5 books. And one of them was a technical book, which always takes me longer. I’ve started on a 6th (technical) book, but haven’t finished it yet. That’ll be tracked next month.

Here are the books I managed to tackle:

Only one comic book this month. For some reason, I thought I had read more than that. Interesting. I wonder if I missed some in my GoodReads account.

What’s your favorite?

None… They were all just meh…

This may be one of the months where I didn’t have a clear favorite. They were all just OK. I really thought I would enjoy Darth Plaguis and I guess if pressed to pick a favorite, that would be it. But they were just OK.