Ball, Michael
 

iSort: A Card Sorting Application For Mac Developers

Michael Ball

December 2002

Advisor: Susan Reiser

Project Description
Card sorting exercises provide insight into how individuals mentally categorize data. The information derived from performing and analyzing many card sorts within a potential user base can be used to make websites or applications much more intuitive. Traditionally, this task involves creating multiple decks of index cards representing granular pieces of data for the users to sort into categories of similar items. Then, an analyst would perform the task of analyzing the sorts with pencil and paper. To ease this task, a few applications were developed to automate the process. Each is actually a pair of applications, one for card sorting and one for analysis. Both pairs require the Microsoft Windows platform. Considering the number of web developers using the Apple's Mac platform, I was suprised to find that no similar application existed for Apple's Mac OS X. For my senior project, I designed and implemented iSort, a single, native Mac application that provides comparable result to its Windows-based counterparts.

Hardware and Software Used:
Apple iBook: Served as the development and initial test hardware used in implementing my application.

Mac OS X Version 10.2 Jaguar: The latest operating system available from Apple. Using Mac OS X provided me with the opportunity to expand my development experience to a new platform.

Objective-C and Cocoa APIs: The standard programming language and Application Program Interfaces (APIs) for developing software on Mac OS X.

Project Builder and Interface Builder: The de facto standard Integrated Development Environment (IDE) for programming native applications on Mac OS X. This environment stems from the advanced tools for NextStep development.

Implementation:
After performing initial research and basic object oriented design (OOD), I focused on working through a number of tutorials to familiarize myself with a completely new programming environment. From that point the development process went extremely well, except for problems due to sparse documentation when the books on the subject did not cover a needed topic. I also found that keeping a current object diagram was vital in being able to visualize a growing amount of code.

Conclusion:
I feel satisfied that I have implemented an application in a relatively short period of time that required a language, API's, IDE, and development platform that I had no prior training with. I also plan to continue the development of iSort, in hopes of bring a needed tool to the Mac development community.