ساخت کتابخانه برای اندروید

بسم الله الرحمن الرحیمسلام امروز میخواهیم اموزش ساخت کتابخونه و انتشارش در jitpack به شکل عمومی و خصوصی رو بدم با این کار میتونید کتابخونه واسه خودتون بسازید واونو در Github به انتشار بزارید و یا به شکل خصوصی با Gitlab این کار انجام بدین و اونو تو تمام پروژه هاتون استفاده کنید در واقع همون implementation که مال کتابخونه ها هست و با اضافه کردنش به اندروید استدیو کتابخونهش به اندروید استدیو اضافه میشه میگم امیدوارم خوشتون بیاد :)سناریو زیر دنبال کنید تا دستتون بیادخوب اول باید یک پروژه در اندروید استدیو ایجاد کنیم و اسمشو مثلا بزاریم LogShow که کار این پروژه و کتابخونه اینکه یک تابع داره و بهش یک استرینگ میدیم و اونو log میکنه !حالا زمان ساخت کتابخونست به مسیر زیر بریدFile > New > New Module...بعد Android Library رو انتخاب و NEXT بزنید و اطلاعات مثل تصویر زیر پر کنید و FINISH بزنیدکتابخونتون امادست :)خوب برای اینکه بتونید از کتابخونه در این پروژه استفاده کنید باید اونو ایمپورتش کنید اول به settings.gradle برید و دو تا include دی را به شکل زیر تغییر بدین در واقع یک include دش کنیدinclude ':app' , ':logshow'چون اگه دو تا باشه تو پروژه فعلی نمیشه روش تست زد و یک پروژه دیگه در نظر میگیره ! و بعد برین به build.gradle (Module: app)و کتابخونه که ساختید به پروژه فعلی اضافه کنید در dependencies ها خط زیر را اضافه کنیدdependencies { . . . implementation project(':logshow') }و بعد Sync کنید پروژه روحالا به پوشه کتابخونتون بریم و یک کلاس کاتلینی به نام LogShow بسازیدو کد های زیر داخلش بزارید کد خاصی نیست یک تابست که یک رشته میگیره و log میکنهclass LogShow { fun logShow(value: String) { Log.i(&quotTAG&quot, value) } }خوب حله در واقع الان کتابخونتون امادست و حالا میریم یه تستی ازش تو پروژه فعلی بگیریم در واقع یک example واسش درست کنیم ! در MainActivity پروژه فعلی کد های زیر بزارید در واقع یک رشته دارم log میکنم با کتابخونه ای که ساختیمclass MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val showLog = LogShow() showLog.logShow(&quotHello World!&quot) } }خوب بعد اجرا متن Hello World! در logcat به نمایش در میاد !خوب تا اینجا امید وارم خسته نشده باشید الان در واقع کتابخونه رو ساختیم و example رو هم ساختیم و حالا موقع انتشارش هست حالا چه بصورت عمومی یا خصوصی !خوب در جریان هستین که دو سرویس میزبانی وب برای پروژه‌های سیستم سورس کنترل گیت به نام Github و Gitlab موجوده البته سرویس های میزبانی دیگریم هستن ولی ما تو این اموزش از این دو استفاده میکنیم Github به شکل رایگان به ما اجازه میده سورس رو به شکل عمومی انتشار بدیم و خصوصیش رو باید پول بدیم و Gitlab هم عمومی و هم خصوصی رو رایگان میده ولی چون Github عمومیت بیشتری تو انتشار به شکل عمومی داره ما در این اموزش از Github برای انتشار عمومی و Gitlab برای انتشار خصوصی استفاده میکنیم !خوب اول به شکل عمومیبا اکانت Github وارد سایتش بشید و یک New repository ایجاد کنیدخوب اطلاعات مربوط به remote شدن(به شکل https) به Git و commit شدنشو تو Terminal اندروید استدیو بزنیدبه شکل زیر عمل کنیدgit init git add . git commit -a -m &quotfirst commit&quot git remote add origin https://github.com/flashiran1/LogShow.git git push -u origin masterاین ادرس https://github.com/flashiran1/LogShow.git ادرس Github منه مال شما فرق داره بعد ساخت repository به شما میده ادرس رو!ممکنه در push کردن ازتون نام کاربری و رمز بخواد که مال Github تون رو وارد کنید !خوب بریم به اندروید استدیو !در (top build پروژه)build.gradle (Project: LogShow)خط زیر را در dependencies اضافه کنیدdependencies { . . . classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' }در (build کتابخونه)build.gradle (Module: logshow)خط زیر را در بالا خطوط اضافه کنید . . . apply plugin: 'com.github.dcendents.android-maven' group='com.github.your_github_name' android { . . .در group باید در واقع اسم پکیج بزارید که بعدن با اون میشه implementation کرد !من به شکل زیر میزارمgroup='com.github.flashiran1'خوب حالا Sync کنید و پروژه رو به شکل زیر در Terminal به Github اضافه کنیدgit add . git commit -a -m &quotadd maven&quot git push -u origin masterخوب در Github پروژه برید به releases و Create a new release بزنیدو اطلاعات به شکل زیر پر کنید و روی Publish release بزنیددر واقع دارید نسخه نهایی صادر میکنید واسه پروژه بعد تغییرات مثلا زیاد :)خوب ورژن 0.0.1 امادست .خوب برید به سایت https://jitpack.io/و در کادر , url که از سایت Github دریافت کردید رو وارد کنید و Look up بزنید و :) :) implementation شما امادست :)))بجای Tag ورژن بزارید مال من شدdependencies { implementation 'com.github.flashiran1:LogShow:0.0.1' }در واقع خود jitpack میره از Github با url مربوط به پروژه implementation شو میگیرهخوب این implementation تو هر پروژه ای میتونید استفاده کنید و به هر کسی بدیم چون عمومیه و حتی میتونید یک README.md تو پروژه Github تان بسازید و اونجا واسه عموم بزارید با توضحیات کتابخونه و...بریم برای خصوصیخوب تقریبا مثل عمومیه ولی یک سری جاش فرق داره من همین پروژه واسه خصوصی تغیر میدم !خوب وارد اکانت Gitlab بشید و New project کنید و اطلاعات مثل تصویر زیر پر کنید و روی Create project بزنیدخوب از پروژه قبل باید اول قسمت group تغییر بدیم و بعد remote مال Github رو حذف کنیم و مال Gitlab که بعد ساخت پروژه دریافت کردید اضافه کنیم و بعد به Gitlab پوش کنیمبه شکل زیر اول تغییر group در (build کتابخونه)build.gradle (Module: logshow)به شکل زیرgroup='com.gitlab.flashiran1'من این شکلیش کردم خودتون میتونید چیز دیگری بزاریدو بعد در Terminal این کد ها رو میزنیم تا پروژه در Gitlab پوش بشهgit add . git commit -a -m &quotcheng group&quot git remote remove origin git remote add origin https://gitlab.com/flashiran1/logshow.git git push -u origin masterممکنه ازتون در push نام کاربری و رمز Gitlab رو بخواد که واردش کنید !خوب حالا برید به Settings در سایت Gitlabو بعد در Access Tokens یک توکن جدید بگیرید اطلاعات مثل زیر پر و تیک بزنید ! (در واقع دارین دسترسی میدید به jitpack تا پروژه های شما رو ببینه)خوب یک Access Token به من میده حالا این Access Token سایت Gitlab رو کپی میکنیم و میریم سایت jitpack حالا در بالای سایت روی Sign In میزنیم و وارد سایت میشیم بر روی منو که همون جایی که Sign In بود میزنیم و روی Settings میزنیم و کد دریافتی از Gitlab در قسمت GitLab.com وارد میکنیم (در این قسمت برای انتشار خصوصی میشه از بقیه سرویس های ورژن کنترل گیت هم استفاده کرد !) و جایی در صفحه کلیک میکنیم تا تیک سبز بزنه !(این قسمت خیلی بد طراحی کردن قبول دارم!)خوب حالا بریم به اول سایت jitpack و ادرس https سایت Gitlab تان را در کادر وارد و lookup بزنیدواسه من ادرسش هستhttps://gitlab.com/flashiran1/logshow.gitو تمام :) همینجوری که مشاهده میکنید implementation به شما داد ! حالا کتابخونه خصوصی شد و برای استفاده تو پروژه باید از Access Token استفاده کنید !حالا برای استفاده از حالت خصوصی در پروژه دیگر باید اول Access Token از صفحه settings سایت jitpack کپی کنیدبعد کپی برین تو پروژه که میخواید از این کتابخونه خصوصی استفاده کنید در gradle.properties پروژه در اخر فایل خط زیر را اضافه کنیدauthToken=jp_jc6evn28vncnt305fivq6s37i6همون کد سایت jitpack جای jp_jc6evn28vncnt305fivq6s37i6 بزاریدو در (top build پروژه)build.gradle (Project: NewProject)خطوط زیر را در allprojects و dependencies اضافه کنیدallprojects { repositories { . . . maven { url &quothttps://jitpack.io&quot credentials { username authToken } } } }و در build.gradle (Module: app)و implementation که از jitpack گرفتید در و dependencies ها اضافه کنید مال من اینجوریهdependencies { implementation 'com.gitlab.flashiran1:logshow:0.0.1' }و Sync کنید میبینید که کتابخونه به پروژه اضافه شدخسته نباشید اموزش تموم شد امیدوارم خوشتون اومده باشه ببخشید بخاطر اینکه یکم زیاد شد چون می خواستم همه رو توضیح بدممنابع که استفاده کردم Publish an Android libraryPrivate RepositoriesPublish an Android Library by JitPackPublish an Android Library by GITLABو خودم :)