شركة Zillow تبتكر رمزًا برمجيًا جديدًا باستخدام مكونات Android الهندسية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

Zillow هو أحد أبرز الأسواق العقارية على الإنترنت التي يزود المستهلكين
بالقوائم والبيانات والآلات الحاسبة التي يحتاجون إليها لمساعدتهم على شراء المنزل أو استئجاره أو بيعه. كما يربط الموقع المستخدمين بالوكلاء المحليين ومقدمي الرهون العقارية
ومصممي المنازل.
تم تأسيس شركة Zillow عام 2006 ويقع مقرها في سياتل، كما تمتلك قاعدة بيانات تضم أكثر من 110 ملايين منزل في الولايات المتحدة. وتدير أيضًا مجموعة شهيرة تضم
أكثر من عشرين تطبيقًا عقاريًا للهاتف المحمول. عندما بدأت الشركة في إجراء إصلاح كبير للرموز البرمجية الخاصة بها في تطبيق Android للجوّال في يوليو 2017، أرادت شركة Zillow تبسيط حياة المطورين لديها من خلال جعل التعليمات البرمجية أكثر قابلية للقراءة وأسهل على أعضاء الفريق الجدد لفهمها.
الإجراءات التي اتخذتها الشركة
جدّدت شركة Zillow الرموز البرمجية الخاصة بها باستخدام
مكونات بنية Android.
يقول أيوش راج،
مهندس برمجيات شركة Zillow: "كنا نحقق في أنواع مختلفة من الهندسة المعمارية". "كان لمكونات العمارة ميزة إضافية وهي
الوعي بدورة الحياة، مما جعل إدارة التعليمات البرمجية أسهل بكثير".
تسمح دالة ViewModel للبيانات بالحفاظ على التغييرات في الإعدادات (مثل تدوير الشاشة)، في حين أنّ
LiveData هي فئة قابلة للملاحظة
لمالكي البيانات. واستخدمت شركة Zillow كلاهما، وقدَّما معًا نموذجًا فعالاً لتنفيذ Model-View-ViewModel (MVVM). يقول راج: "لقد ساعد ذلك في جعل تعليماتنا
البرمجية أكثر قابلية للاختبار". وسهّلت أيضًا مكتبة استمرارية الغرفة إنشاء طبقة ذاكرة تخزين مؤقت، بحيث لم يكن على التطبيق سحب البيانات
من الشبكة في كثير من الأحيان، وهو ما أدى إلى "تحسين الأداء وتجربة المستخدم".
النتائج
ويضيف "راج" أن نقل الكثير من الرموز لتعديلات البيانات من الأنشطة إلى ViewModels "ساعد بالتأكيد" في جعل قاعدة الرموز بالكامل أكثر سهولة في القراءة.
لم يحوّل الفريق التطبيق بأكمله إلى
ViewModel بعد،
ولكن لم تتضمّن المكونات التي تستخدم
ViewModel
أي أخطاء مرتبطة بمراحل نشاطها. كما أن توصيل تحديثات البيانات
للأنشطة والأجزاء يعمل بشكل جيد للغاية.
يقول سومران برادهان، مهندس تطوير البرامج الأول في شركة Zillow: "يزيد إنتاج مطوّري البرامج عند استخدام المكوّنات الهندسية لنظام التشغيل Android".
تعطيهم المكونات المعمارية التوجيه عند البدء من الصفر،
ولكنها مفيدة أيضًا في قاعدة التعليمات البرمجية الحالية. ويضيف "برادهان" قائلاً: "بعد أن يفهم المطورون الجدد مكان المنطق في ViewModel، سيعجبهم هذا الأمر".
البدء
ميزة "مكونات بنية Android" متاحة لجميع المطوّرين كجزء من
Android Jetpack. يمكنك البدء
باستخدام مكونات Android الهندسية.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2018-05-03 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2018-05-03 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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)."]]