EazyDraw
UTI
Home Buy Now Contact Support Site Map

ScreenShots
Applications
Features
User Comments
Gallery
Downloads


Buy Now

Download Now



 

 

Uniform Type Identifier

Reference document for: com.dekorr.eazydraw.graphic and com.dekorra.eazydraw.binary file types


Scroll to end of this page for summary:
If you understand the UTI technology, scroll to the end of this page for the specification chart for EazyDraw's two file types.


File Typing a Brief History:

File typing has been a problem for software developers and users since the first box of punch cards had a name scribbled across it's top. The Classic Mac OS used two 32-bit integers, usually expressed as four-character codes to identify a type and creator code. While this naming space or set of addresses filled up over a decade or so, other operating systems used a less defined convention of identifying a type with a dot and three letter extension. In 2001 Apple took a "Next Step" and changed from type and creator to dot/extension with the expansion from 3 letters to unlimited number of letters. The transition necessitated by co-existence of the Classic OS 9 and OS X as well as Carbon, Cocoa, and even Unix heritage applications caused a great deal of confusion for developers and users.  This prevented a smooth and uniform adoption of extended extension typing. The primary reason for adopting file name extensions as stated by Mr Jobs at the 2001 developer's conference was because the other operating systems used the approach.  That apparently didn't work out.

Over this same period a system called MIME types have been used primarily for MIME-encapsulate or tagged data for Safari and Mail. This system is partially supported by OS X and info.plist for application bundles. But extended MIME attributes were needed to properly use this convention for typing and application bundles did not support the information. MIME is really a non-starter for file format typing and was not really adopted in the OS X environment.

Now, with a little less fan-fare, Apple OS X is moving to a more "thought out" typing solution, called Uniform Type Identifiers (UTI - but don't google just UTI as that will take you to your Urologist's home page). As of OS X version 10.4 UTI's seem to take preference for most Finder decisions and they are core to the Spotlight technology. This page is EazyDraw's developer's (and power user's) reference for the Universal Type Identifiers used by EazyDraw.

Uniform Type Identifiers

The broad definition of a UTI is a system to "uniquely identify a class of entities considered to have a type". This the "broad" definition. We are interested primarily in file formats or data on the OS X system pasteboard. As technology evolves this system will likely expand to other identifiably typed entities such as disk volumes, folders, and symbolic links.

UTIs are designed to go beyond the limitations of name extensions and type / creator codes. They are unique, using a simple system based on registered internet domain names. UTIs have no restriction on length, lifting confusion of 3 letter conflicts and if desired they can be human readable and translated to provide readable clarity in several languages. They are Extensible, a well defined system is provided for adding new types and extending or collapsing a definition scope. A clear hierarchy can be used to define new types as sub-types of other defined types. And all this can be accomplished safely with or without the blessing or registration of an organizing body or controlling corporate interests such as Adobe domain over the pdf format.

Ground Rules

A UTI is a text string that can contain numbers, letters, hyphens, and periods, plus any Unicode characters above the ASCII range. Standard types have a "public." prefix. In our world only Apple can define the "public." identifiers. Some that they have specified are: "public.data" (top/root of the tree), "public.text", "public.image" etc. See the diagram below to better understand the relationships.

A unique name for a file type is constructed by reversing a registered domain name. For EazyDraw this involves our historic corporate identity "Dekorra Optics, LLC" which leads to the designation "com.dekorra.eazydraw.xxxx" for EazyDraw file types. We have two formats the human readable format which is a pList and a more compact binary format. This leads to the UTI's which we define: "com.dekorra.eazydraw.graphic" and "com.dekorra.eazydraw.binary". These two types are registered with OS X and the Finder by appropriate entries in the EazyDraw application bundle, info.plist file. The following diagram presents shows this information in graphic form.


 Back Up  

 
What is a UTI
A UTI is a typing system that allows OS X and other applications to associate a data file with a supporting, creating application.

Type and Creator?
EazyDraw files are saved with Type and Creator codes. Our creator code is "dkra" and the type code for the EazyDraw graphic format is "ezdw".  The type code for the EazyDraw binary format is "ezdt". 

File extensions?
EazyDraw graphic format files are saved with the file extension ".ezdraw".  EazyDraw binary format files are saved with the extension ".ezddata"


Developer Notes
Type and Creator identifiers are used primarily by Carbon applications that have been ported from the Classic environment to OS X.  While Apple's guidelines assert these are not necessary, this is not always true.  With Panther and Tiger the OS maintains these identifiers.
UTI's required?
With OS X version 10.4 it is becoming more important that UTI information is provided with the application bundle.  The information is used by the Finder and required for Spotlight.


copyright 2006 Dekorra Optics, LLC. All rights reserved