Mauro Marinilli's Professional Java User Interfaces

marinilli.com > books > Professional Java User Interfaces

Professional Java User Interfaces


"Professional Java User Interfaces"
Mauro Marinilli
April 2006,
707 Pages (55$)
John Wiley & Sons
ISBN 0471486965



Professional Java User Interfaces addresses Graphical User Interfaces from early design through development and maintenance. The book discusses GUI Design theory, GUI Design guidelines, usability, test-driven GUI Development, testing tools, GUI tuning, OO software design for complex GUI, GUI code generation Rich Client Frameworks for Java and even more. This work is the result of many years of professional practice within the Industry. The book has been used also as a textbook in various university courses.

Table of Contents

Brief Table of Contents

Introduction
1. Putting GUI Development into Context
2. Introduction to User Interface Design
3. Java GUI Design
4. Recurring User Interface Designs
5. Iterative GUI Development with Java
6. Implementation Issues
7. Code Organization
8. Form-Based Rich Clients
9. Web-Based User Interfaces
10. J2ME User Interfaces
11. Java Tools and Technologies
12. Advanced Issues
13. Rich Client Platforms
14. The Personal Portfolio Application
15. An Example OO User Interface
16. An Example Ad-Hoc Component
A. A Questionnaire for Evaluating Java User Interfaces
B. A Questionnaire for Evaluating J2ME Applications

Extended Table of Contents

Introduction

The interactivity thrill
The organization of the book
Book readers and personas


1. Putting GUI Development into Context

Introduction
Focusing on users
A functional decomposition for user interfaces
Tool selection: the Java singularity
Organizational aspects
Early design
Lifecycle models, processes and approaches
UML notation
Summary


Part I:
User Interface Design

 

2. Introduction to User Interface Design

The human factor
Display organization
Interaction styles
Conceptual frameworks for UI design
Assessing the quality of a GUI
Summary


3. Java GUI Design

Java technology for GUIs
Cost-driven design
Exploring the design space for a point chooser
Design guidelines for the Java platform
The Java look and feel design guidelines
Summary


4. Recurring User Interface Designs

GUI area organization
Choosers
Memory components
Lazy initialization
Preference dialogs
Waiting strategies
Flexible layout
Common dialogs
Command components
Accessibility
Navigation and keyboard support
Internationalization
Help support
Icons and images
Leveraging object-oriented programming
Summary


Part II:
Software Design

5. Iterative GUI Development with Java

Iterating wisely
Introduction to prototyping
Prototyping alternatives
GUI builders
Reusable prototyping widgets
GUI refactoring
Introduction to user interface testing
Software testing of Java GUIs
Usability testing of Java GUIs
JRE runtime management
Summary


6. Implementation Issues

Revisiting the abstract model
Content
Business domain
Data input-output
Making objects communicate
Separating data from views
Interaction and control
Some design patterns for GUIs
GUI complexity boosters
Summary


7. Code Organization

Introducing software architectures
Some common GUI architectures
A three-layer organization for GUI code
Two examples of a three-layer implementation
The service layer
Summary


8. Form-Based Rich Clients

Introduction
Reference functional model
Runtime data model
The cake-ordering application, the XP way
Summary


9. Web-Based User Interfaces

An overview of Web user interfaces
GUI design for the Web
Implementing Web applications with Java
From Web applications to rich clients
Summary


10. J2ME User Interfaces

Introduction to the MID profile
The MIDP UI API
Designing MIDP GUIs
Designing navigation
An example custom item
An example ad-hoc item
An example application
Summary


11. Java Tools and Technologies

Introduction to tool selection
Evaluating open source software
SWT or Swing?
Other GUI technologies
Utility libraries
Test tools
Profiling tools
GUI builders
Presentation layer technologies
Declarative GUIs with Java
Summary


12. Advanced Issues

Building on top of existing libraries
Memory management for complex GUIs
Restructuring existing GUI code
Exploiting technology
Domain-specific and Little languages
The future of Java GUIs
Summary


Part III:
Examples

13. Rich Client Platforms

Introduction to Java rich client platforms
The NetBeans RCP
The Spring RCP
The Eclipse RCP
Choosing the best RCP for your needs
Legal issues
An example Eclipse RCP application
Summary


14. The Personal Portfolio Application

The scenario
Analysis
Choosing a technology
An initial GUI design
The final GUI
Implementation
Resources
The code
Deployment issues
An alternative, cost-driven implementation with JDNC
Summary


15. An Example OO User Interface

Introduction
Implementing object-oriented user interfaces
Some utility classes
Configuration views
Interacting with the user
Managing user commands
An example application
An alternative implementation using Naked Objects
Summary


16. An Example Ad-Hoc Component

Introduction
The Drawing Sandbox application
The Sandbox architecture
The Sandbox component
User interaction
Control
The whole picture
Stressing the software design
Introducing JHotdraw
Summary


Appendices:

A Questionnaire for Evaluating Java User Interfaces

A Questionnaire for Evaluating J2ME User Interfaces



Download the Source Code

This file gathers all book sources packaged as an Eclipse project. Just rename it to .zip after download.Ant files are included as well.

Unfortunately the final version of the code presented in Chapter 13 got lost. Here is the latest version that I was able to restore. Just rename the file to .zip after download. I do apologize for the inconvenience.

External Dependencies

Some of the provided code needs external libraries in order to run.

Internal Dependencies

Some of the code relies on some other utility code provided in other chapters.
Originally two additional appendices were planned: These appendices were cut to keep the book short, nevertheless the related code is included as well. Code in com.marinilli.b1.ac is an extended version of the utility code provided throughout the book, and it is used only by the Personal Portfolio application in Chapter 14.



Buy the Book


Related Links





© 1998-2008 Mauro Marinilli