[Openmcl-devel] AgentCubes Lite: Sandboxed Lisp 3D authoring Application in Apple Mac Store

Alexander Repenning alexander.repenning at Colorado.EDU
Tue Jul 30 14:27:30 PDT 2013

On Jul 29, 2013, at 9:44 PM, Terje Norderhaug <terje at in-progress.com> wrote:

> On Mon, Jul 29, 2013 at 7:16 PM, Alexander Repenning <alexander.repenning at colorado.edu> wrote:
> We are still keeping this at low profile but Apple just accepted our fully sandboxed 3D Game and Simulation Design AgentCubes application (built in CCL) into the Apple Mac App store. [...] It was quite a bit of work to get this going with CCL outside of the Apple Xcode empire. 
> Congratulations! Any tips and insights to share on how to get a CCL app into the app store? 


too many to quickly share. The main insight would just be patience. It can take, and did take, some iterations to address concerns by Apple. The feedback provided by Apple is somewhat sparse but useful nonetheless. AgentCubes is an authoring application. We expected that sandboxing it would be a real pain given that users need to be able to store a lot of stuff in various folders to save their projects. In the end, it turned out that using CCL, or most other non Xcode-based development tools, required more research  including various Stackoverflow queries, to find out how to use certain tools to deal with the sandboxing outside of the Xcode ecology. Apple certainly could have done a better job to document these tools but then again all of this is somewhat understandable. 

We did anticipate a number of issues based on using CCL instead of Xcode but that turned out to be not a problem. Most of the hard problems turned out to be design, not implementation issues. For instance, sandboxing requires the use of a user container (a hidden folder somewhere inside the user space) storing project information. Accessing this container information through traditional OS X file chooser mechanisms turns out to be quite the conceptual challenge which can, perhaps, be best described as a PC/Post PC approach clash. In the end we created our own project browser to allow users to quickly browse projects and to open them. Check it out and let us know what you think. This actually works quite well and possibly even better than the regular file chooser based approaches but there always is the need to fall back onto file chooser based approaches. It is difficult to blend these two worlds. For instance, you may need to locate a project somewhere on a network to be imported into your container projects. How do you open/open special/import/move/ … these projects into the sandbox container. AFAIK, Apple does not provide much inspiration for this. Xcode is not sandboxed, for instance. If anybody has some ideas we love to hear about them.

The one technical issue we have left is the proper use of the store kit to support In-App-Purchase. When we enabled this CCL became quite unstable. Looked as if there were some threading issues. Could be related to our code or some strange incompatibility with CCL. Clearly, more research is required.

At any rate, there are some people on this list who are not all that excited about the new directions (Mac App store, sandboxing, post PC UX) Apple has been taken. I do not want to start a flamewar of any kind. If you don't like that, so be it. There is no need to discuss this. However, the proof is in the pudding. It is possible to make a CCL based, sandboxed authoring tool for the Mac App store. The download and installation experiences are quite nice. The Mac App Store is a nice service that has a good chance to make your App more accessible. The feedback you get from Apple about your experience can be a bit frustrating but also adds usability value. I just wish the CCL, and more generally the Lisp community, would be a bit more enthusiastic about modern computing platforms. If anything, I think this could be a great opportunity for Lisp to create some interesting tools. 

I encourage Lisp developers to make their creations available to a wider audience. The Apple Mac Store could be one such path. Give it a try. We'd be happy to share our experiences.

ps: most of our code is here: http://code.google.com/p/xmlisp/

best, Alex

Prof. Alexander Repenning

University of Colorado
Computer Science Department
Boulder, CO 80309-430

vCard: http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20130730/6e404ea5/attachment.htm>

More information about the Openmcl-devel mailing list