تبدیل نرم افزار اندروید به Jetpack – به لهجه معمولی
گوگل به تازگیً مبادرت به برندسازی دوباره برای «کتابخانههای مدد» (Support Libraries) اندروید کرده و آنانرا Jetpack نامیده میباشد. گسترشدهندگان بایستی بهاین مراد تغییراتی را در نرم افزارهای خویش ساختوساز نمایند. درین نوشته ی علمی به توضیح ماهیت جتپک و طرز شروع تبدیل پروژه برای به کار گیری از کامپوننتهای طراحی اپلیکیشن در مشهد نو می پردازیم.
جتپک چیست؟
Android Jetpack به گروهای از کتابخانهها، ابزارها و پندهای مرتبط با معماری گفته میگردد که به مراد تسهیل ایجاد کرد نرم افزارهای اندرویدی پیاده سازی گردیدهاند. مقصود از ارائه این موسسه ساختوساز یک کد زیرساخت مشترک میباشد تا گسترشدهندگان بتوانند روی تایپ کردن چیزهایی که نرم افزارشان را مخصوص میسازد متمرکز شوند.
کلیک فرمائید
این موسسه کارایی متعددی در جهت بهبود تجربیات پیشرفتدهنده و عدهآوری ابزارها و فریمورکهای اثر گذار در یک پوسته واحد شکل داده میباشد. آلن ویورته (Alan Viverette) از اعضای دسته فریمورک اندروید این حالت را به طور تحت خلاصه نموده است:
جتپک یک کارایی کلان برای بهبود تجربیات گسترشدهنده میباشد؛ البته AndroidX یک بنیاد فنی صورت می دهد؛ گرچه از نقطه حیث فنی ما همچنان با کتابخانههایی که در نصیبهای Support Library و Architecture Components شاهد بودیم، رمز و عمل داریم.
چرا جتپک ساخت و ساز شد؟
شاید از خویش بپرسید در حالتی که کلیه این ابزارها از قبلی وجود داشتند، پس چرا گوگل این تمامی خویش و گسترشدهندگان را به زحمت انداخته میباشد؟
برای جواب به سؤال فوق می بایست به فهرست مزیتهای جتپک اشاره کنیم:
ساختوساز یک فضای اسم سازگار (*.androidx) برای کتابخانههای تامین
حمایت عالی از ورژنبندی معنایی برای آنچه ساخته میگردد (که از 1.0.0 شروع میگردد)
تولید یک چتر مشترک برای پیشرفت کلیه کامپوننتهای حمایت تحت اسم واحد
همینطور قابل ذکر میباشد که ورژن کنونی از (AppCompat(v28.x، ورژن پایانی به حساب میآید. ورژنهای آینده این کد فقطً به طور جتپک خواهند بود. براین اساس پیشرفتدهندگان بایستی از این مورد دوراندیشی داشته و هر چه سریعخیس به جتپک سوئیچ نمایند.
ماهیت حقیقی Jetpack چیست؟
جواب کوتاه به سؤال فوق این میباشد که جتپک کلیه چیز میباشد. در واقع جتپک تیمای از کتابخانههای فراوان جان دار میباشد که اکثر اوقات گسترشدهندهها از آنان به کارگیری مینمایند (مانند AppCompat, Permissions, Notifications یا این که Transitions) و همینطور کامپوننتهای معماری جدیدتر که در سالهای اخیر معرفی گردیدهاند (مانند LiveData, Room, WorkManager یا این که ViewModel) را نیز مشتمل بر می شود.
کلیک فرمائید
بسطدهندگان می توانند به عبارتی انتظاراتی را که از AppCompat داشتند از جتپک نیز داشته باشند که مشمول سازش با ورژنهای قبل و چرخههای نشر راجعبه با بهروزرسانیهای سیستم استدلال میباشد.
کامپوننتهای جتپک
آیا بایستی همین الان افزایش بدهیم و آیا میقدرت فقطً بخشی از کد را بهروزرسانی کرد؟
الزامی برای بهروزرسانی سریع نیست، ولی بایستی در بعدی مجاورت همگی توسعه و گسترشدهندگان از جتپک به کار گیری نمایند. ورژن کنونی (AppCompat (v28.x دقیقاً به عبارتی ورژن (AndroidX (v1.x میباشد. در واقع کتابخانههای AppCompat با عوض کردن خصوصیات maven و اسمهای بسته کدبیس AndroidX از سوی ماشین ساختوساز گردیدهاند. برای مثال خصوصیات و بستههای کهن به طور پایین بودند:
implementation “com.android.support:appcompat-v7:28.0.0"
import android.support.v4.widget.DrawerLayout
و فعلا به طور پایین می باشند:
implementation \'androidx.appcompat:appcompat:1.0.2\'
import androidx.drawerlayout.widget.DrawerLayout
قابل ذکر میباشد که نمیاقتدار AppCompat و Jetpack را در یک پروژه با هم استفاده نمود. در شرایطیکه می خواهید به جتپک افزایش دهید، بایستی تمامی چیز را در کد خویش بهروزرسانی فرمایید.
قدم نخستین – ارتقای نرم افزار به جدیدترین کتابخانههای نگهبانی
هنگامی که برای ارتقاء به Jetpack فراهم بودید، آغاز بایستی مطمئن گردید که اپلیکیشنتان از جدیدترین ورژن از Gradle و AppCompat به کار گیری مینماید. بنابراین این یقین نتیجه ها می گردد که refactor فقط اسمهای بسته را تغییرو تحول میدهد و اشتباهات گرانقدرتری که با بهروزرسانیهای کتابخانه مرتبط می باشند فیس نمیدهند.
بهروزرسانی پروژه بسیار اساسی میباشد و هر مشکلی مانند تعلق منسوخ به یک ورژن قدمی از کتابخانه که با جنبش دراین مسیر ممکن میباشد فیس دهد را فاش مینماید. درحالتی که نمیتوانید به جدیدترین ورژنها بهروزرسانی فرمایید، بایستی مشکلاتی را که وجود داراست، قبل از ادامه روند رفع فرمائید. به طبعً محرمانه بهاین نشانی (+) بزنید و داده ها تعلق جدیدترین ورژن از Gradle را رسیدگی نمائید.
به کار گیری از ابزار Refactor برای بهروزرسانی پروژه
وقتی که پروژه خویش را ارتقاء دادید، می توانید از ابزار Refactor در اندروید استودیو برای مرمت پروژه خویش استعمال نمائید. این ابزار را می توانید از مسیر Refactor\\Refactor to AndroidX مانند تصویر تحت انجام فرمایید:
ابزار نوسازی AndroidX در اندروید استودیو
این ابزار نرم افزار شمارا پژوهش مینماید و پیشنمایشی از تغییرات ضروری را علامت میدهد:
درصورتی که مشکلی با این تغییرات ندارید، می توانید دکمه «Do Refactor» را گزینش فرمائید تا ابزار تبدیل، 3 تغییر تحول ذیل را روی نرم افزار شما جاری ساختن دهد:
بهروزرسانی ایمپورتها برای اکران اسمهای بستههای نو
فقط اسم بستهها تغییر تحول مییابد و تمامی چیز به به عبارتی شرایط نخستین خواهد بود.
بهروزرسانی خصوصیات Gradle برای تعلقهای شما
اعتنا نمایید که عبارت «compile» به طور دستی با «implementation» جایگزین شدهاست و ابزار فوق این فعالیت را اجرا نمیدهد.
افزون 2 فلگ به پوشه gradle.properties. فلگ نخستین به پلاگین اندروید اعلام مینماید که از بستههای AndroidX به مکان AppCompat استعمال نماید و فلگ دوم سبب فعال سازی Jetifier میگردد. Jetifier ابزاری میباشد که به به کار گیری از کتابخانههای بیرونی امداد مینماید و در قسمت آتی در زمینهی آن توضیح بیشتری ارائه می کنیم.
true
android.enableJetifier=true
کلاً این تغییرات را میاقتدار در 3 مسئله تعریف کرد؛ البته تغییرات دیگری نیز وجود دارااست که ابزار مرمت انجام مینماید. این ابزار کدی که مسئول Kotlin Nullability میباشد را به کد شما اضافه مینماید و همینطور برخی تغییرات دیگر نیز وجود داراهستند. عالی میباشد همگی تغییراتی کهاین ابزار در کد تولید مینماید را به اعتنا گزینه پژوهش قرار دهید و مطمئن گردید که کلیه این تغییرات اشکالی در فعالیت نرم افزار شما تولید نخواهند کرد.
Jetifier
ابزار Refactor اندروید استودیو فقط تغییراتی را در کد منبع پروژه شما ساخت مینماید. این ابزار نمیتواند تغییراتی در کتابخانهها یا این که تعلقهای بیرونی ساخت و ساز نماید. به همین استدلال گوگل ابزاری به اسم Jetifier ساخت نموده است که طوری پیاده سازی شدهاست تا «تعلقهای ترایا» (Transitive dependency) را در حین build به کتابخانههای AndroidX تبدیل نماید. درحالتی که این ابزار وجود نمیداشت، می بایت چشم به راه میماندیم تا همگی کتابخانههای فرد ثالث بهروزرسانی ارائه میکردند تا بتوانیم از AndroidX استعمال کنیم.
به جز این که میدانیم این ابزار با به کار گیری از فلگ gradle عمل مینماید داده ها چندانی در زمینهی آن نیست، چون به صورت اتومات فعالیت مینماید و به هیچ تنظیمات نیاز ندارد. گوگل به تازگیً اعلام نموده است که آیتم مستقلی برای اجرای running ارائه نموده است. حتی میاقتدار آن را در وضعیت معکوس (reverse mode) نیز اعمال کرد که موجب de-jetify شدن کد میشود. این وضعیت برای دیباگ کردن بسیار اثر گذار میباشد.
تبدیل نرم افزار اندروید به Jetpack – به لهجه معمولی
گوگل به تازگیً مبادرت به برندسازی دوباره برای «کتابخانههای مدد» (Support Libraries) اندروید کرده و آنانرا Jetpack نامیده میباشد. گسترشدهندگان بایستی بهاین مراد تغییراتی را در نرم افزارهای خویش ساختوساز نمایند. درین نوشته ی علمی به توضیح ماهیت جتپک و طرز شروع تبدیل پروژه برای به کار گیری از کامپوننتهای طراحی اپلیکیشن در مشهد نو می پردازیم.
جتپک چیست؟
Android Jetpack به گروهای از کتابخانهها، ابزارها و پندهای مرتبط با معماری گفته میگردد که به مراد تسهیل ایجاد کرد نرم افزارهای اندرویدی پیاده سازی گردیدهاند. مقصود از ارائه این موسسه ساختوساز یک کد زیرساخت مشترک میباشد تا گسترشدهندگان بتوانند روی تایپ کردن چیزهایی که نرم افزارشان را مخصوص میسازد متمرکز شوند.
کلیک فرمائید
این موسسه کارایی متعددی در جهت بهبود تجربیات پیشرفتدهنده و عدهآوری ابزارها و فریمورکهای اثر گذار در یک پوسته واحد شکل داده میباشد. آلن ویورته (Alan Viverette) از اعضای دسته فریمورک اندروید این حالت را به طور تحت خلاصه نموده است:
جتپک یک کارایی کلان برای بهبود تجربیات گسترشدهنده میباشد؛ البته AndroidX یک بنیاد فنی صورت می دهد؛ گرچه از نقطه حیث فنی ما همچنان با کتابخانههایی که در نصیبهای Support Library و Architecture Components شاهد بودیم، رمز و عمل داریم.
چرا جتپک ساخت و ساز شد؟
شاید از خویش بپرسید در حالتی که کلیه این ابزارها از قبلی وجود داشتند، پس چرا گوگل این تمامی خویش و گسترشدهندگان را به زحمت انداخته میباشد؟
برای جواب به سؤال فوق می بایست به فهرست مزیتهای جتپک اشاره کنیم:
ساختوساز یک فضای اسم سازگار (*.androidx) برای کتابخانههای تامین
حمایت عالی از ورژنبندی معنایی برای آنچه ساخته میگردد (که از 1.0.0 شروع میگردد)
تولید یک چتر مشترک برای پیشرفت کلیه کامپوننتهای حمایت تحت اسم واحد
همینطور قابل ذکر میباشد که ورژن کنونی از (AppCompat(v28.x، ورژن پایانی به حساب میآید. ورژنهای آینده این کد فقطً به طور جتپک خواهند بود. براین اساس پیشرفتدهندگان بایستی از این مورد دوراندیشی داشته و هر چه سریعخیس به جتپک سوئیچ نمایند.
ماهیت حقیقی Jetpack چیست؟
جواب کوتاه به سؤال فوق این میباشد که جتپک کلیه چیز میباشد. در واقع جتپک تیمای از کتابخانههای فراوان جان دار میباشد که اکثر اوقات گسترشدهندهها از آنان به کارگیری مینمایند (مانند AppCompat, Permissions, Notifications یا این که Transitions) و همینطور کامپوننتهای معماری جدیدتر که در سالهای اخیر معرفی گردیدهاند (مانند LiveData, Room, WorkManager یا این که ViewModel) را نیز مشتمل بر می شود.
کلیک فرمائید
بسطدهندگان می توانند به عبارتی انتظاراتی را که از AppCompat داشتند از جتپک نیز داشته باشند که مشمول سازش با ورژنهای قبل و چرخههای نشر راجعبه با بهروزرسانیهای سیستم استدلال میباشد.
کامپوننتهای جتپک
آیا بایستی همین الان افزایش بدهیم و آیا میقدرت فقطً بخشی از کد را بهروزرسانی کرد؟
الزامی برای بهروزرسانی سریع نیست، ولی بایستی در بعدی مجاورت همگی توسعه و گسترشدهندگان از جتپک به کار گیری نمایند. ورژن کنونی (AppCompat (v28.x دقیقاً به عبارتی ورژن (AndroidX (v1.x میباشد. در واقع کتابخانههای AppCompat با عوض کردن خصوصیات maven و اسمهای بسته کدبیس AndroidX از سوی ماشین ساختوساز گردیدهاند. برای مثال خصوصیات و بستههای کهن به طور پایین بودند:
implementation “com.android.support:appcompat-v7:28.0.0"
import android.support.v4.widget.DrawerLayout
و فعلا به طور پایین می باشند:
implementation \'androidx.appcompat:appcompat:1.0.2\'
import androidx.drawerlayout.widget.DrawerLayout
قابل ذکر میباشد که نمیاقتدار AppCompat و Jetpack را در یک پروژه با هم استفاده نمود. در شرایطیکه می خواهید به جتپک افزایش دهید، بایستی تمامی چیز را در کد خویش بهروزرسانی فرمایید.
قدم نخستین – ارتقای نرم افزار به جدیدترین کتابخانههای نگهبانی
هنگامی که برای ارتقاء به Jetpack فراهم بودید، آغاز بایستی مطمئن گردید که اپلیکیشنتان از جدیدترین ورژن از Gradle و AppCompat به کار گیری مینماید. بنابراین این یقین نتیجه ها می گردد که refactor فقط اسمهای بسته را تغییرو تحول میدهد و اشتباهات گرانقدرتری که با بهروزرسانیهای کتابخانه مرتبط می باشند فیس نمیدهند.
بهروزرسانی پروژه بسیار اساسی میباشد و هر مشکلی مانند تعلق منسوخ به یک ورژن قدمی از کتابخانه که با جنبش دراین مسیر ممکن میباشد فیس دهد را فاش مینماید. درحالتی که نمیتوانید به جدیدترین ورژنها بهروزرسانی فرمایید، بایستی مشکلاتی را که وجود داراست، قبل از ادامه روند رفع فرمائید. به طبعً محرمانه بهاین نشانی (+) بزنید و داده ها تعلق جدیدترین ورژن از Gradle را رسیدگی نمائید.
به کار گیری از ابزار Refactor برای بهروزرسانی پروژه
وقتی که پروژه خویش را ارتقاء دادید، می توانید از ابزار Refactor در اندروید استودیو برای مرمت پروژه خویش استعمال نمائید. این ابزار را می توانید از مسیر Refactor\\Refactor to AndroidX مانند تصویر تحت انجام فرمایید:
ابزار نوسازی AndroidX در اندروید استودیو
این ابزار نرم افزار شمارا پژوهش مینماید و پیشنمایشی از تغییرات ضروری را علامت میدهد:
درصورتی که مشکلی با این تغییرات ندارید، می توانید دکمه «Do Refactor» را گزینش فرمائید تا ابزار تبدیل، 3 تغییر تحول ذیل را روی نرم افزار شما جاری ساختن دهد:
بهروزرسانی ایمپورتها برای اکران اسمهای بستههای نو
فقط اسم بستهها تغییر تحول مییابد و تمامی چیز به به عبارتی شرایط نخستین خواهد بود.
بهروزرسانی خصوصیات Gradle برای تعلقهای شما
اعتنا نمایید که عبارت «compile» به طور دستی با «implementation» جایگزین شدهاست و ابزار فوق این فعالیت را اجرا نمیدهد.
افزون 2 فلگ به پوشه gradle.properties. فلگ نخستین به پلاگین اندروید اعلام مینماید که از بستههای AndroidX به مکان AppCompat استعمال نماید و فلگ دوم سبب فعال سازی Jetifier میگردد. Jetifier ابزاری میباشد که به به کار گیری از کتابخانههای بیرونی امداد مینماید و در قسمت آتی در زمینهی آن توضیح بیشتری ارائه می کنیم.
true
android.enableJetifier=true
کلاً این تغییرات را میاقتدار در 3 مسئله تعریف کرد؛ البته تغییرات دیگری نیز وجود دارااست که ابزار مرمت انجام مینماید. این ابزار کدی که مسئول Kotlin Nullability میباشد را به کد شما اضافه مینماید و همینطور برخی تغییرات دیگر نیز وجود داراهستند. عالی میباشد همگی تغییراتی کهاین ابزار در کد تولید مینماید را به اعتنا گزینه پژوهش قرار دهید و مطمئن گردید که کلیه این تغییرات اشکالی در فعالیت نرم افزار شما تولید نخواهند کرد.
Jetifier
ابزار Refactor اندروید استودیو فقط تغییراتی را در کد منبع پروژه شما ساخت مینماید. این ابزار نمیتواند تغییراتی در کتابخانهها یا این که تعلقهای بیرونی ساخت و ساز نماید. به همین استدلال گوگل ابزاری به اسم Jetifier ساخت نموده است که طوری پیاده سازی شدهاست تا «تعلقهای ترایا» (Transitive dependency) را در حین build به کتابخانههای AndroidX تبدیل نماید. درحالتی که این ابزار وجود نمیداشت، می بایت چشم به راه میماندیم تا همگی کتابخانههای فرد ثالث بهروزرسانی ارائه میکردند تا بتوانیم از AndroidX استعمال کنیم.
به جز این که میدانیم این ابزار با به کار گیری از فلگ gradle عمل مینماید داده ها چندانی در زمینهی آن نیست، چون به صورت اتومات فعالیت مینماید و به هیچ تنظیمات نیاز ندارد. گوگل به تازگیً اعلام نموده است که آیتم مستقلی برای اجرای running ارائه نموده است. حتی میاقتدار آن را در وضعیت معکوس (reverse mode) نیز اعمال کرد که موجب de-jetify شدن کد میشود. این وضعیت برای دیباگ کردن بسیار اثر گذار میباشد.

کارداران اثر گذار بر CPC در تبلیغات