Molecules 1.3.2 now on the App Store

Author: Brad Larson
Molecules 1.3.2 now on the App Store

After a long hiatus, I've finally updated Molecules. Version 1.3.2 is an update focused on performance, with few new features (much like a certain OS version). Rendering speed has been nearly doubled, larger structures can be displayed due to memory optimizations, and a faster search interface is used when communicating with the Protein Data Bank. As usual, the source code for this version is available.

First, I'd like to apologize for letting this application stagnate as long as it did. I've been occupied with other things over the last few months and haven't been able to dedicate as much time to this as I would have liked. I know people were starting to question whether this was an abandoned project or not. Trust me, I still have a lot I want to implement before I'm happy with the product.

Performance improvements

The major purpose of this update is to improve the overall performance of the application. I've made some significant improvements to the OpenGL ES rendering of the molecular structures, leading to a near doubling of the number of triangles per second that Molecules draws. This means that smaller molecules now respond to touch much more smoothly and larger structures become less maddening to work with.

I'll detail the specifics of the OpenGL ES optimizations that I used in a later post.

In addition to rendering enhancements, I've implemented a new database searching interface that the Protein Data Bank added at the beginning of the year. This interface dramatically cuts down on the amount of data sent back and forth between the iPhone and the PDB website, so it is much faster. The results are also ordered by relevance to the keywords used, so you'll see better results at the top of the list. Finally, I've added the ability for you to pull down as many results as you want, in groupings of 25.

Interface refinements

You might notice that Molecules now requires iPhone OS 3.0. I've gone this way with my other products because of the significant advantages that this version of the OS provides.

One of those advantages is the nice new default table cell styles that Apple provides. I've used these cells to clean up a little bit of the interface of the application.

You'll also notice something new about the main display. I've added a neat little autorotation feature that you can toggle on and off by tapping the icon in the lower left of the screen. By default, molecules autorotate when they are first loaded, but the rotation stops if you interact with them in any way. I think it's a fun little feature.

Code cleanup

Ever since I first made the code for Molecules available, I've been embarrassed by how messy it is. Now that it's been downloaded thousands of times, I feel even worse about it.

I've started cleaning up the code used for the application, so hopefully it will be much clearer for those looking to learn something from it. In particular, I've refactored the SLSMoleculeGLView and SLSMoleculeGLViewController classes to be more Model-View-Controller compliant. There's still a lot more that I need to do, though.

Again, I want to apologize for the delay in updating this application. I'll try to get the next update out in a more reasonable timeframe.