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

  • بررسی Retain API در Jetpack Compose: پر کردن شکاف میان remember و ViewModel

    بررسی Retain API در Jetpack Compose: پر کردن شکاف میان remember و ViewModel

    سلام. یکی از چالش‌های همیشگی در توسعه اپلیکیشن‌های اندروید، مدیریت Configuration Changes (مانند چرخش صفحه یا تغییر تم) است. در Jetpack Compose، ابزارهای مختلفی برای مدیریت State داریم، اما همیشه یک جای خالی احساس می‌شد؛ جایی که می‌خواستیم یک آبجکت سنگین یا غیرقابل سریال‌سازی (Non-serializable) را بدون استفاده از ViewModel در چرخش صفحه حفظ کنیم.…

  • تقلب‌نامه Coroutines در کاتلین (مناسب برای توسعه‌دهندگان اندروید)

    تقلب‌نامه Coroutines در کاتلین (مناسب برای توسعه‌دهندگان اندروید)

    سلام، امروز می‌خوام یه تقلب‌نامه (Cheat Sheet) از Coroutine ها در کاتلین رو باهاتون به اشتراک بذارم که می تونید یه جا ذخیره نگهش دارید هر موقع شک کردید کدوم مورد لازمتون میشه یه نگاه بهش بندازید. Coroutine‌ها یکی از اون مباحث جذاب و در عین حال چالش‌برانگیز کاتلین هستن که یادگیریشون می‌تونه سطح برنامه‌نویسی…

  • آموزش استفاده از Channel در کاتلین برای مدیریت رویدادهای سراسری (Global Events)

    آموزش استفاده از Channel در کاتلین برای مدیریت رویدادهای سراسری (Global Events)

    تا حالا شده توی برنامه‌نویسی اندروید یا کاتلین مولتی‌پلتفرم (KMP) به این مشکل بخورید که بخواید یه پیغام یا دیالوگ رو از هرجای اپلیکیشن نشون بدید؟ مثلاً تو بازی، قلبت تموم می‌شه و باید پیام “بازی تموم شد” بیاد، فرقی هم نمی‌کنه تو کدوم صفحه‌ای باشی! یا توی یه اپلیکیشن حسابداری، اعتبارت تموم می‌شه و…

  • 7 نکته تکمیلی Hilt (مخصوص اپ‌های بزرگ!)

    7 نکته تکمیلی Hilt (مخصوص اپ‌های بزرگ!)

    تزریق وابستگی (Dependency Injection) توی اندروید در نگاه اول ساده به نظر می‌رسه، مخصوصاً وقتی از Hilt استفاده می‌کنی. اما به محض اینکه برنامه‌ات رشد می‌کنه و به یه معماری چند-ماژولی و بزرگ تبدیل می‌شه، تازه می‌فهمی که Hilt یه سری قابلیت‌ داره که فوق‌العاده قدرتمندن. توی این مقاله، 7 تا مفهوم پیشرفته Hilt رو…

  • REST API، باید ها و نباید های طراحی Api

    REST API، باید ها و نباید های طراحی Api

    سلام به همگی! امروز می‌خوایم درمورد طراحی REST API حرف بزنیم. این مقاله رو «سید عبدالله» نوشته و در اینجا یه خلاصهٔ کاربردی ازش رو براتون آوردم، یکم همه تجربیات خودم قاطیش کردم! از این مقاله چی یاد می‌گیریم؟ API چیه؟ API یا همون «رابط برنامه‌نویسی نرم‌افزار»، یه سری ابزار و تعریف و قوانینه که…

  • ساختاردهی به طراحی با Scaffold در Compose

    ساختاردهی به طراحی با Scaffold در Compose

    در این بخش از آموزش برنامه نویسی، می‌خوایم در مورد یکی از بهترین ابزارهای Compose صحبت کنیم که کار طراحی رابط کاربری رو برامون حسابی راحت می‌کنه: Scaffold! اگه تا حالا با Compose کار کرده باشید، حتماً می‌دونید که هرچیزی یه کامپوزبل (Composable) خاص خودش رو داره. اما وقتی می‌خوایم یه صفحه کامل بسازیم، مثلاً…

  • Romm قسمت 2 ـ‌ آموزش کامل پیاده‌سازی Hilt در اندروید در Jetpack Compose

    Romm قسمت 2 ـ‌ آموزش کامل پیاده‌سازی Hilt در اندروید در Jetpack Compose

    hilt! تا حالا شده توی پروژه‌هاتون از حجم زیاد کد و شلوغی برای مدیریت وابستگی‌ها خسته بشین؟ مثلاً بخواین یک ViewModel رو به Repository و اون رو به دیتابیس Room وصل کنین و ببینید چقدر کد تکراری باید بنویسید؟ اینجاست که Hilt میاد وسط و کار رو برای همه آسون می‌کنه! Hilt یه کتابخونه از…

  • Room, اتصال به دیتابیس در اندروید

    Room, اتصال به دیتابیس در اندروید

    سلام دوستان عزیز! امروز می‌خوایم با هم یکی از قدرتمندترین ترکیب‌ها در دنیای اندروید رو بررسی کنیم: Room + KSP + Jetpack Compose. این سه تکنولوژی با هم ترکیب می‌شن تا توسعه اپلیکیشن‌های اندرویدی رو خیلی راحت‌تر و سریع‌تر کنن. توی این مقاله، قصد دارم نحوه پیاده‌سازی این ترکیب رو با مثالهای کاربردی بهتون آموزش…

  • آموزش ViewModel در jetpack Compose

    آموزش ViewModel در jetpack Compose

    در این مبحث می خوایم به پیاده‌سازی ViewModel در compose UI بپردازیم. قبلش یه مروری کنیم به مطلب جلسه قبلمون که راجع State ها بود و بعد بریم سراغ ویو مدل: ۱. درک State (حالت) در جت‌پک کامپوز در جت‌پک کامپوز، State به هر مقداری گفته می‌شه که وقتی تغییر می‌کنه، باعث می‌شه رابط کاربری…

  • مدیریت State در Compose

    مدیریت State در Compose

    در کامپوز، برای بروزرسانی (recomposition) رابط کاربری از State ها استفاده می کنیم. مدیریت State با remember و mutableStateOf توابع Composable می‌توانند از remember برای ذخیره یک شیء در حافظه استفاده کنند.