Collaborative work help great developers to push their own ideas forward. Alexander Vasenin participated to key improvements of SwiftAA, put in place by yours truly. SwiftAA, based itself on AA+ by PJ Naughter, but with much easier and swifty APIs, is the most comprehensive and accurate collection of astronomical algorithms in Swift (and Objective-C along the way).
Alexander just released a wonderful and very detailed iOS app about meteors, called MeteorActive. Find everything about these beautiful phenomena in a snap, thanks to this carefully crafted app. And it’s free!
… but quite a milestone in my master plan (see previous post). After about a year of (discrete periods of intense) work, I’ve decided that SwiftAA, the best collection of astronomical algorithms on Swift, hit the 2.0-alpha stage.
SwiftAA is intended to be the underlying code framework of all scientific computations of the next version of iObserve. With it, I’ll be able to provide tons of details about many objects, and especially about Solar System objects, which are clearly missing in the current app.
It’s an alpha stage, of course. It means a lot of details need to be polished: iOS version polishing, more unit tests, a more consistent handling of numeric types etc. But all of the C++ code is wrapped in Objective-C(++) code, and all that old-style code mimicking the original AA+ one is now « Swifted ». That is, it has been elevated to a lot higher level of expressive formulation.
Complexity remains, since the solar system isn’t quite easy to simplify. Hence, when one has the goal of minimizing the amount of lines of code, to extract the most of it, things aren’t easy to read at first.
But there is a Swift Playground for those interested to learn. I wish I had more time for making this Playground more « ready to use ». But as for now, you need to dive a bit into the thing and the project to actually understand it. But time will come, I’ll prepare a better one.
In my website stats, I noticed that some people keep talking about iObserve, which is great. One post however mentioned the wish to have a Linux version of it. Those interested in what happens here @ onekilopars.ec probably understood that it is also part of the master plan. But current web-based technologies to make cross-platforms apps are difficult to put in place. I’ve tried about 6-7 times. But I don’t give up!
I’ve received about 30 new observatories to be included in the next version of iObserve. That’s really great, as it is the sign of a strong usage of the app (more than 15k downloads so far). They are all in my list of to-dos, but I must say that it is sometimes hard to be motivated to finish this new new version, and I am late. But it will come!
Dear iObserve users, not many news over here for some time. iObserve 1.5 is still downloaded quite many times every week (reaching 12.5k total downloads!). I can see that some of you send me new observatories. I’ll find some time to create an update of that bunch of new observatories.
Apart from that, I’ve been able to re-compile and re-run iObserve Touch on an iPad with iOS 9.3. And that’s nice, because it wasn’t so easy with the amount of code involved here and there. So maybe I could find some time for a little update as well. It reached almost 6k downloads by itself, wow!
In particular, I am preparing a Swift playground with the best astronomical algorithms in town. The code will be good for developers, for iObserve2, but the Playground could be interesting to teachers! Check it out here the on-going work: https://github.com/onekiloparsec/SwiftAA
Interestingly, this all-code activity is a kind of rest for me. At my startup job, I spend the day interacting with tons of new people (and it’s really great!). So it’s nice to interact with computers a bit. 🙂
Too much heat these days here… (it’s midnight, and I am coding in my terrasse…). And I need to make a quick summary of what’s going on @ onekilopars.ec…
First, and foremost, iObserve. An update version in the 1.4 serie is in preparation. It will include some usual small fixes, one clear usability fix for the Fluxes converter, and more importantly an important improvement to the Coordinates converter. No more loading the full DB. An import/export will replace it. Since it is not the most fun to write, it takes a bit of time. Thanks however to some recent input from a user, I’ll try to also include exoplanets transit times in Airmass and Visibility Plots.
Some of the fixes of iObserve will probably need to be ported to iObserve Touch on iPad. The problem here is that the whole app needs to be updated (again). Apple is always moving forward, and I made a choice for that app long ago that prevent me to go a lot further today (buhhh). Yes, MultiTasking won’t be possible with the current configuration (with that super-cool-awesome-but-very-custom split view controller allowing you to have a master table – with tabs! – in the left, the detail on the right, a top times bar, and the whole master thing wrapped up in a popover when being in portrait). The planning for this is: Undefined, unfortunately, even if it is fun to adopt more recent technologies.
Next, the iObserve 2 story… The Desktop client is well underway. I have multiple-windows, and a lot more power features for big screens. But I wanted 2 major stuff for iObserve 2: a dedicated backend, and some advanced algorithms for planets (and not only Moon as I have today).
The backend is in preparation… but guess what, along the way, I found it very interesting and it opens tons of new possibilities. It is in a very pre-alpha state, and it will be called … arcsecond.io. It is very unstable, as I am struggling a bit with the Django-Python-HTML-Bootstrap-Heroku-Postgres stack. But I am actually pushing code now and then into the repo.
As for the algorithms, the obvious reference is Jean Meeus’ Astronomical Algorithms textbook. I have a copy of the book. And I implemented some of it. But there is an existing implementation that is a lot more complete than mine, and a lot more tested. It’s called AA+, by P.J. Naughter. After some discussion he agreed for letting me put hist code into a GitHub open-source repo, for me to write an Objective-C wrapper… which became actually a Swift wrapper! It’s open-source, so have a look!
Of course, putting my hands into Swift, I thought I could do some interesting stuff with it. And one very nice ESO guy suggested me to write an app for monitoring the ESO archive live, every night. That’s a great occasion to start a new app with all the amazing new stuff iOS8 introduced. So here it will be: SkyDataFlows.
Of course, to read correctly the ESO DB, one must parse the VOTable output. And there is no VOTable parser written in Swift… so here it is! SwiftVOTable, open-source, boum.
And beside this, waiting, is my iTiunes-For-FITS file app (which benefits from the progress of the development of iObserve 2), and some other web projects with a friend of mine. Dev is a lifestyle, a mental life with ups and down! #yeah
Not really convinced by MUSIC like myself? Not a problem, we have one major announcement for the developer sleeping in you: Swift 2! Moreover, Swift will be open source! Even better! Swift 2 will be open source, and available on Linux! Time for you to start looking at it, no?
<personal ad>SiftVOTable is an ongoing dev of yours truly to have a VOTable-parser in Swift, cool, isn’t it?</personal ad>
Now, the key thing is to know whether the release of Swift on Linux will also include the famous « Foundation » library. The blog post above only says it will include « standard libraries ». But Swift, like Objective-C, isn’t very powerful without the famous Apple libraries Cocoa and CocoaTouch.
At the foundation of Cocoa(Touch), there is Foundation. And that would be a minimum to start writing server apps with Swift. I may need to reconsider what I am writing for iObserve 2…
That’s it, finally. iObserve for iPad version 1.1 has been pushed to Apple for review. It should be available within a week. Be aware that this new version drops the support for iOS6 and iOS7! It is an iOS8-only update. Let me know if this is a big issue for you, since it is a survival decision for me…
Let me introduce a new open-source project: SwiftVOTable, a simple VOTable parser written in Swift. It is really work in progress, but I am developing it for a coming app… Pretty nice to learn Swift finally!