Feeling like a lucky guy today. Brought my daughter to a teen motivational conference and my wife encouraged me to take the day to relax and recharge. ๐Ÿฐ๐Ÿ’ป๐ŸŽžโ˜บ๏ธ

At a Cocoaheads meetup listening to a presentation on shortcuts and tricks in Xcode. I was reminded how important it is to keep learning and realize that you will never know everything. New knowledge can always come from unexpected sources.

UI-TDD with Xcode

Last week I had the opportunity to present at our local Cocoaheads meetup. At work, I have been focused on testing more as of late, and have been working to get our UI tests in much better shape. I adapted an approach that our Test Engineering department has been taking with automated tests for our web apps. Essentially, we create a page object to represent each screen in the app, and include all of the elements, actions, and verifications needed for that screen. Then the actual UI tests just reference the page objects using the exposed API of actions and verifications. As an example, this has changed a call from this:

XCUIApplication().tables.children(matching: .cell).element(boundBy: 0).staticTexts["2018-07-03 20:45:14 +0000"].tap()

to this:

.tapOnCell(at: 0).

I have really enjoyed the productivity boost this has given us, along with the safety and security of good test coverage and wanted to share this approach with the community. Included below is a PDF of my presentation.

UI TDD Presentation (5 MB)

I have felt pretty overwhelmed lately. Keeping everything I need to get done in Things has been a lifesaver. Itโ€™s so fulfilling to be able to check things off and know that I am getting the most important things done.

Thoughts on Peers 2018

I am lucky enough at work to be able to choose a conference every year to attend for professional development. This year, the five of us iOS developers decided we wanted to find a conference that would give us a slightly different perspective than we usually get, and one that we could all attend together. After hearing Peers mentioned both on Core Intuition and Release Notes, a couple of the only tech podcasts to survive my latest purge, I proposed that we all head to Austin.

To be honest, we did not expect the content to be completely relevant for us. We recognized that Peers is primarily a web and business conference, and we all work as iOS developers at a large enterprise company. But since we are all involved with our companyโ€™s efforts to expand our business and start new ventures, we want to keep in touch with the startup and independent developer culture and try to embody some of that inside of our company.

We were pleasantly surprised to find that nearly all of the content was exceptionally helpful and relevant for us. From the beginning of the conference, we knew that it was going to be a different experience. Jess Dโ€™Amico greeted us as we came in, and exclaimed, โ€œAre you the group from O.C. Tanner?โ€ We found a very warm welcome in this community and enjoyed ourselves tremendously.

The conference was extremely impactful to me on a personal level. On the first day, we participated in the business workshop, which consisted mainly of introductions and breakout sessions. The conversation of which I was part focused on discovering what is next in our careers. It was deeply personal and refreshingly open and honest. As we talked, someone asked if this was my first Peers. When I confirmed, he told me that this kind of conversation is the essence of Peers, and if I want to, I will find many more similar discussions throughout my time at the conference.

As I flew home, I took some time to write in my journal, and finally came to understand some of the things that I heard on that first day. A career is made up of so many moving pieces, and it can be a real challenge to line them all up properly. I still have a lot to think through and process as a result of Peers, but I am so grateful for the emotions and thoughts it stirred up. This is a kind and generous community that pushed and provoked me to think outside of my previous mental ruts, and I look forward to learning from and participating in it in the years to come.

I love that micro.blog is so open that @hartlco can launch Icro, a really nice app for it. Iโ€™m looking forward to having two apps logged in to two separate accounts.

Moving my blog to bsn.design

My blog at bsn.io has been a great experience. I set it up a few years ago to be a Jekyll blog and hosted it on GitHub Pages. I loved the flexibility this gave me, along with the performance of a static site. Over time, I figured out how to run it almost all from my iOS devices.

One of the downsides of this setup was the temptation to tinker. Because it was all in my control, I spent many hours tweaking things to get it just how I want on that particular day. Being a bit of a designer and developer, I have the curse of perma-tweaking that I have to resist. I finally decided that my time and energy were better directed elsewhere.

I have instead gone all in on Micro.blog. I have long posted my content there, and have published microposts on my blog. Manton Reece has done a phenomenal job at building up the community and infrastructure of Micro.blog so that it is both a blog hosting platform as well as a social network, and I am now going to use both.

My new sites:

Micro.blog handles:

My content will be cross-posted to Twitter with matching usernames, so if people prefer to find or engage with content there, I will continue to have a presence. But moving forward, I will be posting everything to one of my own sites first. Each of my sites has a JSON/RSS feed where you can subscribe if you want. Hopefully this makes it easy for people to choose the content that interests them most and follow or engage it with it easily.

The vision of Micro.blog resonates strongly with me, and I am excited to fully participate in that community. Hereโ€™s to many more great years of sharing knowledge and creating meaningful interactions!