Astronomy Planner for iOS

Looking for Beta Testers!

Several months ago I put aside the work I was doing to re-build Observer Pro with powerful new capabilities to focus instead on making fixes and improvements to the current version to make it fully compatible with current versions of iOS and devices. Many long weekends were spent updating layouts for iPhones with larger screens and replacing code that used out-dated functionality. Not the most exciting aspects of software development, but it has been nice to see Observer Pro moving forward. And, to be honest, I was getting really tired of how old Observer Pro looked on my iPhone XS.

There are still lots of little fixes that need to be made here and there. Enough that I realized I will need help making sure it’s ready for prime time. So, I’m putting out a call for beta testers. If you are interested in testing and sharing feedback on the upcoming and future versions of Observer Pro, please let me know by using the feedback form inside the app or email me directly at

If you do reach out to join the Observer Pro beta, please tell me a little bit about how you do astronomy. What part of the world are you in? Are you primarily an imager or visual observer? Are you mostly in it for the views and/or photos, or scientific research as well? How does Observer Pro fit into astronomy for you (or how would you like it to)?

Thank you all for the excellent feedback and support you’ve given me over the years and, most of all, your patience as I slowly make time to keep Observer Pro in development!

Clear skies,

P.S. One thing that is new in this version that I had a lot of fun working on was rebuilding the horizon measurement tool using Apple’s ARKit framework. Apple has been doing a lot of work to support augmented reality applications over the last few years and the new horizon measurer in Observer Pro is way better for it. Far more accurate, responsive, and you don’t have to hold your phone a certain way to use it anymore.

Using Observer Pro Horizons in SkySafari

In Observer Pro it’s quick and easy to measure your horizon obstructions, but sometimes you want to use that information in other applications. You can export the horizon altitude measurements by going into the Local Horizon settings for your observing site. Once there, tap the action button at the top right of the screen and select Email Horizon. This will bring up an email form with a “.hzn” file attached that you can send to yourself or someone else. This file lists the azimuth and altitude values in degrees for your measured horizon.

Several years ago I created a script that can convert an Observer Pro horizon file into an image that can be used in SkySafari. Since I’m not the only one who wants to do this, I thought I’d share it here for people to find and use.

The script is written to run in the Processing programming environment. Processing is free to download and use and supports macOS, Windows, and Linux operating systems. To start converting your Observer Pro horizons, download and install Processing, create a new Sketch, and replace its contents with the code listed below. Press the “Play” button near the top of the Processing window to run it. It will ask you to locate the horizon file that was exported out of Observer Pro and will produce a PNG file with the same name in the same folder as that horizon file. This PNG file is ready to import into SkySafari (consult the SkySafari documentation for the details on how to do that).


PGraphics pg;

void setup () 
  pg = createGraphics(2048, 1024); 
  selectInput("Select a horizon file:", "fileSelected");

void fileSelected(File selection) 
  if (selection != null) 
    String inFilePath  = selection.getAbsolutePath();
    String outFileName = split(selection.getName(), '.')[0];
    String outFilePath = selection.getParent() + File.separator + outFileName + ".png";
    // Draw ground
    pg.fill(0, 128, 0); // This sets the ground color: r, g, b
    pg.rect(0, 512, 2048, 512);
    // Draw horizon
    pg.fill(0, 128, 0, 200); // This sets the horizon color: r, g, b, alpha
    pg.vertex(0, 1024);
    String lines[] = loadStrings(inFilePath);
    String vals0[];
    String vals1[];
    for (int i=0; i<lines.length; i++)
      vals0 = split(lines[i], ',');
      if (i < lines.length - 1)
        vals1 = split(lines[i+1], ',');
        vals1 = split(lines[0], ',');
        vals1[0] = "360";
      if (vals0.length == 2 && vals1.length == 2)
        float azi0 = float(vals0[0]);
        float alt0 = max(float(vals0[1]), 0.0);
        float azi1 = float(vals1[0]);
        float alt1 = max(float(vals1[1]), 0.0);
        int x0 = int(2048*azi0/360.0);
        int y0 = int(512*(1.0 - alt0/90.0));
        int x1 = int(2048*azi1/360.0);
        int y1 = int(512*(1.0 - alt1/90.0));
        pg.vertex(x0, y0);
        pg.vertex(x1, y1);
    pg.vertex(2048, 1024);
    pg.vertex(0, 1024);

void draw() {

Observer Pro Status Update

Hello patient Observer Pro customers. I wanted to post an update here to let everyone know where things are at with Observer Pro development.

First of all, the current release of Observer Pro (version 1.2), works on all current devices (including the new iPhone XS and friends) as well as the latest release of iOS (12.0). However, Observer Pro has not been optimized for all of the screen sizes that you find on modern iOS devices, so you will see some letter boxing and potentially larger than normal text.

I have done a significant amount of work on building a new “engine” to power the next generation of Observer Pro. It’s more accurate and has a new database system that’s designed to be scalable for things like having multiple observing lists or adding new objects or catalogs of objects.

The other big piece of this work is to create a very powerful way to search and filter large numbers of objects to find exactly what you’re looking to observe or image. This system is much more powerful than just filtering by object properties (type, brightness, size, etc.) and I think you will find it as useful as I have while testing it out for my own imaging planning.

To get Observer Pro out the door and into your hands, I still need to re-work the user interface to go with the new engine. This includes support for modern Apple devices and many of the feature requests that you’ve sent over the years. Due to the amount of effort it takes to build this in my minimal free time (and how expensive a hobby astrophotography is), I’m planning on releasing Observer Pro 2 as a separate application. I know this will not be popular with everyone, but it’s just what I need to do to make the effort worthwhile.

My intent is to make enough time to finish it up over the next six months or so. I’ll endeavor to post more updates here as development makes progress. Thank you for your patience.

Clear skies,

Observer Pro 1.2 is now available

Observer Pro 1.2 is now available on the app store! This update brings the following improvements:

  • The Featured list is now much more useful: your location, local horizon, and the current lunar phase are now used to provide a list of objects that are prime for observing.
  • Added option to show an object's catalog name rather than common name when browsing lists.
  • Correct moon image orientation for Southern Hemisphere sites.
  • Fixed bug that made it impossible to leave the Observing List screen after rearranging items.
  • Other bug fixes and other improvements.

As always, App Store reviews are very helpful. If you experience any problems with the app though, feel free to contact me directly at

Observer Pro 1.1.1 submitted

Observer Pro 1.1.1, with fixes for devices running iOS 8, has been submitted to Apple for review. This update will fix two problems that were discovered and reported by users running iOS 8:

  • Swiping rows in object list screens was not displaying the action buttons
  • Tapping on the object image to go to the sky view screen would cause the app to crash

The update should be available later this week. These bugs only affected devices running iOS 8. 

Thank you to the users who contacted me about these issues!

Observer Pro 1.1 is now available

After an embarrassingly long absence, Observer Pro is finally back on the App Store!

In addition to compatibility with iOS 8 and 9, Observer Pro 1.1 includes the following:

  • Improved night mode
  • Altitude angle display in object Sky View
  • Swipe to edit objects in the list views (add to favorites, etc.)
  • User interface refresh
  • Bug fixes

As always, if you have any feedback or questions, please feel free to email me at If you like Observer Pro, please tell your friends and leave a rating on the App Store.

Making Progress

Hello patient astronomers,

Before I get into a development update, I want to apologize. As you know, I still haven't shipped an iOS 8 compatible version of Observer Pro. I also haven't kept you informed of progress that has (or has not) been made. I know many of you are holding off updating your devices to iOS 8 because you want to continue using Observer Pro. This is a terrible thing to do to loyal customers. I'm sorry.

Your emails and comments on this blog have been amazing and extremely encouraging, and are much appreciated even if I haven't responded to them all. 

I have recently dedicated some time to pick Observer Pro up off the floor and get development going again. I took a short vacation from my day job to tackle the biggest barriers I was facing. It's now in a place where I can better utilize small time slots on nights and weekends to keep making progress.

Going forward, I plan on doing a better job of communicating progress so that you can have a better feel for when you'll finally get your hands on the next version of Observer Pro. Thank you so much for not giving up on me!

Clear skies,

Return from the Dead

Observer Pro 1.0 shipped on September 15th, 2011. After a minor bug fix update, Observer Pro has continued to work through several major updates to iOS. Despite my intention of continuously improving Observer Pro through feature updates, I found it difficult to make the time to do the work. The pressure has been building over the years as I, and other Observer Pro users, have wanted more from the app.

On top of that, when iOS 7 shipped, Observer Pro instantly looked dated and parts of the app started exhibiting incorrect behavior. I knew it was time to get to work in whatever way was possible. So, I fired up Xcode and opened up the Observer Pro source code and compiled it for iOS 7 just to see how things went, to see how much work I had ahead of me to at least ship a compatibility update. Well, things had changed so much in the world of iOS development that there was a significant amount of work to be done just to get it to run correctly when built using the iOS 7 SDK.

This effort was further motivated after installing the iOS 8 beta on one of my older devices to see how the App Store version of Observer Pro would run. Turns out, it doesn't run at all under iOS 8. This is a big problem! I love using the latest and greatest software, but if I upgrade to iOS 8 then I'll lose Observer Pro. Of course, this would also be the case for the thousands of users who have come to rely on Observer Pro for their astronomy planning.

With the prospect of so much work just to ship a compatibility update, I began thinking maybe this was a good time to reimagine Observer Pro for today's world. To create the version of Observer Pro that I would want now that I've had years of using Observer Pro 1.0 and feedback from other users. Making time in the evenings and weekends, that's what I am currently doing.

I know this is really a long time coming. Thank you for your patience.

© Joshua Bury, 2011-2014. All rights reserved.