محمد باقر فکوری
محمد باقر فکوری
خواندن ۹ دقیقه·۵ سال پیش

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

بسم الله الرحمن الرحیم

سلام امروز میخواهیم اموزش ساخت کتابخونه و انتشارش در 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 library

Private Repositories

Publish an Android Library by JitPack

Publish an Android Library by GITLAB

و خودم :)

برنامه نویسیgitlabgithub
برنامه نویس | تلگرام @mbfakourii | ایمیل mbfakourii@gmail.com
شاید از این پست‌ها خوشتان بیاید