user interfaces - lecture25 the exam & revision
TRANSCRIPT
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 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
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