UI: רשימת פוסטים על ממשקי משתמש וכל היוצא בזה

8 בדצמבר 2007

אני מתחיל סדרת פוסטים על ממשקי משתמש במחשבים ועל כל הנוגע ל-UI. יהיו פוסטים שיעסקו בסקירות היסטוריות וטכנולוגיות ויהיו פוסטים (שאנו המפתחים מאוד אוהבים) שנכנסים לקוד ולפיתוח GUI. כמו כן אסקור טכנולוגיות חדשות שעוזרות לפתח ממשקי משתמש. מקווה שיהיה מעניין וקולע :)


UI – פוסט 1: ממשקי מחשב בעשרים שנים האחרונות

בעשרים שנים האחרונות הייתה התפתחות מואצת של מחשבים; ניתן לציין שהייתה התפתחות טכנולוגית גדולה גם ביתר התחומים. תוכנות נועדו לשרת אנשים, ללא קשר לסוגיהן או ליעודן. חלק גדול מן התוכנות מופעל ע"י אנשים וקיימת אינטראקציה (פעולה הדדית) בין תוכנת מחשב והאדם. בעשרים שנים האחרונות הייתה התקדמות בתחום המחשוב, הן בתחום החומרה והן בתחום התוכנה; שני התחומים מושפעים אחד מן השני. למשל: פיתוח תוכנה נעשה בהתאם למגבלות החומרה ולהיפך – התפתחות החומרה גורמת להתפתחות ביכולות התוכנה, גם התפתחות התוכנה גורמת להאצת התפתחות החומרה …


UI – פוסט 2: Swing vs. GDI

על מנת לקבל מידע מהמכונה (כאן, מחשב) או להזין מידע למכונה יש להשתמש בהתקני קלט-פלט, במקרה שלנו – מסך מחשב. מסך מחשב – LCD או CRT, מציג מידע ויזואלי (CRT בעזרת קרן קתודית-מגנטית על גבי האלקטרודות או ע"י שינוי של צבע הקריסטלים נוזליים ב-LCD). אלקטרודה או קריסטל (גביש) הנם יחידות חומרה קטנות ביותר לתצוגה של נקודה אחת בצבע כלשהו (לא אתייחס לטכניקות הקרנה שונות בשלב זה). מכאן ניתן לומר שהצגת מידה מתבצעת ע"י ציור מיליוני נקודות (פיקסלים) על המסך …


UI פוסט 3: OpenGL vs. DirectX

בהמשך לנושא הקודם שנגע במנועים גראפיים כמו GDI ו-Swing, אגע במנועים גראפיים נוספים, שעובדים בטכנולוגיות DirectX ו-OpenGL. כפי שמנועי GDI או Swing נועדו ל"ציור" של אובייקטים גראפיים דו-ממדיים (בעיקר פקדים של טפסים וכו'), DirectX ו-OpenGL נועדו ל"ציור" אובייקטים גראפיים דו-ממדיים ותלת-ממדיים (מדמים אפקט של תלת מימד בעזרת טרנספורמציות גראפיות של צורות דו-ממדיות על המסך, על כך יפורט בהמשך) …


UI – פוסט 4: מהפכה ב-UI
 (ולא רק במחשבים)

אם נסקור התפתחויות של מוצרים שאנו משתמשים בהם (החל ממוצרי אלקטרוניקה כמו מקלטי-וידאו, טלוויזיות, מחשבים ועד מכוניות, מטוסים ואוניות), אז נגלה שההתקדמות הטכנולוגית של המוצרים האלה התרחשה במהירות גבוהה יותר במהלך עשרים שנים האחרונות, מאשר בשנים שלפני כן. כל דור של מוצרים מתקדם בתכונותיו ובמאפייניו …


 UI – פוסט 5: Simple IS Better
 (פשוט = יותר טוב)

פשוט = יותר טוב! – סיסמא מאוד חזקה בכל תחום חיינו, במיוחד אם מדובר בעיצוב ממשקי אדם-מכונה.
מוצר פשוט אינו בהכרח מוצר דל מאפיינים, הכוונה כאן למוצר אשר פשוט לשימוש ע"י בן אדם ממוצע, ז"א מוצר "נגיש".
לקוחות רוצים לקבל יותר בפחות כסף, אך למעשה רובם אינם יודעים מה הם רוצים באמת …

 


 UI פוסט 6: מבוא ל- MS Framework 3.0

חבילה של .NET Framework (שם לא רשמי: WinFX), מכילה סטים של "קוד מנוהל" – API והנה חלק אינטגראלי של מערכת הפעלה של מיקרוסופט – Windows Vista ושל Windows Server 2008. ניתן להתקינה גם על Windows XP עם חבילת שירות SP2 ועל Windows Server 2003. חבילה זו באה אחרי חבילה של דוט-נט 2.0 ומכילה מספר שינויים מבניים ומגיעה על …



 UI פוסט 7: מבוא ל- Windows Presentation Foundation

Windows Presentation Foundation – WPF, שם לא רשמי – Avalon – הנה תת חבילה של .Net Framework 3.0 (שם לא רשמי: WinFX). תת חבילה זו מובנית במערכת הפעלה חדשה של מיקרוסופט בשם "Vista"; בנוסף יכולה להיות מותקנת כרכיב שדרוג במערכות הפעלה Windows XP/2003. תת-חבילה מספקת מודל פיתוח עקבי לאפליקציות חלונאיות ואינטרנטיות; מודל זה מהווה הפרדה ברורה בין שכבת ממשק משתמש (UI) ושכבה עסקית/מידע (Business Logic). אפליקציות שמפותחות ב-WPF יכולות "לרוץ" בסביבה חלונאית (שולחן עבודה) או בסביבה אינטרנטית (כאפליקציה בתוך אתר WEB). חבילה זו מספקת מגוון אפשרויות עיצוב של פקדים ואלמנטים גראפיים  …


UI – פוסט 8: מבוא למתודולוגיה בפיתוח ממשקי משתמש

עבר מול הווה: בשנים האחרונות חלו מספר שינויים במתודולוגיית פיתוח של תוכנה. גובשו מספר מודלים/שיטות של פיתוח ופותחו תבניות שמספקות פתרונות לרוב הבעיות בפיתוח התוכנה. אציין מספר תחומים שבהם חל שינוי תפיסתי בשנים האחרונות: (לפני שאכנס לנושא הממשקים אני רוצה לתת סקירה קצרה על ההתפתחות בשיטות הפיתוח/תכנות) תכנות מודולארי ← תכנות מונחה עצמים : בעשרים שנים האחרונות חל מעבר משיטת פיתוח פרוצדוראלית (מודולארית) לשיטת פיתוח בתכנות מונחה עצמים; לשיטה האחרונה יתרונות בולטים על פני הראשונה …



UI – פוסט 9: מתודולוגיה בפיתוח ממשקי משתמש – שיטות בהנדסת תוכנה: פיתוח תוכנה במודל השכבות

אחת השיטות של פיתוח תוכנה שמאוד נפוצה בשנים האחרונות היא "מודל השכבות". לדוגמא: מודל OSI – שבע שכבות בתקשורת מחשבים. מודל זה מוכר בשמות "רב שכבתי" (Multitier Architecture) או N-שכבתי (N-Tier), או תלת-שכבתי (ראו דוגמאות בהמשך). מודל השכבות הוא מודל ארכיטקטוני מקובל לתיאור הרכיבים השונים במערכות המידע. חבילות פיתוח שונות של ארכיטקטורה כמו דוט-נט, ג'אווה ואחרים; מגדירות דרכים שונות לייצוג הרכיבים השונים במערכות מידע. מודל השכבות הוא פשוט יחסית ומטרתו איננה לייצר דרך לבניית ארכיטקטורת מידע ארגונית



UI – פוסט 10: מתודולוגיה בפיתוח ממשקי משתמש – שיטות בהנדסת תוכנה: מעצב vs. מפתח

בפיתוח מוצר יש להתחשב במספר גורמים מכריעים, חלק מהם: קהל היעד (למי נועד המוצר), פונקציונאליות, נגישות ושמישות. לדוגמא מכשיר טלפון סלולארי: כיום טלפונים ניידים כוללים המון תכונות ובעלי יכולות רבות. חוץ מיכולת העברת השמע (שזו אמורה להיות המטרה המרכזית שלו) הוא מצויד ברכיבים כמו מודם סלולארי, מערכת ניווט לווינית, ספר טלפונים, פנקס, מחשבון, מצלמה, נגן מדיה, מקלט רדיו, דפדפן אינטרנט ועוד תכונות רבות. לפני עשור לא היינו מדמיינים שכל זה היה ניתן להכניס לגוף הקטן של הטלפון הנייד. הבעיה בפיתוח מוצר כזה – זה לבנות ממשק פונקציונאלי, אך נוח לשימוש עבור המשתמשים שעבורם נועד המכשיר …
 

UI – פוסט 11: מתודולוגיה בפיתוח ממשקי משתמש – אפקט WOW

עיצוב מוכר – לעיצוב המוצר חלק חשוב בהצלחת השיווק שלו, בין אם זה טנק או מוצר צריכה המוני. כיום עיצוב המוצר נעשה תוך מתן דגש על הפיכת המוצר למושך יותר ושיווקי יותר, כל זאת בנוסף להתמקדות בצדדים הטכניים והנדסיים של המוצר. תפקיד של מעצב תעשייתי הנו משמעותי, מושג "סקסי" כיום מיוחס גם למוצרי הצריכה שבעבר לא היינו מעלים בדעתנו לקרוא להם כך …

 

 UI – פוסט 12: טכנולוגיות תצוגת ממשק משתמש

כאשר מחשבים חוברו למסכים נוצרו מספר טכנולוגיות לתצוגת מידע טקסטואלי על גבי המסך. מסכי מחשב עד אמצע שנות התשעים היו בעצם מסכי טלויזיה (CRT) ללא היפרבנד (hyperbend – רכיב אלקטרוני המסוגל לאחסן בזיכרון מספר רב של הערוצים עפ"י נתונים שונים, כמו תדר, עוצמה וכו'). באמצע שנות התשעים (יחד עם התפתחות של מחשבים ניידים) החלה חדירה של מסכים בטכנולוגיה שמבוססת על גבישים נוזליים (בדומה ל- LCD).
- שפופרת קרן קתודית, היא מתמר המשמש במסכי צפייה, וממיר אותות חשמליים לתמונה. ממציאה היה קרל פרדיננד בראון, אשר בנה שק"ק לראשונה עוד ב-1897.
מסכי שק"ק נמצאים בשימוש נרחב בטלוויזיות …


 UI – פוסט 13: סקירה של שיטות נפוצות להחלקת גופנים

ראסטריזציה פשוטה, ללא החלקה:  זהוי צורה הכי בסיסית של ראסטריזציה, ציור פשוט של קוי התווים ללא החלקה מסוג כלשהו. שיטה זו הכי מהירה (כי זה דורש פחות חישובים למיקום הטקסט על המסך). גישה זו בעלת חיסרון, כאשר מדובר בפונטים קטנים, חלק מן התווים יהיה קשה לזהות. מספר גדול של גופנים (בעיקר מסוג True-Type או Script) כוללים בתוכם אזורי תווים עם "רמזים" שעוזרים למערכת ראסטר להחליט איכן הם המקומות הבעייתיים בתצוגה של פונטים קטנים, כאן ייעשה שימוש בחלופות כמו תמונות קטנות (small bitmaps) של אותם תווים בעייתיים (גופנים שבנויים מתמונות בד"כ משתייכים ל- system fonts) …




UI – פוסט 14: שני אלגוריתמים פשוטים להחלקת גופנים

האלגוריתם הפשוט להחלקת הגופנים: שיטה: Gamma smoothing, כאן ניתן לראות תיאור גראפי של פעולת הוספה של פיקסלים לצדי פיקסל המטרה

אלגוריתם להחלקת גופנים:

שיטת 2 הצעדים:

  • סריקה בכוון מוגדר מראש
  • שימוש בשלשה זקיפים
  • זקיף שמאלי, אמצעי וימיני
  • סריקה בשני צעדים עד פיקסל מטרה
  • זקיף שמאלי או ימני קובעים כוון הדגשה בצעד השני …

UI – פוסט 15: כלים לפיתוח תוכנה וממשקי משתמש – מבוא

ה-"דינוזאורים" של כלי פיתוח: שפות תכנות ראשונות (ברמה של שפת-על) פותחו בשנות השישים של המאה העשרים, יחד איתן פותחו גם המהדרים (קומפיילרים) הראשונים.
מתוך ויקיפדיה: מהדר (באנגלית Compiler) הוא תוכנית מחשב המתרגמת בין שפת מחשב אחת לשפת מחשב אחרת. המהדר הקלאסי מקבל כקלט תוכנית הכתובה בשפה עילית ומתרגם אותה לתוכנית בשפת מכונה. מהדר תואם בדרך כלל לסוג מעבד מסוים בלבד, ולגירסת שפה מסוימת, ותוצריו לא יהיו תואמים למעבד אחר. פעולתו של המהדר קרויה הידור…


 

המשך יבוא …

Technorati Tags: ,,
Add comment
facebook linkedin twitter email

Leave a Reply

Your email address will not be published.

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

5 comments

  1. יוחאי8 בדצמבר 2007 ב 13:58

    מעולה !!!

    Reply
  2. OhadAston8 בדצמבר 2007 ב 17:20

    לדעתי תחזוק של רשימה כזו הוא מיותר, עדיף לעבוד עם התגיות שהן נוחות וקלות לתחזוק.

    Reply
  3. Moshe L8 בדצמבר 2007 ב 17:45

    מעניין! נהנתי מכל מילה.

    אין ספק שהנושא הזה של UI בכלל ו-GUI בכלל, חשוב וראוי ליחס רציני הרבה יותר ממה שהוא זוכה לו היום בחלק מהמקומות.

    Reply
  4. שניר דוד8 בדצמבר 2007 ב 18:30

    הפוסטים שלך מרתקים ומעולים. אני נהנה מאוד לקרוא פה ולומד ממך המון (:

    Reply
  5. Maxim8 בדצמבר 2007 ב 23:44

    תודה רבה,
    תגובות חיוביות גורמות לי לרצות לכתוב יותר ולהביא חומר מעניין יותר.
    הצ'אקרות שלי קיבלו אנרגיה חיובית :)

    Reply