لایبرری چیه و نحوه استفاده ازش چجوریه؟

سلام آرش

لایبرری چیه و نحوه استفاده ازش چجوریه؟

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

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

library (1)

از اونجایی که ذهن خود من با مثال بهتر کار میکنه اجازه بدید مثالی بزنم. فرض کنید من میخوام یک اپلیکیشن اندرویدی بنویسم که برای انجام کاری، ناچاره که این توانایی رو داشته باشه که ‌QRکدها رو اسکن کنه و اطلاعات توشون رو استخراج کنه. خب احتمالا یه راه اینه که با گرفتن دسترسی به دوربین گوشی، تصویر QRکد رو بگیرم و بعد از اسکن کردنش، پردازشش کنم و بتونم دیتای توش رو بخونم. خب این راه ساده‌ای نیست و لازمه‌ش اینه که بکگراند خوبی از پردازش تصویر داشته باشیم و حتی در این صورت هم ممکنه خیلی زمانبر باشه. راه دیگه چیه؟ راه دیگه اینه که بیام از کدی که قبلا نوشته شده و تست شده استفاده کنم. یعنی کتابخونه‌ای رو پیدا کنم که کار اسکن QRکد رو انجام میده و با وصل کردن این کتابخونه به پروژه خودم، از طریق APIاش بهش دسترسی پیدا کنم و کار اسکن کردن و استخراج دیتا از QRکد رو به طور کامل بسپرم به اون.

کتابخونه‌ها رو یا شرکتها مینویسند و یا به طور داوطلبانه توسط برنامه‌نویس‌های دوست داشتنی نوشته میشه. این کتابخونه‌ها میتونند آزاد یا انحصاری باشند. کتابخونه‌های آزاد کتابخونه‌هایی هستند که کاملا در دسترس شما هستند و برای استفاده از اون (به هر روشی) نیازی نیست از کسی اجازه بگیرید یا پولی بدید. مثل کتابخونه zxing که برای خوندن QRکد استفاده میشه و توسط گوگل توسعه داده شده. کتابخونه‌های انحصاری هم نقطه مقابل کتابخونه‌های بالا هستند. مثل .NET مایکروسافت.

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

حقیقتا این سوال به شدت به پلتفورم و زبانی که با اون برنامه‌نویسی میکنید برمیگرده. مثلا اگر میخواید کتابخونه‌ای برای پایتون نصب کنید، میتونید خیلی راحت با استفاده از ابزار pip، اون رو دانلود و نصب کنید و بعد از import اون تو پروژه، ازش استفاده کنید. و یا اگر قصد استفاده از یک کتابخونه جاوا رو دارید، باید فایل jar اون کتابخونه رو پیدا کنید و به پروژه اضافه کنید.

در مورد اندروید اخیرا همه چیز ساده‌تر شده. گوگل Android Studio رو معرفی کرده که تو اون میتونید با استفاده از Gradle، به ریپازیتوری‌های Maven دسترسی پیدا کنید و تقریبا تمام چیزهایی که میخواید رو اونجا پیدا کنید (از کلمه قلمبه ریپازیتوری نترسید! ریپازیتوری یا به طور خلاصه ریپو، به مخزنی از نرم‌افزار میگن که رو اینترنت وجود داره. به زبون ساده‌تر ریپو چیزی نیست جز هاردیسک یه کامپیوتر که داره به شبکه سرویس میده و توش پر از نرم افزاره).

بذارید این مطلب رو با توضیحی در مورد Gradle و یک مثال از نحوه استفاده از اون برای اضافه کردن کتابخونه به پروژه تموم کنم. به زبون خیلی ساده، Gradle یک سیستم اتوماسیونه که با استفاده از زبون Groovy به جای XML، برای پیکربندی پروژه استفاده میشه. یک نمونه از کد Gradle تو Android Studio میتونه مثل زیر باشه.

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.arashkhoeini.test"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:recyclerview-v7:23.1.0'
    compile 'com.android.support:cardview-v7:23.1.0'
    compile 'com.android.support:support-v4:23.1.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    
}

تو کد بالا اگر به تگ Gradle دقت کنید میبینید که اسم تمام کتابخونه‌هایی که تو این پروژه ازشون استفاده میکنم لیست شده. در واقع برای هر کتابخونه یک خط نوشته شده که با  compile شروع میشه. این خط به برنامه میگه که به ریپوهای maven برو و بعد از دانلود این کتابخونه اون رو برای استفاده در این پروژه کامپایل کن. این خط علاوه بر این شامل اسم توسعه دهنده، اسم کتابخونه، و ورژن درخواستی ما هم میشه. معمولا وقتی کتابخونه‌ای رو برای اندروید پیدا میکنید تو داکیونتش گفته شده که چجوری اون رو کامپایل کنید.

اگر این مطلب به دردتون خورد، احتمالا این دوتا لینک هم براتون مفید باشه: اینجا میتونید تو ریپوهای maven گشت و گذار کنید و اینجا هم میتونید تعداد زیادی کتابخونه اندرویدی همراه با توضیحات پیدا کنید.

9 پاسخ به “لایبرری چیه و نحوه استفاده ازش چجوریه؟”

  1. محمدرضا گفت:

    ممنون آرش

  2. یحیی گفت:

    نمیشه گفت اکثر کدهایی هم که ما برای پلتفرم اندروید می‌نویسیم در واقع apiهایی هستند از کتابخونه‌هایی که برای اندروید به زبان جاوا نوشته شده‌اند؟

    • آرش خوئینی گفت:

      تمام کدهایی که ما مینویسیم از کتابخونه‌های اندروید استفاده میکنند. اما لزومی نداره خودشون هم کتابخونه باشند.

      • مهدیکو گفت:

        این پاسخ کاملا اشتباه است !
        من بارها از کتابخونه های خود جاوا در پروژه اندرویدی استفاده کردم و حتی کتابخونه هایی که اصلا برای اندروید نوشته نشدن و مربوط به کلیت پلتفرم جاوا هستند. مثل خیلی از کتابخونه های رمزنگاری و غیره.

        • آرش خوئینی گفت:

          من نگفتم تمام پروژ‌ه‌های اندرویدی حتما و حتما فقط از کتابخونه‌های اندرویدی استفاده میکنه. میشه از کتابخونه‌های جاوا و حتی سی و سی‌پلاس‌پلاس هم استفاده کرد. گفتم از کتابخونه‌های اندرویدی استفاده میکنه. که میشه شامل تمام اون APIهایی که گوگل داخل خود SDK قرار داده.

      • یحیی گفت:

        آره منم منظورم همین بود.

  3. Mojibe گفت:

    میشه در مورد نحوه استفاده از کتابخونه ها برای اندروید بیشتر توضیح بدی، فرض بر این باشه که اولین باره میخوام کتابخونه ای رو به برنامه ام اضاف کنم 🙂 با توضیحاتت متوجه اصل موضوع شدم اما عملا نمیدونم چطور میشه از کتابخونه ها استفاده کرد

    • آرش خوئینی گفت:

      راستش من توضیحاتی که فکر میکردم لازمه رو دادم. اما اگر جایی مشکل موردی دارید میتونید سوال بپرسید و کمکتون کنم 🙂

  4. وحید گفت:

    واقعا بسیار شفاف و شیوا روان ساده و کامل بود موفق باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

android application Google I/O HomeBrew ImageMagick Material Design mobile PogressBar RecyclerView splash TEDxKish ux آموزش اندروید الوین تافلر اندروید اپلیکیشن برنامه نویسی برنامه نویسی اندروید برنامه‌نویسی برنامه‌نویسی اندروید تداکس کیش تعمیر تغییر سایز عکس با ترمینال خلاصه کتاب دانش داده دانشگاه دانشگاه ایده‌آل دزد دیتا ساینس رشته مهندسی کامپیوتر ریکامندرسیستم سیستم‌های توصیه‌گر فری‌لنس لپتاپ متریال دیزاین معرفی کتاب موج سوم نوار پیشرفت همایش هوش مصنوعی ُجزیره کیش کار کسب و کار یادگیری عمیق یادگیری ماشین