<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های مهران کاسب وطن</title><link>https://virgool.ir/feed/@mehran.kasebvatan</link><description>توسعه دهنده</description><language>fa</language><pubDate>2026-11-12 08:43:54</pubDate><image><url>https://files.virgool.ir/upload/users/10591/avatar/ZkpbRa.jpg</url><title>مهران کاسب وطن</title><link>https://virgool.ir/@mehran.kasebvatan</link></image><item><title>آموزش زبان کاتلین (قسمت اول: معرفی)</title><link>https://virgool.ir/@mehran.kasebvatan/آموزش-زبان-کاتلین-قسمت-اول-معرفی-gzswvktrwjcl</link><description>آموزش زبان کاتلینمقدمهزبان برنامه‌نویسی کاتلین(Kotlin) یک زبان برنامه‌نویسی متشکل از جاوا و دیگر زبان‌های برنامه‌نویسی است که توسط شرکتJetBrains در سال ۲۰۱۱ توسعه داده شد. این زبان از طریق شرکت کوتلین پروگرمینگ ، یک شرکت استارتاپی، حمایت می‌شود. کاتلین برای توسعه برنامه‌های اندروید، وب، سرور و دیگر کاربردهایی که از زبان جاوا استفاده می‌کنند، مورد استفاده قرار می‌گیرد.ویژگی‌های کاتلینکاتلین به دلیل ویژگی‌های زیر جذابیت خاصی برای برنامه‌نویسان دارد:برنامه‌نویسی به صورت انتخابی (Interoperability)کاتلین به عنوان یک زبان برنامه‌نویسی جدید، به برنامه‌نویسان اجازه می‌دهد تا با استفاده از کتابخانه‌های جاوا و API‌های موجود، برنامه‌هایی را به صورت انتخابی ایجاد کنند. این به معنای آن است که برنامه‌نویسان می‌توانند کد جاوا را در کاتلین استفاده کنند و بالعکس. این ویژگی به برنامه‌نویسان اجازه می‌دهد که از کد موجود خود استفاده کنند و در عین حال از ویژگی‌های جدید کاتلین بهره‌مند شوند.کد کمتر، کارایی بیشترکاتلین به برنامه‌نویسان اجازه می‌دهد تا با کمترین کد، برنامه‌هایی با کارایی بیشتر ایجاد کنند. این زبان به برنامه‌نویسان اجازه می‌دهد تا با استفاده از ویژگی‌هایی مانندExtension Functions، Infix Functions و Lambda Expressions، کد کوتاه و خوانا را ایجاد کنند.ویژگی Null safetyیکی از مشکلات اصلی در برنامه‌نویسی جاوا، مدیریت Null Pointer است. کاتلین با اضافه کردن Null Safety، از برنامه‌نویسان خواسته است که به صورت صریح Null را مدیریت کنند. این ویژگی به برنامه‌نویسان اجازه می‌دهد تا برنامه‌هایی را ایجاد کنند که از این نظر ایمن‌تر هستند.پشتیبانی از کاربردهای مختلفکاتلین به عنوان یک زبان برنامه‌نویسی سریع و فعال، برای توسعه برنامه‌های مختلفی مانند برنامه‌های اندروید، کاربردهای وب، سرور و دیگر کاربردهایی که از زبان جاوا استفاده می‌کنند، مورد استفاده قرار می‌گیرد.نحوه استفاده از کاتلینبرای شروع کار با کاتلین، ابتدا باید ابزارهای مورد نیاز را نصب کنید. این شامل JDK، کامپایلر کاتلین و IDE مورد نظر شما است. پس از نصب ابزارهای مورد نیاز، با استفاده از IDE مورد نظر خود می‌توانید شروع به نوشتن کد کاتلین کنید.مثال‌هایی از کد کاتلیندر ادامه چند مثال از کد کاتلین آورده شده است:پیدا کردن اعداد فرداین کد اعداد فرد را در یک لیست می‌یابد:fun findOddNumbers(numbers: List&lt;Int&gt;): List&lt;Int&gt; {&#xA; return numbers.filter { it % 2 == 1 }&#xA;}ساخت کلاس در کاتلیناین کد یک کلاس با نام Person در کاتلین ایجاد می‌کند:class Person(val name: String, val age: Int)استفاده از Extension Functionsاین کد ازExtension Functions برای اضافه کردن یک متد به کلاس String استفاده می‌کند:fun String.addHello() = &#34;Hello, $this&#34;نتیجه‌گیریکاتلین یک زبان برنامه‌نویسی جذاب برای برنامه‌نویسان است. این زبان به برنامه‌نویسان اجازه می‌دهد که با استفاده از ویژگی‌های آن، کدهای کمتر و خواناتری را ایجاد کنند و در عین حال از کتابخانه‌ها و API‌های موجود در جاوا بهره‌مند شوند. همچنین، کاتلین با اضافه کردن ویژگی‌هایی مانند Null Safety، به برنامه‌نویسان اجازه می‌دهد تا برنامه‌هایی را ایجاد کنند که از این نظر ایمن‌تر هستند. در کل، کاتلین به برنامه‌نویسان اجازه می‌دهد تا با کد کمتر، برنامه‌هایی با کارایی بیشتر ایجاد کنند.در پایان اگر سوالی دارید یا نکته ای برای اضافه کردن به ذهنتان رسیده است، خوشحال میشوم با من در میان بگذارید.</description><category>مهران کاسب وطن</category><author>مهران کاسب وطن</author><pubDate>Sun, 07 May 2023 22:36:11 +0330</pubDate></item><item><title>اتصال شبیه ساز موبایل به انواع IDE در ویندوز (MEMU, NOX و ...)</title><link>https://virgool.ir/@mehran.kasebvatan/memuvscodeflutter-vkoe31ezu8nb</link><description>سلام :)من زیاد اهل مقدمه چینی نیستم و میرم سر اصل مطلب. این مقاله کوتاه و تصویری رو برای کسایی آماده کردم که میخوان از امولاتور سبک روی ویندوز استفاده کنن و IDE اذیتشون میکنه و امولاتور رو نمیشناسه. اول چندتا نکته رو بگم بهتون: من چند تا امولاتور مختلف رو تست کردم و روی سیستم من MEMU از بقیه بهتر کار کرد. ممکنه شما تجربه دیگه ای داشته باشید یا به هر دلیلی دوست داشته باشید از امولاتور دیگه ای استفاده کنید. روش کلی کار یکی هست. من روی ویندوز تست کردم ولی فکر نمیکنم روی بقیه سیستم عامل ها خیلی فرق داشته باشه. مهم اینه که  شما درک کنید قضیه از چه قراره و چه اتفاقی می افته. اینطوری سرچ کردن هم براتون راحت تر میشه و زودتر به جواب میرسید.قرار نیست خیلی عمیق توضیح بدم. این نوشته در حد چند تا دستورالعمل ساده هست، اون هم با تصویر که حتی افراد مبتدی هم بتونن استفاده کنن :) امولاتور اندروید استودیو رو اگه نصب داشته باشید به طور اتوماتیک شناسایی میشه توسط IDE و نیازی به اضافه کاری نیست، من از سیستم معمولی استفاده میکنم و امولاتور اندروید استودیو مال ما معمولی ها نیست :))) من اینجا از Visual Studio Code و MEMU استفاده میکنم. یک ترکیب سبک و ساده و شیک.مشکل !!!!وقتی یک پروژه Flutter رو روی VSCode باز میکنید و میخواهید ازش خروجی بگیرید، با تصویر زیر رو به رو میشید و نمی تونید پروژه رو روی دیوایس مجازی تست کنید:عدم نمایش امولاتور روی VSCodeحالا مرحله به مرحله بهتون آموزش میدم که باید چیکار بکنید.اول: بلدید Task Manager رو باز کنید؟ آفرین. بازش کنید و توی تب Details دنبال MEmuHeadless.exe بگردید.وقتی پیداش کردید عدد جلوش (PID) رو حفظ کنید و برید سراغ مرحله بعد.Task Manager   :) دوم: حالا CMD رو باز کنید و کد زیر رو توش بنویسید: netstat -aon | findstr 1860 نکته یک: اون عدد 1860 ممکنه روی سیستم شما فرق داشته باشه. عددی که مرحله قبل پیدا کردید رو بنویسید.نکته دو: یادتون باشه که برای کار کردن این روش باید ADB رو به صورت سرتاسری تعریف کرده باشید.کد رو کپی نکنید. خودتون تایپ کنید که دستتون آشنا بشه باهاشسوم: عکس پایین نتیجه ای هست که باید ببینید، حالا با یکم تغییر توی تعداد سطرها که بستگی به امولاتور نصب شده تون داره.الان باید اون IP و PORT هایی که LISTENING هستن رو پیدا کنید و برید مرحله بعد. ممکنه خیلی بیشتر از این LISTENING داشته باشید!!!چهارم: حالا باید ADB رو به این IP و  PORT ها متصل کنید. چه جوری؟ این جوری:adb connect 127.0.0.1:21501از همون بالا یکی یکی تست کنید :ممکنه این IP و PORT های LISTENING پشت سر هم نباشن. خوب دقت کنید و همه رو پیدا کنید.پنجم: ممکنه اولین IP و PORT کار نکنه و با همچین چیزی رو به رو بشید :هر وقت یه فرآیندی Failed شد ناامید نشو و برو سراغ درست کردنش :)ششم: برید سراغ IP و PORT بعدی و دوباره امتحان کنید:adb connect 127.0.0.1:21503بالاخره بعد از چند بار امتحان کردن IP و PORT های مختلف میتونید ADB رو کانکت کنید و تمام :دیدی درست شد؟ هفتم: حالا برید سراغ IDE و می بینید که امولاتور لیست شده و میتونید ازش استفاده کنید:اون SM N975F همون امولاتور MEMU هست به همین راحتی میتونید از چند ساعت وقت تلف شده من استفاده کنید و از این آموزش به زبان فارسی لذت ببرید :)اگه به مشکلی خوردید همینجا بنویسید که کمکتون کنم.پایان.</description><category>مهران کاسب وطن</category><author>مهران کاسب وطن</author><pubDate>Fri, 10 Dec 2021 21:46:35 +0330</pubDate></item><item><title>اولین تجربه متن باز من</title><link>https://virgool.ir/@mehran.kasebvatan/github-awhrh1gzxhqc</link><description>سلام . من تا دیروز صرفا استفاده کننده گیت هاب بودم . استفاده از کتابخونه های متنوع و یا قبل تر ، ترجمه پروژه ها به زبان فارسی و انتشار اون ها .امروز برای اولین بار بعد از کمی سر و کله زدن با گیتهاب و همچنین اپ ویندوزیش ، تونستم یه پروژه کوچیک رو به اشتراک بگذارم . نمی دونم چقدر به درد بقیه میخوره یا اصلا کسی می بیندش یا نه ، ولی دوست داشتم این کار رو انجام بدم .کدها رو می تونید از اینجا ببینید . یه پروژه سبک که می تونید با دیدن کد هاش ریسایکلر ویو رو یاد بگیرید ، براش کاستوم ویو بسازید ، فونتش رو عوض کنید ، پلیر بسازید ، کنترل پخش و توقف پلیر رو داشته باشید و اینکه سیک بار رو باهاش سینک کنید .داستانش هم اینه که جمعه ظهر خونه نشسته بودیم که مامانم تلویزیون رو روشن کرد . روی شبکه 5 بود و داشت مناجات امیر رو با صدای سماواتی پخش میکرد و مامانم گفت من این دعا رو خیلی دوست دارم . منم نشستم سریع یه اپ براش زدم و بدون پرداخت درون برنامه ای ( :/ ) و تبلیغات عدد در اختیارش قرار دادم .می دونم راه های بهتری برای توسعه همچین اپی هست ولی من دوست داشتم با ریسایکلر و ساده درستش کنم .اگه دیدید و سوالی داشتید بپرسید ازم .از اونجایی که این اولین تجربه م روی گیتهابه ، اگه دیدید جایی سوتی دادم بدون سر  وصدا بهم بگید درستش کنم .</description><category>مهران کاسب وطن</category><author>مهران کاسب وطن</author><pubDate>Sun, 07 Oct 2018 19:42:29 +0330</pubDate></item><item><title>رفع ایراد دسترسی مکان کافه بازار</title><link>https://virgool.ir/@mehran.kasebvatan/رفع-ایراد-دسترسی-مکان-کافه-بازار-zwdvfxmjtisg</link><description>سلام . اگه دارید این نوشته رو میخونید مطمئنا شما هم این مشکل رو داشتید . مدتی هست که کافه بازار بعضی از برنامه های ارسالی رو رد میکنه با این پیام :توسعه‌دهنده‌ٔ محترم از ارسال این برنامه به کافه‌بازار بسیار متشکریم.در برنامهٔ شما مواردی مشاهده کردیم که نیازمند توجه و کمک شماست، شرح این موارد در ادامه می‌آید. می‌توانید بسته به موارد مذکور با ما مکاتبه کنید یا نسخهٔ جدیدی از برنامه را برای رفع مشکلات از طریق پنل‌تان بارگذاری نمایید.- لطفاً دسترسی‌ زیر را از برنامه حذف کنید یا در صورت نیاز توضیحات لازم را ارائه فرمایید.موقعیت مکانی تقریبی (مبتنی بر شبکه)-android.permission.ACCESS_COARSE_LOCATIONاولین بار بعد از دیدن این پیام رفتم سراغ manifest.xml و پیش خودم گفتم حتما اشتباهی دسترسی مکان دادم ولی دیدم که نه ! همچین دسترسی ای ندادم . سرچ کردم و به نتیجه ای نرسیدم . پیام دادم به پشتیبانی کافه بازار و بهم گفتن که : احتمالا این دسترسی مربوط به کتابخونه ها هست .رفتم کتابخونه ها رو چک کردم و فهمیدم مشکل از پوشه هست . سیستم پوشه برای ارائه گزارش جامع یک سری دسترسی هایی داره که کافه بازار باهاشون مشکل داره . مثلا همین دسترسی مکان .حالا راه رفع این مشکل چیه ؟1_ برنامه رو توی کافه بازار منتشر نکنید !2_ دسترسی مکان رو از پوشه حذف کنید . البته که با این کار بخشی از سرویس پوشه رو از دست خواهید داد . برای این کار کافیه تکه کد پایین رو توی manifest.xml و قسمت پرمیژن ها اضافه کنید . `&lt;uses-permission android:name=&#34;android.permission.ACCESS_COARSE_LOCATION&#34; tools:node=&#34;remove&#34;/&gt;&#xA;  `اگه روش دیگه ای بلدید یادمون بدید !نکته : این آموزش برای کسانی هست که با اندروید استودیو کار می کنن . اگه برای باقی پلتفرم ها راهی بلدید کامنت کنید . شاید به درد کسی خورد :)</description><category>مهران کاسب وطن</category><author>مهران کاسب وطن</author><pubDate>Sun, 22 Jul 2018 19:10:22 +0430</pubDate></item></channel></rss>