شركة Twitter تحقّق زيادة في كفاءة وسرعة المطوّرين باستخدام Compose
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
Twitter هو إحدى منصات التواصل الاجتماعي الأكثر استخدامًا، حيث يمكن للمستخدمين الاطّلاع على الأحداث الجارية في العالم في أي لحظة. بدأ فريق الهندسة باستخدام Jetpack Compose لتحديث نظام التصميم.
الإجراءات التي اتخذتها الشركة
بما أنّ عناصر واجهة المستخدم ونظام السمات في تطبيق Twitter تم تطويرهما قبل حوالي 10 سنوات، وكانا يتألفان من عناصر قديمة تتطلّب جهودًا كبيرة لصيانتها، أراد فريق الهندسة إنشاء نظام تصميم جديد قابل للتطوير، مع عناصر واجهة مستخدم عديمة الحالة يسهل استخدامها وصيانتها، كما أنّها سهلة التنفيذ والتوسيع والتخصيص، لذا قرّر الفريق استخدام Compose.
بدأ الفريق باستبدال المكوّنات واحدًا تلو الآخر من خلال نظام التصميم الداخلي، وذلك عن طريق إدخال Compose في الشاشات الجديدة التي لا تعتمد على الإعداد القديم.
النتائج
قدّمت Compose إجابة وافية عن هدفها المتمثل في تحسين سرعة المطوّرين ورضاهم وسهولة صيانة رموز واجهة المستخدم ومكوّناتها. بعد بدء استخدام Compose، قال مهندسو Twitter إنّها "بكلمة واحدة: رائعة.
نُشير إليه داخليًا باسم Android UI 2.0، وهو يجعل من الصعب جدًا العودة إلى نظام العرض القديم. لقد زادت كفاءتنا وسرعتنا في إنجاز المهام التي طوّرناها خصيصًا في Compose".
وقد لاحظوا تحسّنًا في سرعة التطوير والتجربة: "إنّ سرعة إنجاز التغييرات في التصميم لأي شيء اعتمدناه في Compose أسرع بكثير مما كنا نتوقّعه في السابق". بالإضافة إلى ذلك، نجري تجارب مكثّفة على التغييرات التي نُجريها على منتجاتنا، ويسهل إجراء هذه التجارب بشكل أفضل وأسرع عند كتابة الرموز البرمجية باستخدام Compose وKotlin".
فالرمز البرمجي الذي يكتبونه ليس أكثر سهولة في الاستخدام فحسب، بل أسرع أيضًا في الكتابة وأسهل في القراءة: "بالإضافة إلى ذلك، تتسم طبقة السمات لدينا بسهولة الاستخدام والقراءة بشكل كبير، وقد تمكّنا من إنجاز ما كان يستغرق وقتًا طويلاً في ملفات XML متعددة مسؤولة عن تعريفات السمات وعمليات التعيين من خلال تراكبات السمات المتعددة الطبقات، وذلك في ملف Kotlin واحد. لم تستغرق إعادة تنفيذ بنية السمات بالكامل في سياق Compose سوى بضعة أيام إلى أسابيع، وقد تبيّن أنّها أكثر فعالية وسهولة في الاستخدام من نظام السمات القديم الذي استخدمناه في السابق".
البدء
مزيد من المعلومات حول ميزة "إنشاء"
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2021-07-28 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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"]],["تاريخ التعديل الأخير: 2021-07-28 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["[Twitter](https://twitter.com) is one of the most widely used social\nmedia platforms where users can see what's happening in the world at any given\nmoment. The engineering team started using Jetpack Compose to **modernise their\ndesign system.**\n\nWhat they did\n\nBecause the Twitter app's UI components and theming system was developed around\n10 years ago and was comprised of legacy components that required tremendous\nmaintenance efforts, the engineering team wanted to build a new, scalable\ndesign system; with stateless UI components that were easy to use and maintain;\nand intuitive to implement, extend and customize, so they decided to use\nCompose.\n\nThe team started a component-by-component replacement through their internal\ndesign system and by introducing Compose into new screens that don't depend on\ntheir legacy setup.\n\nResults\n\nCompose provided a solid answer to their goal of improving developer velocity,\ndeveloper happiness, and UI code/component maintainability. After starting to\nuse Compose, Twitter engineers say that it's *\"In a word: incredible.\nInternally we refer to it as Android UI 2.0, and it makes it very difficult to\ndelve back into our legacy view system. It has **increased our efficiency and\nvelocity** for things we've developed specifically in Compose.\"*\n\nThey've seen improvements in the speed of development and experimentation: *\"The\n**turn-around on design changes** for anything we've adopted in Compose **is much\nfaster** than we would have experienced previously. Additionally, we experiment\nvery heavily within our product changes, and this is facilitated much better\nand quicker when written in Compose and Kotlin.\"*\n\nThe code they write is not only more intuitive, but also faster to write, and easier to\nread: *\"Additionally, **our theming layer is vastly more intuitive and legible**\nand we've been able to accomplish within a single Kotlin file what otherwise\nextended across multiple XML files that were responsible for attribute\ndefinitions and assignments via multiple layered theme overlays. Reimplementing\nour entire theming structure within the context of Compose took only a matter\nof days to weeks, and has already proven to be much **more robust and intuitive**\nthan our legacy theme system ever has been.\"*\n\nGet started\n\nLearn more about [Compose](/jetpack/compose)."]]