آموزش ساخت اپلیکیشن دیوار با اندروید(ویدیویی-۲۰۲۵)

در آموزش ساخت اپلیکیشن دیوار با اندروید (آموزش برنامه نویسی اندروید پروژه محور)، بروزترین و کاملترین دوره آموزش پروژه محور اندروید در ایران، ویدیویی 2025، شما به شکل کامل به ساخت اپلیکیشن دیوار مسلط می‌شوید. دیوار یک پلتفرم قدرتمند به عنوان بستری برای ارتباط تامین‌کننده و مصرف‌کننده و حذف واسطه در ایران است. این پلتفرم اپلیکیشنی بسیار قدرتمند دارد که ما در لرن فایلز قصد داریم ساخت آن را به شکل پروژه محور آموزش دهیم.

فهرست مطالب
  1. این دوره بهترین و کاملترین دوره آموزش پروژه محور اندروید در ایران است!
  2. آموزش ساخت اپلیکیشن دیوار در یک نگاه سریع:
  3. چرا آموزش ساخت اپلیکیشن دیوار تهیه شده در لرن‌فایلز؟
  4. تصاویری از پروژه انجام شده در دوره
  5. آنچه در آموزش ساخت 4 اپلیکیشن اندرویدی با هم یاد می‌گیریم:
  6. آشنایی با اپلیکیشن دیوار
  7. آموزش پروژه محور اندروید ساخت اپ دیوار چگونه است؟
  8. حرفه‌ای ترین مدرس! از یک سِنیور (Senior Android Developer) یاد بگیرید
  9. دوره آموزش ساخت اپلیکیشن دیوار با چه زبانی پیاده‌سازی می‌شود؟
  10.  راهنمایی و مشورت با حرفه‌ای ها رایگان است!
  11. طراحی رابط کاربری در پروژه ساخت اپلیکیشن دیوار با چه ابزاری است؟
  12. آموزش پروژه محور اندروید در زمان بسیار کمتر اما با مباحث خیلی بیشتر!
  13. تکنولوژی‌ها و مباحث کلیدی در دوره
  14. آموزش پروژه محور زیر را همزمان با این دوره توصیه میکنیم!
  15. در آموزش ساخت اپلیکیشن دیوار شما با چه مهارت‌هایی آشنا می‌شوید؟
  16. ابزارها و تکنولوژی‌های استفاده شده در این آموزش
  17. پیاده‌سازی سرور با Spring Boot و Kotlin
  18. تست، بهینه‌سازی و انتشار
  19. نتیجه‌گیری و ارتقاء اپلیکیشن
  20. پیش از یادگیری»  پیشنیاز آموزش ساخت اپلیکیشن دیوار؟
  21. پس از یادگیری»  دوره بعد از آموزش ساخت اپلیکیشن دیوار؟
  22. سرفصل‌های دوره آموزش ساخت اپلیکیشن دیوار با اندروید:
  23. ویدئو های نمونه از آموزش ساخت اپلیکیشن دیوار با اندروید:

دوره ویدیویی آموزش ساخت اپلیکیشن دیوار با اندروید تهیه شده در آکادمی لرن‌فایلز (2025) در قالب 167 ویدیوی آموزشی به مدت 34 ساعت آموزش مفید (معادل بیش از 130 ساعت آموزش غیر مفید) تدریس شده است!

این دوره بهترین و کاملترین دوره آموزش پروژه محور اندروید در ایران است!

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

آموزش ساخت اپلیکیشن دیوار از صفر تا صد، تولید شده توسط لرن فایلز به لحاظ سطح علمی، سرفصل و کیفیت بدون اغراق بهتریـن و کاملتـرین دوره‌ آموزش پروژه محور اندروید ساخت اپلیکیشن در ایران است. (مستندات قابل ارائه است – دوره ای جامع‌تر، با کیفیت بیشتر و یا بروزتر از این دوره میشناسید؟ لطفاً از طریق این صفحه اعلام کنید!).

در ادامه مسیر آموزش برنامه نویسی موبایل و آموزش پروژه محور رسیدیم به آموزش پروژه محور اندروید ساخت اپلیکیشن دیوار! ما در دوره آموزش ساخت اپلیکیشن دیوار، تمام مباحث مختلف در رابطه با توسعه یک اپلیکیشن اندرویدی را آموزش داده‌ایم.

آموزش ساخت اپلیکیشن دیوار در یک نگاه سریع:

این ویدیو سریع و کوتاه را ببینید تا با آنچه در این دوره ویدیویی آموزش داده شده، بیشتر آشنا شوید:

با ما همراه باشید تا در این آموزش عمیق‌تر شویم…

چرا آموزش ساخت اپلیکیشن دیوار تهیه شده در لرن‌فایلز؟

  • در این دوره سعی شده به شکل عملی و ویژه ورود به بازارکار آموزش داده شود تا دانشجویان دارای توانایی‌های لازم برای ورود به بازار کار شوند.
  • شما با تهیه آموزش ساخت 4 اپلیکیشن اندرویدی از پشتیبانی ۳۶۰ درجه مدرس دوره برخوردار خواهید شد و میتوانید با مدرس دوره ارتباط مستقیم داشته باشید و جواب سوالات خود را فوراً دریافت نمایید.
  • آموزش ساخت اپلیکیشن دیوار به صورت مداوم با سوالات و نیازهای دانشجویان آپدیت می‌شود و این آپدیت‌ها برای دانشجویان دوره به صورت کاملا رایگان است و در پنل می‌توانید آن ها را دریافت نمایید.
  • تعداد زیادی ویدیوی آموزش رایگان از دوره آموزش پروژه محور اندروید به عنوان دمو و نمونه به صورت کامل و بدون تغییر از بخش‌های مختلف آموزش برای شما در ادامه قرار گرفته است که به باعث می‌شوند به راحتی بتوانید از کیفیت و سطح علمی بالای دوره آموزش پروژه محور اندروید اطمینان حاصل کنید و ارائه این تعداد بالا از ویدیو رایگان از یک دوره آن هم تنها به عنوان نمونه جهت ارزیابی شما مخاطب عزیز، نشانگر اعتماد 100درصد ما به کیفیت دوره‌هایمان است.

*** ضمناً آموزش ساخت اپلیکیشن دیوار با اندروید با سوالات و نیازهای دانشجویان آپدیت می‌شود.

تصاویری از پروژه انجام شده در دوره

در ادامه تصاویری از نمای پروژه ساخت اپلیکیشن دیوار را خواهیم داشت:

در ادامه به بررسی بیشتر این آموزش می‌پردازیم…

آنچه در آموزش ساخت 4 اپلیکیشن اندرویدی با هم یاد می‌گیریم:

برای آشنایی با آموزش پروژه محور اندروید ساخت 4 اپ و سرفصل‌های آن این ویدیو را ببینید:

بیایید به تعاریف اولیه و پایه در زمینه آموزش ساخت اپلیکیشن دیوار بپردازیم…

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

آشنایی با اپلیکیشن دیوار

دیوار یک وب‌سایت و اپلیکیشن نیازمندی‌های اینترنتی است که به کاربران امکان خرید و فروش کالاهای نو و دست دوم و ارائه خدمات را در ایران می‌دهد. این پلتفرم، که همراه با شیپور از محبوب‌ترین‌ها در این حوزه است، محلی برای ثبت آگهی‌ها محسوب می‌شود. اپلیکیشن دیوار در سال ۱۳۹۲ توسط حسام آرمندهی، یکی از کارآفرینان ایرانی، راه‌اندازی شد. او همچنین یکی از بنیان‌گذاران شرکت آگه‌پردازان هوشمند است که توسعه‌دهنده دیوار می‌باشد.

کاربران می‌توانند از طریق دستگاه‌های اندروید یا وب‌سایت دیوار، آگهی‌های خود را ثبت کنند. تا سال ۱۳۹۶، این پلتفرم در بیش از ۵۰ شهر بزرگ ایران امکان ثبت آگهی را با تفکیک منطقه و محله فراهم کرده بود. دیوار با گسترش خدمات خود به افغانستان، امکان ثبت آگهی در شهرهای کابل، هرات، قندهار و مزار شریف را فراهم کرده است.

آموزش پروژه محور اندروید ساخت اپ دیوار چگونه است؟

در آموزش پروژه محور اندروید ساخت اپلیکیشن دیوار سعی شده تا شیوه طراحی یک اپلیکیشن قدرتمند اندرویدی به شکلی کاملا عملی و در قالب طراحی یک اپ که نمونه خارجی آن وجود دارد آموزش داده شود.

در آموزش ساخت اپلیکیشن دیوار پروژه محور سعی شده است شما را به شکل واقعی با چالش‌های طراحی یک اپلیکیشن آشنا کنیم.

یادگیری پروژه‌محور به دانش‌پذیران این فرصت را می‌دهد تا در کنار یادگیری اصول تئوریک، مهارت‌های عملی خود را با پیاده‌سازی یک اپلیکیشن کامل توسعه دهند. این شیوه نه تنها درک عمیق‌تری از مباحث فراهم می‌کند، بلکه به دانش‌پذیران کمک می‌کند با چالش‌های واقعی توسعه‌ی اپلیکیشن‌های موبایل نیز آشنا شوند.

در این دوره آموزشی، شما با مفاهیم و تکنیک‌های پیشرفته توسعه اپلیکیشن‌های اندروید آشنا خواهید شد. با استفاده از معماری Clean، ساختار Multi-Module، و فریمورک مدرن Jetpack Compose، یک اپلیکیشن کاربردی مشابه دیوار را از ابتدا تا انتها پیاده‌سازی خواهیم کرد.

حرفه‌ای ترین مدرس! از یک سِنیور (Senior Android Developer) یاد بگیرید

با افتخار مدرس دوره ساخت اپلیکیشن دیوار لرن فایلز را مقایسه کنید…

آموزش ساخت اپلیکیشن دیوار توسط آقای مهدی اسداله‌پور به عنوان یک فرد حرفه‌ای و سِنیور اندروید (Senior Android Developer) تدریس شده است که در جایگاه برنامه نویس ارشد اندروید در تیم های داخل و خارج از ایران مشغول به فعالیت بوده و هست. این به این معناست که مدرسین لرن فایلز صرفاً مدرس نیستند! بلکه متخصصین حرفه‌ای همان زمینه تخصصی هستند که سال‌ها در بازارکار تجربه‌های بسیار ارزشمندی را کسب کرده و امروز آن‌ها را برای شما در لرن فایلز ارائه کرده اند.

در ادامه به بررسی ویژگی‌های دیگر آموزش می‌پردازیم…

دوره آموزش ساخت اپلیکیشن دیوار با چه زبانی پیاده‌سازی می‌شود؟

ساخت اپلیکیشن دیوار با زبان کاتلین در این دوره انجام می‌شود. کاتلین (Kotlin) یک زبان برنامه‌نویسی مدرن و قدرتمند است که توسط شرکت JetBrains توسعه داده شده است و در سال ۲۰۱۱ معرفی شد. این زبان به طور رسمی توسط گوگل در سال ۲۰۱۷ به عنوان زبان اصلی برای توسعه اپلیکیشن‌های اندرویدی پذیرفته شد. کاتلین بر روی ماشین مجازی جاوا (JVM) اجرا می‌شود و کاملاً با زبان جاوا سازگار است، به این معنی که می‌توان از کدهای جاوا در کنار کاتلین استفاده کرد.

 راهنمایی و مشورت با حرفه‌ای ها رایگان است!

اگر چیزی ذهن شما را مشغول کرده و یا سردرگم شده‌اید و نیاز به یک فرد حرفه‌ای و این‌کاره دارید تا با او مشورت کنید و راهنمایی‌های لازم را دریافت کرده و مسیر برایتان روشن شود، همین الان میتوانید با متخصصین حرفه‌ای لرن‌فایلز در واحد مشاوره تخصصی تلفنی (رایگان) تماس بگیرید اینجا کلیک کنید!

طراحی رابط کاربری در پروژه ساخت اپلیکیشن دیوار با چه ابزاری است؟

طراحی رابط کاربری در آموزش پروژه محور اندروید ساخت اپلیکیشن دیوار با جت پک کامپوز است. با Jetpack Compose، دانش‌پذیران یک رابط کاربری مدرن و پویا برای اپلیکیشن خواهند ساخت که به واسطه‌ی رویکرد declarative و واکنش‌گرای Compose، توسعه UI را بهبود و تسهیل می‌بخشد. همچنین نکات مهمی در زمینه‌ی تجربه کاربری (UX) برای بهبود تعامل کاربران با اپلیکیشن ارائه می‌شود.

Jetpack Compose یک ابزار مدرن و قدرتمند برای ساخت رابط کاربری (UI) در اپلیکیشن‌های اندرویدی است که توسط گوگل توسعه داده شده است. این ابزار جایگزینی برای روش‌های سنتی ساخت UI در اندروید (مانند XML) است و از برنامه‌نویسی در کاتلین به عنوان زبان اصلی استفاده می‌کند.

آموزش پروژه محور اندروید در زمان بسیار کمتر اما با مباحث خیلی بیشتر!

با افتخار مدت زمان و محتوای دوره لرن فایلز را با سایر دوره‌ها مقایسه کنید…

این دوره از ویژگی “تایم مفید” بهره‌مند است! یعنی ما بدون اینکه بخواهیم خلاصه کنیم یا فشرده کنیم، با بروزترین متدهای تدریس بین‌المللی و استانداردهای جهانی به گونه‌ای دوره آموزش پروژه‌ محور اندروید را تولید کرده‌ایم که نسبت به تمام دوره‌های مشابه موجود، مطالب و مباحث خیلی بیشتری را در زمان بسیار کمتری برای شما بیان و تدریس نموده‌ایم و به عبارت دیگر در زمانی معادل یک سوم دوره‌های مشابه موجود در وب، شما مطالب بسیار بیشتری را از ما تحویل میگیرید. این باعث جلوگیری از اتلاف وقت شما به عنوان دانشجو خواهد شد. ویژگی تایم مفید، یک مزیت بسیار متفاوت و مهم در دوره‌های لرن فایلز است. با این ویژگی به صورت مفید و بدون اتلاف وقت یاد میگیرید و سریع‌تر و بدون خستگی دوره‌ها را پر انرژی یکی پس از دیگری به پایان میرسانید! همه این‌ برای این است که زمان شما بسیار ارزشمند است.

شاید برای‌تان سوال باشد که چه تکنولوژی‌هایی در این دوره آموزش داده شده این سوالی است که در مبحث بعدی به پاسخ آن خواهیم پرداخت.

تکنولوژی‌ها و مباحث کلیدی در دوره

در ادامه به بررسی تکنولوژی‌های به کار رفته در آموزش پروژه محور اندروید ساخت اپلیکیشن دیوار خواهیم پرداخت:

توسعه Backend

  • Spring Boot: استفاده از Spring Boot برای ساخت سرویس‌های RESTful و مقیاس‌پذیر
  • MySQL وXAMPP : استفاده از MySQL به همراه XAMPP برای ارتباط با پایگاه داده‌های رابطه‌ای
  • DTO (Data Transfer Object): انتقال داده‌ها بین لایه‌های مختلف به‌صورت امن و بهینه
  • Database Relationships: درک ارتباطات بین جداول در پایگاه داده‌ها (یک به چند، چند به چند، و…)
  • UseCase: جداسازی منطق تجاری از لایه‌های مختلف پروژه با استفاده از الگوی UseCase
  • Spring Boot with Kotlin: توسعه سرویس‌ها با استفاده از Kotlin و Spring Boot
  • Clean Architecture: استفاده از معماری تمیز برای سازماندهی کد و افزایش قابلیت نگهداری و تست
  • Multi-Module: استفاده از معماری چندماژوله برای تفکیک بخش‌های مختلف به ماژول‌های مستقل

توسعه FrontEnd

  • Jetpack Compose: طراحی رابط کاربری در اندروید با استفاده از کامپوزبل‌ها در Jetpack Compose
  • State Hoisting: استفاده از الگوی State Hoisting برای مدیریت وضعیت‌ها به‌صورت واکنش‌گرا
  • MVI: استفاده از الگوی معماری MVI برای مدیریت وضعیت‌ها و رویدادها در اپلیکیشن
  • Extension Functions: گسترش قابلیت‌های کلاس‌ها بدون تغییر در کد اصلی با توابع افزونه‌ای
  • Kotlin Coroutines: استفاده از کوروتین‌ها برای برنامه‌نویسی هم‌زمان ساده و مؤثر در اندروید
  • Flow: استفاده از Flow برای مدیریت جریان داده‌های نامتناهی و مدیریت پاسخ‌های غیر هم‌زمان
  • UDF: استفاده از توابع تعریف‌شده توسط کاربر برای ساده‌تر کردن جریان داده‌ها و پیش‌بینی‌پذیری
  • SharedPreferences و EncryptSharedPreferences: ذخیره داده‌ها به‌صورت امن
  • استفاده از EncryptSharedPreferences برای حفظ امنیت داده‌ها

کار با API‌ و شبکه

  • Retrofit: استفاده از Retrofit برای انجام درخواست‌های HTTP و ارتباط با سرویس‌های وب به‌صورت ساده
  • OkHttp: استفاده از OkHttp برای ارسال درخواست‌ها و مدیریت پاسخ‌ها در اپلیکیشن‌های اندروید
  • JWT: استفاده از JWT برای احراز هویت و مدیریت نشست‌های کاربر
  • Postman: تست API‌ها با استفاده از ابزار Postman برای بررسی درخواست‌ها و پاسخ‌های سرویس‌ها
  • Network Requests: انجام درخواست‌های شبکه با استفاده از Retrofit و مدیریت خطاهای شبکه

پایگاه داده

  • MySQL: استفاده از MySQL برای ذخیره و مدیریت داده‌ها در پایگاه داده‌های رابطه‌ای
  • JPA: ارتباط با پایگاه داده‌ها و ذخیره‌سازی داده‌ها با استفاده از JPA
  • Room Database: استفاده از Room برای مدیریت پایگاه داده‌های محلی در اندروید
  • Database Relationships: درک و پیاده‌سازی روابط بین جداول پایگاه داده (یک به چند، چند به چند)
  • DTO: انتقال داده‌ها به‌صورت امن و بهینه بین لایه‌ها و اپلیکیشن‌ها

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

  • Hilt: استفاده از Hilt برای مدیریت وابستگی‌ها در اندروید و پیاده‌سازی Dependency Injection
  • Shared Dependencies: مدیریت وابستگی‌ها به‌صورت مشترک و بهینه در پروژه‌های بزرگ
  • EncryptSharedPreferences: استفاده برای حفظ امنیت داده‌های حساس کاربران در اندروید
  • Spring Security: پیاده‌سازی امنیت در پروژه‌های Spring Boot با استفاده از Spring Security و JWT

ابزارهای توسعه و AI

  • ChatGPT و ابزارهای AI: استفاده از ابزارهای AI برای تولید کد، پیشنهاددهی و تسریع فرآیند توسعه
  • Postman: برای تست API‌ها و شبیه‌سازی درخواست‌های HTTP به سرویس‌های وب
  • Git & GitHub: استفاده از Git برای کنترل نسخه و GitHub برای اشتراک‌گذاری کدها و همکاری تیمی
  • Unit Testing & Mockito: نوشتن تست‌های واحد برای سرویس‌ها و رپازیتوری‌ها

معماری و طراحی

  • Clean Architecture: استفاده از معماری تمیز برای جدا کردن لایه‌های مختلف اپلیکیشن
  • MVVM و MVI: پیاده‌سازی معماری MVVM یا MVI برای مدیریت وضعیت‌ها و داده‌ها به‌صورت واکنش‌گرا
  • UseCase: استفاده ازUseCase برای جداسازی منطق تجاری از لایه‌های دیگر سیستم
  • Modularization: استفاده از معماری چند ماژوله برای ساخت پروژه‌های بزرگ و مقیاس‌پذیر

کدهای توسعه و کاربردهای پیشرفته

  • Extension Functions: استفاده از توابع افزونه‌ای در Kotlin برای گسترش قابلیت‌های کلاس‌ها
  • Coroutines and Flow: استفاده برای انجام عملیات هم‌زمان و Flow برای جریان داده‌های نامتناهی
  • UDF: استفاده از توابع تعریف‌شده توسط کاربر برای مدیریت داده‌ها به‌صورت یک‌طرفه و ساده
  • State Management: استفاده از MVI و State Hoisting برای مدیریت اپلیکیشن در محیط‌های واکنش‌گرا

کدهای API و سرور

  • Spring Boot: ساخت سرویس‌های قدرتمند و مقیاس‌پذیر با استفاده از Spring Boot
  • MySQL: استفاده از MySQL برای ارتباط با پایگاه‌داده‌های رابطه‌ای
  • API Development: توسعه API‌های RESTful برای ارتباط با سیستم‌های دیگر

آموزش پروژه محور زیر را همزمان با این دوره توصیه میکنیم!

اگر علاقمند به آموزش‌های پروژه محور اندروید هستید پیشنهاد ما به شما هم زمان با خرید این دوره، دوره آموزش ساخت 4 اپلیکیشن جذاب اندرویدی است. در این دوره به شکل پروژه محور به شما توسعه 4 اپلیکیشن اندرویدی با تکنولوژِی ها و مباحث روز دنیای اندروید آموزش داده می‌شود و این دوره بسیار دوره پرطرفداری است.

در آموزش ساخت اپلیکیشن دیوار شما با چه مهارت‌هایی آشنا می‌شوید؟

در بخش توسعه اپلیکیشن اندروید، شما یاد خواهید گرفت که چگونه با بهره‌گیری از Kotlin Coroutines و Flow، عملیات ناهمگام را مدیریت کنید و با الگوی MVI، رابط کاربری پویا و تعاملی بسازید. همچنین، با استفاده از کتابخانه‌های قدرتمندی مانند Retrofit و Hilt، ارتباط با API و مدیریت وابستگی‌ها را به شکلی کارآمد پیاده‌سازی خواهیم کرد.

علاوه بر توسعه اپلیکیشن اندروید، در این دوره به ساخت یک سرور با استفاده از Spring Boot و Kotlin نیز خواهیم پرداخت. شما یاد خواهید گرفت که چگونه API‌های RESTful ایجاد کنید، با دیتابیس MySQL ارتباط برقرار کنید، و یک بک‌اند مقیاس‌پذیر و ایمن بسازید.

در طول دوره، بر اصول SOLID و Clean Architecture تأکید خواهیم کرد تا کد تمیز، قابل نگهداری، و توسعه‌پذیر بنویسید. با استفاده از ساختار Multi-Module، پروژه را به ماژول‌های کوچکتر و مستقل تقسیم خواهیم کرد تا قابلیت استفاده مجدد و تست‌پذیری کد افزایش یابد.

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

پس اگر می‌خواهید مهارت‌های خود را در زمینه توسعه اپلیکیشن‌های اندروید ارتقا دهید و با تکنولوژی‌های به‌روز آشنا شوید، این دوره جامع و پروژه‌محور بهترین انتخاب برای شماست. همین امروز ثبت‌نام کنید و قدم در مسیر تبدیل شدن به یک توسعه‌دهنده حرفه‌ای اپلیکیشن‌های اندروید بگذارید!

در دوره‌ی آموزش پروژه‌محور توسعه اپلیکیشن اندرویدی با Jetpack Compose که به سبک دیوار طراحی شده، مجموعه‌ای از تکنولوژی‌ها و معماری‌های پیشرفته بکار رفته تا دانش‌پذیران بتوانند با محیطی واقعی و استانداردهای صنعتی آشنا شوند.

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

این دوره با بهره‌گیری از Clean Architecture، Multi-Module Design و تکنولوژی‌هایی مانند Retrofit برای ارتباط با سرور، Hilt برای مدیریت وابستگی‌ها، Coroutines و Flow برای مدیریت وظایف و داده‌های ناهمگام و MVI برای مدیریت حالت‌ها طراحی شده است. این ترکیب از تکنولوژی‌ها به دانش‌پذیران کمک می‌کند که یک اپلیکیشن مدرن و مقیاس‌پذیر بسازند.

پیاده‌سازی سرور با Spring Boot و Kotlin

در بخش سرور، Spring Boot به همراه زبان Kotlin و پایگاه داده MySQL برای ایجاد یک سرور قوی و مقیاس‌پذیر آموزش داده می‌شود. این بخش به دانش‌پذیران کمک می‌کند که از ابتدا تا انتهای مسیر اتصال اپلیکیشن به بک‌اند و مدیریت داده‌ها را به خوبی یاد بگیرند.

تست، بهینه‌سازی و انتشار

تست و بهینه‌سازی بخش‌های مختلف اپلیکیشن، یکی از مراحل حیاتی در تولید هر محصول نرم‌افزاری است. در این دوره، اصول تست و بهینه‌سازی عملکرد آموزش داده می‌شود تا اپلیکیشن نهایی بهترین کارایی را داشته باشد. همچنین، مراحل انتشار اپلیکیشن در فروشگاه Google Play و نکات مهم مرتبط با آن نیز بررسی می‌شوند تا دانش‌پذیران به‌طور کامل با فرایند انتشار آشنا شوند.

نتیجه‌گیری و ارتقاء اپلیکیشن

این دوره، آموزش ساخت و توسعه یک اپلیکیشن کامل را پوشش می‌دهد و دانش‌پذیران در پایان دوره نه تنها با مباحث فنی، بلکه با فرآیند برنامه‌ریزی و ارتقاء اپلیکیشن پس از انتشار نیز آشنا می‌شوند.

پیش از یادگیری»  پیشنیاز آموزش ساخت اپلیکیشن دیوار؟

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

اگر تمایل به طی کردن یک مسیر یادگیری کامل در زمینه برنامه‌نویسی اندروید و متخصص شدن در این رشته را دارید، نیاز است تا مطابق مسیر استاندارد بین المللی و طبق یک برنامه از پیش تعیین شده، حرکت کنید و قبل از این دوره، طبق مسیری که برای شما در بالای همین متن در تب “پیشنیازها” قرار داده ایم حرکت کنید و آموزش‌ها را طبق آنچه در این بخش گفته ایم، به ترتیب مشاهده کنید.

پس از یادگیری»  دوره بعد از آموزش ساخت اپلیکیشن دیوار؟

بعد از دوره آموزش پروژه محور اندروید ساخت اپلیکیشن دیوار اگر تمایل دارید به مسیر آموزشی خود ادامه دهید، طبق مسیری که برای شما در بالای همین متن در تب “پیشنیازها” قرار داده ایم حرکت کنید و آموزش‌ها را طبق آنچه در این بخش گفته ایم، به ترتیب مشاهده کنید.

حالا بعد از کلی صحبت در مورد این آموزش نوبت به سرفصل‌های اصلی دوره ویدیویی آموزش ساخت 4 اپلیکیشن اندرویدی رسیده است. همراه ما باشید…

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

سرفصل‌ها کلی بوده و بسیاری از موارد ذکر نشده است و ممکن است هر بخش شامل چندین ویدیوی زیر مجموعه باشد. با ما همراه باشید با سرفصل‌های آموزش پروژه محور اندروید ساخت اپلیکیشن دیوار:

  • مقدمه و معرفی دوره
  • توضیح راجع به کارهایی که توی این دوره انجام میدیم
  • بررسی پروژه خفنی که می‌خواهیم پیاده‌سازی کنیم
  • تحلیل و بررسی ساختار پروژه‌ها
  • پیش نیاز‌های مورد نیاز
  • چرا این دوره رو باید ببینیم؟ این دوره چه فرقی با بقیه دوره‌ها دارد؟

سرفصل‌های دوره

  • توضیح در مورد برنامه‌نویسی Back End
  • یک مثال خیلی ساده برای مفهوم دیتابیس و سرور و ارتباط بین آن‌ها
  • نمایش یک دیتابیس
  • توضیح در مورد JSON و API
  • تفاوت Json Array و Json Object
  • چرا در این پروژه از Back End استفاده می‌کنیم؟
  • معرفی DataBase
  • ایجاد پروژه Spring Boot کاتلین
  • توضیح در مورد Spring Boot
  • معرفی زبان‌های برنامه نویسی سرور
  • معرفی نرم‌افزارهای مورد نیاز برای ساخت پروژه اسپرینگ بوت
  • ساخت پروژه Spring Boot
  • اضافه کردن کتابخانه‌های مورد نیاز برای ساخت Rest API
  • تحلیل اولیه پروژه
  • بررسی Relationship در دیتابیس
  • دلیل اهمیت تحلیل پروژه
  • استفاده از ابزار DrawSQL برای طراحی شماتیک جداول پایگاه داده
  • پیاده‌سازی اولیه برخی جداول اپلیکیشن بازار
  • ایجاد جداول استان، شهر و محله
  • پیاده‌سازی جداول (Parameter, User, Category, Image, Ads)
  • آموزش چند شورتکات ساده
  • آموزش انواع Fetch در رابطه‌ها
  • ساخت ارتباط OneToMany
  • ایجاد Repository و Sevice
  • ایجاد ریپازیتوری برای ارتباط با پایگاه داده
  • توضیح درباره JPARepository و CrudRepository
  • ایجاد سرویس و نحوه تزریق (Inject) ریپازیتوری
  • تست اولین API با Postman
  • تست وب‌سرویس با Postman
  • آموزش غیرفعال‌سازی موقت Spring Security
  • ایجاد وب سرویس POST
  • نحوه پیاده‌سازی وب‌ سرویس Post
  • تفاوت Param و Body در Postman
  • تعریف DTO
  • وارد کردن داده‌های واقعی به Locations
  • نحوه مقداردهی اولیه به جداول پایگاه داده
  • آموزشPair و Triple در کاتلین
  • دیتا‌سازی شهر، استان و محله با ChatGPT
  • ایجادAPI  برای Location
  • استفاده از MappedBy در جداول شهر و استان
  • استفاده از RequestMapping برای ساده‌تر شدن مسیرهای کنترلر
  • تعریف کلاس‌های DTO
  • تعریف مفهوم Mapper
  • استفاده از Extension Function‌‌های کاتلین
  • تعریف Map در لیست‌های کاتلین و کاربرد آن در Mapper
  •  API Rest برای Category
  • پر کردن جدول دسته‌بندی با داده‌های واقعی و با کمک ChatGPT
  • استفاده از Scope Function‌s در کاتلین و تعریف آن‌ها
  • ساخت Rest API برای دسته‌بندی‌ها
  • استفاده از Filter در کاتلین
  • آپلود تصویر روی Server
  • ساخت ریپازیتوری و سرویس برای جدول تصاویر
  • دریافت تصاویر با استفاده از MultiPartFile
  • نحوه ساخت فولدر در سرور محلی
  • ذخیره فایل ارسال شده در سرور با استفاده از Files.copy
  • آموزش کار با BreakPoint و اجرای خط به خط
  • ایجاد ریپازیتوری و سرویس برای User
  • اضافه کردن پارامتر به جدول کاربر
  • توضیح درباره نحوه ذخیره پسورد
  • آشنایی با قابلیت Code Completion در نسخه جدید IntelliJ
  • نوشتن تابع Password Hashing
  •  Rest API برای User
  • ساخت وب‌سرویس اولیه ثبت‌نام کاربر با RequestBody
  • استفاده از تابع Copy در کاتلین و تعریف آن
  • ساخت Data Class User Request برای دریافت اطلاعات کاربر
  •  Token چیست؟
  • تعریف توکن و اجزای تشکیل‌دهنده آن
  • علت استفاده از توکن
  • تولید Token
  • ساخت کلید HMAC
  • استفاده از کتابخانه JsonWebToken برای ساخت توکن JWT
  • توضیح درباره فرمت تاریخ ISO 8601
  • نوشتن API دریافت User
  • آموزش نحوه ارسال توکن با Postman
  • ایجاد وب‌سرویس دریافت کاربر (Get User)
  • Bearer Token چیست؟
  • توضیح درباره Bearer و دلیل ارسال آن
  • بررسی پاسخ JSON
  • صحبت درباره قالب و فرمت JSON
  • یک مثال از JSON موفق و ناموفق
  • نحوه پیاده‌سازیJSON  موفق و ناموفق
  • ایجاد کلاس‌های Response
  • آموزش Generic Type‌ها در کاتلین
  • ایجاد Data Class جنریک
  • ساخت Interface خطا
  • توضیح درباره ارث‌بری
  • بروزرسانی Category و Location برایAPI استاندارد
  • بروزرسانی API‌‌های دسته‌بندی و Location
  • تست با Postman
  • چگونه با پستمن تست وب سرویس بنویسیم؟
  • تست‌نویسی با هوش مصنوعی Postman
  • نحوه ایجاد سمپل برای درخواست
  • اصلاح و بروزرسانیEntity پارامتر
  • استفاده از JoinToString برای تبدیل لیست به رشته
  • استفاده از Split در کاتلین برای تبدیل رشته به لیست
  • استفاده از Trim برای حذف فاصله‌های ابتدا و انتهای رشته
  • ایجاد داده اولیه برای پارامترها
  • نحوه استفاده از Find در کاتلین
  • افزودن داده به Entity پارامتر
  • ساخت کلاس برای پر کردن جدول پارامتر
  • استفاده از Scope Functions‌ برای ساخت داده
  • استفاده از Extension Function برای تبدیل لیست به رشته
  • بروزرسانی API پارامتر
  • دریافت پارامترها بر اساس Category
  • بروزرسانی دریافت پارامترها
  • آموزش دستور In در کوئری‌ زدن
  • بروزرسانی API دریافت پارامترها بر اساس والد (Parent) در صورت عدم وجود پارامتر برای یک دسته‌بندی
  • نحوه حذف مقادیر Null از پاسخ
  • بررسی آگهی‌ها
  • اضافه کردن موارد مورد نیاز به جدول Ads
  • ساخت ریپازیتوری و سرویس برای Ads
  • ساخت DTO برای Ads
  • استفاده از عملگر Elvis برای بهبود کدها (به جای If و Else)
  • دریافت Instance بدون درخواست به پایگاه داده با GetReferenceBy
  • دریافت کاربر و محله در ادامه کار بر روی وب‌سرویس ایجاد آگهی
  • ایجاد Parameter DTO‌ها و نوشتن Mapper آن‌ها
  • ذخیره عکس‌های یک آگهی
  • بررسی مجدد آگهی‌ها
  • ایجاد Extension Function برای کلاس MyPage
  • اضافه کردن دریافت آگهی‌ها بر اساس Category به وب‌سرویس GetAds
  • تعریف مرتب‌سازی بر اساس DESC و ASC
  • مرتب‌سازی آگهی‌ها بر اساس آخرین آگهی
  • معماری Clean چیست؟
  • تاریخچه معماری تمیز یا Clean
  • چرا باید از این معماری استفاده کنیم؟
  • پروژه چند ماژوله در اندروید
  • تعریف Modularization در پروژه‌های اندرویدی
  • معرفی پروژه NowinAndroid در گیتهاب
  • مزیت‌های استفاده از Modularization
  • ساخت پروژه ی اندروید
  • نحوه ساخت پروژه Jetpack Compose با اندروید استودیو
  • تحر*یم*ها و فیل*تری*نگ
  • چه ابزارهایی برای گذر از تحر*یم وجود دارد؟
  • نحوه دور زدن تحر*یم*‌ها
  • چگونگی مطمئن شدن از دور زدن تحر*یم توسط اندروید استودیو
  • گیت و گیت فلو
  • گیت چیست و چرا باید از گیت استفاده کنیم؟
  • تفاوت گیت و گیتهاب در چیست؟
  • برنچ چیست و کاربرد برنچ در گیت چیست ؟
  • Git Flow چیست و چرا باید از آن استفاده کنیم؟
  • راه اندازی گیت در پروژه
  • ساخت پروژه در گیتهاب
  • تفاوت Private و Public در ساخت ریپازیتوری گیتهاب
  • نحوه اطمینان از نصب Git
  • نحوه Initialize کردن گیت در پروژه اندرویدی
  • چه فایل‌هایی باید در گیت اضافه بشن؟
  • Gitignore چیست و چرا باید در پروژه اضافه بکنیم؟
  • Git Flow چیست؟
  • اضافه کردن Git Flow به پروژه
  • نحوه کامیت کردن
  • پوش کردن کدها روی گیتهاب
  • ایجاد Feature در Git Flow
  • Shared Dependencies در اندروید
  • توضیح مختصر درباره Build.Gradle
  • چرا باید از Toml استفاده کنیم؟
  • بررسی Toml در پروژه اندرویدی
  • استفاده از کاتلین در پروژه
  • کنترل ورژن‌ها با استفاده از ComposeBom
  • بررسی Shared Dependencies و دلیل استفاده از آن
  • ساخت Convention و Build Logic در پروژه
  • نحوه اضافه کردن Build Logic به پروژه و شناسایی آن به عنوان Gradle
  • بررسی Build.Gradle.kts
  • ساخت Extension Function برای Project با استفاده از Common Extension
  • آماده سازی تنظیمات گریدل Jetpack Compose
  • ساخت Extension Property برای دسترسی به Toml
  • بررسی تفاوت Extension Property وExtension Function در کاتلین
  • Internal Function چیست؟ چه کاربردی دارند؟
  • بررسی CrossLine در کاتلین
  • تفاوت پلاگینLibrary و Application
  • نحوه Register کردن پلاگین ها
  • کاربرد فعال کردن BuildConfig در Gradle
  • معرفی کتابخانه Desugaring
  • پاک کردن موارد اضافی ازBuild.Gradle ماژول اپ
  • نحوه اضافه کردن پلاگین‌ها به Build.Gradle ماژول اپ
  • اضافه کردن پلاگین Feature برای هر ماژول Ui
  • اضافه کردن کلاس‌ها و لایبرری‌های مورد نیاز در پروژه
  • اضافه کردن Serialization به پروژه
  • بررسی استاندارد موجود برای کامیت نوشتن
  • معرفی ابزارهای مفید مانند Optimize Import برای کامیت کردن
  • Finish کردن یک برنچ گیت فلو
  • نگه داشتن برنچ بعد ازFinish  کردن
  • معرفی وب سایت برای دستورهای Git Flow
  • ساخت ماژول
  • بررسی مجدد ماژول‌های Nowinandroid
  • استارت کردن Feature Modularization در گیت فلو
  • چگونه یک ماژول بسازیم
  • ساخت ماژول‌های Data و Domain
  • نحوه اضافه شدن ماژول‌ها در Setting.Gradle
  • ادیت Build.Gradle ماژول‌ها بر اساس پلاگین‌های نوشته شده در جلسات قبل
  • ماژول Untils چیست؟
  • نحوه متصل کردن ماژول‌ها به هم
  • مشکل Circular Dependency در صورت اشتباه در Include کردن ماژول‌ها
  • اضافه کردن ماژول‌های Network، Secure Shared Pref و …
  • ساخت تم سفارشی و Composition Local در Jetpack Compose
  • چرا باید Theme را کاستوم بکنیم؟
  • بررسی Theme پیش فرض در Jetpack Compose
  • چطور می‌شود فهمید اپ در حالت دارک مود هست یا خیر؟
  • CompositionLocal چیست؟
  •  تفاوت CompositionLocalOf و StaticCompositionLocalOf
  • ساخت تم سفارشی
  • شروع شخصی‌سازی Theme
  • بررسی فونت اپلیکیشن دیوار
  • ساخت رنگ‌ها برای اپلیکیشن دیوار
  • ساخت فونت‌های مورد نیاز
  • نحوه Round کردن ویوها در Jetpack Compose
  • ساخت Dimensions در پروژه
  • مفاهیم پایه در Jetpack Compose
  • تغییر کلمه یا جمله با Ctrl + R
  • ReadOnlyComposable چیست و برای چه مواردی استفاده می‌شود؟
  • Dynamic Color چیست؟
  • افزودن Dependency مربوط به Hilt
  • افزودن Dependencyها به Version Catalog
  • توضیح راجع به Version Catalog
  • مفاهیم پایه در Jetpack Compose
  • افزودن Dependencyها به ماژول‌های مورد نیاز
  • ایجاد کلاس Application برای کانفیگ کردن Hilt
  • کانفیگ کردن نهایی Hilt
  • ایجاد ماژول مربوط به Database
  • Composable در جت پک کامپوز به چه معناست؟
  • بررسی Text – Button -TextField در جت پک کامپوز
  • بررسی Column – Row – LazyColumn – LazyRow
  • نحوه دیدن کدهایJetpack Compose  در اندروید استودیو (Preview)
  • بررسیAndroidView  برای لایه‌هایی که در Jetpack Compose نیستند
  • بررسی Modifier و قابلیت‌های آن
  • ساخت Function Compose
  • ساخت Function Compose‌های از پیش‌ساخته برای راحتی و استاندارد بودن متن‌ها، باتن‌ها و…
  • ShowSystemUI در Preivew
  • نمایش Preview در دو حالت لایت و دارک
  • نحوه ایجاد تکست با چند رنگ
  • MVI چیست؟
  • بررسی الگوی طراحی یا Architecture Pattern
  • معماری مرسوم تا قبل از Jetpack Compose چه بود؟
  • بررسی دقیق معماری MVI
  • جایگاه MVI در Clean Architecture و تفاوت Clean Architecture با MVI یا MVVM
  • چرا باید از الگوی طراحی استفاده کرد؟
  • بررسی UDF
  • UDF در Jetpack Compose چیست؟
  • مقاله من درباره UDF
  • دلیل استفاده ازUDF
  • تعریف قابلیت Reusablity
  • ساخت ماژول دسته‌بندی
  • بررسی UI اپلیکیشن دیوار و ماژول‌های اولیه اپلیکیشن
  • شروع ماژول دسته‌بندی در اپلیکیشن
  • نحوه ایجاد کد پیشفرض در اندروید استودیو
  • بررسی کدهای پیشفرض من Live Template
  • ایجاد File and Code Template برای ایجاد کلاس‌های پیش فرض
  • بررسی File and Code Template‌های من
  • ساخت Interface برای State و Event در کل پروژه
  • ساخت BaseViewModel
  • ساخت BaseViewModel برای همهViewModel ‌های پروژه
  • بررسی StateFlow
  • تفاوت StateFlow و SharedFlow
  • بررسی مفهوم Encapsulation
  • بررسی Stable در Jetpack Compose
  • بررسی Rename در گیت
  • فانکشن‌های Stable و UnStable در Jetpack Compose
  • تعریف Extension Lambda در کاتلین
  • مروری بر لامبدا در کاتلین با مثال
  • آموزش تغییر نام یک برنچ در گیت
  • نحوه حذف کردن یک ماژول از پروژه
  • دستور help برای نمایش راهنمای Git Flow
  • پیاده‌سازی و ساخت ماژول Encrypt Shared Preferences
  • ساخت هیلت ماژول برای Shared Preferences
  • انواع Annotations در Hilt
  • تفاوت SingletonComponent با دیگر کامپوننت‌های Hilt
  • توضیح مختصری از Dependency Injection
  • چرا از Dependency Injection استفاده می‌کنیم؟
  • نحوه ساخت شی از Encrypt Shared Pref
  • پیاده‌سازی Retrofit در پروژه
  • ساخت Constant برای ذخیره مقادیر در Shared
  • ساخت ماژول Hilt برای Setup Retrofit
  • نحوه Setup کردن Retrofit
  • مفهوم isLeneint در Retrofit
  •  آموزش پارامتر IgnoreUnknownKeys در Retrofit
  • بررسی OkHttp
  • اضافه کردن Connect TimeOut و Read TimeOut و Write TimeOut به Retrofit
  • نحوه اضافه کردن هدرهای کاستوم به Retrofit
  • نحوه لاگ گرفتن کدها در Retrofit
  • نحوه عدم لاگ انداختن در نسخه Release
  • Levelهای مختلف در Http Logger
  • اضافه کردن Retrofit Serialization برای پارس کردن Json در Retrofit
  • اضافه کردن توکن به ماژول نتورک
  • توکن در کجا باید ذخیره شود؟
  • نحوه خواندن توکن در ماژول Network
  • قدرت Hilt و DI با مثال واقعی
  • علامت‌های ارجاع در اندروید استودیو مختص Hilt
  • بررسی Networking Handlers
  • ساخت مدل‌های Response برای دریافت APIها
  • پیاده‌سازی Sealed Class برای هندل کردن Success & Failed در API
  • ساخت Errorهای متناظر با سرورمون
  • استفاده حرفه‌ای از Data Result و Sealed Class
  •  بررسی Builder Pattern
  • ساخت SafeCall برای هندل کردن درخواست‌های اینترنتی
  •  بررسی SafeCall
  • نحوه هندل کردن خطاها در API
  • نحوه دریافت خطا از Throwable در SafeCall
  • پیاده‌سازی دسته‌بندی‌ها
  • ساخت ماژول Category و شروع پر قدرت UI با Jetpack Compose
  • ساخت مدل‌های DTO در کدام ماژول باید پیاده‌سازی شود؟
  • ساخت دیتا کلاس‌های مورد نیاز برای دریافت Category از وب سرویس
  • ساخت Mapper برای Category Response
  • ساخت Repository و Impl برای Category
  • چرا باید Repository به صورت Interface پیاده‌سازی بشود؟
  • ساخت BindRepository برای بایند کردن Repoها با Hilt
  • ساخت UseCase برای دریافت Category
  • ساخت APIService در پروژه
  • نحوه استفاده از SafeCall در Repository
  • ساخت Category Event
  • ساخت CategoryViewEvent با Templateهای ساخته شده
  • ImmutableList چیست و چرا باید Jetpack Compose از آن استفاده کنیم؟
  • معرفی پلاگین برای نمایش دقیقه‌هایی که روی یک پروژه کار می‌کنیم
  • ساخت CategoryViewModel و Stateها
  • ساخت CategoryViewModel با استفاده از File Template‌های ساخته شده
  • HiltViewModel در ViewModel  چیست؟
  •  SavedStateHandle چیست؟
  •  Abstract چیست و چرا باید از آن استفاده کنیم؟
  •  Lazyدر کاتلین چیست؟ چه فوایدی دارد؟
  • ساخت CategoryScreen با استفاده از File Template
  • نحوه اضافه کردن ViewModel به Screen
  • چرا باید از فانکشن Content در Jetpack Compose استفاده کنیم؟
  • ساخت Category Screen
  • بررسی صفحه Category اپلیکیشن دیوار
  • نحوه استفاده از Resources در پروژه‌های Multi-Module
  • شروع پیاده‌سازی دیزاین صفحه دسته‌بندی‌ها
  • آموزش پیاده‌سازی SwipeRefresh در Jetpack Compose
  • لزوم استفاده از Key در لیست‌ها در Jetpack Compose
  • نحوه پیاده‌سازی صفحه‌های (لیست خالی و خطا) در لیست در Jetpack Compose
  • اضافه کردن کتابخونه Accompanist Swiperefresh
  • پیاده‌سازی LoadMore در لیست در Jetpack Compose
  • ایجاد فانکشن برای تشخیص انتهای لیست در Jetpack Compose
  • ساخت Category Screen
  • آموزش شورتکات‌های Ctrl + n و Ctrl + e برای یافتن کلاس
  • اجتناب از ساخت Lambda اضافی و زیاد
  • استفاده آسان‌تر از MVI و UDF
  • کاربرد Type Alias در کاتلین
  • چه زمانی باید یک UI رو در Core قرار داد؟
  • نحوه ایجاد Devider در آیتم‌های یک لیست
  • آموزش لود کردن عکس اینترنتی با Coil در Jetpack Compose
  •  Roundکردن عکس با Coil
  • ایجاد فانکشن‌های تبدیل Px به Dp و بر عکس
  • ساخت کلاس Application
  • توضیح مجدد SetState در ViewModel
  • رفع مشکل بالا اومدن کنسول Run هنگام اجرای پروژه
  • ساخت صفحه دسته‌بندی
  • شروع اصلاحات ظاهری آیتم‌های دسته‌بندی
  • کار با Weight برای چیدمان صحیح‌تر در Row
  • استفاده از TakeIf در کاتلین
  • کار با VerticalDivider و HorizontalDivider
  • استفاده از SafeContentPadding برای ایجاد حاشیه امن
  • استفاده از مادیفایر ImePadding برای هندل کردن کیبورد روی TextFields
  • کاربرد Spacer در Jetpack Compose
  • نحوه هندل کردن Events در ViewModel و MVI
  • نحوه اضافه کردن آیتم به Immutablelist
  • نحوه نمایش لیست‌های مختلف در دسته‌بندی‌ها
  • استفاده از  StatusBarPadding و NavigationBarPadding
  • پیاده‌سازی ToolBar دسته‌بندی‌ها و نحوه تغییر آن در انتخاب هر دسته‌بندی
  • نحوه رنگ کردن StatusBar و NavigationBar در Jetpack Compose
  • آموزش enableEdgeToEdge
  • هندل کردن رنگ StatusBar و NavigationBar در دو حالت NightMode و LightMode
  • اتصال دسته‌بندی‌‌ها به وب سرویس
  • چگونگی اتصال اندروید به سرور Local
  • پارامترClearTextTrraffic در مانیفست برای درخواست‌های Http
  • نحوه پیدا کردن IP دستگاه
  • اضافه کردن دسترسی اینترنت برای درخواست‌های اینترنتی
  • اضافه کردن آیکون به آیتم دسته‌بندی‌ها
  • اضافه کردن آیکون‌های دسته‌بندی دیوار به اسپرینگ بوت
  • لوکیشن مخصوص برای قرار دادن فایل‌های پروژه در اسپرینگ بوت
  • نحوه آدرس‌دهی به فایل‌ها در هنگام ذخیره
  • بررسی دو روش ریسپانس برای فایل‌ها
  • لود کردن SVG با Coil
  • اضافه کردن Extension به کتابخونه Coil برای ساپورت کردن SVG
  • اضافه کردن BaseUrl به اول لینک‌ها
  • نمایش پیغام موفقیت و خطا
  • ساخت تایپ متفاوت برای خطاهای سیستمی یا اینترنتی
  • ساخت وضعیت برای نوع‌های مختلف پیام
  • نحوه هندل کردن خطاهای متنی و عددی
  • ساخت Constructor برای راحتی ساخت دیتا کلاس UiMessage
  • هندل کردن نمایش پیام خطا برای 3 ثانیه
  • بررسی فانکشن‌های Protected و کاربرد‌های آن
  • پیاده‌سازی UI برای نمایش UiMessage
  • گرفتن Context در Jetpack Compose با استفاده از لوکال کامپوزیشن‌ها
  • نحوه دریافت متن خطا از دو حالت اینترنتی و سیستمی
  • نحوه گرفتن پیام از Strings در Scopeهای غیر کامپوزی
  • یکی از کاربرد‌های Then در Modifier
  • غیرفعال کردن انیمیشن OnClick در Jetpack Compose
  • غیرفعال‌سازی انیمیشن آن کلیک
  • ساخت ماژول Home
  • شروع ماژول Home اپلیکیشن دیوار
  • تحلیل مقدماتی از صفحه Home اپلیکیشن دیوار
  • ساخت کلاس‌های ViewModel و Screen و Navigation
  • ایجاد مدل صفحه‌بندی و تبلیغات
  • پرامپت ساخت دیتای فیک با استفاده از ChatGPT
  • استفاده از دستورات MySQL برای ساخت دیتای فیک
  • ساخت کلاس‌های مورد نیاز برای صفحه‌بندی لیست‌ها
  • ایجاد Repository & Usecase برای خلاصه تبلیغات
  • پیاده‌سازی Repository برای خلاصه تبلیغات
  • استفاده از Dynamic lambda برای نگاشت صفحه‌بندی
  • ساخت Usecase برای خلاصه تبلیغات
  • ساده‌تر نوشتن Usecase
  • صفحه‌بندی کردن دریافت آگهی‌ها
  • ایجاد آیتم تبلیغات
  • ساخت داده فیک از JSON آگهی‌ها با استفاده از ChatGPT برای استفاده از پیش‌نمایش‌ها
  • ساخت طراحی آیتم آگهی با Jetpack Compose و ConstraintLayout
  • بررسی طراحی آیتم آگهی در اپلیکیشن دیوار
  • استفاده از then در  Modifierو کاربرد آن
  • نمایش قیمت در Text با جداکننده قیمت
  • استفاده از PreviewLightDark برای پیش نمایش در دو حالت روشن و تاریک
  • استفاده از CreateRef در ConstraintLayout
  • معادل Constraintهای XML در Jetpack Compose
  • نحوه لینک شدن جهت‌های هر ویو در ConstraintLayout
  • استفاده از AspectRatio برای سایزدهی به یک ویو
  • ایجاد آیتم دسته‌بندی صفحه اصلی
  • ساخت و دیزاین آیتم‌های آگهی در صفحه ی اصلی و هوم
  • بروزرسانی SwipeRefresh با Material
  • بررسی نام‌گذاری کتابخانه‌های گوگل (آلفا، بتا و کاندیدای نسخه نهایی)
  • به‌روزرسانی Material به نسخه RC برای رفع باگ SwipeRefresh
  • بررسی مجدد Compose BOM و دلایل استفاده از آن
  • به‌روزرسانی فانکشن SwipeList به قابلیت جدید در Material
  • دلیل استفاده از انوتیشن OptIn
  • استفاده از PullToRefreshBox
  • نحوه متصل کردن گوشی با Wifi به اندروید استودیو و بدون سیم
  • آموزش خطایابی ارورهای مربوط به هیلت
  • آموزش Mirror کردن تلفن همراه روی اندروید استودیو
  • چالش لود کردن دو لیست در Jetpack Composeدر کنار هم
  • ساخت لیست‌ها در صفحه اصلی اپلیکیشن
  • ساخت تولبار صفحه اصلی با Jetpack Compose
  • اضافه کردن کتابخانه آیکون‌های متریال به پروژه
  • نحوه استفاده از آیکون‌های متریال در پروژه
  • مشکل فونت فارسی با وسط‌چین در Row
  • پیاده‌سازی کامل  Toolbarصفحه آگهی‌ها منطبق با اپلیکیشن دیوار
  • نحوه پیاده‌سازی دو لیست در Jetpack Compose
  • استفاده از FlowRow برای پیاده‌سازی دسته‌بندی‌ها در صفحه آگهی‌ها
  • استفاده از FlowColumn برای پیاده‌سازی آگهی‌ها در صفحه آگهی‌ها
  • توضیح مجدد OptIn و Experimental‌ها در Jetpack Compose
  • ساخت اولیه FailedScreen برای زمان‌هایی که خطایی رخ می‌دهد
  • رفع ایراد آیتم تبلیغات در نمایش روی گوشی
  • دیباگ کردن Step By Step برای پیدا کردن مشکل آیتم تبلیغات
  • تفاوت WrapContent با PreferredWrapContent در Jetpack Compose
  • بررسی ContentScale در عکس‌ها
  • پیاده‌سازی تصویر برای زمانی که آگهی عکس ندارند
  • تأکید بر اولویت در Modifier
  • متصل کردن دسته‌بندی‌ها به API
  • متصل کردن آگهی‌ها به API
  • نحوه اضافه کردن آگهی در حالت صفحه‌بندی هنگام استفاده از ImmutableList
  • رفع مشکل نمایش پیام‌های خطا
  • اضافه کردن MaxLine به Text برای تعیین حداکثر خطوط نمایش متن
  • استفاده از Int.MaxValue برای مقداردهی بیشترین عدد
  • نحوه کوتاه کردن متن برای متن‌های طولانی با Overflow
  • طراحی دیزاین صفحه خانه
  • مرتب کردن دسته‌بندی‌‌ها در صفحه خانه
  • استفاده از FillMaxRowHeight در FlowRow
  • نحوه راست چین کردن آیتم‌های دسته‌بندی
  • استفاده از باقیمانده (%) در برنامه‌نویسی و کاربرد آن برای محاسبات
  • استفاده از ForEachIndex برای دسترسی به ایندکس
  • آموزش استفاده از Repeat در Jetpack Compose
  • اضافه کردن LoadMore به آگهی‌ها
  • استفاده از CanScrollForward برای تشخیص انتهای لیست
  • حل مشکل گرفتن پیج‌های متوالی در CanScrollForward
  • استفاده از CircluarProgressIndicator برای نمایش Loading
  • نحوه تغییر رنگ CircluarProgressIndicator
  • نحوه حذف آخرین HorizontalDivider در لیست آگهی‌ها
  • تغییر لیست آگهی‌ها بهPaging برای هندل کردن Pagination
  • نوشتن Extention Function برای اضافه کردن لیست به یک آبجکت Paging با استفاده از Generic
  • امن کردن URL‌ها در اندروید استودیو
  • چرا باید توکن‌ها و ثوابت را امن کنیم؟
  • آموزش امن سازی با استفاده از Gradle.Properties
  • نحوه دسترسی به متغیرهایی که در Gradle.Properties تعریف کردیم در Build.Gradle
  • چگونگی دسترسی به متغیرها در Network Module
  • ساخت دیالوگ برای لیست دسته‌بندی‌ها
  • نحوه نمایش Preview برای دیالوگ‌ها
  • استفاده از ModalBottomSheet برای نمایش دیالوگ
  • پیاده‌سازی تایتل دیالوگ برای دسته‌بندی‌ها
  • ساخت آیتم‌های لیست دسته‌بندی در دیالوگ
  • هندل کردن بسته شدن دیالوگ
  • پیاده‌سازی کلیک برای دسته‌بندی‌ها در دیالوگ
  • یک نکته برایReusable کردن فانکشن‌ها
  • پیاده‌سازی دکمه Back برای دیالوگ دسته‌بندی
  • بررسی فانکشن RemoveLastOrNull در کاتلین
  • جستجو در دیالوگ دسته‌بندی‌ها
  • نحوه مدیریت Expand در ModalBottomSheet
  • نحوه تشخیص تغییر فوکوس در TextField
  • تغییر ارتفاع ModalBottomSheet هنگام تغییر فوکوس
  • نحوه جستجو در دسته‌بندی‌‌ها با وجود Children
  • آموزش توابع بازگشتی
  • چرا باید از توابع بازگشتی استفاده کنیم
  • آموزش IgnoreCase
  • فانکشن‌های Expand و PartialExpand در ModalBottomSheetState
  • تعریف متغیر SkipPartiallyExpanded
  • آموزش FocusManager برای مدیریت فوکوس درTextFieldها
  • ساخت لیست شهرها
  • تحلیل نحوه ذخیره شهر کاربر در اپلیکیشن دیوار
  • دلیل اینکه چرا شهر در گوشی کاربر ذخیره می‌شود
  • پیاده‌سازی کلاس‌های شهر و استان و محله در اندروید معادل به ریپسانس
  • ساخت ریپازیتوری و Mapper برای شهر و استان و محله
  • ساخت UseCase برای دریافت شهرها
  • بایند کردن ریپازیتوری Location با Hilt
  • پیاده‌سازی مرحله به مرحله دیزاین لیست شهرها
  • دریافت لیست شهرها در ViewModel و نمایش در UI
  • ساخت Live Template برای نتیجه Flow در ViewModel
  • ساخت Item برای هر شهر
  • اضافه کردن Log برای پرینت خطاهای API در SafeLog
  • Import کردن ماژول Core:Utils به ماژول Data
  • فیکس کردن مشکل API شهر در Spring Boot
  • آپدیت دیزاین آیتم شهر برای فاصله‌ها و رنگ جداکننده
  • توضیح نحوه جداسازی شهرها بر اساس پربازدید و همه شهرها در اپلیکیشن دیوار
  • اضافه کردن جستجو به لیست شهرها
  • مدیریت کردن باکس جستجو در لیست شهرها
  • نحوه جستجو در شهرها و نحوه فیلتر کردن هر شهر
  • ذخیره شهر در SharedPreferences
  • روش‌های مختلف ذخیره کردن دیتا در اندروید
  • مروری دوباره بر Secure Shared Preferences
  • آموزش ذخیره کردن دیتا در Shared (ذخیره کردن شهر)
  • ساخت Extention برای تبدیل Json String به Data Class
  • ساخت Extention برای تبدیل Data Class به Json String
  • دستور Cherry-Pick در Git
  • آموزش Cherry-Pick در گیت
  • چگونه فایل‌های پوش نشده رو به برنچ‌های قبلی اضافه کنیم؟
  •  بررسی CommitHash در گیت
  • پرامپ برای آموزش Cherry-Pick و کمک به حل مشکل فایل‌های پوش نشده
  • Command برای نمایش لیست برنچ‌هایی که در پروژه داشتیم
  • Command برای جابه‌جایی بین برنچ‌ها
  • Command برای گرفتن هشت کامیت
  • پرامپ به ChatGPT برای راحتی استفاده از کامندهای زیاد در پروژه
  • ساخت Splash Screen
  • Splash Screen چیست؟
  • چه راه‌هایی برای ساخت Splash وجود دارد؟
  • بررسی داکیومنت گوگل برای Splash
  • تعریف Cold Start در اندروید
  • تعریف Warm Start در اندروید
  •  PostSplashScreenTheme چیست؟
  • نحوه دسترسی به API Splash Screen
  • نحوه نگه داشتن Splash Screen
  • مدیریت صفحه‌ی بعدی Splash با توجه به انتخاب شهر کاربر
  • ایجاد ناوبری اپ
  • نحوه مدیریت کردن حرکت بین صفحه‌های مختلف
  •  NavHost رو باید کجا قرار بدیم؟
  • جلوگیری از کلیک چند باره وNavigation چند باره با یک Extension Function
  • اتصال LocationScreen به MainScreen
  • اتصال صفحه لیست شهرها با صفحه Main
  • حل مشکل عدم اعمال PostSplashScreenTheme
  •  Bottom Navigation چیست؟
  • بررسی Bottom Navigation
  • بررسی Scaffold
  • چرا باید از Scaffold استفاده کنیم؟
  • چرا ست کردن پدینگ در Scaffold ضروری است؟
  • پیاده‌سازی NavigationBar در پروژه
  • معرفی فانکشن‌های NavigationBar و NavigationBarItem
  • ساخت Data Class برای آیتم‌های BottomBar
  • اضافه کردن آیکون‌های مشابه دیوار برای BottomBar به پروژه
  • پیاده‌سازی BottomBarItems
  • مدیریت کردن لیست BottomNavigation از ماژول اپ به دلیل Clean Architecture بودن پروژه
  • یک توصیه برای خوانایی بهتر هر فایل و تمیز بودن کد
  • نحوه مدیریت کردن OnClick‌های BottomBarItem در پروژه Multi-Module
  • ایجاد ناوبری تو در تو برای Main
  • NestedNavigation چیست؟ و چه کاربردی دارد؟
  • ساخت Nested Navigation برای پیاده‌سازی BottomNavigation
  • نحوه مدیریت NavController در Nested Navigation
  • چگونه فانکشن کامپوز را به عنوان Input به یک فانکشن دیگر بدیم
  • استفاده از Composable در لامبدا
  • نحوه جلوگیری از باز شدن تکراری صفحات در Navigation
  • بررسی PopUpTo در Compose Navigation
  •  SaveStateدر Compose Navigation
  • LaunchSingleTop در Compose Navigation
  • RestoreState در Compose Navigation
  • داینامیک کردن BottomBarItemsها
  • اصلاح رنگ آیکون‌های Bottom Navigation
  • نحوه تشخیص کد رنگی اصلی دیوار از روی وب‌سایت
  • نحوه شخصی‌سازی رنگ‌های BottomBar
  • استفاده از ContentPadding و چرایی استفاده از آن
  • ایجاد API برای نمایش دسته‌بندی‌های آگهی‌ها
  • آموزش نوشتن کوئری شخصی‌سازی شده در Spring Boot
  • ساخت API جستجوی دسته‌بندی‌های شامل متن آگهی
  • استفاده از Group By در کوئری
  • نحوه پاس دادن متغیر به کوئری شخصی‌سازی شده
  • ساخت صفحه جستجو
  • ساخت آیتم برای جستجوی آگهی بر اساس دسته‌بندی
  • پیاده‌سازی ریپازیتوری‌ها و اینترفیس‌های مربوطه برای دریافت CategoryOfAds
  • ادامه پیاده‌سازی Search Screen
  • پیاده‌سازی SearchViewModel
  • بررسی SavedStateHandle
  • نحوه دریافت پارامترهای ارسالی هنگام Navigation در ViewModel
  • پیاده‌سازی مکانیزم تشخیص اتمام تایپ کاربر
  • استفاده از Job در اندروید
  • بررسی صفحه‌ لیست آگهی‌ها در دیوار
  • اضافه کردن SearchText و CityId به وب‌سرویس GetAds
  • کاربرد Distinct در کوئری‌های MySQL
  • ادامه‌ پیاده‌سازی صفحه‌ی AdsScreen
  • پیاده‌سازی لیست آگهی‌ها
  • پیاده‌سازی طراحی تولبار در صفحه لیست آگهی‌ها
  • بخش‌بندی کردن UI به فانکشن‌های مختلف برای تمیزی کد
  • نحوه‌ ارسال داده به صفحه‌ی دیگر با Navigation
  • نحوه دریافت داده‌های ارسالی بین صفحات که با Navigation ارسال شده
  • بعضی وقت‌ها اصلاً باید کرش کنیم!
  • تبدیل لیست به Paging
  • استفاده از فانکشن GetOrNull
  • یک نکته برای پارامترهای خالی در هنگام Navigate کردن
  • استفاده از PopBackStack برای حذف یک صفحه از Stack
  • برطرف کردن برخی مشکلات UI در AdsScreen
  • نمایش آگهی‌ها بر اساس جستجوی کاربر در صفحه SearchScreen
  • اضافه کردن شهر به جستجوی کاربر
  • رفع برخی باگ‌ها در اندروید و اسپرینگ
  • بهبود کوئری دریافت آگهی‌ها
  • آموزش Substring در کوئری MySQL
  • تابع MIN در MySQL
  • تابع LOCATE در MySQL
  • تابع LENGTH در MySQL
  • اتصال دسته‌بندی به لیست آگهی‌ها
  • اضافه کردن چند OnClick به UI
  • پیاده‌سازی Back زدن در دسته‌بندی‌ها
  • اتصال دیالوگ دسته‌بندی به لیست آگهی‌ها
  • اتصال دیالوگ دسته‌بندی به صفحه‌ی آگهی‌ها
  • تحلیل پارامترهای دیوار
  • شروع اضافه کردن پارامترها به صفحه‌ی Ads
  • بررسی اپ دیوار برای پارامترها
  • ایجاد آیتم فیلتر
  • اضافه کردن پارامتر ریپازیتوری و مدل‌های مربوطه
  • اضافه کردن Mapperهای پارامتر به پروژه
  • شروع پیاده‌سازی دیزاین فیلترها در صفحه‌ی آگهی‌ها
  • ساخت آیتم برای فیلترها و مدیریت انتخاب شده یا نشده و آیکون
  • مدیریت تغییر رنگ آیتم فیلتر در حالت انتخاب شده یا نشده
  • ایجاد فیلتر پیش‌فرض در آگهی‌ها
  • ایجاد کلاس فیلتر برای انتقال دیتا بین صفحات
  • ریفکتور کلاس‌های مرتبط با فیلتر برای دریافت یا ارسال فیلتر
  • ارسال فیلتر به AdsToolbar
  • ریفکتور پارامتر ناوبری در آگهی‌ها
  • اضافه کردن آیتم فیلتر به صفحه‌ Ads
  • نحوه‌ راست‌چین کردن لیست در LazyRow
  • ساخت Preview برای دو حالت فیلتر انتخاب شده و نشده
  • استفاده از Immutable در Jetpack Compose
  • بررسی انکود و دیکود آبجکت
  • بررسی خطای Navigation Destination Match در Jetpack Compose
  • استفاده از URLEncoder برای انکود کردن JSON
  • استفاده از URLDecoder برای دیکود کردن JSON انکود شده
  • اصلاح پارامترها در AdsScreen
  • دریافت پارامترها در AdsViewModel
  • مدیریت کلیک‌ها برای فیلتر
  • پیاده‌سازی مدیریت کلیک‌های تولبار صفحه‌ی آگهی‌ها
  • پیاده‌سازی مکانیزم حذف فیلتر یا اضافه کردن فیلتر
  • نحوه رفتن به صفحه فیلتر و تشخیص اینکه کلیک روی چه پارامتری اتفاق افتاده است
  • ریفکتور دیالوگ دسته‌بندی‌ها
  • ریفکتور دیالوگ دسته‌بندی‌ها برای پرفورمنس بهتر
  • هندل کردن جستجو در خود دیالوگ دسته‌بندی‌ها برای Reusable بودن
  • تغییرGet به Post برای دریافت آگهی‌ها
  • تشخیص فیلتر کلیک شده برای چک‌ باکس و گذاشتن Answer برای آن
  • تغییر وب‌سرویس دریافت آگهی‌ها از Get به Post
  • بروزرسانی DTO برای دریافت آگهی‌ها
  • بروزرسانی کنترلر دریافت آگهی‌ها
  • تغییر وب‌سرویس Ads در اسپرینگ بوت از Get به Post
  • اضافه کردن پارامترهای مورد نیاز به وب‌سرویس مثل ParameterAnswerRequest
  • آپدیت کردن Query دریافت آگهی‌ها برای هندل کردن پارامترهای جدید
  • هندل کردن کمترین قیمت و بیشترین قیمت
  • نحوه ساخت Parameter Answerبا PhpMyAdmin
  • بررسی وب‌سرویس ویرایش شده با Postman
  • رفع برخی باگ‌ها در AdsScreen
  • بهبود برخی کدها و رفع برخی باگ‌ها در صفحه‌ی آگهی‌ها
  • اضافه کردن کلیک‌های جامانده
  • نحوه‌ی دیباگ کردن وب‌سرویس دریافت آگهی‌ها
  • چطور دنبال سرنخ مشکل بگردیم و حلش کنیم؟
  • ساخت Extension Function زمان
  • ساخت Extension برای تبدیل زمان عددی به حروف
  • استفاده از Instant برای گرفتن زمان حال
  • استفاده از Duration برای محاسبه اختلاف زمان بین دو Instant
  • نحوه محاسبه زمان به حروف با استفاده از ثانیه
  • پیاده‌سازی صفحه فیلتر
  • شروع پیاده‌سازی دیزاین صفحه فیلتر
  • ساخت فیلتر آیتم‌های مختلف برای Handle کردن مدل‌های مختلف فیلتر
  • پیاده‌سازی Toolbar در صفحه فیلتر
  • پیاده‌سازی آیتم دسته‌بندی در صفحه فیلترها
  • پیاده‌سازی آیتم محله در فیلترها
  • پیاده‌سازی بازه قیمت در صفحه فیلترها
  • پیاده‌سازی پارامترها در صفحه فیلترها
  • اضافه کردن FilterScreen به AppNavigation
  • اصلاح برخی ویژگی‌ها در FilterScreen
  • پیاده‌سازی حذف فیلترها
  • اضافه کردن AppButton برای یکسان‌سازی باتن‌ها در اپلیکیشن
  • مدیریت کلیک‌ها در صفحه فیلتر
  • پیاده‌سازی ParameterDialog
  • اضافه کردن عکس به آگهی‌ها
  • ذخیره فیلتر در SharedPreferences
  • ساخت ریپازیتوری برای Filter
  • ذخیره فیلترها در SharedPreferences برای راحتی در Navigate بین صفحات
  • جداسازی فیلترهای صفحه دسته‌بندی و صفحه Home
  • یک روش حرفه‌ای برای کامنت‌نویسی
  • ریفکتور صفحه برای ذخیره و خواندن فیلتر
  • تبدیل FromScreen به Enum
  • ریفکتور Navigation برای مدیریت فیلترها از طریق SharedPreferences
  • ریفکتور کردن صفحه سرچ و آگهی‌ها بر اساس تغییرات جدید
  • اتمام ذخیره فیلتر در SharedPreferences
  • اعمال تغییرات گذشته برای صفحه FilterScreen
  • ذخیره و دریافت فیلترها در صفحه FilterScreen
  • شروع پیاده‌سازی جزئیات آگهی
  • افزودن ماژول جدید AdsDetail به پروژه
  • به‌روزرسانی فایل‌های Build.Gradle برای اضافه کردن Dependencies جدید
  • ایجاد سرویس API جدید AdsApiService برای دریافت جزئیات آگهی‌ها
  • افزودن مدل‌های داده جدید مانند AdsResponse،UserResponse
  • پیاده‌سازی Mapper‌های جدید برای تبدیل مدل‌های داده به مدل‌های دامنه
  • ایجاد ریپازیتوری جدید AdsRepositoryImpl برای مدیریت داده‌های آگهی‌ها
  • افزودن Interface AdsRepository در لایه دامنه برای تعریف عملکرد ریپازیتوری
  • ایجاد UseCase جدید GetAdsDetailUseCase برای دریافت جزئیات آگهی
  • به‌روزرسانی Navigation اپلیکیشن برای افزودن صفحه جزئیات آگهی
  • ایجاد Composable جدید AdsDetailScreen برای نمایش جزئیات آگهی
  • افزودن ViewModel جدید AdsDetailViewModel برای مدیریت وضعیت صفحه جزئیات آگهی
  • افزودن قابلیت Loading و نمایش پیام خطا در صفحه جزئیات آگهی
  • ایجاد کامپوننت SliderSection برای نمایش تصاویر آگهی به صورت اسلایدر
  • به‌روزرسانی فایل‌های داده ساختگی برای پوشش داده‌های جدید
  • افزودن رشته جدید “تلاش مجدد” در فایل Strings.xml
  • بهینه‌سازی و بازسازی کد برای بهبود خوانایی و قابلیت نگهداری
  • اضافه کردن قابلیت ذخیره و بازیابی اطلاعات فیلترها در صفحه فیلتر
  • تغییر نوع آرگومان Navigation به Long برای شناسه آگهی در AdsDetailRoute
  • حذف تنظیمات غیرضروری از فایل‌های Build.gradle ماژول AdsDetail
  • به‌روزرسانی و اصلاح مسیرهای Navigation برای هماهنگی با تغییرات جدید
  • ایجاد بخش Slider
  • افزودن پس‌زمینه و نسبت ابعاد به AdsDetailScreen
  • بهبود Composable SliderSection با HorizontalPager و AsyncImage
  • افزودن آیکون‌های تعاملی (اشتراک‌گذاری، چاپ، بوکمارک) به SliderSection
  • تنظیمات جدید برای چیدمان و استایل آیکون‌ها در AdsDetailScreen
  • بهبود پیش‌نمایش Composables با تم‌های مختلف
  • اعمال Modifier.clip و ContentScale.Crop به تصاویر
  • افزودن قابلیت کلیک‌پذیر بودن به متن “تلاش مجدد”
  • استفاده از AppTheme برای هماهنگی رنگ‌ها و استایل‌ها
  • بهینه‌سازی چیدمان عناصر با استفاده از Arrangement.spacedBy
  • افزودن قابلیت تعامل با کاربر از طریق AnimateClickable
  • بررسی کتابخانه Wear:Compose برای Pager
  • افزودن کامپوننت‌های جدید به SliderSection.kt
  • افزودن Spacer و LazyRow برای نمایش شاخص‌ها
  • افزودن آیکون Fullscreen به اسلایدر
  • افزودن شاخص صفحه HorizontalPagerIndicator به اسلایدر تصاویر
  • بهبود نمایش تعداد تصاویر با استفاده از BodyMediumText
  • بهینه‌سازی استفاده از Modifier در Composables
  • تعریف کامپوزبل جدید HorizontalPagerIndicator برای نمایش شاخص صفحات
  • افزودن پس‌زمینه با شفافیت به ردیف آیکون‌ها در اسلایدر
  • افزودن پارامتر OnAdsClick به MainNavigation.kt
  • استفاده از Serializable و تغییر نوع تاریخ‌ها به String در AdsResponse.kt
  • استفاده از Serializable در ParameterAnswerResponse.kt و UserResponse.kt
  • به‌روزرسانی داده‌های ساختگی در FakeData.kt با تغییر نوع تاریخ‌ها به String
  • تغییر نوع تاریخ‌ها به String در مدل دامنه Ads.kt و User.kt
  • بهبود و اصلاح کامپوزبل AdsDetailScreen.kt شامل افزودن OnBack و تغییر Arrangement
  • افزودن قابلیت کلیک بر روی AdsItem در HomeScreen.kt
  • به‌روزرسانی ناوبری صفحه Home برای پشتیبانی از OnAdsClick
  • پیاده‌سازی اسلایدر تمام صفحه
  • افزودن کامپوزبل FullScreenSlider برای نمایش تصاویر در حالت تمام صفحه
  • استفاده از HorizontalPager برای امکان کشیدن بین تصاویر در اسلایدر تمام صفحه
  • نمایش تصاویر با استفاده از AsyncImage با مقیاس‌بندی محتوا
  • پیاده‌سازی دکمه بستن برای خارج شدن از اسلایدر تمام صفحه و بازگشت به صفحه قبلی
  • افزودن شاخص صفحه افقی برای نشان دادن موقعیت فعلی تصویر در اسلایدر تمام صفحه
  • به‌روزرسانی AdsDetailScreen برای نمایش شرطی اسلایدر تمام صفحه بر اساس وضعیت UI
  • معرفی رویداد ShowFullScreenSlider در AdsDetailUiEvent برای کنترل نمایش اسلایدر تمام صفحه
  • مدیریت رویداد ShowFullScreenSlider در AdsDetailViewModel برای به‌روزرسانی وضعیت UI
  • تغییر SliderSection برای تحریک رویداد ShowFullScreenSlider هنگام کلیک بر روی تعداد تصاویر
  • استفاده از BackHandler برای مدیریت فشردن دکمه بازگشت و خارج شدن از اسلایدر تمام صفحه
  • پیاده‌سازی جزئیات آگهی
  • افزودن اجزای UI برای نمایش جزئیات آگهی
  • پیاده‌سازی LazyColumn برای نمایش پاسخ‌های پارامترهای آگهی
  • ایجاد کامپوزبل ParameterAnswerItem برای رندر پاسخ‌های پارامتر جداگانه
  • به‌روزرسانی SliderSection برای شامل کردن دکمه اشتراک‌گذاری آگهی
  • پیاده‌سازی قابلیت اشتراک‌گذاری آگهی در AdsDetailViewModel
  • انتقال زمینه اشتراک‌گذاری از AdsDetailScreen به ViewModel
  • بهبود چیدمان و استایل صفحه جزئیات آگهی
  • پیاده‌سازی بخش مرکزی قابل اسکرول برای نمایش جزئیات
  • استفاده از FlowColumn برای چیدمان پاسخ‌های پارامتر
  • تنظیم ترازبندی متن و رنگ‌ها
  • افزودن دکمه “اطلاعات تماس” در پایین صفحه
  • بسته‌بندی بخش مرکزی در Column با قابلیت اسکرول عمودی
  • به‌روزرسانی کامپوزبل CenterSection
  • افزودن منبع رشته برای برچسب دکمه “اطلاعات تماس”
  • پیاده‌سازی احراز هویت
  • ایجاد کامپوزبل AuthScreen برای احراز هویت کاربر
  • پیاده‌سازی اجزای UI برای حالت‌های ورود و ثبت نام
  • افزودن دکمه تعویض بین حالت‌های ورود و ثبت نام
  • نمایش متن و برچسب‌های مناسب بر اساس حالت انتخاب شده
  • استفاده از کامپوزبل‌‌های Row و Column برای چینش عناصر UI
  • استفاده از کامپوزبل‌های  Icon و Text برای دکمه بازگشت و تعویض حالت
  • به‌روزرسانی AuthUiState برای شامل کردن ScreenMode
  • معرفی ScreenMode Enum برای نمایندگی حالت‌های ورود و ثبت نام
  • افزودن رویداد OnChangeMode برای مدیریت تعویض حالت
  • تغییر AuthScreenContent برای پذیرش پارامترهای ScreenMode و OnAction
  • به‌روزرسانی تابع ناوبری AuthScreen و مسیر برای حذف پارامترهای غیرضروری
  • افزودن منابع رشته برای برچسب‌ها و توضیحات ورود و ثبت نام
  • افزودن فیلدهای ورودی برای شماره موبایل، رمز عبور و تکرار رمز عبور
  • استفاده از کامپوزبل AppTextField برای استایل یکنواخت فیلدهای ورودی
  • به‌روزرسانی AuthUiState برای شامل کردن خصوصیات Mobile،Password و RepeatPassword
  • معرفی کلاس TypingType برای نمایندگی انواع مختلف ورودی
  • مدیریت رویداد OnTextChanged در AuthViewModel برای به‌روزرسانی مقادیر فیلدهای ورودی
  • نمایش شرطی فیلد تکرار رمز عبور بر اساس حالت صفحه (ورود یا ثبت نام)
  • پیاده‌سازی بخش برچسب‌رنگی برای نمایش لینک‌های تعهدات و سیاست حفظ حریم خصوصی
  • استفاده از کامپوزبل LabelMediumColoredText برای رندر بخش برچسب‌رنگی با رنگ‌های مختلف متن
  • تنظیم چیدمان و فاصله‌بندی فیلدهای ورودی و بخش برچسب
  • افزودن منابع رشته برای راهنمایی فیلدهای ورودی و بخش برچسب‌رنگی
  • نظرات موقتی بر روی AppNavigation در MainActivity برای تست AuthScreen
  • بهبود چیدمان و استایل صفحه احراز هویت
  • افزودن ستون قابل اسکرول برای جای دادن محتوای طولانی‌تر و جلوگیری از سرریز
  • تنظیم فاصله‌ها و ترازبندی فیلدهای ورودی و برچسب‌ها برای خوانایی بهتر
  • پیاده‌سازی گزینه‌های صفحه‌کلید برای نمایش صفحه‌کلید عددی در فیلد شماره موبایل
  • به‌روزرسانی کامپوزبل LabelMediumColoredText برای پشتیبانی از لینک‌ها در بخش برچسب‌رنگی
  • افزودن لینک به شرایط و قوانین و سیاست حفظ حریم خصوصی در بخش برچسب‌رنگی
  • پیاده‌سازی دکمه ورود/ثبت نام در پایین صفحه
  • مدیریت رویداد OnBtnClick در AuthViewModel برای قابلیت‌های ورود/ثبت نام آینده
  • به‌روزرسانی منابع رشته برای حذف پرانتزهای غیرضروری و بهبود فرمت‌بندی
  • بازنگری RepeatPassword برای ثبات نام
  • افزودن رویداد OnBtnClick به کلاس AuthUiEvent برای مدیریت کلیک دکمه‌ها
  • یکپارچه‌سازی APIهای ورود و ثبت نام با صفحه احراز هویت
  • افزودن UserApiService برای مدیریت درخواست‌های API ورود و ثبت نام
  • پیاده‌سازی UserRepositoryImpl برای تعامل با UserApiService و انجام نگاشت داده‌ها
  • ایجاد LoginUseCase و RegisterUseCase برای کپسوله‌سازی منطق ورود و ثبت نام
  • به‌روزرسانی AuthViewModel برای مدیریت رویدادهای ورود و ثبت نام و اعتبارسنجی ورودی کاربر
  • پیاده‌سازی اعتبارسنجی ورودی برای فیلدهای شماره موبایل، رمز عبور و تکرار رمز عبور
  • نمایش پیام‌های خطای مناسب با استفاده از UiMessage برای ورودی نامعتبر یا خطاهای API
  • نمایش نشانگر بارگذاری روی دکمه ورود/ثبت نام در طول درخواست‌های API
  • ناوبری به صفحه اصلی پس از ورود یا ثبت نام موفق
  • ذخیره توکن کاربر در SharedPreferences پس از ورود یا ثبت نام موفق
  • به‌روزرسانی AppNavigation برای شامل کردن صفحه احراز هویت و مدیریت ناوبری به صفحه اصلی
  • افزودن مدیریت خطا برای کد وضعیت 404 در تابع SafeCall
  • به‌روزرسانی منابع رشته برای پیام‌های خطای اعتبارسنجی ورودی
  • بازنگری نام بسته‌ها و کلاس‌ها برای ثبات و وضوح بیشتر
  • بررسی ورود کاربر
  • بروزرسانی AppNavigation برای بررسی وضعیت ورود کاربر
  • افزودن متد IsLogin به UserRepository و پیاده‌سازی آن در UserRepositoryImpl
  • معرفی IsLoginUseCase برای بررسی وضعیت ورود در لایه دامنه
  • بهبود MainScreen و MainViewModel برای واکنش به تغییرات وضعیت ورود کاربر
  • گسترش MainUiState برای شامل کردن IsUserLoggedIn
  • تنظیم منطق ناوبری نوار پایین برای تطبیق با جریان احراز هویت
  • افزودن ماژول ویژگی ایجاد آگهی و به‌روزرسانی تنظیمات پروژه
  • پیاده‌سازی CreateAdsScreen با اجزای UI پایه و تنظیم ناوبری
  • به‌روزرسانی AppNavigation برای ادغام منطق ناوبری ایجاد آگهی
  • بهبود MainActivity برای راه‌اندازی CreateAdsScreen به منظور تست
  • تعریف مسیرهای ناوبری و توابع در CreateAdsScreen.kt
  • به‌روزرسانی منابع رشته برای شامل برچسب‌های جدید ویژگی ایجاد آگهی
  • بازنگری CreateAdsViewEvent برای مدیریت وضعیت  UIو رویدادها
  • به‌روزرسانی AppButton برای تنظیم ترازبندی متن
  • تغییر منابع فونت در AppTypography به New_Iran_Sans
  • افزودن منبع رشته جدید برای متن دکمه «بعدی»
  • بازنگری CreateAdsScreen به استفاده از Composable جداگانه CreateAdsToolbar
  • معرفی BottomBar در CreateAdsScreen با دکمه «بعدی» برای مدیریت مراحل ناوبری
  • پیاده‌سازی CreateAdsToolbar در فایل کامپوننت جدید برای مدیریت عملکردهای نوار بالا
  • اطمینان از تطابق تم و استفاده از رنگ‌ها در اجزای UI برای یک ظاهر هماهنگ
  • پیاده‌سازی ویژگی ایجاد آگهی
  • معرفی کلاس داده‌ CreateAdsParam برای پارامترهای ایجاد آگهی
  • افزودن منابع رشته جدید برای راهنمایی کاربران در فرآیند ایجاد آگهی
  • پیاده‌سازی کامپوزبل Step1Content برای مدیریت مرحله اول ایجاد آگهی
  • ایجاد کامپوزبل ImageItem برای تسهیل افزودن تصاویر در فرآیند ایجاد آگهی
  • به‌روزرسانی CreateAdsScreen برای مدیریت انتقال وضعیتUI  و نمایش دیالوگ‌ها
  • بهبود CreateAdsViewModel برای مدیریت رویدادهای مرتبط با انتخاب دسته‌بندی و مدیریت دیالوگ‌ها
  • بازنگری AdsFilterItem برای ثبات در اجزا و تجربه کاربری یکپارچه
  • بهبود کلی چیدمان و تعاملات UI برای هدایت کاربران در فرآیند ایجاد آگهی
  • پیاده‌سازی ویژگی ایجاد آگهی
  • معرفی Modifier DashedBorder در UiExtension.kt برای افزودن حاشیه خط‌چین به محل‌های خالی تصویر
  • تغییر CreateAdsParam برای مقداردهی اولیه با نشانه‌های خالی تصویر
  • به‌روزرسانی کامپوزبل ImageItem برای نمایش نشانه با حاشیه خط‌چین
  • استفاده از AsyncImage با گوشه‌های گرد
  • افزودن گرید انتخاب تصویر در Step1Content با امکان افزودن حداکثر شش تصویر
  • پیاده‌سازی چیدمان قابل اسکرول در Step1Content برای سازگاری با اندازه‌های صفحه مختلف
  • افزودن پیش‌نمایش برای Step1Content و ImageItem جهت تسهیل اعتبارسنجی و تست طراحی
  • افزودن تابع Extension FindIndex به Extension.kt برای یافتن اندیس آیتم‌ها
  • یکپارچه‌سازی کتابخانه Pluck برای عملکرد انتخاب تصویر
  • به‌روزرسانی CreateAdsScreen برای مدیریت رویدادهای انتخاب تصویر و نمایش انتخابگر تصاویر
  • بهبود کامپوزبل ImageItem برای تنظیم اندازه دینامیک بر اساس عرض صفحه
  • بازنگری Step1Content به استفاده از FlowRow برای چیدمان انعطاف‌پذیر اسلات‌های تصویر
  • پیاده‌سازی منطق درCreateAdsViewModel برای به‌روزرسانی CreateAdsParam
  • بهبود اجزای UI با تنظیم فضاها و ترازبندی بهتر برای رابط کاربری یکپارچه و کاربرپسند
  • به‌روزرسانی AndroidManifest.xml برای افزودن دسترسی‌های لازم به رسانه‌ها
  • تغییر AppTextField برای تنظیم MaxLines برابر با MinLines
  • افزودن منابع رشته جدید برای راهنمایی کاربران در نوشتن عنوان و توضیحات آگهی
  • بهبود CreateAdsScreen برای مدیریت ورودی عنوان و توضیحات با استفاده از AppTextField
  • به‌روزرسانی CreateAdsViewModel برای دریافت دسته‌بندی‌ها و مدیریت وضعیت ایجاد آگهی
  • بازنگری Step1Content برای افزودن فیلدهای ورودی عنوان و توضیحات آگهی
  • به‌روزرسانی AndroidManifest.xml برای افزودن دسترسی‌های لازم به تصاویر و ویدیوهای رسانه‌ای
  • افزودن منابع رشته جدید برای پیام‌های خطا مرتبط با ایجاد آگهی
  • بهبود CreateAdsParam برای شامل کردن ویژگی‌های محله و قیمت
  • جایگزینی کتابخانه Pluck با FilePicker برای بهبود انتخاب رسانه‌ها
  • پیاده‌سازی CreateAdsScreen با استفاده از FilePicker برای مدیریت انتخاب تصاویر ویدیوها
  • به‌روزرسانی CreateAdsViewModel برای مدیریت پارامترها و اعتبارسنجی مراحل ایجاد آگهی
  • معرفی Step2Content برای مدیریت جزئیات اضافی آگهی شامل محله و قیمت
  • تنظیم وابستگی‌ها در Libs.Versions.Toml برای افزودن FilePicker
  • افزودن مخزن JitPack به Settings.Gradle.kts برای دسترسی به کتابخانه FilePicker
  • به‌روزرسانی AppTextField برای پشتیبانی از قالب‌بندی قیمت
  • معرفی کلاس NumberCommaTransformation برای قالب‌بندی اعداد با استفاده از کاما
  • افزودن متد CreateAds در AdsRepositoryImpl و AdsRepository برای مدیریت درخواست‌ها
  • پیاده‌سازی CreateAdsUseCase برای تسهیل منطق ایجاد آگهی و اتصال مخزن به لایه UI
  • بهبود CreateAdsViewModel برای مدیریت کامل فرآیند ایجاد آگهی، شامل اعتبارسنجی و تعامل با API
  • بازنگری کامپوزبل Step2Content برای افزودن ورودی قیمت با تنظیمات صفحه‌کلید مناسب
  • بررسی اطمینان از ورود دقیق داده‌ها
  • تنظیم مجدد اجزای UI و رشته‌ها برای ارائه راهنمایی و بازخورد واضح در طول فرآیند ایجاد آگهی
  • به‌روزرسانی وابستگی‌ها و تنظیمات برای پشتیبانی از ویژگی‌های جدید
  •  اطمینان از یکپارچگی بی‌درنگ در سراسر اپلیکیشن
  • به‌روزرسانی AdsApiServiceبرای افزودن EndPoint CreateAds جهت ارسال داده‌های فرم چندبخشی
  • بهبود AdsRepositoryImpl برای مدیریت ایجاد آگهی‌ها
  • بررسی تبدیل CreateAdsParam به JSON و مدیریت بارگذاری تصاویر
  • استفاده از MultiPartBody برای مدیریت فایل‌های تصویری
  • استفاده از RequestBody برای داده‌های آگهی، اطمینان از سازگاری با نیازمندی‌های API
  • معرفی ParsingError در ApiError برای مدیریت مشکلات احتمالی تجزیه JSON
  • پیاده‌سازی منطق برای مرور مسیرهای تصاویر در CreateAdsParam و ایجاد MultipartBody.Part
  • اطمینان از مدیریت خطای قوی در متد CreateAds
  • بررسی انتشار وضعیت‌های مناسب DataResult بر اساس موفقیت یا شکست تماس API
  • تست ساخت موفقیت‌آمیز آگهی و نمایش آن در صفحه اصلی
  • پیاده‌سازی اتصال مکان به ایجاد آگهی
  • به‌روزرسانی AppNavigation برای مدیریت ناوبری به صفحه مکان با استفاده از LocationScreenType
  • گسترش LocationApiService برای دریافت شهرها با محله‌ها و پشتیبانی از دریافت داده‌های مکان
  • افزودن ثابت USER_NEIGHBORHOOD به SharedPrefConstant
  • معرفی اجزای آگاه به چرخه حیات در LifeCycle.kt
  • بررسی مدیریت مؤثر رویدادهای چرخه حیات در Compose
  • بهبود LocationRepositoryImpl برای پشتیبانی از دریافت و ذخیره محله‌ها
  • بررسی فراهم‌سازی مدیریت کامل مکان
  • اضافه کردن Enum LocationScreenType برای تمایز بین زمینه‌های ناوبری مختلف
  • بازنگری LocationViewModel برای مدیریت انتخاب و ذخیره محله‌ها
  • پیاده‌سازی امکان انتخاب محله‌های خاص برای آگهی‌ها
  • به‌روزرسانی LocationScreen برای نمایش محله‌ها هنگام انتخاب یک شهر
  • بررسی ارائه فرآیند انتخاب مکان دقیق‌تر به کاربران
  • بهبود توابع ناوبری برای شامل کردن پارامترهایی جهت نوع صفحه
  • بررسی اطمینان از انتقال‌های بی‌نقص بین بخش‌های مختلف اپلیکیشن
  • جمع‌بندی کلی دوره و مباحثی که با هم یاد گرفتیم
  • خصوصیت یک برنامه‌نویس حرفه‌ای
  • چگونه خودمون رو آپدیت و به روز نگه داریم
  • قبل از مصاحبه استخدامی باید چیکار کنیم؟
  • آینده اندروید و مسیر پیش‌رو …

سرفصلها را به صورت کامل بررسی کردید حالا نوبت ویدیوهای نمونه رایگان رسیده است…

ویدئو های نمونه از آموزش ساخت اپلیکیشن دیوار با اندروید:

در ادامه تعدادی از ویدیوهای دوره برای شما به صورت رایگان قرار داده شده است تا شما از کیفیت کمی و کیفی دوره آموزش ساخت اپلیکیشن دیوار با اندروید مطمئن شوید و قبل از خرید به خوبی سطح آموزش را از همه لحاظ بررسی و ارزیابی کنید:

لطفا ویدیوهای نمونه را به خوبی بررسی بفرمائید. این ویدیوها کاملا رایگان و با مدت کامل جلسه هستند.

جلسه 26- Parameter Entity Fix and Update

جلسه 38- Create Android Project

جلسه 54- What is MVI

جلسه 75- Show Success and Failure Message

جلسه 105- Save City on SharedPreferences

جلسه 109- Connect LocationScreen to MainScreen

جلسه 154- Check User is Loggedin or Not

حالا نوبت آن شده که به بررسی مشخصات این دوره آموزشی بپردازیم…


پیش از یادگیری» پیشنیاز آموزش ساخت اپلیکیشن دیوار؟

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

اگر به دنبال نقشه راه بعد از دوره آموزش ساخت اپلیکیشن دیوار هستید همراه ما باشید.

پس از یادگیری» دوره بعد از آموزش ساخت اپلیکیشن دیوار؟

بعد از دوره آموزش ساخت اپلیکیشن دیوار اگر تمایل دارید به مسیر آموزشی خود ادامه دهید، به ترتیب زیر حرکت کنید:

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

این آموزش تاکنون نیاز به آپدیت نداشته است و کاملاً بروز می باشد!

چنانچه احساس می‌کنید این آموزش نیاز به آپدیت و بروزرسانی دارد لطفاً این موضوع را با ما در میان بگذارید.

  • در آپدیت باکس این آموزش، موردی یافت نشد.
مدرس آموزش
مهدی اسداله‌پور
مهدی اسداله‌پور هستم با چندین سال تجربه در توسعه برنامه‌های اندرویدی. تخصص‌های من در زمینه جاوا، طراحی رابط کاربری با XML، کاتلین و فریم‌ورک Jetpack Compose می‌باشد. در طی این سال‌ها روی پروژه‌های متنوعی کار کرده‌ام؛ از اپلیکیشن‌های فروشگاهی و سوپراپلیکیشن‌ها گرفته تا کتابخانه‌های کودکان، اپلیکیشن‌های ورزشی و برنامه‌های مرتبط با پایانه‌های فروش (POS). با تمرکز بر یادگیری مستمر و به‌روز نگه‌داشتن مهارت‌هایم، همیشه در تلاش هستم تا با استفاده از جدیدترین فناوری‌ها و روش‌ها، تجربه کاربری بهتری ایجاد کنم و به دیگر توسعه‌دهندگان در مسیر یادگیری‌شان کمک کنم.
آموزش ساخت اپلیکیشن دیوار با اندروید دوره 4 اپ اندرویدی آموزش پایتون آموزش جنگو آموزش پریمیر آموزش افترافکت آموزش هک اینستاگرام آموزش هک
نظرات کاربران

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

36 نظر ثبت شده است
ابوالفضل کاشانی
ابوالفضل کاشانی
264 روز همراهی
ابوالفضل کاشانی (15 بهمن 1403 | 13:58)

سلام عرض شد
دوستان مدرس خیلی خوب پاسخ میده واقعا از دوره و خصوصا از پشتیبانی این دوره خیلی رضایت دارم چون آقای اسدالله پور دیشب مدت 25 دقیقه به سیستم من متصل شدن و مشکل من رو برطرف کردن و این کار رو من ندیدم مدرس یا سایتی انجام بده من از لرن فایلز و مدرس دوره بسیار ممنونم

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (15 بهمن 1403 | 16:03)

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

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (15 بهمن 1403 | 14:09)

سلام جناب کاشانی عزیز
پشتیبانی 360 درجه لرن فایلز یک بخش بی نظیر از دوره های ماست و خوشحالیم که به اوج لذت این مزیت پی بردید.

ارسال پاسخ
mostafa ahmadi
2660 روز همراهی
mostafa ahmadi (14 بهمن 1403 | 10:30)

سلام استاد خسته نباشین، ممنون از آموزش مفید و خوب شما، ببخشید در قسمت تغییر تم امکانش هست تغییرتم را با Circular Reveal Animation
پیاده‌سازی فرمایید. با تشکر

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (14 بهمن 1403 | 12:28)

سلام جناب احمدی
لطف دارید شما. این آموزش کامل شده و هر چیزی که نیاز بوده رو به بهترین شکل آموزش دادم اما این مورد رو چون شما درخواست کردید سعی میکنم در آپدیت های آینده اگر کس دیگری درخواست کرد اضافه کنم.

ارسال پاسخ
میهمان
mhp (13 بهمن 1403 | 18:39)

سلام جناب اسدالله پور در دوره اپلیکشن دیوار به مباحث بهینه‌ سازی و تست اپلیکیشن اندرویدی هم اشاره کردید یا نه؟

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (13 بهمن 1403 | 22:27)

سلام.
بله کامل مباحث پوشش داده شده.

ارسال پاسخ
محسن فلاحی
محسن فلاحی
847 روز همراهی
محسن فلاحی (13 بهمن 1403 | 14:53)

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

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (13 بهمن 1403 | 23:50)

لطف داری محسن جان

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (13 بهمن 1403 | 16:05)

سلام جناب فلاحی عزیز
خیلی عالی. این که مدرسین لرن فایلز حرفه ای های بازار هستند یک اصل اساسی در جذب مدرسین ماست. خوشحالیم که رضایت داشتید.

ارسال پاسخ
میهمان
پارسا فرخی (13 بهمن 1403 | 12:34)

درود بر شما استاد آیا در دوره به‌ صورت کامل پیاده‌سازی سمت سرور رو با Spring Boot و Kotlin انجام دادید یا صرفا بهش پرداختید در حد آموزش؟ اگر بله بسیار عالی دمتون گرم من متشکرم و تهیه می کنمش حتما چون واقعا مباحث پیشرفته هستن

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (13 بهمن 1403 | 15:13)

با سلام پارسا عزیز
بله به صورت کامل پیاده سازی با Spring Boot و کاتلین انجام شده و اصلا سطحی نیست و کاملا از صفر تا صد به این موضوع پرداخته شده. جای نگرانی نیست

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (10 بهمن 1403 | 18:27)

ارادت. کامل پرداخته شده.

ارسال پاسخ
سعید خداویردی
سعید خداویردی
728 روز همراهی
سعید خداویردی (12 بهمن 1403 | 17:47)

اقای اسدالله پور متشکرم بابت این دوره عظیم و کم نظیر من دوره رو الان تمام کردم و گفتم یک تشکر ویژه به شما بابت این دوره و پشتیبانی خوبتون بگم

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (12 بهمن 1403 | 22:23)

لطف داری سعید عزیز این دوره واقعا براش تمام و کمال خودم رو گذاشتم و یک دوره بی نظیر آماده کردم با بالاترین سطح علمی و خوشحالم که رضایت داشتی.

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (12 بهمن 1403 | 19:05)

سلام جناب خداویردی عزیز
متشکریم که به ما اعتماد کردید و از خوشحالیم که از آموزش رضایت داشتید

ارسال پاسخ
Morteza
Morteza
300 روز همراهی
Morteza (12 بهمن 1403 | 11:44)

بِراااااوووو!
از پیاده سازی پنل مدیریت و نحوه‌ی اتصال به سرور ، احراز هویت کاربرا ، طراحی UI و UX ، امنیت اپ و حتی مباحث مربوط به دیباگ و بهینه‌ سازی کدها گرفته تا همه چیزایی که توی قولش رو اول دوره داده بودید همه رو پیاده سازی کردید و آموزش داده به حرفه ای ترین شکل ممکن واقعا دست مریزاد اقای اسدالله پور
پشتیبانی فوق‌ العاده‌ سریع شما منو متعجب کرد حقیقتا چون چند بار سوالات تخصصی درباره‌ ی پیاده‌ سازی API پرسیدم شما نه تنها در چند دقیقه جوابم رو دادید بلکه نمونه کد هم ارسال کردید و گفتید اگر نیاز هست به سیستمم وصل بشید که دیگه این آخر خط پشتیبانی بود مرسی واقعا سپاس از خدماتتون به عنوان یک مدرس

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (12 بهمن 1403 | 22:24)

شما عزیزی مرتضی جان. همه چیز هایی که نیاز بود گفته بشه رو باید میگفتم و قول داده بودم و پشتیبانی هم که تعهد من بوده روی دوره پس خوشحالم که شما از همه اینا با هم رضایت داشتی کار خاصی نکردم. زنده باشی

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (12 بهمن 1403 | 15:06)

عزیزید مرتضی جان
مدرس این دوره بی نظیر عمل کرده و با یک دوره ناب طرف هستیم. بزرگوارید.

ارسال پاسخ
شمیم آسترکی
شمیم آسترکی
169 روز همراهی
شمیم آسترکی (10 بهمن 1403 | 19:53)

با سلام ویژه به استاد عزیز آقای اسدالله پور با توجه به محتوای جامع و پشتیبانی عالی این دوره باید بگم بهترین دوره ای بود که تهیه کرده بودم از لرن فایلز
این دوره قطعاً ارزش سرمایه‌ گذاری من رو داشت یک دوره کاملاً پروژه‌محور با مباحث خیلی مدرن و خرفه ای اندروید بود با انجام پروژه سطح بالای دیوار خیلی از مفاهیم پیچیده که تا حالا درک نکرده بودم کلا ، به‌ خوبی توی ذهنم بالاخره جا افتاد
پشتیبانی مستقیم با خود اقای اسدالله پور هم که خیلی سریع بود و عالی
در کل ممنونم از این قدر کیفیت و اهمیت به یوزر

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (10 بهمن 1403 | 23:26)

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

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (10 بهمن 1403 | 21:08)

با سلام شمیم عزیز
خوشحالیم که سطح بالای دوره و پشتیبانی خوب استاد اون باعث رضایت شما شده . همراه ما بمونید.

ارسال پاسخ
میهمان
Mamad Amen (10 بهمن 1403 | 10:40)

سلام و خداقوت به تیم لرن فایلز من ویدیو ها نمونه این دوره رو دیدم برگااااااااام ریخت واقعا این دوره واژه “عظیم و فوق حرفه ای” که نوشتید رو لازم داشت… خیلی خفنه عالی. حتما می گیرمش

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (10 بهمن 1403 | 15:27)

ارادت. حقیقتا از اون چیزی که توی این صفحه نشون داده شده هم بیشتر هست داخل دوره

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (10 بهمن 1403 | 11:02)

ارادت محمد عزیز
خوشحالیم که تا این حد از این دوره هیجان زده شدید. واقعا این دوره یک دوره بی نظیر و عظیم است و با این حد از مباحث آموزشی میتوان گفت کمیاب و بی نظیر است.

ارسال پاسخ
اشکان رضاپور
400 روز همراهی
اشکان رضاپور (9 بهمن 1403 | 14:35)

با سلام
من این دوره رو با کمی تردید خریدم چون قبلاً توی چند سایت دیگه دوره مشابه رو دیده بودم اما این دوره واقعا معرکه بود
مدرس آقای اسداله پور خیلی روون و منظم توضیح میده و چیزی که برای من خیلی مهم بود این بود که فقط به کدنویسی و اجرا کردن پروژه اکتفا نکرده بودن ایشون، بلکه تمام جزئیات واقعی پیاده‌ سازی یک اپلیکیشن در مقیاس تجاری بزرگ مثل دیوار رو هم توضیح دادند و این خیلی برام مهم و جذاب بود
من دوره رو تمام کردم و به این دوره امتیاز 5 از 5 رو دادم. عالی بود.

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (9 بهمن 1403 | 18:07)

سلام اشکان عزیز
این امتیاز از سمت شما برای ما بسیار ارزشمند هست متشکریم از شما

ارسال پاسخ
مهدی اسداله‌پور
مهدی اسداله‌پور
17 روز همراهی
مهدی اسداله‌پور (9 بهمن 1403 | 16:25)

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

ارسال پاسخ
میهمان
امیرحسین بشارت (4 بهمن 1403 | 13:45)

این دوره واقعا بی نظیره لذت بردم از حجم سرفصل و مطالبی که نوشتید و ویدیوهای نمونه ای که گذاشتید رو دیدم و ساعت و مدت دوره رو هم دیدم و همه چیز عالی بود بجز قیمتش که الان توان خرید ندارم امیدوارم تخفیف بهتری بخوره

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (4 بهمن 1403 | 14:11)

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

ارسال پاسخ
میهمان
محمد پاکزاد (4 بهمن 1403 | 12:42)

سلام و احترام
این دوره ای که ضبط فرمودید شامل تمام اپلیکیشن دیوار است یا فقط بخشی از اون رو پوشش میده؟

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (4 بهمن 1403 | 18:03)

با سلام جناب پاکزاد عزیز. شامل تمام بخش های دیوار هست اما برای دقیق تر بودن موضوع لطفا ویدئو سرفصل ها ، و متن سرفصل ها رو دقیق مطالعه بفرمائید.

ارسال پاسخ
میهمان
امیر حسین (3 بهمن 1403 | 12:36)

این دوره برای مبتدی ها که فقط اندروید رو گذروندن هم مناسبه آیا؟

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (3 بهمن 1403 | 14:01)

ارادت امیرحسین عزیز
بله شما میتونید این دوره رو کامل بگذرونید اگر دوره آموزش کاتلین و دوره آموزش برنامه نویسی اندروید رو گذرونده باشید

ارسال پاسخ
میهمان
مسعود سعیدی (2 بهمن 1403 | 10:07)

سلام آقای اسداله پور یه پروژه داشتم ساخت اپ پ
مشابه دیوار

ارسال پاسخ
لرن فایلز
لرن فایلز
4127 روز همراهی
لرن فایلز (2 بهمن 1403 | 12:54)

ارادت وقت شما بخیر. لطفا از داخل پنل تیکت بفرستید تا روش ثبت پروژه و ارسال برای جناب اسداله پور خدمت شما ارسال شود.

ارسال پاسخ
آموزش های پیشنهادی

کلمات مرتبط با آموزش ساخت اپلیکیشن دیوار با اندروید

ساخت اپلیکیشن دیوار، برنامه دیوار، طراحی اپلیکیشن، ساخت اپلیکیشن، ساختن اپلیکیشن، دیوار اپلیکیشن، آموزش ساخت اپلیکیشن، ساخت اپلیکیشن اندروید، ساخت اپلیکیشن موبایل، چگونه اپلیکیشن بسازیم، چگونه یک اپلیکیشن بسازیم، آموزش ساخت اپلیکیشن اندروید، ساخت اپ اندروید، ساخت اپلیکیشن بدون کدنویسی، آموزش ساخت اپلیکیشن موبایل، اموزش رایگان ساخت اپلیکیشن دیوار، ساخت اپلیکیشن اندروید بدون برنامه نویسی، ساخت اپلیکیشن دیوار، ساخت اپلیکیشن مثل دیوار، ساخت اپلیکیشن مشابه دیوار، ساخت دیوار، هزینه ساخت اپلیکیشن دیوار، ساخت اپلیکیشن شبیه دیوار، ساخت برنامه دیوار، ساخت برنامه مشابه دیوار.

 

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