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

Zillow הוא שוק נדל"ן מוביל באינטרנט שמספק לצרכנים את הרישומים, הנתונים והמחשבונים שהם צריכים כדי לעזור להם לקנות, לשכור או למכור בית. באתר יש גם קישורים לסוכנים מקומיים, לספקי משכנתאות ולמעצבי בתים.
חברת Zillow הושקה בשנת 2006 וממוקמת בסיאטל. היא מחזיקה במסד נתונים של יותר מ-110 מיליון בתים בארה"ב. הם גם מפעילים חבילה פופולרית של יותר מ-24 אפליקציות לנייד בתחום הנדל"ן. ביולי 2017, כשחברת Zillow התחילה לשנות באופן משמעותי את הקוד באפליקציית Android שלה, היא רצתה לפשט את העבודה של המפתחים שלה. לשם כך, היא דאגה שהקוד יהיה קריא יותר וקל יותר להבנה לחברי צוות חדשים.
מה הם עשו
חברת Zillow שינתה את הקוד שלה באמצעות רכיבי ארכיטקטורה של Android.
"בדקנו סוגים שונים של ארכיטקטורה," אומר איוש ראג', מהנדס תוכנה ב-Zillow. "היתרון הנוסף של Architecture Components היה המודעות למחזור החיים, שהפכה את ניהול הקוד להרבה יותר קל".
ViewModel מאפשר לנתונים לשרוד שינויים בהגדרות (כמו סיבוב המסך), בעוד ש-LiveData הוא מחזיק נתונים שניתן לצפות בו. שתי הטכנולוגיות האלה שימשו את Zillow, ויחד הן סיפקו תבנית יעילה להטמעה של Model-View-ViewModel (MVVM). "הוא עזר לנו להפוך את הקוד שלנו לכזה שאפשר לבדוק אותו בקלות רבה יותר", אומר ראג'. ספריית העקביות של Room גם הקלה על בניית שכבת מטמון מקומית, כך שהאפליקציה לא נאלצה לשלוף נתונים מהרשת לעיתים קרובות, וכך 'שיפרה את הביצועים ואת חוויית המשתמש'.
תוצאות
ראג' מוסיף שהעברת הרבה קוד לעדכוני נתונים מפעילויות ל-ViewModels בהחלט עזרה להפוך את בסיס הקוד כולו לקריא יותר.
הם עדיין לא המירו את כל האפליקציה ל-ViewModel, אבל לא היו באגים שקשורים למחזור החיים של רכיבים שמשתמשים ב-ViewModel. העברת עדכוני נתונים לפעילויות ולמקטעים פועלת גם היא בצורה טובה מאוד.
"המפתחים פרודוקטיביים יותר בזכות השימוש ברכיבי ארכיטקטורת Android", אומר סומירן פרדהאן (Sumiran Pradhan), מהנדס בכיר לפיתוח תוכנה ב-Zillow.
הם מקבלים הנחיות מ-Architecture Components כשהם מתחילים מאפס, אבל הוא גם שימושי בבסיס הקוד הקיים. "אחרי שמפתחים חדשים מבינים איפה נמצאת הלוגיקה ב-ViewModel, הם מאוד אוהבים את זה", מוסיף פרדהאן.
שנתחיל?
רכיבי הארכיטקטורה של Android פתוחים לכל המפתחים כחלק מ-Android Jetpack. תחילת העבודה עם רכיבי ארכיטקטורה של Android
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2018-05-03 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2018-05-03 (שעון UTC)."],[],[],null,["# Zillow builds clear new code with Android Architecture Components\n\nZillow is a top online real estate marketplace that provides consumers with\nthe listings, data, and calculators they need to help them buy, rent, or sell\na home. The site also connects users with local agents, mortgage providers,\nand home designers.\n\nLaunched in 2006 and headquartered in Seattle, Zillow maintains a database\nof more than 110 million U.S. homes. They also operate a popular suite of\nover two dozen mobile real estate apps. When they began a major overhaul of\ntheir code in their Android mobile app in July 2017, Zillow wanted to simplify\ntheir developers' lives by making the code more readable and easier for\nnew team members to understand.\n\nWhat they did\n-------------\n\nZillow revamped their code using\n[Android Architecture Components](/topic/libraries/architecture).\n\"We were investigating different kinds of architecture,\" says Aayush Raj,\nZillow software engineer. \"Architecture Components had the added advantage of\nlifecycle awareness, which made code much easier to manage.\"\n\n[ViewModel](/topic/libraries/architecture/viewmodel) allows data to\nsurvive configuration changes (such as screen rotations), while\n[LiveData](/topic/libraries/architecture/livedata) is an observable\ndata-holder class. Both were used by Zillow, and together, they provided a\npowerful template for implementing Model-View-ViewModel (MVVM). \"It helped make\nour code more testable,\" Raj says. The\n[Room](/topic/libraries/architecture/room) persistency library also\nmade it easy to build a local cache layer, so the app didn't have to pull data\nfrom the network as often, \"improving performance and the user experience.\"\n\nResults\n-------\n\nMoving lots of code for data updates from activities to\n[ViewModels](/topic/libraries/architecture/viewmodel) has\n\"definitely helped\" make the whole code base more readable, Raj adds.\nThey haven't yet converted the whole app to\n[ViewModel](/topic/libraries/architecture/viewmodel),\nbut components that are using\n[ViewModel](/topic/libraries/architecture/viewmodel)\nhaven't had any lifecycle-related bugs. Communicating\ndata updates to activities and fragments also works very well.\n\n\"Developers are absolutely more productive using Android Architecture\nComponents,\" says Sumiran Pradhan, Zillow senior software development engineer.\nArchitecture Components gives them guidance when starting from scratch,\nbut is also useful in the existing code base. \"Once new developers\nunderstand where the logic lives in the\n[ViewModel](/topic/libraries/architecture/viewmodel), they love it,\"\nPradhan adds.\n\nGet started\n-----------\n\nAndroid Architecture Components is open to all developers as part of\n[Android Jetpack](/jetpack). Get\nstarted with [Android Architecture Components](/jetpack/arch)."]]