Sol: Sun Clock version 4 developer notes

Sol: Sun Clock finally gets a system overhaul in version 4, which is now live on the App Store. First, let me extend a THANK YOU to all the users and beta testers who provided invaluable feedback, notes, and screenshots. We thrive on making apps that actual users find useful and fun to use, and we can’t do that without great feedback.

In 4.0 , aesthetically, very little has changed— many users may have missed it, but the scrolling area under the date is now on by default, and I’ve fixed the bug that allows it to keep scrolling if you left it on from the last use. The Almanac page now shows information for the whole day instead of the precise moment. There are some minor textual changes here and there.

The real updates are almost all “under the hood” — I’ve made a number of changes to the date/time system and other key code methods that will result in a much more reliable experience, removing (I hope) all the “outlier” bugs that some users experienced more than others.

You may not even notice but one change is that the colored wheel (or “pie”) that you spin is now not a 24-hour period, but is now a solar day, which can deviate from 24 hours by as much as 30 seconds, depending on the time of year. (Check out the Wikipedia article on the equation of time if you’re curious why this is.)

So now, halfway through the wheel (180 degrees) will now correspond exactly with solar noon, and 0 degrees with solar midnight. Swiping forward or backwards across the date field, or tapping on it to change days will leave you at the same position in the solar day, not the same clock time, so you’ll be able to see the way the daylight changes from day to day easier.

We had a handful of users write to say that the forward and back arrow buttons (to go forward or back to the next period or event) weren’t working for them. This was because of this up-to-30 second differential between the solar day and the 24-hour day.  Looking at this chart, the times when the deviation was greatest coincided with users’ problems.

The date at the top is now the date of the solar day and not the clock time for your present location (or for the location that you’ve chosen). There may be up to an hour or two between midnight and solar midnight, depending on your position within your time zone and whether or not you’re in Daylight Saving Time , where you’re in one solar day and a different day for the clock time. (If you’ve set the time zone to be a different time zone than the location you’re looking at, it could be even longer.) In these cases, the date at the top still shows the solar day, but there will be “+1 day” or “-1 day” next to the clock time, above the time zone display.

Likewise, when you set an alarm, you’re setting the date of the solar day and not the day of the apparent clock time. This should fix many of the issues with alarms people were having. They may have had it to repeat on Tuesdays, but the clock’s Tuesday in GMT may be your Monday in your time zone. When the sun’s at it’s zenith (solar noon), that’s the middle of the solar day, and that’s the date that you’re seeing at the top of the screen and in the alarm setting now. We think that is actually more intuitive, and makes for much cleaner and straightforward code as well, and should address most of the time issues with alarms that a few users reported.

We made many other changes, too that will hopefully make the app work more efficiently. Although the app now requires iOS 8.0 instead of 7.0, having looked at our analytics, fewer than 4 in 1000 of our users are on 7.0 or older — so we feel like using the modern compiler Apple provides with the new Xcode will benefit many, many more users than it will hurt.

We’ve also been able to implement a new time zone lookup library, and show daylight saving time (aka summer time) changes on the wheel.

And finally, technical note/confession, for programmer-types: this is the first version of Sol to have an extensive unit test suite. I was hesitant to learn how to do this in Xcode, because my queue of skills I’d like to learn has always tended to give higher ranking to more “exciting” technologies, and it’s hard to even say “unit test” without getting a little bit sleepy. But it turned out to be essential for reworking the code and having the confidence that I was making the right decisions as I went forward. It was a great move, and I highly recommend it for anyone dealing with complex (and not-so-complex) code.

And with every revision of Sol, I feel like I have mastered all the complexities dealing with calendar systems, time zones, daylight saving time, and Apple’s libraries to deal with those (NSCalendar, NSTimeZone, NSDate, NSDateComponents, etc), and it turns out there’s always one thing I didn’t quite understand. The previous version of Sol made the assumption that all the issues were related to daylight saving time issues, while actually the most important concept to fix issues with Sol was to decouple the 24-hour day and the solar day completely.

Also using a Gregorian date in NSDateComponents of just year, month and day to tie to the solar day, while using the user’s current locale and settings to show the time in whatever format they want turned out to be the way to go, instead of using an NSDate in UT/GMT and trying to figure out which actual day we wanted (could be either +/- one day depending on your time zone). That way the conversions only went one way, from the more generic Gregorian day to the more specific, customized date and time for the user’s locale. The assumption that UT/GMT was the way to go was made because generally in computer science it is, but was not in this case.

Also as a few users noticed, Daylight Saving Time did continue to be an issue, despite many attempts to address it in past versions. One of the offending functions turned out to be secondsSinceStartOfDay which was used to draw parts of wedges on the wheel and translate between rotation of the wheel and the time of day. On days with DST transitions, 3am could either be 4 hours or 2 hours since midnight, and what to do with the lost or extra hours? If you used a UT calendar, there is no daylight saving adjustment, but that only solves half the problem—you still have to translate it for the user’s expectation of what day it is. By going with the gregorian solar date, and only translating into the user’s locale at the time of display, many of these issues were easier to attack…. but enough about that!

Finally, I decided to call this version 4.0 for several reasons — first, that while many of these could be considered bugfixes, and while there are only a few minor changes to the UI,  it was far more than the week’s work I thought it needed (and about 75 git commits) — several months later I realized that while the app looked basically the same, enough had changed under the hood. Plus, the app now requires iOS 8.0, which isn’t an issue for 99% of our users. If you’re the 1%, hopefully you can get by using the old version.

There are a lot of other additions that I have planned for the future (yes, including adding the moon!), and thanks to everyone for their feature requests. The best way to contact us about bugs and features is within the app itself. Find the settings/gear icon, and select Feedback. Thanks so much!

Official page for Sol: Sun Clock

Sol: Sun Clock on the App Store

Twitter page for Sol: Sun Clock

Facebook page for Sol: Sun Clock

More articles about Sol: Sun Clock on the blog.


Posted in iPhone Apps, iPhone Development, Press Releases, Programming, Sol: Sun Clock | Leave a comment

Sol: Sun Clock update in the works

If you’re a user of our iOS app Sol: Sun Clock, you might have an issue using the forward arrow button, depending on your location and time of day.

We’re working on a fix. Thanks to everyone who sent us feedback (except for that person who gave us a 1-star review, that’s not very nice). Thanks for your patience. We’ll have an update in the App Store soon!

Having another issue? Please check the Sol: Sun Clock FAQ.

Posted in Sol: Sun Clock | Leave a comment

Vector-Z comes to the Mac!

Vector-Z: Space Ranger, our classic retro-styled arcade game, is now in the Mac App Store.

It wasn’t as easy as I’d hoped to convert it from iOS to Mac OS X, despite using the cross-platform SpriteKit for most of the game. Much of the conversion work was finished a few months ago, and other (paid) work has been consuming us — but we’re finally pleased to announce that the Mac game is very much like the iPad experience.

Mac users, please check it out, and as always, please give us your feedback! This is a game that’s still in development, and there are some more goodies we plan to add incrementally as the game goes on.VECTORS MAC Screen Shot 2015-08-01 at 7.48.43 PM





Get Vector-Z in the Mac App Store or the iOS App Store.

Cheers and happy gaming!


Posted in Games, Mac App Store, Mac OS X, Photography, Vector-Z: Space Ranger | Leave a comment

Sol: Sun Clock reviewed on “Cool Tools”

We’re super-pleased to discover that our sunlight planner app, Sol: Sun Clock has been reviewed at Kevin Kelly’s popular Cool Tools site. Many thanks to John Grigutis for the accolades!

Have you ever wanted to know exactly when the sun will rise or set or know exactly when the sun will be at its peak? This app for iOS will tell you that and more.

The interface is easy to understand and includes data such as sunrise/sunset times and durations and days from/to the last/next solar equinox or solstice. It will determine your current location by default, but you can calculate times for any location on the planet.

The nicest feature is being able to set alarms for certain solar events. I like using sunlight as much as possible and have come to rely on this app as a poor man’s curtain timer. I have set an alarm at sunrise and sunset so that I know when it’s time to open or close the curtains around the house. It changes slightly everyday, but stays in sync with the sun. Photographers will find the golden hour alarm setting useful for knowing the best time for taking outdoor photos.

It’s also interesting to see how much daylight saving time and choice of time zone have skewed the traditional notion of noon (solar noon). I live in Indiana (geographically in the Central Time Zone, but most of the state observes Eastern Time) and during the summer months, solar noon is almost 2 hours later than noon by the clock. (WTF Indiana?!)

While several weather apps now include sunrise and sunset times, the features offered by this app make it it well worth the price.

— John Grigutis
Posted in Sol: Sun Clock | Leave a comment

Vector-Z: Space Ranger launch!

iOS Simulator Screen Shot Dec 19, 2014, 12.24.24 PMIf you’re following us on social media — and who isn’t, right? — you’ve probably discovered we did a “soft launch” of our retro arcade game for iOS we’ve been working on forever: Vector-Z: Space Ranger. (The working title was “Squadron Leader” if you’re wondering….)

Anyway, the game launched right before Christmas, and I’ve already made a couple quick bugfix updates to prevent crashing issues, so it’s at 1.0.2 already.

We’ve got a superb new mini-site thanks to Dan Haugh, and we’ve already got one pretty awesome write-up by Joe Corbett at Random Nerds, which pretty much tells you everything you need to know.

Posted in App Store, Games, iPhone Development, marketing, Vector-Z: Space Ranger | Leave a comment

Video: “Vector-Z” game demo in beta

We’re almost done with Vector-Z: Space Ranger (the working title was Squadron leader), our retro vector game for iOS. Here you can see gameplay in the iCade console, on an iPad 3.


Posted in Games, Vector-Z: Space Ranger | Leave a comment

How Spore Could Have Been A Much Better Game

Spore, by Will Wright, was a very disappointing game for many people. Hyped for Sporeboxyears, this god-game from a genius designer was supposed to be everything that previous sim/playbox games were not. It was none of those things.

I realized this morning what could have made this game so much better: rather than letting you control the design and evolution of a single species, which battles it out with neighboring species in tribal battles where extermination is rewarded (just like Civilization and countless other games), Wright should have gone the opposite way.

What if, instead of following the usual path of playing one civ/species, your job was to try to create the most diverse biological and ecological planet you could? It would be a fascinating balancing act, trying to introduce new species without eliminating the old ones.  You might get extra points for introducing a predator but make sure the predator doesn’t eliminate its food source too quickly, or both might die off… The number of interesting combinations could be nearly infinite, in contrast to the almost endless but essentially boring superficial choices you have in Spore to customize your species’ looks (which have almost no impact on gameplay).

Of course Will Wright is probably most famous for SimCity, a truly excellent game even with its faults, but not many know he also made a game called SimEarth, which was very interesting but essentially a simulation that was difficult to interact with, in great deal because the game was too far ahead of its time. Maybe processing power is still not quite there to do a full simulation, but surely it’s hundreds or even thousands of times faster now as when SimEarth was around, taxing the 25Mhz 68040 processor of my Mac Quadra 630.

I hope Will Wright plays Dwarf Fortress, the most interesting sandbox world I’ve seen so far, and takes some inspiration from it, so that he can return to SimEarth and Spore and make a truly interesting biological/evolutionary game with endless gameplay.

Posted in Games | Leave a comment

fun and games on tumblr

As we get closer to completing the game … I thought I’d play around with tumblr to post some of my favorite games over the years.

Posted in Games | Leave a comment

iOS 8 date picker issue with Sol: Sun Clock 3.0.4

[UPDATE: This has been fixed with Sol: Sun Clock 3.1.0, available in the App Store now.]

If you are an iPhone user who updated to iOS 8 today, you may find that tapping the date on the main screen creates a blank dialog at the bottom that may cause the app to become unresponsive. We have applied the fix and are testing the next version now. We’ll have the update in the App Store as soon as possible, but it’s likely that Apple’s review board is super busy right now —yes, they review every update!


Posted in Sol: Sun Clock | 1 Comment

“Squadron Leader” beta 8 demo

Here’s a demo of the early 80’s style/vector space shooter we’ve been working on….

“Squadron Leader” beta 8 demo

This will be available for iOS 7.

Posted in iPhone Apps, Vector-Z: Space Ranger | 1 Comment