> For the complete documentation index, see [llms.txt](https://moeindeveloper.gitbook.io/maad/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://moeindeveloper.gitbook.io/maad/master.md).

# مقدمه

### ابزار های استفاده شده در این آموزش:

* [x] [**Android Studio**](https://developer.android.com/studio/)
* [x] [**Kotlin**](https://kotlinlang.org/)
* [x] [**MVVM design pattern**](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel)
* [x] [**RxJava**](https://github.com/ReactiveX/RxJava)
* [x] [**Android Architecture components**](https://developer.android.com/topic/libraries/architecture/)
* [x] [**Dagger**](https://google.github.io/dagger/):nauseated\_face: ***(NOT GOING TO USE IT)***
* [x] [**Koin**](https://insert-koin.io/) :heart\_eyes:&#x20;
* [ ] [**Room**](https://developer.android.com/topic/libraries/architecture/room)
* [ ] [**Retrofit**](https://square.github.io/retrofit/)

{% hint style="info" %}
**نکته:** *در این دوره سعی می شود که به صورت ساده و پروژه محور، با این ابزار های نسبتأ پیچیده کار کنید!*
{% endhint %}

## [android studio:](https://developer.android.com/studio/)

اندروید استدیو محیط توسعه یکپارچه رسمی اندروید می باشد که توسط شرکت [JetBrains](https://www.jetbrains.com/) توسعه داده می شود. اندروید استدیو یکی از زیر مجموعه های نرم افزار [IntelliJ IDEA](https://www.jetbrains.com/idea/) می باشد و برای توسعه اپلیکیشن های اندرویدی سفارشی شده است!

## [Kotlin:](https://kotlinlang.org/)

یک زبان برنامه نویسی نوع ثابت(statically typed programming language) می باشد که روی ماشین مجازی [جاوا](https://www.java.com/en/) اجرا می شود. کاتلین قابلیت کامپایل شدن به [جاوااسکریپت](https://www.javascript.com/) را دارد! این زبان توسط شرکت [JetBrains](https://www.jetbrains.com/) توسعه داده شده است.

## [MVVM Design Pattern:](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel)

یک نوع معماری نرم افزار است که امروزه محبوبیت زیادی میان برنامه نویسان پیدا کرده! از قابلیت های این معماری این است که جداسازی رابط گرافیکی با سایر اجزای نرم افزار را انجام می دهد.&#x20;

در ادامه درباره این معماری بیشتر توضیح خواهیم داد!

## [RxJava:](https://github.com/ReactiveX/RxJava)

یک کتابخانه مربوط به استفاده از [Reactive Extensions](http://reactivex.io/) در زبان جاوا است که با آن می توان تاثیر رویدادها را روی برنامه کنترل و مشاهده کرد!&#x20;

تعریفی که در صفحه اصلی کتابخانه گذاشته شده:

RxJava is a Java VM implementation of [Reactive Extensions](http://reactivex.io/): a library for composing asynchronous and event-based programs by using observable sequences.

پ ن: تعریفی ساده تر از این به ذهنم نرسید. ☹️&#x20;

## [ReactiveX Extensions:](http://reactivex.io/)

تلفیقی از بهترین ایده ها در ساختار طراحی Observer و **Iterator** و برنامه نویسی عملکردی(Functional programming).

## [Android Architecture Components:](https://developer.android.com/topic/libraries/architecture/)

مجموعه ای از کتابخانه های اندرویدی است که به شما کمک می کند تا برنامه های قوی، قابل تست و قابل نگه داری توسعه بدهید!

## [Dagger:](https://google.github.io/dagger/)

کتابخانه ای برای [تزریق وابستگی](https://en.wikipedia.org/wiki/Dependency_injection) است که توسط شرکت [square](https://squareup.com/)، و بعد توسط گوگل توسعه داده شد.

## [Room:](https://developer.android.com/topic/libraries/architecture/room)

یک لایه abstraction برای SQLite فراهم می کند تا یک ارتباط قوی برای استفاده از قدرت کامل SQLite با پایگاه داده ایجاد کند.

## [Retrofit:](https://square.github.io/retrofit/)

یک کتابخانه HTTP برای استفاده از شبکه در اندروید است که توسط شرکت [Square](https://squareup.com/) توسعه داده شده است.

## اسلاید مربوط به مقدمه:

{% embed url="<https://www.beautiful.ai/deck/-LPqaUgIrcEwlW7AZdnT/Modern-android-development>" %}
اسلاید
{% endembed %}

## مقدمه در آپارات:&#x20;

{% embed url="<https://www.aparat.com/v/avRuU>" %}

##

## درباره من:

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

**راه های ارتباطی با من:**

* [Gmail](mailto://moeinAbdi77@gmail.com)
* [Telegram](https://t.me/notitle)
* [Instagram](https://instagram.com/moeinDeveloper)
* [LinkedIn](https://www.linkedin.com/in/moeindeveloper/)
* [Github](https://github.com/moeinDev)
