توسعه کد تکراری

به‌عنوان یک توسعه‌دهنده تلفن همراه، اغلب به جای توسعه یک‌باره همه چیز، رابط کاربری اپلیکیشن خود را گام به گام توسعه می‌دهید. Android Studio این رویکرد را با Jetpack Compose با ارائه ابزارهایی که برای بازرسی، تغییر مقادیر و تأیید نتیجه نهایی نیازی به ساخت کامل ندارند، پذیرفته است.

ویرایش زنده

ویرایش زنده قابلیتی است که به شما امکان می دهد فایل های ترکیبی را در شبیه سازها و دستگاه های فیزیکی در زمان واقعی به روز کنید. این قابلیت تغییر زمینه بین نوشتن و ساختن برنامه را به حداقل می‌رساند و به شما امکان می‌دهد روی نوشتن کد طولانی‌تر بدون وقفه تمرکز کنید.

ویرایش زنده سه حالت دارد:

  • دستی: تغییرات کد زمانی اعمال می شوند که به صورت دستی با استفاده از Control+' ( Command+' در macOS) فشار داده شوند.
  • Manual on Save: تغییرات کد زمانی اعمال می شوند که به صورت دستی با استفاده از Control+S ( Command+S در macOS) ذخیره شوند.
  • خودکار: هنگامی که یک عملکرد قابل ترکیب را به روز می کنید، تغییرات در دستگاه یا شبیه ساز شما اعمال می شود.

ویرایش زنده بر روی تغییرات کد مربوط به UI و UX متمرکز است. ویرایش زنده از تغییراتی مانند به‌روزرسانی امضای روش، افزودن روش‌های جدید یا تغییرات سلسله مراتب کلاس پشتیبانی نمی‌کند. برای اطلاعات بیشتر، به فهرست محدودیت‌های ویرایش زنده مراجعه کنید.

این ویژگی جایگزینی برای ساخت و اجرای برنامه شما یا اعمال تغییرات نیست. درعوض، برای بهینه سازی گردش کار شما هنگام ساخت، استقرار و تکرار برای توسعه Compose UI طراحی شده است.

بهترین گردش کار عملی به شرح زیر است:

  1. برنامه خود را طوری تنظیم کنید که قابل اجرا باشد.
  2. ویرایش زنده تا حد امکان تا زمانی که نیاز به ایجاد تغییری داشته باشید که ویرایش زنده از آن پشتیبانی نمی‌کند، مانند افزودن روش‌های جدید در حین اجرای برنامه.
  3. پس از ایجاد یک تغییر پشتیبانی نشده، روی Run کلیک کنید نماد اجرا برای راه اندازی مجدد برنامه و از سرگیری ویرایش زنده.

با ویرایش زنده شروع کنید

برای شروع، این مراحل را دنبال کنید تا یک Compose Activity خالی ایجاد کنید، Live Edit را برای پروژه خود فعال کنید، و تغییراتی را با Live Edit ایجاد کنید.

پروژه جدید خود را تنظیم کنید

  1. قبل از شروع، مطمئن شوید که Android Studio Giraffe یا بالاتر را نصب کرده اید و سطح API دستگاه فیزیکی یا شبیه ساز شما حداقل 30 باشد.

  2. Android Studio را باز کرده و New Project را در گفتگوی Welcome to Android Studio انتخاب کنید. اگر قبلاً پروژه ای باز دارید، می توانید با پیمایش به File > New > New Project، یک پروژه جدید ایجاد کنید.

  3. الگوی Empty Compose Activity را برای تلفن و تبلت انتخاب کنید و سپس روی Next کلیک کنید.

    انتخاب قالب در اندروید استودیو
    شکل 1. الگوهایی که می توانید انتخاب کنید. برای ویرایش زنده، Empty Compose Activity را انتخاب کنید.
  4. گفتگوی پروژه جدید را با اطلاعات مورد نیاز تکمیل کنید: نام، نام بسته، مکان ذخیره، حداقل SDK، و زبان پیکربندی ساخت.

    نمونه تنظیمات پروژه از مرحله 4 وارد شده در Android Studio
    شکل 2. تنظیمات پروژه نمونه.
  5. روی Finish کلیک کنید.

ویرایش زنده را فعال کنید

  1. برای فعال کردن ویرایش زنده به تنظیمات بروید.

    • در ویندوز یا لینوکس، به File > Settings > Editor > Live Edit بروید.
    • در macOS، به Android Studio > Settings > Editor > Live Edit بروید.
  2. گزینه Live Edit و حالتی را که می خواهید اجرا کنید از تنظیمات انتخاب کنید.

    در حالت دستی، هر بار که Control+' ( Command+' در macOS) را فشار دهید، کد شما تغییر می کند. در حالت دستی در ذخیره، هر بار که به صورت دستی ذخیره می‌کنید، با استفاده از Control + S ( Command + S در macOS) تغییرات کد شما اعمال می‌شود. در حالت خودکار، تغییرات کد شما در دستگاه یا شبیه ساز شما اعمال می شود که تغییرات خود را انجام می دهید.

    رابط کاربری چک باکس ویرایش زنده در تنظیمات Android Studio
    شکل 3. تنظیمات ویرایش زنده.
  3. در ویرایشگر، فایل MainActivity را باز کنید که نقطه ورود برنامه شما است.

  4. روی Run کلیک کنیددکمه UI برای استقرار برنامه شما

  5. پس از اینکه ویرایش زنده را روشن کردید، علامت سبز به‌روز در سمت راست بالای پنجره ابزار Running Devices ظاهر می‌شود:

    رابط کاربری تیک سبز ویرایش زنده

ایجاد و بررسی تغییرات

با ایجاد تغییرات پشتیبانی شده در ویرایشگر، دستگاه تست مجازی یا فیزیکی به طور خودکار به روز می شود.

برای مثال، متد Greeting موجود در MainActivity را به صورت زیر ویرایش کنید:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

همانطور که در شکل 4 نشان داده شده است، تغییرات شما فوراً در دستگاه تست ظاهر می شود.

تغییرات در روش احوالپرسی روی دستگاه اعمال می‌شود
شکل 4. دستگاه را آزمایش کنید که تغییرات ویرایش زنده را به روش Greeting نشان می دهد.

عیب یابی ویرایش زنده

اگر ویرایش‌های خود را در دستگاه آزمایشی نمی‌بینید، ممکن است Android Studio ویرایش‌های شما را به‌روزرسانی نکرده باشد. بررسی کنید که آیا نشانگر Live Edit مطابق شکل 5 نشان داده شده است Out Of Date ، که نشان دهنده یک خطای کامپایل است یا خیر. برای اطلاع از خطا و پیشنهاداتی برای رفع آن، روی نشانگر کلیک کنید.

نماد ویرایش زنده قدیمی
شکل 5. نشانگر وضعیت ویرایش زنده.

محدودیت های ویرایش زنده

در زیر لیستی از محدودیت های فعلی آمده است.

  • [فقط برای Android Studio Giraffe و بالاتر اعمال می شود] ویرایش زنده به Compose Runtime نسخه 1.3.0 یا بالاتر نیاز دارد. اگر پروژه شما از نسخه پایین‌تری Compose استفاده می‌کند، ویرایش زنده غیرفعال است.

  • [فقط برای Android Studio Giraffe و بالاتر اعمال می شود] ویرایش زنده به AGP 8.1.0-alpha05 یا بالاتر نیاز دارد. اگر پروژه شما از نسخه پایین تر AGP استفاده می کند، ویرایش زنده غیرفعال است.

  • ویرایش زنده به یک دستگاه فیزیکی یا شبیه‌ساز نیاز دارد که دارای API سطح 30 یا بالاتر باشد.

  • ویرایش زنده فقط از ویرایش بدنه تابع پشتیبانی می کند، به این معنی که نمی توانید نام تابع یا امضا را تغییر دهید، یک تابع را اضافه یا حذف کنید، یا فیلدهای غیر عملکردی را تغییر دهید.

  • ویرایش زنده، اولین باری که یک تابع Compose را در یک فایل تغییر می‌دهید، وضعیت برنامه را بازنشانی می‌کند. این فقط پس از اولین تغییر کد اتفاق می افتد - وضعیت برنامه با تغییرات کد بعدی که در توابع Compose در آن فایل ایجاد می کنید، بازنشانی نمی شود.

  • کلاس‌های اصلاح‌شده با ویرایش زنده ممکن است جریمه عملکردی داشته باشند. اگر در حال ارزیابی عملکرد آن هستید، برنامه خود را اجرا کنید و از یک نسخه پاک استفاده کنید.

  • باید یک اجرای کامل را انجام دهید تا اشکال‌زدا روی کلاس‌هایی که با ویرایش زنده تغییر داده‌اید کار کند.

  • وقتی برنامه در حال اجرا را با ویرایش زنده ویرایش می کنید، ممکن است از کار بیفتد. اگر این اتفاق افتاد، می توانید برنامه را با Run مجدداً راه اندازی کنیددکمه UI دکمه

  • Live Edit هیچ گونه دستکاری بایت کدی را که در فایل ساخت پروژه شما تعریف شده است انجام نمی دهد - به عنوان مثال، دستکاری بایت کدی که هنگام ساخت پروژه با استفاده از گزینه های موجود در منوی Build یا با کلیک بر روی دکمه های Build یا Run اعمال می شود.

  • توابع غیرقابل ترکیب به‌طور زنده در دستگاه یا شبیه‌ساز به‌روزرسانی می‌شوند و ترکیب مجدد کامل آغاز می‌شود. ترکیب مجدد کامل ممکن است تابع به روز شده را فراخوانی نکند. برای توابع غیرقابل ترکیب، باید توابع به‌روزرسانی‌شده را فعال کنید یا دوباره برنامه را اجرا کنید.

  • با راه‌اندازی مجدد برنامه، ویرایش زنده از سر نمی‌گیرد. باید دوباره برنامه را اجرا کنید.

  • ویرایش زنده فقط از فرآیندهای قابل اشکال‌زدایی پشتیبانی می‌کند.

  • Live Edit از پروژه هایی که از مقادیر سفارشی برای moduleName تحت kotlinOptions در پیکربندی ساخت استفاده می کنند، پشتیبانی نمی کند.

  • ویرایش زنده با استقرار چندگانه کار نمی کند. این بدان معنی است که شما نمی توانید در یک دستگاه و سپس به دستگاه دیگر مستقر شوید. «ویرایش زنده» فقط در آخرین مجموعه دستگاه‌هایی فعال است که برنامه در آنها مستقر شده است.

  • ویرایش زنده با استقرار چند دستگاهی کار می کند (استقرار در چندین دستگاه که از طریق انتخاب چندین دستگاه در منوی کشویی دستگاه هدف ایجاد شده است). با این حال، به طور رسمی پشتیبانی نمی شود و ممکن است مشکلاتی وجود داشته باشد. اگر مشکلی دارید، لطفاً آنها را گزارش کنید .

  • اعمال تغییرات/ اعمال تغییرات کد با ویرایش زنده سازگار نیست و نیاز به راه اندازی مجدد برنامه در حال اجرا دارد.

  • ویرایش زنده در حال حاضر از پروژه‌های Android Automotive پشتیبانی نمی‌کند.

سوالات متداول در مورد ویرایش زنده

  • وضعیت فعلی ویرایش زنده چگونه است؟

    ویرایش زنده در Android Studio Giraffe در دسترس است. برای روشن کردن آن، به File > Settings > Editor > Live Edit ( Android Studio > Settings > Editor > Live Edit در macOS) بروید.

  • چه زمانی باید از ویرایش زنده استفاده کنم؟

    زمانی که می‌خواهید تأثیر به‌روزرسانی‌های عناصر UX (مانند به‌روزرسانی‌های اصلاح‌کننده و انیمیشن‌ها) را بر روی تجربه کلی برنامه به‌سرعت ببینید، از ویرایش زنده استفاده کنید.

  • چه زمانی باید از استفاده از ویرایش زنده اجتناب کنم؟

    ویرایش زنده بر روی تغییرات کد مربوط به UI و UX متمرکز است. از تغییراتی مانند به‌روزرسانی امضای روش، افزودن روش‌های جدید یا تغییرات سلسله مراتب کلاس پشتیبانی نمی‌کند. برای اطلاعات بیشتر، محدودیت‌های ویرایش زنده را ببینید.

  • چه زمانی باید از Compose Preview استفاده کنم؟

    هنگامی که در حال توسعه ترکیب‌پذیرهای فردی هستید، از پیش‌نمایش نوشتن استفاده کنید. پیش‌نمایش عناصر Compose را تجسم می‌کند و به‌طور خودکار برای نمایش اثر تغییرات کد، تازه‌سازی می‌شود. پیش‌نمایش همچنین از مشاهده عناصر UI تحت پیکربندی‌ها و حالت‌های مختلف مانند تم تیره، مناطق محلی و مقیاس فونت پشتیبانی می‌کند.

ویرایش زنده literals (منسوخ شده)

Android Studio می‌تواند برخی از لفظ‌های ثابت مورد استفاده در composable‌ها را در پیش‌نمایش‌ها، شبیه‌سازها و دستگاه‌های فیزیکی در زمان واقعی به‌روزرسانی کند. در اینجا برخی از انواع پشتیبانی شده وجود دارد:

  • Int
  • String
  • Color
  • Dp
  • Boolean

ویدئویی از تغییر کلمات توسط کاربر در کد منبع و به‌روزرسانی پویا پیش‌نمایش

می‌توانید با فعال کردن تزئینات تحت اللفظی از طریق نشانگر ویرایش زنده UI literals، حروف ثابتی را که به‌روزرسانی‌های بلادرنگ را راه‌اندازی می‌کنند، بدون مرحله کامپایل مشاهده کنید:

فعال کردن ویرایش زنده Literals

اعمال تغییرات

Apply Changes به شما امکان می دهد کد و منابع را بدون نیاز به استقرار مجدد برنامه خود در یک شبیه ساز یا دستگاه فیزیکی (با برخی محدودیت ها ) به روز کنید.

هر زمان که اجزای سازنده را اضافه، اصلاح یا حذف می‌کنید، می‌توانید با کلیک بر روی دکمه اعمال تغییرات کد، برنامه خود را بدون نیاز به استقرار مجدد آن به‌روزرسانی کنید:

کاربر روی دکمه "اعمال تغییرات" کلیک می کند

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}