iPhone Photography Apps 2023

There are several apps that I use on my iPhone to help support my photography. Here is a quick list of my favorites from most important to least:

  • Lumy – Sunrise, Sunset, and Golden Hour times. I keep their complication front and center on my Apple Watch.
  • GeoTag Photos Pro 2 – It records your locations while you’re out and about shooting. I can then tag my photos with their location after I load them in Lightroom.
  • PhotoPills – Complicated app that I am just learning. Currently, I use the planning feature to know where the sun, moon or Milky Way will be in relation to a future photo spot. SnapSeed – My mobile photo editing app of choice.
  • SnapBridge – Nikon app that I used to move photos directly to my phone when I am excited and can’t wait until I get home to see/post them.
  • Lightroom Mobile – Lets me access my photos that I have in the Adobe Cloud.
  • Lumos – A quick sun / moon locater that is much simpler than PhotoPills. I use it often as a quick check of where the sun will rise or set.

I took this photograph Friday on the Cedar Knoll Trail near Rimrock, Arizona. It may have been our last sunny day. I used a Nikon Z5 camera using a NIKKOR Z 24-70mm ƒ/2.8 S lens (1/125 sec at ƒ/4.0, ISO 100, 62mm). I edited the image in Adobe Lightroom.

When to Write Code Tests

Michael Hartl on when to write tests based on his experience

  • When a test is especially short or simple compared to the application code it tests, lean toward writing the test first.
  • When the desired behavior isn’t yet crystal clear, lean toward writing the application code first, then write a test to codify the result.
  • Because security is a top priority, err on the side of writing tests of the security model first.
  • Whenever a bug is found, write a test to reproduce it and protect against regressions, then write the application code to fix it. Lean against writing tests for code (such as detailed HTML structure) likely to change in the future.
  • Write tests before refactoring code, focusing on testing error-prone code that’s especially likely to break.