My 9-yr-old walked over holding a slice of lemon, showing us that he was licking it. My wife said, β€œGreat! Those are really healthy for you.”

Son: β€œUgh, I don’t want it any more.”

Me: β€œActually, they turn you into a mutant.”

Son, pausing to consider: β€œWell, I’ll try it…”

These are a couple of wallpapers I sketched recently for my phone to help me with mindfulness. πŸ§˜πŸ»β€β™‚οΈ

This has been a great week. I’m thrilled to release another new app: Carrier. For those times when you went to message someone and realized it was the wrong time, but forgot later, now just schedule it. Learn more here.

B67EF725-5612-4EB2-B9FD-3849A2B623F6.jpg

Thanksgiving carving

As I return back to work after a nice vacation with family, I have to face questions about motivation and whether I am doing what I really love. I submitted two personal apps over the break, and was reminded how much I love building and creating and delivering. At work, I am now a manager, and have the opportunity to help drive our mobile strategy, but it also means that I get to code and ship much less. I am finding this to be a drain on my soul. This doesn’t necessarily mean that I need to quit or change jobs or anything that drastic. But I need to make sure that I am managing my time effectively so that I can continue to do what I love, even in the context of what I need to do. There are (almost) always opportunities for carving out space to do what feeds your soul amidst the daily pressures of commitments you have made. I am not sure where I see myself a few years from now, but I know that I need to be intentional about it. Here’s to a productive December!

Really excited to ship my new app Agendum just before the holidays. If you’ve ever needed to present or run a meeting, check it out here!

86A26D7B-3A98-42F8-BDC6-8DD61F382206.jpg

I’ve been working on a new app the last couple months, and I’m getting really close to wrapping it up and shipping it. Such a great feeling!

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.