تطبيق BeautyPlus يزيد من سهولة القراءة بنسبة 15% باستخدام مكونات Android الهندسية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تم طرح تطبيق
BeautyPlus في عام 2013، وهو أحد أشهر تطبيقات تعديل الصور على مستوى العالم، حيث استخدمه خبراء ماكياج
والمصورون ومحترفو النهاش العاديون على الهواتف الجوّالة. يستخدم التطبيق حوالي 50 مليون شخص
شهريًا لتعديل وإضافة فلاتر إلى صورهم الذاتية والصور
ومقاطع الفيديو. تم تطويرها بواسطة شركة Xiamen Meitu Technology Co. الصينية. أمّا التطبيق (المشهور بشكل خاص في مجموعة الصور الذاتية) فهو يُستخدم لأغراض متعددة، بدءًا من تصحيح درجة لون البشرة وتفتيح الابتسامات ووصولاً إلى استخدام ملامح تنحيف البشرة وتنظيف عيوب البشرة باستخدام الفرشاة الهوائية، وكل ذلك من خلال بضع نقرات بسيطة.
نظرًا لأن الشركة تجري تحديثات متكررة على التطبيق، فإنها تتطلب عددًا كبيرًا
من المطورين. ولكن، بمرور الوقت، نمت البنية الأساسية
إلى افتقار إلى التناسق والوضوح. احتاج الفريق سريع التغير إلى طريقة لإبقاء المطوّرين المتعاونين على اطّلاع دائم على أحدث الوسائل التعليمية مع تبسيط إدارة مراحل النشاط وحل المشاكل المتعلّقة بتحديث واجهة المستخدم غير المتزامنة.
الشكل 1: نموذج لجلسة تعديل صور في BeautyPlus
الإجراءات التي اتخذتها الشركة
قدمت مكونات بنية Android الأدوات التي يحتاجها المطورون لجعل رمز التطبيق موجزًا وثابتًا ويسهل على المهندسين الجدد قراءته أثناء عملية الإعداد.
من بين المكوّنات التي بدأ مطوّرو BeautyPlus في استخدامها،
ViewModel، التي تتيح معالجة أسهل للمنطق باستخدام تعديلات الأنشطة والأجزاء. تم تصميم ViewModel لتخزين البيانات المتعلقة بواجهة المستخدم وإدارتها بطريقة تراعي مراحل النشاط وتراعي دورة حياة مكوّنات التطبيق الأخرى.
استفاد الفريق أيضًا من المكوِّن LiveData، وهو فئة من أصحاب البيانات القابلة للملاحظة والتي تراعي أيضًا مراحل النشاط للمساعدة في ضمان تطابق واجهة المستخدم مع حالة البيانات. ووجد الفريق أنّ مكونات بنية Android
هذه سهلة الاستخدام بدون مواجهة أي مشاكل،
وأصبحت المزايا ملحوظة بسرعة.
النتائج
بفضل مكونات Android الهندسية، أصبح لدى تطبيق BeautyPlus على الفور رمز أقل بنسبة
5% وكان أكثر قابلية للقراءة بنسبة 15%. كانت البنية أيضًا أكثر توحيدًا، وتوفر على المطورين الوقت والجهد،
وتسهل على المطورين الجدد التطور بسرعة. بالإضافة إلى ذلك، قلَّ عدد تسرُّب الذاكرة، وأصبح تحديث البيانات أسهل، ولم يعُد من الضروري للمطوّرين القلق بشأن تحديث واجهة المستخدم غير المتزامنة.
يقول "تشنغ سونجين"، مدير التطوير الأول: "عندما استخدمنا ViewModel وLiveData لتطبيق BeautyPlus، أصبح الرمز البرمجي أكثر إيجازًا ووضوحًا، وتم توحيد بنية الرمز البرمجي". "تمت إدارة تشغيل دورة حياة التطبيق بأمان،
وتحسن الثبات أيضًا".
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2018-05-05 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-05 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# BeautyPlus app increases readability by 15% with Android Architecture Components\n\nIntroduced in 2013,\n[BeautyPlus](https://play.google.com/store/apps/details?id=com.commsource.beautyplus)\nis one of the world's most popular photo-editing apps, used by makeup artists,\nphotographers, and ordinary mobile phone snappers. About 50 million people use\nthe app every month to edit and add filters to their selfies, pictures, and\nvideos. Developed by China's Xiamen Meitu Technology Co., Ltd., the app (which\nis particularly popular with the selfie set) is used for everything from\ncorrecting skin tone and brightening smiles to slimming features and airbrushing\naway blemishes, all with a few simple drags and clicks.\n\nGiven the company makes frequent updates to the app, it requires a large number\nof developers. But, over time, the underlying architecture grew to lack\nuniformity and clarity. The fast-moving team needed a way to keep their\ncollaborating developers in the loop while simplifying lifecycle management and\nresolving issues related to refreshing the asynchronous UI. \n**Figure 1:** A sample photo-editing session in BeautyPlus\n\nWhat they did\n-------------\n\n[Android Architecture Components](/topic/libraries/architecture) provided the\ntools that the developers needed to make the app's code concise, stable, and\neasier for new engineers to read as they onboard.\n\nAmong the components the BeautyPlus developers began using is\n[`ViewModel`](/topic/libraries/architecture/viewmodel), which enables easier\nlogic processing with activity and fragment updates. `ViewModel` is designed to\nstore and manage UI-related data in a lifecycle-conscious way that respects the\nlifecycle of other app components.\n\nThey also leveraged the [`LiveData`](/topic/libraries/architecture/livedata)\ncomponent, an observable data-holder class that's also lifecycle-aware to help\nensure that the UI matches the data state. The team found these Android\nArchitecture Components easy to use without encountering any problems---and the\nbenefits were quickly noticeable.\n\nResults\n-------\n\nThanks to Android Architecture Components, the BeautyPlus app immediately had 5%\nleaner code and was 15% more readable. The architecture was also more unified,\nsaving developers time and effort, and making it easier for new developers to\nget up to speed quickly. In addition, there were fewer memory leaks, refreshing\ndata became easier, and developers no longer had to worry about updating the\nasynchronous UI.\n\u003e \"When we used ViewModel and LiveData for BeautyPlus, the code became more\n\u003e concise and readable, and the architecture of the code was unified,\" says\n\u003e Zheng Songyin, senior development manager. \"The operation of the lifecycle of\n\u003e the app was managed safely, and the stability improved, too.\"\n\nGet started\n-----------\n\nAndroid Architecture Components is open to all developers. [Get\nstarted with Android Architecture Components](/topic/libraries/architecture)."]]