I’m releasing Waterscope today because there are certainly other folks who will benefit from my personal weather app. Another insight is that a programming language is just a means to an end: the hard part is not the code, it’s understanding what needs to be done. It will probably take me another 18 years to come to terms with this new language, and feel like I’ve mastered it, but a journey can’t start without the first steps. I’ve learned a lot, but as with my first app in Objective-C, the most important thing about this exercise was how not to use Swift. (And being the day after the solstice, that first sketch is particularly relevant.) Sketches for a user interface that shows seasons by illuminating the Earth, the math for linear interpolation, and a spherical projection for a location on a satellite image. My sketches from Linea will give you an idea of the breadth of the challenges. Many of the things I wanted to do required learning about astronomy and orbital mechanics. Some visual, some simple, and some complex. Don’t take your designers for granted :-)Īlong the way, there were some interesting hurdles. Like coding, it’s not as easy as we sometimes make it look. So not only was I learning Swift, I was also learning Sketch and, of course, how much time it takes to get something to feel right. (The only exception is the use of SF Symbols when showing weather conditions.) All the design, for better or worse, was created by my own hand. I work with some incredibly talented designers, but I wanted Waterscope to be uniquely my own. Which leads to a secondary goal for this app: to make it completely by myself. The United States government provides a treasure trove of data the challenge with Waterscope was to organize and present it in a consistent manner. There are even high resolution images from environmental satellites launched by NASA. As do the meteorologists at the National Weather Service (NWS) with their API for weather observations and forecasts. It turns out the scientists at the National Oceanic and Atmospheric Administration (NOAA) have that all figured out. It also let me know when it was a good time for a dog walk.Īs an ocean swimmer, I also wanted my weather app to provide information about water conditions. Like determining the time and place for a lunar eclipse, we rely on derived approximations.įor learning a new language, tide prediction provided a lot of interesting work: data collection, complex calculations, graphical presentation, and animatable data. It’s a complex problem that has been vexing scientists since the three-body problem was first proposed by Newton with the publication of the Principia in 1687. About that same time, I had also started learning about tides and how they are predicted.
The app got its start when Swift 1.0 was announced back in 2014: I wanted to build something with the new language. Waterscope is a Maximally Viable Product™ and the customer is me. When that product is for someone who is a developer that’s been coding since the dawn of time, the equation gets flipped on its head.
#Xscope interface cannot open device software
It’s common wisdom that you should release a software product when it is minimally viable: get an early version out in the world as soon as it can perform a useful task for a customer.