One Year

I've been married to my amazing wife for one year now and I can honestly say that, despite plenty of ups and downs, it has been the best year of my life.

The day after our wedding we left for our honeymoon in Jamaica. After the drama of getting onto the plane it was fantastic. It was my first experience with an all-inclusive place and I must say that it was absolutely worth it. The best part of it however, was when we ventured outside the resort. A guide took me, Grace and two other couples to a trail that had a few ponds of water with a waterfall at each, increasing in size as we went up the trail. At the first pond we jumped off the cliff and had a rope swing at the other side, the next pond had a small cavern underneath the waterfall and at the last and largest waterfall we were able to jump from the top of the waterfall. It was very exhilarating. After the tour we all went to local restaurant (as in a restaurant that the locals would go to) and we had the best Jamaican BBQ of our entire trip.

Once we got back from the honeymoon we started our real life together. We moved Grace in and got her set up. We rearranged some furniture and added some decorations; it took some time but eventually it became a place Grace could call home. We officially changed churches from Grace Fellowship to Lifepoint. We joined a newly married couples Bible study where we met some great people but we also joined our own groups; I joined Men's Fraternity and Grace joined her woman's group. We continue to participate in other events to keep our marriage rockin. We had the Love and Respect series at Grace Fellowship earlier in the year and have the I Still Do conference next month. We know marriage takes work so we always look for ways to keep us along the right direction.

This year I also reached the theoretical full maturity as a man when I turned 25. I've gained a lot of confidence, in my handy man skills as I improve and repair our home, in my career as I gain more respect and responsibility at work, and also in my body as I continually strive to be healthy.

This year has been a great one. I look forward to many many more with my stunning bride.

Setting Up Xcode

After getting my source control repository setup the next step was to create my project in Xcode. Since I want to build this app using Swift I have to use the beta version of Xcode (currently beta 5). The suite of beta software seems pretty stable at this point so I don't expect to run into many odd issues. The good thing is that this year Apple has opened up quite a bit and is allowing everyone to talk about pre-released software that used to be covered under the NDA (Non Disclosure Agreement).

The fist question you see when creating an app is what template do you want to start with. Apple provides good templates for navigation and tabbed based apps, but I chose a Single View App because that is as close as you can reasonably get to starting from scratch.

Another choice to make is the Product Name. I'm guessing this is going to be the name that you would see in the app store, or maybe it just pre-populates that field with this value when submitting the app but gives you the chance to change it in iTunes Connect. I don't know, but I'm going with a simple 'cthayes' for now.

The last interesting choice I have to make is whether I want to support iPhones, iPads or both. Normally for the sake of complexity I would just choose iPhone, however, Apple is really pushing developers to be size and more recently device agnostic when designing. The AutoLayout system makes it easier to layout what you see on screen and describe how the different elements should behave when the device rotates. In Xcode 6 there is a concept called size classes which allow you to specify how the view should behave at different sizes. The principles of size classes is similar to responsive design on the web, i.e. the code for what you see should adapt to size of the users screen. Anyone reading the tea leaves of the app store can tell that a Universal app is the way of the future, so that is what I am going to do. When this app eventually ships it will be available on both iPhones and iPads.

Source Control

Source control is a tool that keeps track of changes to files, allows multiple versions of the code to exist as well as a number of other useful features. Source control is very important for teams of developers, but there are still plenty of uses when I'm the only person working on the code and so within the past year I've started using it with my code.

I use source control on this site to keep work for new features separate from new articles. Then I update the files on the server without fear of accidentally putting something up that wasn't ready yet.

I use Bitbucket to host my private git repositories. So the first thing I did to start setting up my iOS app was create a repository there. At first I thought I might have to set the language as objective-c since Swift is not officially released yet, but Bitbucket has added it since the last time I looked.

Christopher Hayes

Next I created the repository on my local Mac and linked it to the Bitbucket server. This is very easy to do using SourceTree (an app that issues git commands for you).

Incidentally this is somewhat close to the toolset I use at work. We use git, SourceTree and several other Atlassian tools.