UI-TDD with Xcode Part II

As I wrote about last month, I was able to speak at Cocoaheads on some work we have been doing with Xcode UI Testing. I am speaking again tonight at a different Cocoaheads group, which is exciting for me. I had created a sample project for my presentation last month, but lost the project when my computer died and had to get the logic board replaced. I have recreated the sample project, and am happy to share it here:

UI Testing Example

And just in case you would like to download the slides for reference, here is a link to the PDF:

UI TDD Presentation (5 MB)

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)

Update: The talk was recorded and can be viewed here.

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.