Where is Io is my first foray into Android development. I got the idea after a Mid Hudson Astronomy post meeting observing session of Saturn. There was a little discussion about which moon we were looking at, and it occurred to me that having that information in your pocket would be a great thing.
I started with Jupiter because you can see all 4 moons with binoculars, making it an accessible Astronomy target for a wide range of people. I added a number of fun facts about the moons as well, because getting a sense of what’s really up there helps people connect to the wonders in our solar system. Here are a few screen shots from the application:
Where is Io is currently available in the Android Market for the low low price of free. You can directly get it via
Source code is available github under GPLv3. For people without access to the Android market, go to github and you can get a direct download there as well.
Upcoming Ideas / Features
I’ve got a lot of other ideas for this application, many of which will get implemented over the next couple of months:
- Display of day / night areas in the timeline
- Configurable time range (it’s currently fixed at 96 hours)
- Events (like occultations and shadows)
- A zoom view of Jupiter with the events.
- Saturnian System support
Over all simplicity and beauty are what I’m going for. Keeping the interface clean and crisp.
- v2.1 – Make native code a fat binary so it’s faster on most phones; Make Diarama less flakey.
- v2.0 – Install to SD card (thanks Keith); New Diarama front screen showing current planets that are up; Jovian spirals go over under correctly; Rise and Set times for all planets.
- v1.3 – Refactoring for responsiveness. Time markers.
- v1.2 – Minor spelling fix
- v1.1 – Initial Release
Thanks to Keith McGerald for the install to SD changes.
Thanks to Sean Swehla for helping me relearn my linear algebra. It has been a decade since I’d done that kind of math, and a few mornings with us playing on his whiteboard got me over the hump and unlocked that part of my brain again.
Thanks to Johannes Gajdosik for his porting of various fortran models for solar system motions to C, and releasing that code under a BSD license. Proper credit is given to him in the application About window as well.
Feedback / Support
Due to some increased additional developer interest, I’ve created the Where is Io mailing list. If you are interested in futures of Where is Io, or want to get into the development discussion sign up for the list. Keith and I are current hammering out some of the more advanced futures for the application, and interesting ideas that could go into it.
Please feel free to post a comment here. I’ve tested the application on my HTC Hero (previously) and HTC EVO on real hardware and in the emulator. Reports on success or issues on other hardware platforms would be appreciated. Issues can be tracked on github.
12 thoughts on “Where is Io”
Hi, I saw your post in CloudyNights. I would like to try this, but I’m using an Archos 7 adndroid tablet. These don’t have access to the “marketplace”. Can you provide a direct link to the .apk file so I can download and install it? Others might find it useful also, but if a link isn’t possible then perhaps you can E-mail it to me.
@Stan I’ll make an apk file available directly soon. I’m in the middle of a new front page, and after I’m finished with that I’ll make sure you can get it from places other than the market.
@Stan, you can get the new release here without the market – http://github.com/downloads/sdague/where-is-io/Where%20is%20Io.apk/qr_code
I downloaded the code and have been playing with it. I’ve set the default to be the Jovian Spiral since that is what I use most often. I updated the manifest to allow for installing the the SD card and I’ve added a menu to both Activities so that the user can switch between Rise and Set Times, Jovian Spiral, About, and Quit. When a new Intent is spawned, the old one will quit to keep memory use down and so that selecting quit will quit the whole app and not just the most recent Intent.
I’ve been doing this dev work on my Fedora 10 box and had little to know trouble getting it all set up. I’ve also tested the tweaked and compiled app both in an Emulator and on my Motorola Droid running 2.2. Let me know if you want the changes I’ve made. Thanks for writing this app. I’m looking forward to the inclusion of the Saturn system and the events like transits.
@Keith, any chance you can share your changes back up on github. I’d be curious about the Intent life cycle changes.
sure I just need to figure out git. I didn’t realize that it wasn’t just a read-only repository. I pulled it down via a tar file.
Like the new features in v2 – Android has needed an app like this with the rise/set times of the planets for a while now. The Diorama only seems to show planets during the daytime, nothing appears at night – I wonder if you’re only testing for (timeNow>riseTime) && (timeNow setTime) && (timeNow riseTime) – i.e. when the planet rises before midnight and sets after midnight.
cheers, keep up the good work!
gaah – half the less than and greater than symbols have been eaten… I’ll try again with .gt. and .lt.
I wonder if you’re only testing for (timeNow .gt. riseTime) && (timeNow .lt. setTime), and ignoring the other case of (riseTime .gt. setTime) && (timeNow .lt. setTime || timeNow .gt. riseTime)
I’ve actually got a different issue where the Julian Day output for the rise set calculation can sometimes go either a day in the future, or a day in the back. I need to normalize that.
Cool, looking forward to seeing that in action properly. Can I suggest it’d be cool to have a time of day slider bar under the diorama so you can show the position of the planets at any time rather than just now. Handy for ‘what will be visible if I go out observing tonight’.
Hey Sean, there used to be an app called j-moons (part of starpilot now) for the palm pilot, Search for that, maybe work with that developer to port to android.
A suggestion.The yellow and the green graph lines are very difficult for a color blind Guy to differentiate. How about changing the light green one to a darker grass type green.