user interfaces - lecture25 the exam & revision

21
User Interfaces Lecture25 The Exam & Revision Hamza Bennani [email protected] October 9, 2018

Upload: others

Post on 22-Jan-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

User Interfaces

Lecture25

The Exam & Revision

Hamza [email protected]

October 9, 2018

Exam Structure

I Similar to resent years’ exam.I Classes and Objects, Memory Management, Inheritance

and Polymorphism, Object Interconnections and designpatterns, Usability, User Interface Design, MVC, CocoaApplications

1

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Exam Instructions

I Date???I Three hours to complete the examI Answer all questionsI No supplementary material or calculatorsI No books, notes, or other written materialsI 8 questionsI Worth 60% of your final grade.

2

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Exam Advice

I Read questions carefully - check what is being askedI Listing or defining termsI Explaining or discussing conceptsI Comparing advantages/disadvantagesI . . .

I Check how much questions are worthI Rule of thumb is 1 mark per point madeI Basic recall might be worth less

3

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Exam Advice

I Use examples to illustrate ideasI OK to write notes or bullet points

I Better to write the key points clearlyI Use diagrams where appropriateI Label your answers with question numbers

I Indicate if parts of questions are on different pages

4

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Example Questions

Look last years exam.

5

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Course SummaryOO

I OO and SwiftI Classes and objectsI InheritanceI PolymorphismI Memory managementI Other key topics . . .I Lecture 13: OO Review

6

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Course SummaryUI Review

Mac,Platform6

2015 COSC346

Computer6

Objective'C,runtime6

Swift6

Foundation,Framework6

AppKit6

Application6

OOP6

User6Interfaces6Xcode,IDE6

OOP,Design,Principles6

UI,Design,Principles6

7

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Cocoa ApplicationTypes

8

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Cocoa ApplicationLife cycle (Bundle, Event loop, XIB/NIB or storyboard, NSApplication, App.delegate, Outlets, Target/action)

9

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Cocoa Views and Windows

I WindowsI Window delegateI Window controllerI File’s ownerI PanelsI Dialogs

I ViewsI Content viewI View hierarchyI View geometryI FrameI Bounds

10

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Cocoa Views and Windows

Model

Controller

View

NIB&File

Application&(multiDwindow)

9COSC346 Lecture 18, 2014

11

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Cocoa Events

I NSResponder - abstract class that handles eventsI NSEvent - class describing eventsI NSControl - class that inherits from NSResponder and

implements target action mechanismI Responder chain

I First responderI Initial responderI First responder proxy (within Xcode)

12

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Cocoa Bindings

I KVC - access to object setters and getters using stringwith variable name

I KVO - special notification system for objects to track thechanges in value of another object?s instance variable

I NSControllerI NSObjectControllerI NSArrayController

13

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Cocoa Other

I UndoManager - For managing undo and redo stackI Notification - For storing messagesI NotificationCenter - For registration of observes and

dispatching of messagesI UserDefaults - For storing user preferences

14

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

MVC in ApplicationsGenerally, applications perform the following functions:

15

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

UI Design PatternsSolutions to common UI problems

I Even if you don’t do any user research at all, yourapplications should incorporate many of these patterns

I Safe explorationI Instant gratificationI SatisficingI Changes in midstreamI Deferred choicesI Incremental constructionI HabituationI Spatial memoryI Prospective memoryI Streamlined repetitionI Support keyboard-only operation

16

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Content Organisation PatternsHow you organise your application data and actions will help you determinehow to organise your windows

I Two-Panel Selector, used in Mail, FinderI Canvas + Palette, used in Illustrator, PhotoshopI One-Window Drill-down, often used on smartphonesI Alternative Views, used in Word, PowerPoint, FinderI Wizards, for software installation, printer setup, internet

purchasesI Extras on Demand, to hide complexity when not neededI Multi-Level Help, different ways to access help

17

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Navigation Patterns

I Clear Entry Points - few options on startupI Global Navigation - repeated motif/toolbar on each

windowI Hub and Spoke - organises discrete tasks from central

hubI Pyramid - use back/next/up to organise documentsI Modal Panel - dialog box that must be resolved nowI Sequence Map - “you are here” indicator in a sequenceI Breadcrumbs - for hierarchies, show parent pagesI Annotated Scrollbar - provide information in scrollbarI Colour-coded Sections - use colour to identify locationsI Animated Transition - show next location by animationI Escape Hatch - cancel current action

18

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

Gestalt Principles

19

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018

UI Layout Design Patterns

I Visual Framework - consistency betweenwindows/dialogs in your application

I Centre Stage - make the most important window largeI Titled Sections - delineate categories with obvious titlesI Card Stack - use tabs to organise informationI Closable Panels - tabs that can dynamically resizeI Movable Panels - let user move panels around the windowI Right/Left Alignment - align columns to provide vertical

linesI Diagonal Balance - balance from top-left to bottom-rightI Responsive Disclosure - show only what needs to be

shownI Responsive Enabling - allow only relevant responsesI Liquid Layout - change window contents during resize

20

Hamza Bennani -*- COSC346 -*- The Exam & Revision -*- October 9, 2018