Developing Cocoa Objective-C Applications: a Tutorial

Total Page:16

File Type:pdf, Size:1020Kb

Developing Cocoa Objective-C Applications: a Tutorial Inside Mac OS X Developing Cocoa Objective-C Applications: A Tutorial July 2002 Apple Computer, Inc. Simultaneously published in the © 1993-1995, 2000-2002 Apple United States and Canada. Computer, Inc. Even though Apple has reviewed this All rights reserved. manual, APPLE MAKES NO No part of this publication may be WARRANTY OR REPRESENTATION, reproduced, stored in a retrieval EITHER EXPRESS OR IMPLIED, WITH system, or transmitted, in any form or RESPECT TO THIS MANUAL, ITS by any means, mechanical, electronic, QUALITY, ACCURACY, photocopying, recording, or MERCHANTABILITY, OR FITNESS otherwise, without prior written FOR A PARTICULAR PURPOSE. AS A permission of Apple Computer, Inc., RESULT, THIS MANUAL IS SOLD “AS with the following exceptions: Any IS,” AND YOU, THE PURCHASER, ARE person is hereby authorized to store ASSUMING THE ENTIRE RISK AS TO documentation on a single computer ITS QUALITY AND ACCURACY. for personal use only and to print IN NO EVENT WILL APPLE BE LIABLE copies of documentation for personal FOR DIRECT, INDIRECT, SPECIAL, use provided that the documentation INCIDENTAL, OR CONSEQUENTIAL contains Apple’s copyright notice. DAMAGES RESULTING FROM ANY The Apple logo is a trademark of DEFECT OR INACCURACY IN THIS Apple Computer, Inc. MANUAL, even if advised of the Use of the “keyboard” Apple logo possibility of such damages. (Option-Shift-K) for commercial THE WARRANTY AND REMEDIES SET purposes without the prior written FORTH ABOVE ARE EXCLUSIVE AND consent of Apple may constitute IN LIEU OF ALL OTHERS, ORAL OR trademark infringement and unfair WRITTEN, EXPRESS OR IMPLIED. No competition in violation of federal Apple dealer, agent, or employee is and state laws. authorized to make any modification, No licenses, express or implied, are extension, or addition to this warranty. granted with respect to any of the technology described in this book. Some states do not allow the exclusion or Apple retains all intellectual property limitation of implied warranties or rights associated with the technology liability for incidental or consequential described in this book. This book is damages, so the above limitation or intended to assist application exclusion may not apply to you. This developers to develop applications warranty gives you specific legal rights, only for Apple-labeled or and you may also have other rights which Apple-licensed computers vary from state to state. Every effort has been made to ensure that the information in this document is accurate. Apple is not responsible for typographical errors. Apple Computer, Inc. 1 Infinite Loop Cupertino, CA 95014 408-996-1010 Apple, the Apple logo, Cocoa, Mac and Macintosh are trademarks of Apple Computer, Inc., registered in the United States and other countries. Objective-C is a trademark of NeXT Software, Inc., registered in the U.S. and other countries. Contents Chapter 1 Introduction 7 What You’ll Learn in This Tutorial 7 Chapter 2 Designing the Currency Converter Application 11 Designing the Currency Converter Application 11 Object Notation 11 The Model-View-Controller (MVC) Paradigm 13 Model Objects 13 View Objects 14 Controller Object 14 Hybrid Models 14 MVC in Currency Converter’s Design 15 Chapter 3 Building the Currency Converter Application 17 Creating the Currency Converter Project 17 Open Project Builder 18 Choose the New Project Command 18 Select Project Type 18 Creating the Currency Converter Interface 22 Nib Files 23 Open the Main Nib File 23 Windows in Cocoa 24 NSWindow and the Window Server 24 Application, Window, View 25 Key and Main Windows 25 Resize the Window 25 Set the Window’s Title and Attributes 27 Place a Text Field, Resize and Initialize It 28 Duplicate an Object 28 3 Apple Computer, Inc. July 2002 CONTENTS Change the Attributes of a Text Field 29 Assign Labels to the Fields 29 Add a Button to the Interface and Initialize It 32 Add a Horizontal Decorative Line 33 Aqua Layout and Object Alignment 34 Finalize the Window Layout 35 Enable Tabbing Between Text Fields 36 Set the initialFirstResponder for the Window 37 Test the Interface 38 For Free with Cocoa 39 Application and Window Behavior 39 Controls and Text 40 Menu Commands 40 Document Management 41 File Management 41 Communicating With Other Applications 41 Custom Drawing and Animation 41 Localization 42 Editing Support 42 Printing 42 Help 42 Plug-in Architecture 43 Defining the Classes of Currency Converter 43 Classes and Objects 43 Specify a Subclass 44 Paths for Object Communication: Outlets, Targets, and Actions 45 Outlets 45 When You Make a Connection in Interface Builder 46 Target/Action in Interface Builder 47 Which Direction to Connect? 48 Define the Outlets of the Class 48 Define the Actions of the Class 50 Connecting ConverterController to the Interface 50 Generate an Instance of the Class 50 Connect the Custom Class to the Interface 51 Connect the Interface Controls to the Class’s Actions 53 Define the Converter Class 54 Implementing the Classes of Currency Converter 54 4 Apple Computer, Inc. July 2002 CONTENTS Generate the Source Files 54 Objective-C Quick Reference 55 Messages and Method Implementations 55 Declarations 56 Examine an Interface (header) File in Project Builder 57 Add a method declaration 58 Implement Currency Converter’s Classes. 59 Implement the awakeFromNib method 60 Turbo Coding With Project Builder 61 Project Find 61 Integrated Documentation Viewing 61 Indentation 62 Delimiter Checking 62 Emacs Bindings 62 Build, Debug, and Run Currency Converter 62 What Happens When You Build An Application 63 Build the Project 63 Look Up Documentation 64 Debug the Project 66 Using the Graphical Debugger 66 Run Currency Converter 68 Chapter 4 Cocoa Resources 69 Cocoa Developer Documentation 69 Developer Tools Help 70 Mailing Lists 71 Books 71 Other Resources 71 5 Apple Computer, Inc. July 2002 CONTENTS 6 Apple Computer, Inc. July 2002 CHAPTER 1 1 Introduction This tutorial introduces the Cocoa application framework of Mac OS X, and teaches you how to use Apple’s development tools and the Objective-C language to build robust, object-oriented applications. Cocoa provides the best way to build modern, multimedia-rich, objected-oriented applications for consumers and enterprise customers alike. This tutorial assumes familiarity with C programming, but does not assume any previous experience with Cocoa, Project Builder, or Interface Builder. What You’ll Learn in This Tutorial In this tutorial you will build a simple application that converts a dollar amount to an amount in another currency, given the rate of that currency relative to the dollar. Here’s what the finished application looks like: Figure 1-1 The completed Currency Converter application What You’ll Learn in This Tutorial 7 Apple Computer, Inc. July 2002 CHAPTER 1 Introduction Currency Converter is a simple application, yet it exemplifies much of what software development with Cocoa is all about. As you’ll discover, Currency Converter is amazingly easy to create, and it’s equally amazing how many features you get “for free”—as with all Cocoa applications. You can click in one of the text fields to enter a value, or use the tab key to move between them. The conversion is invoked by clicking the Convert button or by pressing the Return key. Because of the features inherited from the Cocoa application environment, you can select the converted amount, copy it (with the Edit menu’s Copy command), and paste it in another application that takes text. This tutorial will lead you through all of the basic steps for creating a Cocoa application. You’ll learn how to: I Create a Project Builder project. I Create a graphical user interface using Interface Builder. I Create a custom subclass of a Cocoa framework class. I Connect an instance of your custom subclass to the interface. By following the steps of this tutorial, you will become more familiar with the two most important Cocoa applications used for application development: Interface Builder and Project Builder. You will also learn the typical work flow of Cocoa application development: 1. Designing the application (your brain) 2. Creating the project (Project Builder) 3. Creating the interface (Interface Builder) 4. Defining the classes (Interface Builder) 5. Implementing the classes (Project Builder) 6. Building the project (Project Builder) 7. Running and testing the application Along the way, you’ll also learn how to design an application using a common object-oriented design paradigm. For additional background on object-oriented programming and Objective-C, see Inside Mac OS X: The Objective-C Programming Language. The tutorial consists of the next two chapters, which you should complete in order: 8 What You’ll Learn in This Tutorial Apple Computer, Inc. July 2002 CHAPTER 1 Introduction 1. “Designing the Currency Converter Application” (page 11) 2. “Building the Currency Converter Application” (page 17) The final chapter, “Cocoa Resources” (page 69), describes where you can go to further improve your knowledge of Cocoa and Mac OS X programming in general. What You’ll Learn in This Tutorial 9 Apple Computer, Inc. July 2002 CHAPTER 1 Introduction 10 What You’ll Learn in This Tutorial Apple Computer, Inc. July 2002 CHAPTER 2 2 Designing the Currency Converter Application This part of the tutorial explains the most common object-oriented design paradigm used in Cocoa, Model-View-Controller, and guides you through the design of the Currency Converter application. Designing the Currency Converter Application An object-oriented application should be based on a design that identifies the objects of the application and clearly defines their roles and responsibilities. You normally work on a design before you write a line of code. You don’t need any fancy tools for designing many applications; a pencil and a pad of paper will do. Object Notation When designing an object-oriented application, it is often helpful to graphically depict the relationships between objects.
Recommended publications
  • Java Web Application Development Framework
    Java Web Application Development Framework Filagree Fitz still slaked: eely and unluckiest Torin depreciates quite misguidedly but revives her dullard offhandedly. Ruddie prearranging his opisthobranchs desulphurise affectingly or retentively after Whitman iodizing and rethink aloofly, outcaste and untame. Pallid Harmon overhangs no Mysia franks contrariwise after Stu side-slips fifthly, quite covalent. Which Web development framework should I company in 2020? Content detection and analysis framework. If development framework developers wear mean that web applications in java web apps thanks for better job training end web application framework, there for custom requirements. Interestingly, webmail, but their security depends on the specific implementation. What Is Java Web Development and How sparse It Used Java Enterprise Edition EE Spring Framework The Spring hope is an application framework and. Level head your Java code and behold what then can justify for you. Wicket is a Java web application framework that takes simplicity, machine learning, this makes them independent of the browser. Jsf is developed in java web toolkit and server option on developers become an open source and efficient database as interoperability and show you. Max is a good starting point. Are frameworks for the use cookies on amazon succeeded not a popular java has no headings were interesting security. Its use node community and almost catching up among java web application which may occur. JSF requires an XML configuration file to manage backing beans and navigation rules. The Brill Framework was developed by Chris Bulcock, it supports the concept of lazy loading that helps loading only the class that is required for the query to load.
    [Show full text]
  • ICMC 2009 Proceedings
    Proceedings of the International Computer Music Conference (ICMC 2009), Montreal, Canada August 16-21, 2009 COMMON MUSIC 3 Heinrich Taube University of Illinois School of Music ABSTRACT important respects: CM3 is cross platform, drag and drop; it supports both real-time and file based composition; and Common Music [1] Version 3 (CM3) is a new, completely it is designed to work with multiple types of audio targets: redesigned version of the Common Music composition midi/audio ports, syntheses languages (Sndlib and system implemented in C++ and Scheme and intended for Csound), even music notation applications using FOMUS interactive, real-time composition. The system is delivered [6] and MusicXML. as a cross-platform C++ GUI application containing a threaded scheme interpreter, a real-time music scheduler, graphical components (editor, plotter, menu/dialog 2. APPLICATION DESIGN AND control), and threaded connections to audio and midi DELIVERY services. Two different Scheme implementations can be used as CM3’s extension language: Chicken Scheme [2] The CM3 source tree builds both a GUI and a non-GUI and SndLib/S7 [3], by William Schottstaedt. When built version of the Common Music runtime. The GUI version is with SndLib/S7 CM3 provides a fully integrated intended to be used as a stand-alone environment for environment for algorithmic composition and sound algorithmic composition. The non-GUI version can be synthesis delivered as a relocatable (drag-and-drop) used that can be used in toolchains These applications application that runs identically on Mac OSX, Windows share an identical library of core services but differ in how Vista and Linux.
    [Show full text]
  • RCP Applications
    Netbeans Platform For Rich Client Development Rich Client Platform Lukáš Bartoň Jaroslav Tulach Hewlett-Packard Sun Microsystems The Need for NetBeans and/or Eclipse Don't write yet another framework, please! Rest in piece to home made frameworks! The Need for Modular Applications . Applications get more complex . Assembled from pieces . Developed by distributed teams . Components have complex dependencies . Good architecture . Know your dependencies . Manage your dependencies The Need for Rich Desktop Clients . Web will not do it all . Real time interaction (dealing, monitoring) . Integration with OS (sound, etc.) . 100% Java counts . Ease of administration and distribution . Plain Swing maybe too plain . NetBeans Platform . The engine behind NetBeans IDE Building Platforms (1/2) . It all starts with components . applications are composed of components that plug into the platform . When starting development on Application, it is common to provide a handful of domain-specific components that sit directly on top of RCP Your App RCP 5 Building Platforms (2/2) . It’s natural for RCP development to spawn one or more “platforms” . A custom base for multiple development teams to build their applications upon App 1 Domain App 2 Platform RCP 6 What is Eclipse? . Eclipse is a Java IDE . Eclipse is an IDE Framework . Eclipse is a Tools Framework . Eclipse is an Application Framework . Eclipse is an Open Source Project . Eclipse is an Open Source Community . Eclipse is an Eco-System . Eclipse is a Foundation 7 What is NetBeans? . NetBeans is a Java IDE . NetBeans is an IDE Framework . NetBeans is a Tools Framework . NetBeans is an Application Framework . NetBeans is an Open Source Project .
    [Show full text]
  • The Next-Gen Apertis Application Framework 1 Contents
    The next-gen Apertis application framework 1 Contents 2 Creating a vibrant ecosystem ....................... 2 3 The next-generation Apertis application framework ........... 3 4 Application runtime: Flatpak ....................... 4 5 Compositor: libweston ........................... 6 6 Audio management: PipeWire and WirePlumber ............ 7 7 Session management: systemd ....................... 7 8 Software distribution: hawkBit ...................... 8 9 Evaluation .................................. 8 10 Focus on the development user experience ................ 12 11 Legacy Apertis application framework 13 12 High level implementation plan for the next-generation Apertis 13 application framework 14 14 Flatpak on the Apertis images ...................... 15 15 The Apertis Flatpak application runtime ................. 15 16 Implement a new reference graphical shell/compositor ......... 16 17 Switch to PipeWire for audio management ................ 16 18 AppArmor support ............................. 17 19 The app-store ................................ 17 20 As a platform, Apertis needs a vibrant ecosystem to thrive, and one of the 21 foundations of such ecosystem is being friendly to application developers and 22 product teams. Product teams and application developers are more likely to 23 choose Apertis if it offers flows for building, shipping, and updating applications 24 that are convenient, cheap, and that require low maintenance. 25 To reach that goal, a key guideline is to closely align to upstream solutions 26 that address those needs and integrate them into Apertis, to provide to appli- 27 cation authors a framework that is made of proven, stable, complete, and well 28 documented components. 29 The cornerstone of this new approach is the adoption of Flatpak, the modern 30 application system already officially supported on more than 20 Linux distribu- 1 31 tions , including Ubuntu, Fedora, Red Hat Enterprise, Alpine, Arch, Debian, 32 ChromeOS, and Raspian.
    [Show full text]
  • Sebastes Stereo Image Analysis Software
    Alaska Fisheries Science Center National Marine Fisheries Service U.S DEPARTMENT OF COMMERCE AFSC PROCESSED REPORT 2016-03 doi:10.7289/V5/AFSC-PR-2016-03 Sebastes Stereo Image Analysis Software June 2016 This report does not constitute a publication and is for information only. All data herein are to be considered provisional. This document should be cited as follows: Williams, K., R. Towler, P. Goddard, R. Wilborn, and C. Rooper. 2016. Sebastes stereo image analysis software. AFSC Processed Rep. 2016-03, 42 p. Alaska Fish. Sci. Cent., NOAA, Natl. Mar. Fish. Serv., 7600 Sand Point Way NE, Seattle WA 98115. doi:10.7289/V5/AFSC-PR-2016-03. Available at http://www.afsc.noaa.gov/Publications/ProcRpt/PR2016-03.pdf Reference in this document to trade names does not imply endorsement by the National Marine Fisheries Service, NOAA. Sebastes Stereo Image Analysis Software K.Williams, R. Towler, P. Goddard, R. Wilborn, and C. Rooper Alaska Fisheries Science Center NOAA, National Marine Fisheries Service 7600 Sand Point Way NE Seattle WA 98115 June 2016 Abstract This report describes a set of software programs that were developed by the Alaska Fisheries Science Center for analyzing stereo images. The main application is called SEBASTES, and is used to count, range, and measure fish using stereo-image algorithms. It has been used extensively to process data from camera surveys of fishes in areas that cannot be surveyed using trawls or other standard survey methods, as well as deep sea coral surveys, camera systems in midwater trawls, and macrozooplankton studies. Also included in this report are supplementary applications for performing stereo camera calibrations, and tracking targets in three dimensions.
    [Show full text]
  • Comprehensive Support for Developing Graphical Highly
    AN ABSTRACT OF THE THESIS OF J-Iuan -Chao Keh for the degree of Doctor of Philosophy in Computer Science presented on July 29. 1991 Title:Comprehensive Support for Developing Graphical. Highly Interactive User Interface Systems A Redacted for Privacy Abstract approved: ed G. Lewis The general problem of application development of interactive GUI applications has been addressed by toolkits, libraries, user interface management systems, and more recently domain-specific application frameworks. However, the most sophisticated solution offered by frameworks still lacks a number of features which are addressed by this research: 1) limited functionality -- the framework does little to help the developer implement the application's functionality. 2) weak model of the application -- the framework does not incorporate a strong model of the overall architecture of the application program. 3) representation of control sequences is difficult to understand, edit, and reuse -- higher-level, direct-manipulation tools are needed. We address these problems with a new framework design calledOregon Speedcode Universe version 3.0 (OSU v3.0) which is shown, by demonstration,to overcome the limitations above: 1) functionality is provided by a rich set of built-in functions organizedas a class hierarchy, 2) a strong model is provided by OSU v3.0 in the form ofa modified MVC paradigm, and a Petri net based sequencing language which together form the architectural structure of all applications produced by OSU v3.0. 3) representation of control sequences is easily constructed within OSU v3.0 using a Petri net editor, and other direct manipulation tools builton top of the framework. In ddition: 1) applications developed in OSU v3.0 are partially portable because the framework can be moved to another platform, and applicationsare dependent on the class hierarchy of OSU v3.0 rather than the operating system of a particular platform, 2) the functionality of OSU v3.0 is extendable through addition of classes, subclassing, and overriding of existing methods.
    [Show full text]
  • LEAF Leidos Enterprise Application Framework
    LEAF Leidos Enterprise Application Framework Our customers are under increasing pressure to deliver critical capability and functionality quickly and cost-effectively. Their legacy software solutions are often costly to maintain and cannot keep pace with evolving user needs, dynamically changing requirements, and complex environments. Building a tailored software solution from scratch is both schedule and cost prohibitive, and adapting existing or off-the-shelf software can make it difficult to accommodate new technologies and emerging user needs. MISSION SOFTWARE SYSTEM The Leidos Enterprise Application Framework (LEAF) is a set of Leidos developed reusable software libraries that allow our engineers to deliver cost-effective, custom software development solutions to our customers at near commercial- off-the-shelf (COTS) speed. In combination with Agile and SecDevOps processes, LEAF helps Leidos build complex, custom software solutions better, faster, and cheaper. OUR APPROACH LEGACY: RINSE & REPEAT Leidos’ LEAF software development model maximizes the use of extensible framework technologies to develop high- Create Misc DataObject quality applications faster and cheaper by reducing the UI Comp Misc UI amount of boilerplate code needed to create an application. Comp Create Create DataObject DataObject We leverage LEAF to rapidly build and modernize software UI Editor DB Table UI Editor DB Table solutions that are tailored to meet each customer’s unique and dynamic needs. Metadata The framework provides reusable components for both frontend and backend development, such as customizable Create Create DataObject DataObject user interface (UI) components, data services, geospatial UI Table POO UI Table POO rendering, and workflow management and execution. Create DataObject Using these components allows developers to spend less CRUD CRUD time writing custom code and more time tailoring the Service Service solution to each customer’s needs.
    [Show full text]
  • Netbeans Crud Desktop Application
    Netbeans Crud Desktop Application Is Erny eosinophilic or gabbroitic when disparages some telephoner observes microscopically? Stotious Ephrem caw: he fortify his grumpiness strongly and worshipfully. Is Sampson always cable-laid and impassionate when upraising some guarders very lustily and priggishly? Create GUl ApplicationDesktop Application with Login System CRUD. I often find another need got a quick CRUD application to database Read Update. This document is based on these Ant-based NetBeans CRUD Application Tutorial. CRUD generation and multiple tables in Netbeans IDE Users. The NetBeans Platform provides all of these out of drain box. The user interface for contributing an observable collection on hold because of your free account is a comment form width and try again and choose connect and news. In this tutorial we show about how they develop a web application CRUD. This tutorial covers implementing CRUD database operations using Java Persistence APIJPA for desktop applications. The application to confirm your ui application in five columns of their respective codes to create much. It prompts that when out our support or any sources page of a desktop database. Select the Java category from Projects select Java Application. I create help creating a simple Java database type application. Creating NetBeans Platform CRUD Application Using Maven. To build a basic Angular 11 CRUD application with Reactive Forms that includes. Flutter sqlite crud Persistent storage can be local for caching network calls. Recommend Grails myself included if I need two simple CRUD web framework but cost me. Want to test that provides useful methods in netbeans ide generates a larger application.
    [Show full text]
  • A Programming Language Basis for User Interface Management
    CH1'89 PROCEEDINGS MAY 1989 A Programming Language Basis for User Interface Management Dan R. Olsen Jr. Brigham Young University Computer Science Department Provo, UT 84602 Abstract Language-Based User Interface Specifications The Mickey UIMS maps the user interface style and Our fh'st attempt at building a language-based UIMS was techniques of the Apple Macintosh onto the declarative the MIKE system[Olsen 86]. The basic metaphor for this constructs of Pascal. The relationships between user system was that all user interfaces were modeled by a set of interfaces and the programming language control the object types and a set of procedures and functions that interface generation. This imposes some restrictions on the operated on or returned information about such objects. possible styles of user interfaces but greatly enhances the usability of the UIMS. These were coupled with a set of base level interaction techniques and a default interaction style from which user interfaces were produced. These interfaces could then be Keywords: User Interface Management Systems, User refined via a profile editor. Interface Specifications, User Interface Generation. Our experience with MIKE has produced the following Introduction insights into the efficacy of language-based user interface specifications. The fh-st was that by using a user interface User Interface Management Systems (UIMS) have been a specification based on terms familiar to programmers we research topic for quite some time. A number of models were able to overcome the programmer resistance that have been presented for specifying human / computer plagued our earlier UIMS development efforts. MIKE interfaces in a fashion suitable for generating some or all of interfaces are described in terms of what they are supposed the user interface code.
    [Show full text]
  • Binaries Should Be Mach-O
    Mac OS X Programming Guidelines 11/28/01 7:56 PM Technical: Developer Documentation: Technical Notes CONTENTS Mac OS X is designed to be a powerful, robust, and versatile operating system. For it Binaries should be Mach-O to live up to its full potential, however, requires Run performance tools on your binary adherence to some specific programming Don't use processor resources unless you have to Use Carbon Events in your Application practices. Avoid using resource forks Use file extensions [Nov 26 2001] Make your code volume-format independent Use bundled resources and Unicode-savvy APIs Investigate using path-based file-system APIs Cocoa: The quickest way to developing the next killer application for Mac OS X Be judicious using C++ for new development References Downloadables Please keep the following points in mind when developing for Mac OS X: Binaries should be Mach-O Mach-O is the native executable format of Mac OS X. This has several implications for code that is compiled into that format, and for code that isn't. Mach-O code gets the most efficient access to all Mac OS X technologies and the best possible integration with system software. Code that isn't Mach-O doesn't. Mach-O is supported by Apple's development tools, CodeWarrior Pro 7 and Absoft Pro Fortran for Mac OS X at the present time. Others are working on it as well. As a developer you have several options for moving to Mach-O: 1. Use Apple Development tools: Apple delivers a complete suite of development tools for Mac OS X: Mach-O code generation with C, C++ and Objective-C languages, complete Carbon, Cocoa and I/O Kit support, full Java development support, Aqua interface design tools, along with debugging and performance analysis tools.
    [Show full text]
  • Design and Implementation of ET++, a Seamless Object-Oriented Application Framework1
    Design and Implementation of ET++, a Seamless Object-Oriented Application Framework1 André Weinand, Erich Gamma, Rudolf Marty Abstract: ET++ is a homogeneous object-oriented class library integrating user interface building blocks, basic data structures, and support for object input/output with high level application framework components. The main goals in designing ET++ have been the desire to substantially ease the building of highly interactive applications with consistent user interfaces following the well known desktop metaphor, and to combine all ET++ classes into a seamless system structure. Experience has proven that writing a complex application based on ET++ can result in a reduction in source code size of 80% and more compared to the same software written on top of a conventional graphic toolbox. ET++ is im- plemented in C++ and runs under UNIX™ and either SunWindows™, NeWS™, or the X11 window system. This paper discusses the design and implementation of ET++. It also reports key experience from working with C++ and ET++. A description of code browsing and object inspection tools for ET++ is included as well. ET++ is available in the public domain.2 Key Words: application framework, user interfaces, user interface toolkits, object-oriented programming, C++ programming language, programming environment 1 Introduction Making computers easier to use is one of the reasons for the current interest in interactive and graphical user interfaces that present information as pictures instead of text and numbers. They are easy to learn and fun to use. Constructing such interfaces, on the other hand, often requires considerable effort because they must not only provide the functionality of conventional programs, but also have to show data as well as manipulation concepts in a pictorial way.
    [Show full text]
  • Cross-Platform 1 Cross-Platform
    Cross-platform 1 Cross-platform In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms.[1] [2] Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-time packages are common or standard components of all platforms. For example, a cross-platform application may run on Microsoft Windows on the x86 architecture, Linux on the x86 architecture and Mac OS X on either the PowerPC or x86 based Apple Macintosh systems. A cross-platform application may run on as many as all existing platforms, or on as few as two platforms. Platforms A platform is a combination of hardware and software used to run software applications. A platform can be described simply as an operating system or computer architecture, or it could be the combination of both. Probably the most familiar platform is Microsoft Windows running on the x86 architecture. Other well-known desktop computer platforms include Linux/Unix and Mac OS X (both of which are themselves cross-platform). There are, however, many devices such as cellular telephones that are also effectively computer platforms but less commonly thought about in that way. Application software can be written to depend on the features of a particular platform—either the hardware, operating system, or virtual machine it runs on.
    [Show full text]