'Programming'에 해당되는 글 45건
- 2018.01.01
- 2018.01.01
- 2017.12.30
- 2017.12.29
- 2017.12.28
- 2017.12.28
- 2017.12.25
- 2017.12.25
- 2017.12.25
- 2017.12.22
Copyright
이 모든 내용은 Pluralsight에 Jeremy Clark가 올린 'Localization and Globalization in .NET'라는 강의의 마지막 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/intro-to-localization-globalization-dotnet/table-of-contents).
Summary (생략)
Course Summary (생략)
Resource
Resgen.exe : Converts between different resource file types (.txt, .resx, .resources, .resw) (link)
LocBaml : Another way to localize WPF applications (link)
Globalization, Internationalization, and Localization in ASP.NET MVC 3, JavaScript and jQuery (link)
출처
이 모든 내용은 Pluralsight에 Jeremy Clark가 올린 'Localization and Globalization in .NET'라는 강의의 마지막 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/intro-to-localization-globalization-dotnet/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
(Localization and Globalization in .NET) Considerations (0) | 2018.01.01 |
---|---|
(Localization and Globalization in .Net) Fundamentals (0) | 2017.12.30 |
.Net ecosystem (0) | 2017.12.03 |
Copyright
이 모든 내용은 Pluralsight에 Jeremy Clark가 올린 'Localization and Globalization in .NET'라는 강의의 네번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/intro-to-localization-globalization-dotnet/table-of-contents).
Outline
Naming Resource Strings
Danger of culture-specific Image
Translation Considerations
Screen Layout
Exception Messags
Code Analysis Globalization Rule
Resource Naming Recommendation
Name the resources based on their purpose
Page/View-Level Resources
Naming based on purpose
Grouping_Purpose or Grouping_Grouping_Purpose
Assembly-Level Resources
Naming based on purpose
Module_Grouping_Purpose
e.g., MainWindow_Customer_Rating
The Danger of culture-specific Images
The Danger of Flags for Language
If possible, use images that do not rely on culture-specific references
e.g., A US mailbox may not be recognized in another culture, use a letter or postage stamp image instead
If possible, do not include words as part of images
If it is not possible to avoid culture-specific references, then load localized images into the .resx file along with localized strings
Translation Considerations
Machine Translation (like google translator)
Not good enough to go straight into production
But can help with screen layout during development
Human Translation
Prefer native speakers of the target language
Still not perfect - Locker Issue
Best Bet
A human translator who understands the business purpose of the application
Provide the human translator with the business context and let him determine what is best
(Screen shots and Descriptions of a program... etc)
Screen Layout Concerns
Different languages take up different amounts of space.
German words are usually long
Japanese words are usually short
Some languages read right-to-left
Use flow layouts for greatest flexibility
In XAML : use grids and stack panels to hold our controls
Avoid fixed positions and sizes
Favor auto-sizing controls and grids
Windows Forms : TableLayoutPanel, WinRes Tool
WPF, UWP : Grids and StackPanels, Grid - Auto and Star
Exception Messages
To Localize...
The message is displayed to the user
The user can act on the message
To not Localize...
The message is not displayed to the user
The message is logged for support staff
# Exception Thrower
private void ExceptionThrower(Type exceptionType)
{
var currentCulture = Thread.CurrentThread.CurrentUICulutre;
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
try
{
Exception ex;
ex = Activator.CreateInstance(exceptionType) as Exception;
throw ex;
}
finally
{
Thread.CurrentThread.CurrentUICulture = currentCulture;
}
}
Code Analysis Globalization Rule
FXCop is a downloadable tool that analyzes our code and provides suggestions based on a set of rules
This has been incorporated into the Code Analysis tool that is available in some of the VS versions
We're able to choose a rule set that we want to use for analysis in our project.
This is available in the Solution properties.
One of the rule sets is Microsoft Globalization Rules (specifically checks for items that may affect localization and globalization)
The Globalization Rule Set consists of 11 Rules (check the rules for detail)
e.g., 1.Set Microsoft Globalization Rules in Solution properties -> Code Analysis Settings -> Change Rule Set
2. Analyze menu -> Run Code Analysis On Solution
3. Fix the error messages
Warning : Code Analysis do not work at XAML markup
Summary (생략)
출처
이 모든 내용은 Pluralsight에 Jeremy Clark가 올린 'Localization and Globalization in .NET'라는 강의의 네번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/intro-to-localization-globalization-dotnet/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
(Localization and Globalization in .NET) Globalization (0) | 2018.01.01 |
---|---|
(Localization and Globalization in .Net) Fundamentals (0) | 2017.12.30 |
.Net ecosystem (0) | 2017.12.03 |
Copyright
이 모든 내용은 Pluralsight에 Jeremy Clark가 올린 'Localization and Globalization in .NET'라는 강의의 첫번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/intro-to-localization-globalization-dotnet/table-of-contents).
Content
1. Fundamentals
Definitions
Localization
The process of adapting an application so that its resources can be replaced at runtime.
(Language, region, culture etc... => strings, images)
Globalization
The process of engineering an application so that it does not have cultural preconceptions.
(DateTime, number, currency, calendars formats etc... => cultural formatting and other things)
Internationalization
The process of localizing and globalizing an application
.NET Localization Support
CultureInfo object (specify a language or both language and culture) (link)
Use this in conjunction with Resource files to create localized strings and images for application
These get compiled into satellite assemblies, and are used based on the culture values of the current thread.
CultureInfo(string name)
virtual string Name { get; }
virtual DateTimeFormatInfo DateTimeFormat { get; set; }
virtual NumberFormatInfo NumberFormat { get; set; }
virtual Calendar Calendar { get; }
virtual Calendar[] OptionalCalendars { get; }
virtual bool IsNeutralCulture { get; }
A neutral culture is one that specifies a language, but not a country or region.
e.g., en is neutral culture, en-US is specific culture
Neutral Cultures still have date time and number formatting information
Formatting and other values are set based on the defaults for the language
e.g., The default values for the English language are based on US English. Warning
static CultureInfo InvariantCulture { get; }
We can create an invariant culture by using an empty string for the CultureInfo constructor.
e.g., var invariantCulture = new CultureInfo("");
Or, can use the static InvariantCulture property on the CoultureInfo object
e.g., var invariantCulture2 = CultureInfo.InvariantCulture;
Invariant Culture is designed for things that should not change with culture
It can be use to persist data in culture-independent format
Invariant Culture is associated with the English language but no culture or region
#so There is neutral culture, specific culture, and invariant culture
static CultureInfo CurrentCulture { get; set; }
Gets or sets the System.Globalization.CultureInfo object that represents the culture used by the current thread
static CultureInfo CurrentUICulture { get; set; }
Gets or sets the CultureInfo object that represents the current user interface culture used by the Resource Manager to look up culture-specific resources at run time
Culture List in MSDN
Resource
Any non-executable data that is logically deployed with an app, including strings, images, and persisted objects.
.NET offers several ways to handle resources.
We will use resx file, or resw file(for UWP)
This gives us a centralized place to put localized strings.
.resx or .resw file contains value withh Name(key), value whill be displayed in our application.
Create culture-specific resource files and set Name-Value pair
Using Resource
WPF XAML
<TextBlock Text="{x:Static resx:Resources.Customer_Customer}" ..../>
ASP.NET MVC Markup
<td>@MVCOrderTaker.Resources.Home.Index.Customer_Customer</td>
C# Code
ProductName = Properties.Resources.Product_UniversalTranslator;
Satellite Assemblies
The compiler generates satellite assemblies.
hub-and-spoke model (image)
Thread and Culture
class Tread : ...
public static Tread CurrentThread { get; }
public CultureInfo CurrentCulture { get; set; } //Determines globalization, formats(data, number, currency), sorting calendars etc
public CultureInfo CurrentUICulture { get; set; }
//Determines which set of Resources are used in the UI
//So, if the CurrentUICulture is set to US English, it will look for the resource assembly that has the same designation
...
Both of these properties are setable, this means that we can change the culture programmatically.
#There is exception for Windows Store Apps
CurrentCulture
For .NET 4.0 or later, this can be specific culture or neutral culture
Prior to .NET 4.0, this must be a specific culture (no neutral cultures allowed)
Is we only have a neutral culture we can call the CreateSpecificCulture method
var specficCulture = CultureInfo.CreateSpecificCulture("en")
Either way, if we use the neutral "en" culture, we will end up with a specific en-US culture
The reason we need a specific culture is that CurrentCulture...
Determines globalization formats for dates, numbers, and currency
Determines the sort order (how accented, or capitalized characters)
Determines parsing (such as DateTime.Parse)
Determines output formats such as DateTime.ToString("d")
Note : most parsing and output methods take an optional IFormatProvider parameter.
CurrentUICulture
Determines which culture-specific resources are used
This is how the resource manager knows which of the satellite assemblies should be used at run time
CurrentCulture can be a neutral or specific culture
CurrentCulture & CurrentUICulture
CurrentCulture and CurrentUICulture are almost always set to the same culture
This will make sure that we have consistency across our application
But they can be set to different values to support special cases.
e.g., French languages in US, "fr-US" does not exist
CurrentCulture = "en-US" to get US formatting (dates, currency)
CurrentUICulture = "fr" to get French language resources
e.g., create custom cultures
How does Culture Get Set?
Thread.CurrentTread.Current(UI)Culture = ??? Where is it come from?
CultureInfo.DefaultThreadCurrentCulture { get; set; }
CultureInfo.DefaultThreadCurrentUICulture { get; set; }
CultureInfo has static "Default" properties, both properties's default values are null
When set, these values are used for all new threads created in the application domain
When a thread is started, its Thread.CurrentThread.Current(UI)Culture is set to the DefaultThreadCurrent(UI)Culture.
If null, Current(UI)Culture is set based on the OS culture
Meaning, if we do nothing, we get the OS culture by default for desktop apps
For web apps, culture is based on the request header
Both CurrentCulture and CurrentUICulture properties on the Thread class are writable
This means that we can manually set the culture if we like as hardcoded value or value from configuration, or user preference setting in our database.
(하지만 UWP에선 Thread class에 접근할 수 없다.)
e.g., var culture = new CultureInfo("cs-CZ");
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
//Use the same culture for any newly created threads
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
Summary (생략)
출처
이 모든 내용은 Pluralsight에 Jeremy Clark가 올린 'Localization and Globalization in .NET'라는 강의의 첫번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/intro-to-localization-globalization-dotnet/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
(Localization and Globalization in .NET) Globalization (0) | 2018.01.01 |
---|---|
(Localization and Globalization in .NET) Considerations (0) | 2018.01.01 |
.Net ecosystem (0) | 2017.12.03 |
Copyright
이 모든 내용은 Pluralsight에 Amber Israelsen가 올린 'User Experience: The Big Picture'라는 강의의 5~10챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/ux-big-picture/table-of-contents). 강의 원작자분께 게시허가도 받았습니다.
Content
1. UX Core Concepts and Terminology
The UX Process
1. Company and industry research
2. User research
3. Information architecture
4. Wireframing
5. Visual design
6. Usability testing
The UX Process : Company and Industry Research
Brand
Represents the intellectual and emotional associations that people make with a company, product, or person. Brand is something that actually lies within each of us. Brand is not just a logo or a color scheme, it's what people think and feel when they hear a company name or see their products.
"A positive user experience has a direct correlation to positive brand perception." - Steve Baty
Questions to Help with Brand Identity
What is your business about?
Who are your customers?
What problem do you solve?
Is there a unique story behind your business?
What are five adjectives or phrases that describe your desired brand?
Culture
The beliefs and behaviors that determine how a company's employees and management interact and handle business transactions, Often implied, not expressly defined.
Questions to Help with Culture
How do employees act at work?
What are common behaviors(both good and bad)?
What does this job/company mean to employees?
Would employees go somewhere else if they could?
Reputation
Collective judgments of a company based on assessments of financial, social and environmental impacts.
"It takes 20 years to build a reputation and 5 minutes to ruin it. If you think about that, you'll do things differently." - Warren Buffet
10 Components of Company Reputation
Ethical, Employees/workplace, Financial performance, Leadership, Management
Social responsibility, Customer focus, Quality, Reliability, Emotional appeal
Industry News
Resource : MarketWatch, Bloomberg, IndustryWeek
Competitors
How is our competitors and what are thy doing right now?
Questions to Ask about Competitors
Who are our three main competitors(direct or indirect)?
How do we set ourselves apart form our competitors?
What do we like and dislike about their brand and experience?
How Business Is Run
The UX Process : User Research (critical!)
User Research
Focuses on understanding user behaviors, needs, and motivations through observation techniques, task analysis, and other feedback methodologies.
User Research Methods
Interviews(asking), Contextual interview(observing), Persona, Focus groups, Surveys, Card sorting, Wireframes, Prototyping, Usability Testing, A/B Testing
User Research is critical
Reason 1. Keeps you from building the wrong product
Reason 2. Removes assumptions from the design process
Reason 3. Users will appreciate for Research, and be able to use it
The UX Process : Information Architecture
Information Architecture
The structural design of shared information environments; the art and science of organizing and labeling websites, intranets, online communities and software to support usability and findability.
Five Activities of Defining Information Architecture
1. Inventory all the content
2. Conduct a content audit
Analyse the existing content and ask:
Can we remove or consolidate?
What content is good and working well?
What is missing?
3. Design the new architecture
4. Test the new architecture with users
5. Iterate
The UX Process : Wireframing
Wireframe
A visualization tool for presenting proposed functions, structure and content of a web pare or website.
Benefits of Low-Fidelity Wireframing
Get your ideas down
Solidify a rough concept
Quick, easy, cheap
Benefits of High-Fidelity Wireframing
Add more detail and substance
More realistic
Can be used to build an actual visual design
Easier for clients to grasp what the end product will look like
Action Callouts
User Flow
Popular Tools for Digital Wireframing
Balsamiq, InVision, Omnigraffle, Patternry, Sketch, Axure, UXPin
General Rules for Creating Wireframes
Keep them practical and usable
- Don't be too worried about tidiness and perfection
Iterate, iterate, iterate
- Don't be afraid to throw things away and start over
The UX Process : Visual Design
Visual Design
Focuses on the aesthetics of a site and its related materials by strategically implementing images, colors, fonts, and other elements
Elements of Visual Design
Line
used to connect two points, to divide sections of page, to create texture, and provide direction on a page
Shape
used to group information or call attention to certain elements on a page, or to compose other objects
Color
differentiate items, create depth, add emphasis or organize related content. It can also be used to affect mood
Texture
Texture is how a surface feels or is perceived to feel based on a digital representation. You can use this in visual design to add interest or attract attention to a particular element
Typography
Fonts
Principles of Design (see link also)
Alignment, Contrast, Visual Hierarchy, Proximity, Layouts, Whitespace, Consistency
The UX Process : Usability Testing
Usability Testing
A technique used in user-centered interaction design to evaluate a product by testing it on users
Benefits of Usability Testing
Determine if users can successfully complete tasks, and how long it takes to complete them
Measure satisfaction with the site
Identify changes necessary to improve satisfaction
Analyze performance of the system
Questions
How wold you rate the overall user experience of the system? - 6.2
How intuitive/helpful is the navigation? - 4.4
How easy is the text to read (style and size)? - 8.1
eye-tracking results
Conducting Usability Testing
1. Create test plan (step-by-step instructions of what users to do, e.g., Find nutritional information for the bacon breakfast sandwich)
2. Set up environment (lab, eye tracking, mirror, desktop sharing, or get results from users later)
3. Identify users (3~10 users)
4. Conduct tests (get step-by-step thinking of user)
5. Summarize results
Heuristic
A rule of thumb, simplification, or educated guess that reduces or limits the search for solutions in domains that are difficult and poorly under stood.
10 Usability Heuristics for User Interface Design
1. Visibility of system status
The system should always keep users informed about what is going on, through appropriate feedback within reasonable time. e.g., Logged in Name, Progress view
2. Match between system and the real world
The system should speak the users' language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order. e.g., Decline X, Nope O
3. User control and freedom
Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through and extended dialogue. Support undo and redo. e.g., Back button, Ctrl + z, Home>South Pacific>New Zealand> Wanaka (buttons to go back to each stage)
4. Consistency and standards
Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions.
5. Error prevention
Even better than good error message is a careful design which prevents a problem from occurring in the first place. Either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action. e.g., warning sign, 자동 문자열 검색 리스트
6. Recognition rather than recall
Minimize the user's memory load by making objects, actions, and options visible. The user should not have to remember information form one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate. e.g., preview of a font list font, VS IntelliSense
7. Flexibility and efficiency of use
Accelerators(unseen by the novice user) may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to tailor frequent actions. e.g., keyboard shortcuts, save billing information,
8. Aesthetic and minimalist design
Dialogues should not contain information which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.
9. Help users recognize, diagnose, and recover form errors
Error messages should be expressed in plain language(no codes), precisely indicate the problem, and constructively suggest a solution.
10, Help and documentation
Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation. Any such information should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large. e.g., Card Security Code with Question mark, Explanation of why Free trial need credit card
The UX Process : Iterate, Iterate, Iterate!!
Summary (생략)
Course Summary (생략)
Additional Tips and Resources
Phrases to live by - "Will this benefit the user?", "Let's ask our users"
Make friends with people on UX team OR become the UX team-of-one
Modify the process to work for your situation
Resource
Creating User Experiences: Fundamental Design Principles - Billy Hollis, Pluralsight
Hacking the User Experience / UX for Developers - Keith Harvey, Pluralsight
User Experience Tips and Tricks for Developers - Amber Israelsen, Pluralsight
출처
이 모든 내용은 Pluralsight에 Amber Israelsen가 올린 'User Experience: The Big Picture'라는 강의의 5~10챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/ux-big-picture/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
(UX Basic) Roles in User Experience (0) | 2017.12.28 |
---|---|
(UX Basic) UX Core Concepts and Terminology (0) | 2017.12.28 |
(Design Basic) The Fundamental Gestalt Principles - Understanding Perception (0) | 2017.12.25 |
(Design Basic) Color (0) | 2017.12.25 |
(Design Basic) Typography (0) | 2017.12.25 |
Copyright
이 모든 내용은 Pluralsight에 Amber Israelsen가 올린 'User Experience: The Big Picture'라는 강의의 네번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/ux-big-picture/table-of-contents). 강의 원작자분께 게시허가도 받았습니다.
Content
1. UX Core Concepts and Terminology
Common Roles in UX
User Researcher : Champion for the user
Responsibilities
Conduct user interviews, Research market data, Gather findings, Design studies, Conduct usability and A/B testing
Deliverables
User personas, Usability test result, Investigative user studies, Interview results
Tools
Microphones, Cameras, Documents, Paper
"Based on our research, a typical user will...."
Information Architect : The navigator and organizer
Responsibilities
Conduct a content inventory, Card sorting, Create navigation and hierarchy(including labels), Data modeling, Create a sitemap
Deliverables
Content inventory, Card sorting results, Wireframes, Labeling system, Sitemap
Tools
Paper/whiteboard, Omnigraffle, Axure, MindManager, XMind, Treejack, OptimalSort
"Our content should be organized in a way that helps the user to..."
Interaction Designer : The animator
Responsibilities
Create storyboards, Create wireframes and prototypes of key interactions
Deliverables
Wireframes, Prototypes
Tools
Paper/whiteboard, Balsamiq, InVision, Omnigraffle, Patternry, Sketch, Axure, UXPin
"The Button should change to dart gray for 500 milliseconds when the user clicks it..."
Visual/Graphic Designer : Pixel pusher
Responsibilities
Create icons, controls and visual elements for UI, Utilize different kinds of typography, Create and apply styles, Create and enforce brand principles
Deliverables
Mockups, Style guide, Graphic files(PNGs, JPGs, etc)
Tools
Front/Back-End Developer : Coder
Responsibilities
Write code to turn the graphic designer's static design into a working, interactive experience
Deliverables
Working, functional code (e.g., web pages)
Tools
HTML, CSS, JavaScript
Project Manager : Holds it all together
Responsibilities
Oversee team and project from start to finish, Communicate with business stakeholders, Translate between business and UX team, Manage resources, budget and risks
Deliverables
Final product, Project plan, Status updates, Various
Tools
"That new feature will extend the delivery deadline by two weeks..."
Summary (생략)
출처
이 모든 내용은 Pluralsight에 Amber Israelsen가 올린 'User Experience: The Big Picture'라는 강의의 네번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/ux-big-picture/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
(UX Basic) The UX Process (0) | 2017.12.29 |
---|---|
(UX Basic) UX Core Concepts and Terminology (0) | 2017.12.28 |
(Design Basic) The Fundamental Gestalt Principles - Understanding Perception (0) | 2017.12.25 |
(Design Basic) Color (0) | 2017.12.25 |
(Design Basic) Typography (0) | 2017.12.25 |
Copyright
이 모든 내용은 Pluralsight에 Amber Israelsen가 올린 'User Experience: The Big Picture'라는 강의의 세번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/ux-big-picture/table-of-contents). 강의 원작자분께 게시허가도 받았습니다.
Content
1. UX Core Concepts and Terminology
Outline
User Experience
The UX Umbrella
Useful
Usable
User interface
Graphic/visual design
User research
Human-computer interaction(HCI)
Interaction design
Content strategy
Information architecture
Usability testing
User Experience
Encompasses all aspects of the end user's interaction with the company, its services, and its products
UX는 기술, 디자인, 사업모델 모두에 포함되는 영역이다.
The UX Umbrella
Visual Design
Information Architecture
Interaction Design
Usability
User Research
Content Strategy
So What Makes a Great User Experience?
Value (Is it useful?)
Usability (Is it easy to use?)
Adoptability (Is is easy to start using?)
Desirability (Is it fun and engaging?)
Useful : A useful feature or tool allows users to "do things"; it fulfills a need.
Usable : A measure of how easy or hard it is to do something.
User Interface(UI)
The means by which a user and computer system interact, in particular the use of input devices and software.
Pages, menus, images, icons, buttons, mouse, touch screen etc
Visual/Graphic Design
Focuses on the aesthetics of a site and its related materials by strategically implementing images, colors, fonts, and other elements.
User Research
Focuses on understanding user behaviors, needs, and motivations through observation techniques, task analysis, and other feedback methodologies.
Human-Computer Interaction (HCI)
The study of how people interact with computers and to what extent computers are or are not developed for successful interaction with human beings.
Interaction Design
The practice of designing interactive digital products, environments, systems, and services; behavior is the primary focus.
Interaction with the Interface
What can a user do to interact with the interface (e.g., mouse, finger, stylus)?
What commands con the user issue (e.g., keyboard shortcuts)?
Behavior Clues
How does the appearance change to give the user a clue about its behavior (e.g., color, shape, size)?
How do you let users know something is about to happen (e.g., labels, instructions)?
Error Messages
How do you prevent errors? (e.g., gray out a button)
Is an error happens, how does the user know what happened and how to recover?
System Feedback
What sort of feedback should the user get when they take some action (e.g., confirmation message)?
How fast should the feedback be?
Content Strategy
The planning, development, and management of content - written or in other media.
Information Architecture
The structural design of shared information environments; the art and science of organizing and labeling websites, intranets, online communities and software to support usability and findability.
Card Sorting
1. Gather all information as a card
2. Categorize
3. Confirm Labels
Usability Testing
A technique used in user-centered interaction design to evaluate a product by testing it on users.
Summary (생략)
출처
이 모든 내용은 Pluralsight에 Amber Israelsen가 올린 'User Experience: The Big Picture'라는 강의의 세번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/ux-big-picture/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
(UX Basic) The UX Process (0) | 2017.12.29 |
---|---|
(UX Basic) Roles in User Experience (0) | 2017.12.28 |
(Design Basic) The Fundamental Gestalt Principles - Understanding Perception (0) | 2017.12.25 |
(Design Basic) Color (0) | 2017.12.25 |
(Design Basic) Typography (0) | 2017.12.25 |
Copyright
이 모든 내용은 Pluralsight에 Jason Roberts가 올린 'An Introduction to Design'라는 강의의 네번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/design-introduction/table-of-contents).
줄로 잇거나 박스로 묶으면 연관되어보인다. (그 전에는 Similarity로 인해 네모와 세모가 더 연관되어 보였다.)
Summary (생략)
출처
이 모든 내용은 Pluralsight에 Jason Roberts가 올린 'An Introduction to Design'라는 강의의 네번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/design-introduction/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
(UX Basic) The UX Process (0) | 2017.12.29 |
---|---|
(UX Basic) Roles in User Experience (0) | 2017.12.28 |
(UX Basic) UX Core Concepts and Terminology (0) | 2017.12.28 |
(Design Basic) Color (0) | 2017.12.25 |
(Design Basic) Typography (0) | 2017.12.25 |
Copyright
이 모든 내용은 Pluralsight에 Jason Roberts가 올린 'An Introduction to Design'라는 강의의 세번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/design-introduction/table-of-contents).
Content
1. Typography
2. Color
3. The Fundamental Gestalt Principles
4. Layout and Organization Principles
Outline
Basic science
Color models
Meaning of colors
Color schemes
Inspiration
The Science of Light, Sight, and Color
The Electromagnetic Spectrum is a range that contains all the frequencies of electromagnetic radiation.
These frequencies ranges
Radio - Microwave - Infrared - Visible Light - Ultraviolet - X-ray - Gamma ray
(long wavelength radiation) (high frequency, short wavelength radiation)
Human Sight is a combination of the eye and brain working together. Electromagnetic radiation some of which is in the visible spectrum enters the eye. Within the eye there are different types of receptor cells each of which responds to different parts of the visible spectrum(Roughly these correspond to red, green, and blue light). The eye sends information to the brain that processes this information and results in the perception of color. Strictly speaking the visible spectrum of electromagnetic radiation doesn't contain colors. Color is our perception of those wavelengths. We perceive colors differently but we share the same basic mapping model.
Two systems of color
1. Subtractive color : Start with white light then subtract colors from it to give us the final color
eg. black text on a page reflects nothing from sunlight, it subtracts all the colors
2. Additive color : Start with black and adds different wavelengths of light to it to create colors
eg. The screen is in use each pixel emits light in different combinations of red, green, and blue
Color Models
Color models are ways of representing colors based on numeric values.
The RGB color model represents a given color using three values(Red, Green, Blue)
eg. 255, 255, 0 == Yellow, 0, 0, 0 == Black, 255, 255, 255 == Wight
The CMYK model is a subtractive color model used for color printing.
The four components are Cyan, Magenta, Yellow and the K(effectively means Black)
eg. Red=(Cyan 0,Magenta 100,Yellow 100,K 0), Blue=(100,100,0,0), Yellow=(0,0,100,0), Black=(0,0,0,100), White=(0,0,0,0)
Color and Meaning (Western point of view)
Red : a highly sensual color, tempting and suggestive, danger of blood. It attracts attention more than any other color
The family of reds includes both pale and bright pinks, the red of house bricks and deep reds
Brightest form red represent passionate, hot, sexy, exciting, strong, seductive, aggressive and dangerous
Green : color of nature, relaxing and calming
The green include the citrusy limes, the military olives, the protective turquoise, the sophisticated table
Harmonious, natural, fresh, lush, agreeable, relaxing, calming
Blue : color of quiet coolness, stillness, tranquility, constancy, sadness, loyalty and dependability
The blues include the electrical bright blues, serious strong deep dart blue
The lighter and sky blues are spacious, peaceful, open, cool, pure, clean, faithful
Orange : enthusiasm and energy, sunset and fire, food and appetites, sharpen mental activity
The oranges include the soft and intimate peaches, spicy fiery gingers
Its brighter more vibrant forms are energizing, dynamic, stimulating, juicy, fun, hot, happy, playful
Purple : mysterious and magical. Purple is a combination of reds and blues but it's more than the sum of its parts
it's a relatively rare color in nature
The Purple include the romantic and calming lavenders, royal opulent deep, deep purples
Spiritual, cerebral, mysterious, meditative, transcendental
Yellow : the color of light, friendly and enlightening
The yellow include the mellow ambers, golden yellows
The brighter yellows are hot, joyous, energetic, extroverted, youthful, vibrant, hopeful
Brown : wholesome and rustic, working the land ,nature past times(hiking and camping), appetite(coffees, chocolate, cigar)
The Browns include the tans, chocolate browns
Balanced, homely, secure, enduring, natural, solid
Black and White : true polar opposites, night and day, fianl simple truth, the simplicity, timeless combination
White is pure, simple, innocent, clean, untouched
Black is strong, sober, heavy, sophisticated, and classy
Cultural Color Differences
eg Red
USA : heat, passion
Mexico, Africa : death
Argentina : craftsmanship
Netherlands : nature
Armenia : communism
China : luck
Thailand : Buddhism
Green : Universally accepted as nature
Color Schemes
Monochromatic scheme : Uses different shades of the same color
Balanced and appealing, but not much color contrast
Analogous scheme : Uses colors that are close to each other on the color wheel
In the Analogous scheme usually stick to all cool or all warm colors
Complementary scheme : provides maximum contrast
In this scheme we can use the main color as the dominant color and its complimentary color for accents
Hard to balance but maximum attention
Triadic scheme : three colors equally spaced around the color wheel
Good color contrast and some harmonry
#색을 옅게해서 contrast를 줄일 수 있다.
Taking Inspiration form the Real World
Summary (생략)
출처
이 모든 내용은 Pluralsight에 Jason Roberts가 올린 'An Introduction to Design'라는 강의의 세번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/design-introduction/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
(UX Basic) The UX Process (0) | 2017.12.29 |
---|---|
(UX Basic) Roles in User Experience (0) | 2017.12.28 |
(UX Basic) UX Core Concepts and Terminology (0) | 2017.12.28 |
(Design Basic) The Fundamental Gestalt Principles - Understanding Perception (0) | 2017.12.25 |
(Design Basic) Typography (0) | 2017.12.25 |
Copyright
이 모든 내용은 Pluralsight에 Jason Roberts가 올린 'An Introduction to Design'라는 강의의 두번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/design-introduction/table-of-contents).
Content
1. Typography
2. Color
3. The Fundamental Gestalt Principles
4. Layout and Organization Principles
Outline
Brief History
Fonts, typefaces, and families
Basic anatomy and nomenclature of type
Categories of typefaces
Legibility and readability
Better typography
What is Typography?
The style and appearance of printed matter
The art or procedure of arranging type or processing data and printing from it - Oxford Dictionary
eg. Arranging Type
Typeface(서채) choice : 상황에 맞는 서채의 선택
Size of the type : 가독성과 미적인 요소, 전반적인 디자인에 영향
Leading : how much space between lines of text
Tracking : the space between letters
Measure : the length of the lines of text
Hierarchy : visual Hierarchy helps to create a sense of order and helps separate sections of text
Context : 책 페이지의 텍스트 배열은 길가의 텍스트 배열과 다르다.
Aesthetics : arrangement에 따른 전반적인 미학도 고려되어야 한다.
A Brief History of Typography
1000-2000 BCE : 그리스에서 발견된 도기조각에 찍힌 문자들 (최초의 폰트)
c. 1450 CE : Johannes Gutenberg의 유럽 최초의 활자기 => the Gutenberg Bible
c. 1870 CE : Hansen Writing Ball (1865, the Reverend Erasmus Mundus Hansen in Denmark) : 최초의 상업용 타자기
today : with personal computers access to thousands of fonts and high quality printers
everyone with basic device considered amateur typographers
Typeface or Font?
Typeface : something that's created by a type designer. Times New Roman, Sego UI, Heretica are a typeface.
The way it looks(Design thing, referring to how the letter look, the curves and the lines)
Font : the implementation or delivery mechanism of the typeface
Typeface Families
A typeface can exist on its own or it might exist as part of a family
All of the individual typefaces within the family are stylistically related to one another (Style)
eg. Segoe UI Family consists of a number of typefaces(Segoe UI, Segoe UI - Light, Semilight, Semibold -)
There's plenty more alternative styles of typeface that may often form part of a family such as additional variations on weight/boldness/italic/letter width/condensed styles with narrower letters/combination
Basic Anatomy of Type
Baseline : an imaginary line on top of which the characters sit.
x-height : the distance from the baseline to the top of the lowercase letters
The x-height is typically the height of the lowercase letter x
Kerning : the space between two letters. fix the spaces between certain pairs of letters
Fonts can come with kerning information imbedded in them
Ascender : the vertical stems of letters that raise in an upward direction
The ascend arises above the x-height of the typeface
Descender : the downward vertical stem that sits below the baseline
Leading : the distance between lines of text. It's measured from baseline to baseline (line spacing)
Tracking : the space between all the letters in a block of text. The adjustment of space between all the letters.
Serifs : small extra shapes that exist at the ends of some line strokes in a letter
The shape of Serifs can be roughly categorized into three groups
Hariline, Slab(square), Wedge
If the Serif features a curved transition from the main stroke line into the Serif, it's known as a bracketed Serif
Typefaces with no Serifs are called Sans Serif typefaces
Categories of Typeface
Humanist : also known as Venetian. sloping crossbar on the letter e, short bracketed Serifs (15th century)
Old Style : wedge shaped Serifs, horizontal cross bar of the letter e (late 15 century)
Transitional : more horizontal ascender Serifs and an increased difference between the thin and thick line strokes, vertical letter o
(18th century)
Modern : high contrast between thick and thin line strokes, unbracketed hairline Serifs and upright letters with no slanting
Moderns are also known as Dedon typefaces (late 18th century)
Slab Serifs : also known as Egyptian typefaces. Little variation in line stroke width and heavy traditionally unbracketed Slab Serifs
The Slab Serif family consists of a number of sub classifications such as the fat faces and the Clarendon (19th century)
San Serif : little or no variation in light stroke thickness and no Serifs (19th century)
One of the most famous Sans Serifs is Helvetica
The Difference between Legibility and Readability
Legibility
Micro-level
Individual letter recognition
Differentiation between letters
Inherent in fonts
Readability
Macro-level
Words, pharases, paragraphs
Overall ease of comprehension
Reading comfort
Combination of font & layout
Readability in context (생략)
Better Typography : Measure
Measure is the length of a line of text
Number for the perfect measure is 65 characters per line including spaces, aim 40 ~ (65) ~ 80
Better Typography : Leading
Leading is the spacing between lines of text (also line height)
특별히 정해진 규칙은 없으나, One rule of thumb is to set the leading to 120% of the text size
Better Typography : Scale
역활에 맞는 크기를 주어주는 것이 좋다.
피보나치 수열(1,2,3,4,8,13,21,34...)이나 제곱수열(1,2,4,8,16,32....) 등을 사용할 수 있으나 중요한 점은, 문자의 크기가 결정된 뒤에는 일관되게 사용되어야 한다는 것이다.
Better Typography : Vertical Rhythm
18 points in size, 21 leading == 18/21
글의 leading인 21을 기준으로 Main Heading의 leading과 아래여백을 정한다...
Sub Heading의 위아래 여백을 10, 11로 잡아주었다. (10 + 11 = 21)
여기서 알 수 있는 Vertical Rhythm의 가장 중요한 점은 21에 맞춰 2번째 문장이 다시 base line에 돌아왔다는 것이다.
Better Typography : Kerning
the spacing of individual pairs of letters
보통 소프트웨어나 font에서 제공되는 kerning을 그대로 이용하지만, 간혹 Manual kerning을 해야할 때도 있다. 주로 title과 같은 large letters를 다룰때이다. 어색해보이는 간격을 줄이거나 늘림으로써 미적인 아름다움을 확보할 수 있다.
Summary (생략)
출처
이 모든 내용은 Pluralsight에 Jason Roberts가 올린 'An Introduction to Design'라는 강의의 두번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/design-introduction/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
(UX Basic) The UX Process (0) | 2017.12.29 |
---|---|
(UX Basic) Roles in User Experience (0) | 2017.12.28 |
(UX Basic) UX Core Concepts and Terminology (0) | 2017.12.28 |
(Design Basic) The Fundamental Gestalt Principles - Understanding Perception (0) | 2017.12.25 |
(Design Basic) Color (0) | 2017.12.25 |
Copyright
이 모든 내용은 Pluralsight에 Thomas Claudius Huber가 올린 'XAML Layout in Depth'라는 강의의 마지막 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/xaml-layout-in-depth/table-of-contents).
Content
3. Layout properties of Element
4. Panels
5. Transformations and Projections
Outline
The Grid : Overlay and shared size groups
Layout the content of a Control
Change the Panel of an ItemsControl
ScrollViewer and Viewbox
Animated move of elements in a Panel
The Grid as Overlay-container
If you don't specify RowDefinitions and ColumnDefinirions the Grid is one single cell.
Elements in one cell are drawn over each other in the order that defined in XAML(the last element is on top)
So the Grid is the perfect panel to overlay items.
eg. Loading-overlay
<Grid>
<!-- Content -->
<some panel> ...content... </some panel>
<!-- Loading overlay -->
<Gird //custom control로 만들어 따로 빼두는게 이용에 편리하다.
Background="#AAFFFFFF" //FFFFFF == white, alpha channel of AA == a bit transparent
d:IsHidden="True" //Hidden this element to do not overlay elements on the designer
Visibility="{x:Bind ....IsLoading}" //Data binding 로딩이 끝나면 사라질 수 있도록
>
<ProgressRing .../>
</Grid>
</Gird>
The Grid : Shared Size Groups (WPF only)
Share the same size between different ColumnDefinitions or RowDefinitions, Even across multiple Grid-instances
Set the SharedSizeGroup property on RowDefinitions or ColumnDefinitnons, its of type string(without space, not start with number).
Then Set the attached property Grid.IsSharedSizeScope on a parent to true.
eg. <StackPanel Grid.IsSharedSizeScope="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="myGroup">
<ColumnDefinition/>
</Grid.ColumnDefinitions>
</Grid>
<Grid>
<Grid.ColumnDefinitions> //Size of this column is sync with the above column with SharedSizeGroup
<ColumnDefinition SharedSizeGroup="myGroup">
<ColumnDefinition/>
</Grid.ColumnDefinitions>
</Grid>
</Grid>
# Star-sized columns or rows with a SharedSizeGroup are treated as Auto at runtime.
Layout the Content of a Control
Let's assume that the content of a Control is a FrameworkElement which contains Horizontal/VerticalAlignment and Margin
The Control class is a subclass of FrameworkElement and it defines Horizontal/VerticalContentAlignment and Padding to layout its content
When you set Horizontal/VerticalContentAlignment property, the Control internally sets the Horizontal/VerticalAlignment on its Content, and there is a Padding property that sets the Margin property on the Content. All those properties are wired together in the Control template of a Control.
eg. //To Strecth Contents of ListView
<ListView HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch" //Have effect in WPF
Background="YellowGreen" ItemsSource="{x:Bind peaple}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" /> //Have effect in UWP
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate x:DataType="model:Person">
<Border HorizontalAlignment="Stretch" Background="Orange" CornerRadius="5" Margin="1"> //No effect
<StackPanel Margin="5">
<TextBlock Text="{x:Bind Name}"/>
<TextBlock Text="{x:Bind Age}"/>
</StackPanel>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Change the Panel of an ItemsControl
An ItemsControl can contain many objects. Typical ItemsControls are the ListView and ComboBox
To change the panel there is two options
1. Set the ItemsPanel property of ItemsControl
Assign an ItemsPanelTemplate to this property and specify the panel in the ItemsPanelTemplate
2. Assign a new ControlTemplate to the Template property of ItemsControl
Inside of that Template, create a Panel and Set the IsItemsHost property(defined in the Panel class) to true
(This property is readonly in WinRT)
Normally change the Panel of an ItemsControl, choose option 1.
When you are defining the new ControlTemplate to create a new look for your ItemsControl, choose option 2
When There's Not Enough Space
When there is not enough space for panel, panels are just clipping their elements.
1. Put your panel into a ScrollViewer, it supports Horizontal/Vertical scroll bars
2. Or put your panel into a Viewbox, it will just shrink or scale your panel
The ScrollViewer
To display a vertical and horizontal scrollbar
ScrollViewer class inherits from ContentControl, so it has a Content property of type Object (like button)
Control the scrollbar visibility with the properties VerticalScrollBarVisibiity(default Visible) and HorizontalScrollBarVisibility(default Disabled), both properties take a value of the ScrollBarVisibility enumeration(Disabled, Auto, Hidden, Visible)
# Some ItemControls, like the ListView, have an internal ScrollViewer, it is defined in the ControlTemplate of the ListView
Use attached properties to modify the internal ScrollViewer
eg. <ListView ScrollViewer.VerticalScrollBarVisibility="Auto" />
The Viewbox
To stretch an element to the available space
The Viewbox class inherits via Decorator from FrameworkElement in WPF. In WinRT, Viewbox inherits FrameworkElement directly
The Decorator class defines a child property that takes a single UIElement. In the WinRT, the child property is directly defined on the Viewbox itself. ViewBox has a child property anyway, so in XAML you can just place any UIElement inside of Viewbox. Then the Viewbox will automatically stretch the element based on the available space.
To control the stretching, the Viewbox has a Stretch property that takes a value of the Stretch enumeration
None : no stretching (DesiredSize)
Fill : aspect ratio changes to fill the available space
Uniform(default) : aspect ratio never changed, there is leftover space
UniformToFill : aspect ratio never changed, and fill the leftover space
and StretchDirection property of type enum StretchDirection
UpOnly : only grow (DesiredSize가 최소크기이고 그 이하로 공간이 부족해지면 clip된다)
DownOnly : only shrink (DesiredSize가 최대크기)
Both(default) : can be shrink and grow
Animated Move of Elements in a Panel
In some scenarios an animated move makes the user experience much better
Instead of using a TranslateTransform, you can also use the FluidMoveBehavior that animates a change in the position of an element (high-level class), it's like an animated TranslateTransform, but it's much simpler to use
To use it open up Blend and attach the FluidMoveBehavior to a Panel (asset -> behavior -> drap&drop -> property setting)
In Blend, There's also a FluidMoveSetTagBehavior that allows you to define a starting point for the move
그러나 FluidMoveBehavior가 UWP project에 기본적으로 들어있지는 않았다, Nuget을 통해 받아 사용하는 듯 하나, 아직 Behavior와 관련한 내용을 모르겠다. Pluralsight에서 관련 강의를 찾았다(link).
Summary (생략)
출처
이 모든 내용은 Pluralsight에 Thomas Claudius Huber가 올린 'XAML Layout in Depth'라는 강의의 마지막 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/xaml-layout-in-depth/table-of-contents). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.
UWP Cheat Sheet for Absolute Beginner (0) | 2018.01.02 |
---|---|
(XAML Layout in Depth) Transformations and Projections (0) | 2017.12.20 |
(XAML Layout in Depth) Panels (0) | 2017.12.19 |
(XAML Layout in Depth) Layout-properties of Element (0) | 2017.12.16 |
(XAML Layout in Depth) Layout Basics 2 (0) | 2017.12.15 |