מפגש של מפתחי Chrome לשנת 2014 - בואו ניצור כמה אפליקציות בעזרת Polymer

במהלך השנה שעברה, צוות Polymer הקדיש זמן רב ללמד מפתחים כיצד ליצור רכיבים משלהם. זה הוביל לסביבה עסקית שמתפתחת במהירות, ומבוססת ברובה על רכיבי הליבה והנייר של פולימר ועל אלמנטים של לבנים שנוצרו על ידי הצוות של Mozilla.

ככל שהמפתחים מתחילים להכיר את היצירה של רכיבים משלהם ומתחילים לחשוב על בניית יישומים, עולה מספר שאלות:

  • איך כדאי לבנות את ממשק המשתמש של האפליקציה?
  • איך מתבצע המעבר בין המדינות השונות?
  • מהן כמה אסטרטגיות לשיפור הביצועים?
  • ואיך כדאי לספק חוויה אופליין?

בכנס המפתחים של Chrome, ניסיתי לענות על השאלות האלה על ידי פיתוח אפליקציה קטנה ליצירת קשר וניתוח התהליך שעברתי כדי לפתח אותה. הנה מה שמצאתי:

מבנה

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

השימוש בפולימר עוזר למפתחים לבנות אפליקציות מהר יותר

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

פולימר הופך את רכיבי האינטרנט למתוקים יותר

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

רכיב אחד שמתאים במיוחד להתמודדות עם הרבה תוכן הוא core-list.

פולימר הופך את רכיבי האינטרנט למתוקים יותר

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

מעברים.

לאחר העיצוב וההטמעה של החלקים השונים באפליקציה, המשימה הבאה היא להבין איך לנווט ביניהם בפועל.

core-animated-pages הוא עדיין רכיב ניסיוני, אבל הוא מספק מערכת אנימציה ניתנת להעברה שניתן להשתמש בה כדי לעבור בין מצבים שונים באפליקציה.

נדרש שיפור בכרטיס הדיווח של Polymer

אבל אנימציה היא רק חצי מהחידה, אפליקציה צריכה לשלב את האנימציות האלה עם נתב כדי לנהל כראוי את כתובות ה-URL שלה.

בעולם הניתוב של רכיבי האינטרנט יש שני טעמים: ציווי והצהרתי. השילוב של core-animated-pages עם כל אחת מהשיטות יכול להיות רלוונטי, בהתאם לצורכי הפרויקט שלכם.

נתב חיוני (כמו המנהל של Flatiron') יכול להאזין למסלול תואם, ואז להורות ל-core-animated-pages לעדכן את הפריט שנבחר.

נדרש שיפור בכרטיס הדיווח של Polymer

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

מצד שני, נתב מוצהר (כמו נתב אפליקציות) יכול למעשה לשלב את הניתוב עם core-animated-pages ברכיב אחד, כך שהניהול של שני הרכיבים האלו מייעל יותר.

נדרש שיפור בכרטיס הדיווח של Polymer.

אם אתה רוצה שליטה פרטנית יותר, אתה יכול לחפש ספרייה כמו ניתוב נוסף, שאפשר לשלב עם core-animated-pages באמצעות קישור נתונים ואז לתת לך את הטוב ביותר משני העולמות.

ביצועים

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

זכייה קלה בביצועים נובעת מטעינה מותנית של ה-Polyfills של רכיבי האינטרנט.

נדרש שיפור בכרטיס הדיווח של Polymer

אין סיבה לצבור את כל העלות הזו אם הפלטפורמה כבר כוללת תמיכה מלאה! בכל גרסה של מאגר webcomponents.js החדש, ה-polyfills חולקו לקבצים עצמאיים. האפשרות הזו שימושית אם רוצים לטעון באופן מותנה קבוצת משנה של ה-Polyfills.

<script>
    if ('import' in document.createElement('link')) {
    // HTML Imports are supported
    } else {
    document.write(
        '<script src="bower_components/webcomponentsjs/HTMLImports.min.js"><\/script>'
    );
    }
</script>

ניתן גם להשיג רווחים משמעותיים ברשת מהפעלת כל ייבוא HTML באמצעות כלי כגון Vulcanize.

נדרש שיפור בכרטיס הדיווח של Polymer.

Vulcanize יששר את פעולות הייבוא לחבילה אחת, באופן משמעותי ותפחית את מספר בקשות ה-HTTP שהאפליקציה שלכם שולחת.

אופליין

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

ג'ייק ארצ'יבלד פרסם לאחרונה ספר בישול של דפוסים של קובצי שירות (service worker), אבל אתן לך התחלה מהירה בתור התחלה:

ההתקנה של Service Worker היא קלה ופשוטה. צרו קובץ worker.js ורשמו אותו עם הפעלת האפליקציה שלכם.

נדרש שיפור בכרטיס הדיווח של Polymer

חשוב לאתר את worker.js ברמה הבסיסית (root) של האפליקציה, כדי לאפשר לו ליירט בקשות מכל נתיב באפליקציה.

ב-handler של העובד להתקנה, אני שומר סירה של משאבים (כולל הנתונים שמפעילים את האפליקציה).

נדרש שיפור בכרטיס הדיווח של Polymer

זה מאפשר לאפליקציה שלי לספק למשתמש חוויה חלופית לפחות אם הוא ניגש אליה במצב אופליין.

קדימה!

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