About TransSkel

TransSkel is an application framework, originally created in the days before the term "application framework" was widely known. It was originally designed and programmed by Paul DuBois. He no longer works on the package, but keeps his own page about it here.

Note that it is not just an application skeleton, even though the name implies that. Paul coined the term "transportable skeleton", which really means application framework in modern terms. It seems to me that he was inspired by the Skel demo, which is indeed an application skeleton, but made the code reusable, even reusing the Skel concept as a demo for TransSkel.

Most application frameworks are written for a specific language, and are generally awkward or even impossible to use from other languages. TransSkel is a procedural, callback-based framework that can be made to work with most languages without any need for kludgey glue code. It was originally written in C, ported to Pascal by Owen Hartnett. My new version, TransSkel5, is written in FPC (a highly modernized and extended Pascal dialect). At this point, TransSkel5 is only written for Mac OSX, but we already have an in-house Win32 TransSkel which we may update to match the current design.

TransSkel 1-3

TransSkel 1 to 3 was for the "classic" Mac Toolbox, usable for all MacOS versions up to 9. TransSkel 2 branched out the Pascal version, from which I built several of my own versions, most notably my version 2.7, which was a Carbon version for OSX. Some of my versions are available here (in my old source-code archive). There were also other branches from version 2, by other people. All these versions build firmly on the same base and were very similar except for a few additions. Version 3 was Paul's next major revision, including most enhancements from other branches.

TransSkel 4

TransSkel 4 was my first bigger deviation from the original, replacing the old event processing by "Carbon Events", a new event system that was noticably faster under OSX. This was a great improvement, which completed the step into the OSX world, but sadly this was just before Apple announced the death of 64-bit Carbon, which essentially ment that Carbon was made a dead end and I went on to the next step:

TransSkel 5

TransSkel was originally a layer between the Mac Toolbox and the application, replacing the event processing but little else. You did most other tasks (creating windows, handling controls, drawing graphics...) through ordinary Mac Toolbox calls. This approach was kept up to TransSkel 4, the Carbon/Carbon Events version.

TransSkel 5 is radically different in this respect. It sits on top of Cocoa, not Carbon. Apart from the event processing, which is fairly similar to the old versions, TransSkel5 also includes quite a bit of glue code over system calls, hiding a lot of Cocoa calls. You can write entire applications without a single line of Cocoa code in your application code, but Cocoa is still fully accessible, so any need that may arise that TransSkel doesn't cover can be handled by a little Cocoa specific code.

TransSkel for iOS

TransSkel exists for iOS. The iOS version is in development, but has progressed fast recently (as of 10-11th of september 2011). It is now in use in a serious project, which I am very happy with.

TransSkel for Win32

TransSkel exists for Win32 and is used for commercial cross-platsform development together with one of the older TransSkel versions for the Mac. It needs an overhaul to match the current Mac version butmuch of the functionality is in place. This version is not yet released to the public.

Is it TransSkel5 or TransSkel 5?

Both. It is "TransSkel version 5", but also "TransSkel5" as a unit and file name since I can't have spaces in these names. I use both, more or less randomly.

 

(There is more to write, and pictures to add.)

 

You can find TransSkel with preliminary documentation and source-code in the download section.