משתמש:Birnboim/Google Web Toolkit

מתוך ויקיפדיה, האנציקלופדיה החופשית
דף זה אינו ערך אנציקלופדי
דף זה הוא טיוטה של Birnboim.
דף זה אינו ערך אנציקלופדי
דף זה הוא טיוטה של Birnboim.


ארגז הכלים של גוגל,Google Web Toolkit, הוא קוד פתוח של סט כלים המאפשר למפתחי אינטרנט ליצור ולתחזק אפליקציות מורכבות בשפת התסריט front end JavaScript בשפת התכנות Java. מלבד מספר מצומצם של ספריות מקומיות, כל הקבצים הם מקור Java שניתן לבנות בכל פלטפורמה נתמכת בעזרת GWT הכולל קבצים לבנייה אוטומטית. המוצר רשום תחת רישיון אפאצ'י גרסה 2.0.

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

היסטוריה[עריכת קוד מקור | עריכה]

הגרסה הראשונה של ארגז הכלים, גרסה 1 1.0RC (י build 1.0.20) שוחררה ב16 במאי 2006. גוגל הכריזה על ארגז הכלים בכנס של JavaOne, 2006.

היסטוריית שחרור:

• GWT 1.0 ב17 למאי 2006

• GWT 1.1 ב11 לאוגוסט 2006

• GWT 1.2 ב16 לנובמבר 2006

• GWT 1.3 ב5 לפברואר 2007

• GWT 1.4 ב28 לאוגוסט 2007

• GWT 1.5 ב27 לאוגוסט 2008

• GWT 1.6 ב7 לאפריל 2009

• GWT 1.7 ב13 ליולי 2009

• GWT 2.0 ב8 לדצמבר 2009

• GWT 2.0.1 ב2 לפברואר 2010

• GWT 2.0.2 ב12 לפברואר 2012

• GWT 2.0.3 ב19 לפברואר 2010

• GWT 2.0.4 ב2 ליולי 2012

• GWT 2.1.0 ב19 לאוקטובר 2010

• GWT 2.1.1 ב16 לדצמבר 2010

• GWT 2.2.0 ב11 לפברואר 2011

• GWT 2.3.0 ב3 למאי 2011

• GWT 2.4.0 ב8 לספטמבר 2011 (עדכנית)

באוגוסט 2010 רכשה גוגל את חברת Instantiations, חברה המוכרת בזכות התמקדותה בכלים לפיתוח של תוכנת eclipse בשפת Java כולל המעצב של GWT, אשר עכשיו מאוחד עם כלי פיתוח נוסף בשם Google plugin for eclipse.

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

פיתוח עם GWT[עריכת קוד מקור | עריכה]

ע"י שימוש בGWT, מפתחים יכולים לפתח ולהפחית את כמות הבאגים באפליקציות Ajax בשפת Java באמצעות כלי פיתוח של Java לבחירתם. כאשר האפליקציה נפרסת, מעבד הנתונים של GWT מתרגם את יישומי הJava לקבצים עצמאיים של JavaScript שיכולים להיות מטושטשים (קשים להבנה) ואופטימליים מאוד.

GWT לא סובב רק סביב תכנות משתמש עצמאי; מדובר במערכת כללית של כלים לבניית כל סוג של שימוש בעל יכולת ביצוע גבוהה לצד תסריט JavaScript. במצגות חיות, מפתחי GWT מדגישים ש"GWT הוא אינו הספריות שלו" וכי הוא רק כולל ספריה, אבל במהותו הוא אינו עוד ספריית Ajax. פילוסופיה זו לעתים מפתיעה משתמשים חדשים בGWT שמצפים מהתוכנה לספק להם עבודת מסגרת מלאה, ואכן, הרבה החלטות אדריכליות נשארות לחלוטין בידי המפתח. הצהרת הכוונות של GWT מבהירה ומפרטת את התפקיד הפילוסופי של התוכנה אל מול תפקידו של המפתח. ההיסטוריה היא דוגמא לכך: למרות שGWT מנהל את סימני ההיסטוריה כאשר משתמשים לוחצים 'חזור' או 'המשך' בדפדפן, הוא לא מכתיב כיצד למפות את האותות למצב של יישום.

יישום GWT יכול לעבוד בשני מצבים:

מצב פיתוח (לשעבר מצב מתארח): היישום פועל בתור Java bytecode בתוך java virtual machine. מצב זה משמש בדרך כלל לפיתוח, תמיכה בהחלפה חמה של קוד (שינוי קוד ללא הפרעה למערכת) והוצאת באגים.

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

מספר תוספים בעלי קוד- פתוח מאפשרים פיתוח GWT קל יותר בעזרת שימוש ביישומי תכנות ופיתוח אחרים (IDEs). לדוגמא, GWT4NB עבור NetBeans, Cypal studio for GWT, Eclipse ו-JDeveloper. תוסף גוגל לeclipse מתמודד עם רוב המטלות של GWT בIDE, כולל יצירת פרויקטים, הפניית מעבד הנתונים של GWT, יצירת אישורי אתחול GWT, אימות, הדגשת תחביר ועוד.

רכיבים[עריכת קוד מקור | עריכה]

המרכיבים העיקריים של GWT כוללים:

עיבוד של GWT Java לשפה של JavaScript.

תרגום שפת תכנות Java לשפת תכנות של JavaScript.

מצב פיתוח של GWT:

מאפשר למפתחים להריץ ולהוציא לפועל יישומי פיתוח GWT במצב פיתוח (היישום פועל בJava בJVM ללא עיבוד לJavaScript). לפני גרסה 2.0, מצב "מתארח" בGWT שימש תכלית מיוחדת: "דפדפן מתארח" להוצאת באגים בקוד GWT. בגרסה 2.0, דף האינטרנט שממנו מוציאים באגים נראה בתוך דפדפן רגיל. מצב הפיתוח נתמך ע"י שימוש בתוסף של קוד מקומי שנקרא "the Google web toolkit developer plugin for many popular browsers".

ספריית חיקוי JRE:

יישומי JavaScript של מעמדות המשתמשים העיקריים בספריית הJava הסטנדרטית (כמו רוב חבילות Java.lang וחלק מחבילות Java.util).

ספריית GWT Web UI:

סט של ממשקים מותאמים וקבוצות ליצירת יישומונים (widgets).

תכונות[עריכת קוד מקור | עריכה]

• מרכיבים של יישומונים דינאמיים שניתנים לשימוש: מתכנתים יכולים להשתמש בסוגים שונים של יישומונים שתוכננו מראש וחוסכים התנהגות דינאמית שלוקחת זמן רב, כמו לחצן גרירה-ושחרור או מבני עץ ויזואליים מתוחכמים.

• מנגנון RPC פשוט

• ניהול היסטוריית דפדפן

• תמיכה עבור די-באגים של תוכנות Java

• תוכנת GWT מטפלת בתחום הצלבות דפדפן עבור המפתח.

• אינטגרציית JUnit.

• תמיכה עבור לוקליזציה וגלובליזציה.

• תמיכה עבור Html (בכפוף לשינויי API).

• המפתח יכול לערבב בין JavaScript שכתב בתוך קוד Java בשימוש ממשק JSNI

• תמיכה בשימוש APIs של גוגל ביישומי GWT. (בראשונה, תמיכה בGoogle Gears).

קוד פתוח

• המפתח יכול לעצב ולפתח את היישום שלו באופן מונחה עצמים טהור, היות והוא משתמש בJava (במקום בJavaScript). טעויות נפוצות בJavaScript, כמו טעויות כתיב או טעויות התאמה נתפסות בזמן עיבוד.

• הJavaScript שמעבד הGWT מפיק יכול להיות מותאם למטושטש וקל להבנה או למטושטש וקטן להורדה.

• מספר ספריות זמינות עבור GWT, ע"י גוגל וגורמים נוספים. אלו מרחיבים את תכונות הGWT.

יישומונים אפשריים[עריכת קוד מקור | עריכה]

נכון לגרסה 2.4 (ספטמבר 2011), GWT מציע מספר יישומונים:

• כפתור

• כפתור לחיץ

• RadioButton

• תיבת סימון

• DatePicker

• ToggleButton

• תיבת טקסט

• תיבת סיסמא

• TextArea

• קישור

• ListBox

• CellList

• תפריט

• עץ

• CellTree

• תיבת הצעות

• RixhTextArea

• FlexTable

• רשת

• CellTable

• CellBrowser

• TabBar

• DialogBox


לוחות אפשריים[עריכת קוד מקור | עריכה]

יישומוני GWT כוללים גם מספר לוחות:

• PopupPanel

• StackPanel

• StackLayoutPanel

• HorizontalPanel

• VerticalPanel

• FlowPanel

• VerticalSplitPanel

• HorizontalSplitPanel

• SplitLayoutPanel

• DockPanel

• DockLayoutPanel

• TabPanel

• TabLayoutPanel

• DisclosurePanel


יישומונים משותפים רבים שלא נמצאים בGWT נמצאים בספריות של חברות אחרות, כמו Ext GWT, GWT Component Library, GWT-Ext, GWT Widget Library, GWTiger, Rocket GWT, Dojo, SmartGWT ועוד.

שימוש ארגוני[עריכת קוד מקור | עריכה]

המרחב הארוגני עושה שימוש נרחב בGWT בשל יכולותיו למנף טכנולוגיות ארגוניות נפוצות הכוללות Java, Apache Tomcat, Eclipse IDE, internet explorer, לוקליזציה וגלובליזציה. קל לבחון יישומים אינטרנטיים עשירים (RIA) של GWT המבוססים על Java בעזרת שימוש בכלי JUnit קיימים שבודקים עבודת מסגרת וכיסוי קוד, לעומת יישומים גדולים הכתובים בשפת JavaScript. בגלל שGWT מאפשר בזמן האיסוף אימות של תמונות, CCS ולוגיקה עסקית, הרבה פגמים נפוצים בפיתוח מתגלים אוטומטית ללא צורך בבדיקה ידנית שבדרך כלל נדרשת ע"י RIA's.

בעוד שבדרך כלל משתמשים בו ליישומים פנימיים ללא פרסומות, גוגל ציין שחלק ממוצריו מבוססים על GWT וכוללים:

• AdWords, AdSense

• Orkut

• Google Wave

• Google Health

• Blogger

חברות אחרות שמשתמשות בGWT רשומות ב GWT Reference List

GWT 2.0[עריכת קוד מקור | עריכה]

ב8 לדצמבר 2009 גוגל השיקה את Google Web Toolkit 2.0 עם נותב מהירות.


גרסה 2.0 של GWT מציעה מספר תכונות חדשות, ביניהן:

• במצב פיתוח דפדפן (ידוע לשעבר בתור מצב מתארח מחוץ לתהליך,OOPHM): לפני גרסה 2.0, מצב מתארח נהג לשבץ דפדפן מותאם שמאפשר להפעיל את גרסת הbytecode של היישום בזמן פיתוח. עם גרסה 2.0, מצב מתארח, נקרא "מצב מפתח", ומאפשר שימוש בכל דפדפן (נתמך) בשביל לראות את הדף עובר דיבאגינג, באמצעות תוסף לדפדפן. התוסף מתקשר עם קליפת מצב הפיתוח ע"י שימוש בTCP/IP, המאפשר דיבאגינג בפלטפורמות צולבות.(לדוגמא, איתור באגים בinternet explorer בwindows מקליפת מצב הפיתוח הפועלת על מכונת Linux).

• פיצול קוד: בעזרת מתן של "נקודות פיצול" בקוד על ידי המפתח, מעבד הGWT יוכל לפצל את קוד הJavaScript למספר גושים קטנים במקום הורדה אחת גדולה. דבר זה יוביל לזמן אתחול קצר יותר היות וגודל ההורדה ההתחלתי קטן.

ממשק משתמש מוצהר: שימוש בפורמט של XML, התכונה החדשה הידועה בשם UiBinder מאפשרת את היצירה של ממשק משתמש דרך הצהרה במקום דרך קוד. דבר זה מאפשר הפרדה מלאה בין בניית UI ומימוש של הפעולה.

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


היות ומצב הפיתוח החדש הוריד את רוב פלטפורמות הקוד הספציפי, הגרסה החדשה תופץ כארכיון ייחודי, במקום כתמיכה אחת פר פלטפורמה כפי שקרה עם הגרסה הקודמת.

סלולארי[עריכת קוד מקור | עריכה]

כמסגרת כללית ליצירת יישומי אינטרנט, GWT יכול לשמש גם כמסגרת ליצירת יישומים סלולאריים ולטאבלטים, או על ידי יצירת היישומונים הדרושים והאנימציות מאפס, או על ידי שימוש באחת המסגרות הסלולריות של GWT. יישום HTML5 שנכתב בזכות GWT יכול להיות בעל זוויות נפרדות עבור סלולאריים וטאבלטים.

מספר ספריות GWT לסלולארי נפוצות הן:

• m-gwt

• GwtMobile

• gwt-mobile-webkit