<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mobile Developer</title>
        <link>https://virgool.io/feed/@MobileDeveloper</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-07 08:54:08</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/315325/avatar/aRkqVE.png?height=120&amp;width=120</url>
            <title>Mobile Developer</title>
            <link>https://virgool.io/@MobileDeveloper</link>
        </image>

                    <item>
                <title>فریم ورک flutter چیست و چه کاربردهایی دارد؟</title>
                <link>https://virgool.io/@MobileDeveloper/%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-flutter-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%D9%87%D8%A7%DB%8C%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AF-qhksug8shyvi</link>
                <description>فلاتر یک فریم ورک متن باز برای ساخت اپلیکیشن‌های موبایل است. این کتابخانه توسط شرکت گوگل در سال 2017 معرفی شد و در مقایسه با React یا سایر فریم ورک‌های ساخت اپلیکیشن مبتنی بر موبایل عمر زیادی ندارد. فلاتر با زبان برنامه نویسی دارت نوشته شده است، یک زبان چندمنظوره و شی گراء که هنوز آنطور که باید و شاید بر سر زبان‌ها نیفتاده و محبوبیت زیادی ندارد. با یادگیری زبان دارت و فریم ورک فلاتر می‌توانید برای اندروید و iOS اپلیکیشن بسازید. جالب است بدانید علی بابا، یکی از بزرگترین شرکت‌های چینی در دنیا به فلاتر اعتماد کرده و اپلیکیشن خود را با این فریم ورک ساخته است. در این مطلب بررسی خواهیم کرد که فریم ورک Flutter چیست و چه کاربردهایی دارد.می‌دانیم که زبان اصلی برنامه نویسی اندروید، جاوا است و برنامه نویسان iOS هم از Swift برای توسعه اپلیکیشن‌های موبایلی استفاده می‌کنند. جاوا پیچیدگی‌های خاص خودش را دارد و شاید کار با آن به اندازه زبان‌هایی مثل پایتون یا جاوا اسکریپت راحت نباشد. همین مساله باعث شده که سایر زبان‌ها هم برای توسعه برنامه‌های موبایلی به کار گرفته شوند. مثلا React یک راه حل نسبتا آسان برای ساخت اپلیکیشن‌های موبایل مبتنی بر جاوا اسکریپت است. یا فلاتر که یک پیاده‌سازی خوب از زبان دارت است.به نظر می‌رسد گوگل می‌خواهد سرویس‌های مختلف خود را به هم مرتبط کند و عطش این شرکت برای برای تصاحب بازارهای مختلف تمامی ندارد. گوگل بعد از اندروید و موفقیت بی سابقه آن روی یک پلتفرم جدید به نام Fuchsia کار می‌کند. یک سیستم عامل جدید که برخلاف اندروید مبتنی بر هسته لینوکس نیست و از یک ریزهسته جدید به نام Zircon استفاده می‌کند. همینطور زبان دارت و یک فریم ورک به نام Flutter که قرار بود پلی برای ورود برنامه‌های موبایل به سیستم عامل جدید گوگل یعنی Fuchsia باشد را معرفی کرد.فهرست محتوای این مقالهبررسی معماری فریم ورک Flutterمزایای استفاده از فریم ورک فلاترچه چیزی مانع پیشرفت و استفاده همگانی از فلاتر شده است؟جمع بندیبررسی معماری فریم ورک Flutterپلتفرم دارت: هسته اصلی فلاتر را زبان دارت تشکیل می‌دهد. اما گوگل برای توسعه سرویس خود و اضافه کردن قابلیت‌های جدید، از زبان‌های دیگر هم استفاده کرده است.موتور فلاتر: به زبان C++ نوشته شده و به کمک کتابخانه گرافیکی Skia گوگل، این فریم ورک از رندرگیری سطح پایین (Low Level) پشتیبانی  می‌کند. این موتور کتابخانه‌های هسته فلاتر را به پروژه اضافه می‌کند. کتابخانه‌هایی مثل انیمیشن، گرافیک، فایل، ورودی و خروجی شبکه و غیره.کتابخانه Foundation: کتابخانه فاندیشن که به زبان دارت نوشته شده است شامل تعدادی کلاس و تابع است و اجازه می‌دهد برنامه‌ها با فلاتر بسازید. مثلا برقرای ارتباط با موتور فلاتر به کمک APIها یک از این موارد است.ابزارک‌های طراحی خاص: فلاتر از دو گروه ویجت استفاده می‌کند. یکی متریال دیزاین که همان زبان طراحی معروف گوگل است و یکی هم ویجت Cupertino که طراحی اپل را شبیه سازی می‌کند.مزایای استفاده از فریم ورک فلاتردر این قسمت، صرف نظر از اینکه رقبای فلاتر چه امکاناتی دارند و بدون مقایسه کردن این فریم ورک با آنها، به بررسی مزایای فلاتر پرداخته‌ایم.بازدهی مناسب: با توجه به اینکه فلاتر Cross Platform است، می‌توانید با آن هم برای اندروید هم برای iOS اپلیکیشن بسازید. به این شکل هم در زمان و هم در هزینه‌های خود صرفه جویی خواهید کرد.کدهای دارت بدون نیاز به مدل OEM به کدهای Native تبدیل می‌شوند. چون داخل فلاتر این مدل قرار دارد.توسعه سریع و آسان: یکی از جذاب‌ترین قابلیت‌های فلاتر Hot Reload نام دارد. فرض کنید در محیط اندروید استدیو در حال ساخت اپلیکیشن هستید. برای تست برنامه خود آن را در یک شبیه‌ساز اجرا می‌کنید. بعد احساس می‌کنید که یک بخشی از کد نیاز به تغییر دارد، تغییر خود را اعمال کرده و می‌بینید که بدون نیاز به ریستارت کردن شبیه ساز تغییرات اعمال شده قابل مشاهده هستند. این تکنیک در تغییر UI، اضافه کردن قابلیت جدید و دیباگ کردن پروژه بسیار به برنامه نویس کمک می‌کند.یادگیری فلاتر و کار با آن آسان است. اگر قبلا با زبان‌های شی گرا (OOP) کار کرده باشید، شروع کار خیلی آسان خواهد شد. حتی اگر هیچ شناختی روی زبان‌های برنامه نویسی ندارید، زبان دارت به خوبی توسط گوگل مستندسازی شده و یک زبان سطح بالا به حساب می‌آید. می‌توانید با دارت کار کرده و بعد وارد دنیای فلاتر شوید.سازگاری: از آنجایی که ابزارهای مورد استفاده ما (Widgets) بخشی از برنامه ما حساب می‌شوند نه پلتفرم یا سیستم عاملی که روی آن اجرا می‌شوند، در فلاتر وابستگی زیادی به نوع سیستم عامل یا نسخه آن نداریم. این یعنی پروژه ما احتمالا روی نسخه‌های مختلف یک سیستم عامل به درستی اجرا می‌شود و کار ما در تست محصول سبک‌تر است.هم فریم ورک فلاتر هم زبان برنامه نویسی دارت، اوپن سورس بوده و همچنین به طور رایگان ارائه می‌شوند. همینطور مستندسازی قدرتمند یادگیری آنها را آسان‌تر می‌کند. وجود انجمن‌های متنوع در ما این اعتماد را به وجود می‌آورد که برنامه نویسان زیادی هنگام وجود مشکل می‌توانند به ما کمک کنند.چه چیزی مانع پیشرفت و استفاده همگانی از فلاتر شده است؟یکی از دلایل این است که برنامه نویسان جاوا، کاتلین یا سویفت که قبلا به صورت native برای سیستم عامل خود کد می‌زدند حالا باید سراغ یک زبان جدید بروند. یعنی زبان دارت. حالا در کشور ما اگر یک شرکت برای توسعه اپلیکیشن خود با فلاتر بخواهد چند برنامه نویس دارت استخدام کند احتمالا با گزینه‌های محدود و افراد کمتری نسبت به سایر تکنولوژی‌ها مواجه می‌شود. چون این تکنولوژی نسبتا جدید است. هر چند از طرفی یادگیری یک زبان جدید و نسبتا آسان برای بیشتر برنامه نویسان چالش جدید و هیجان انگیزی به حساب می‌آید. چون یک برنامه نویس موفق کسی است که همیشه تشنه یادگیری و امتحان چیزهای جدیدتر است.فرض کنید می‌خواهید یک بازی بزرگ مثل Clash of Clans بسازید، یا تصمیم دارید یک اپلیکیشن مالی با سرویس‌های متنوع طراحی کنید. شنیده‌اید که فلاتر انتخاب خوبی است و سراغ آن می‌روید. اما میانه راه متوجه خواهید شد که پیاده کردن بسیاری از مفاهیمی که مدنظر داشتید در این پلتفرم یا غیرممکن است یا بسیار سخت خواهد بود. در واقع Flutter انتخاب خوبی برای ساخت بازی‌های بزرگ یا اپلیکیشن‌های پیچیده نیست.بسیاری از برنامه نویسان معتقدند که فلاتر هنوز قدرت لازم برای ساخت برنامه‌های بزرگ را ندارد و بهتر است در پروژه‌های ساده‌تر یا برای ساختن نمونه اولیه یک سرویس استفاده شود. همینطور جدید بودن فلاتر هم یکی از دلایل دودل شدن بسیاری از برنامه نویسان است. چرا باید زبان جاوا که چند دهه برای توسعه برنامه‌های اندرویدی استفاده شده را رها کرده و سراغ یک تکنولوژی با ثبات کمتر برویم؟در دفاع از فلاتر باید بگوییم که جدید بودن یک ایراد نیست و باید به یک سرویس جدید که معرفی می‌شود فرصت داد تا خودش را نشان دهد. همینطور اگر چرخی در اینترنت بزنیم، می‌بینیم که پروژه‌های بسیار خوبی با این فریم ورک طراحی شده‌اند و این نظریه را که شاید فلاتر گزینه مناسبی برای توسعه محصولات بزرگ نباشد را زیرسوال برده‌اند.محبوبیت فلاتر چقدر است؟فقط یک ماه بعد از انتشار اولین نسخه پایدار از Flutter، تعداد 50 هزار ستاره برای این پروژه جدید گوگل در گیت هاب ثبت شد. همینطور در یک نظرسنجی آنلاین که توسط تیم تحقیقاتی فلاتر انجام شد، 93% شرکت‌کنندگان اعلام کردند که از این فریم ورک &quot;بسیار راضی&quot; و &quot;راضی&quot; هستند. این عدد نسبت به 92% که در جولای 2018 ثبت شده بود 1% بالاتر است.بازار اصلی محصولات اندرویدی Google play store می‌باشد و اپل هم از مارکت اختصاصی خود به نام App Store استفاده می‌کند. در طول مقاله گفتیم که فلاتر خیلی محبوب نیست و حالا با آمار و ارقام آن را ثابت می‌کنیم. تا امروز 5% برنامه‌های منتشر شده در گوگل پلی و اپ استور با فلاتر ساخته شده‌اند. فلاتر هم برای iOS استفاده می‌شود هم برای Android و 81% برنامه نویسان پروژه‌های خود را برای هر دو پلتفرم منتشر کرده‌اند. اما در یک اقدام عجیب نزدیک به 12% برنامه‌ها فقط برای اندروید و 7% آنها فقط برای iOS ساخته شدند. به نظر می‌رسد این گروه از برنامه نویسان بیشتر در حال تست فلاتر بودند.جمع بندیدر این مطلب بررسی کردیم که فلاتر چیست و چه کاربردی دارد. Flutter یک فریم ورک یا Moblie SDK متن باز و رایگان بوده که توسط شرکت گوگل در سال 2017 معرفی و عرضه شده است. فلاتر از زبان برنامه نویسی دارت قدرت گرفته و به برنامه نویسان کمک می‌کند با یک زبان واحد (دارت) برای اندروید و آی اواس اپلیکیشن بسازند. همانطور که آینده زبان دارت در هاله‌ای از ابهام قرار دارد، مشخص نیست فلاتر هم در آینده به چه سرنوشتی دچار شود. اما هنوز هم به خاطر مزایایی که دارد می‌تواند یک انتخاب ایده‌آل برای ساخت برنامه‌های ساده و متوسط موبایلی باشد.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Sat, 26 Dec 2020 20:36:32 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با Framework های جاوا</title>
                <link>https://virgool.io/@MobileDeveloper/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-framework-%D9%87%D8%A7%DB%8C-%D8%AC%D8%A7%D9%88%D8%A7-vp6jgiruemot</link>
                <description>در این مقاله با مفهوم framework و کاربرد آن در java و ویژگی های آن آشنا میشویم.به طور کلی ،Framework می تواند به عنوان یک ساختار واقعی یا مفهومی تعریف شود که برای راهنمایی برنامه نویسان جهت توسعه و ساخت برنامه های مفید و پرکاربرد بر روی سرورها تعبیه شده است.فریم ورک چیست؟به طور کلی ،Framework  می تواند به عنوان یک ساختار واقعی یا مفهومی تعریف شود که برای راهنمایی برنامه نویسان جهت توسعه و ساخت برنامه های مفید و پرکاربرد بر روی سرورها تعبیه شده است.در دنیای سیستم های کامپیوتری، یک فریم ورک می تواند به عنوان یک ساختار لایه ای در نظر گرفته شود که به کاربر توصیه می کند چه نوع برنامه ای باید ساخته شود و برنامه ی ساخته شده چگونه باید با سایر برنامه ها هماهنگ شود تا در نهایت یک جزء هماهنگ و مفید داشته باشیم. برخی اوقات فریم ورک ها می توانند شامل برنامه های واقعی نیز باشند، که رابط کاربری ها را مشخص کنند و یا ابزارهای برنامه نویسی را برای استفاده از فریم ورک ها فراهم بیاورند.اگر بخواهیم دقیق تر به این موضوع بپردازیم، یک فریم ورک نرم افزاری،  یک برنامه عظیم از پیش نوشته شده است که می تواند برای حل مشکلی که در یک ناحیه خاص وجود دارد، به کار گرفته شود. در حقیقت، فریم ورک از کد ما استفاده می کند زیرا معمولا فریم ورک تحت کنترل ما و کدهای ما قرار دارد. ما می توانیم از یک فریم ورک با فراخوانی &quot;متد&quot;، &quot;ارث بری &quot; و یا ایجاد&quot;callback&quot; استفاده کنیم.یک فریم ورک ، مجموعه ای از کتابخانه های نرم افزاری  و یا کامپوننت ها است که یک برنامه رابط کاربری مشخص را برای ما فراهم می کنند.یک فریم ورک برخی ویژگی های کلیدی دارد که آن را از کتابخانه ها متمایز می کند. این ویژگی های کلیدی عبارتند از :Inverted flow of control (جریان کنترلی وارونه):یک فریم ورک  یک جریان کنترلی وارونه بین خودش و کاربر ایجاد می کند. زمانی که از یک فریم ورک استفاده می کنیم، ما معمولا فقط توابع فراخوانی بازگشتی محدود و یا کلاس های محدودی ایجاد می کنیم و سپس یک متد و یا procedure را به کار می گیریم. در این نقطه، فریم ورک سایر امور را برای ما انجام می دهد، و هر فراخوانی و یا متد دیگری که مورد نیاز باشد را در برنامه در زمان و مکان مناسب وارد می کند که همین موضوع ، رمز پایداری و تداوم فریم ورک ها در گذر زمان است.Extensibility (قابلیت توسعه):یک فریم ورک می تواند به وسیله کاربر و کدهای برنامه که توابع خاصی را تولید می کنند، گسترش پیدا کند.Non-modifiable (عدم ویرایش پذیری ):اصولا کدهای مربوط به یک فریم ورک نمی توانند ویرایش شوند. کاربران تنها می توانند فریم ورک را توسعه بدهند ولی نمی توانند آن را ویرایش کنند.فریم ورک ها با توجه به مساله ای که در آن به کار گرفته می شوند، انواع مختلفی دارند. این انواع شامل کامپوننت ، توسعه، سرویس ها، دامنه ها ، مفاهیم ، برنامه ها ، پلتفرم و غیره می شوند. اگر بخواهیم نگاه دقیق تری به این مبحث داشته باشیم، می توانیم از جدول زیر استفاده کنیم:?کاربرد فریم ورک هایک فریم ورک، در ساخت برنامه های پیچیده بسیار مفید و کاربردی است زیرا اغلب معمولا فریم ورک ، ساختار برنامه را شکل می دهد. برخی از فریم ورک ها حتی از کدهای بیشتری پشتیبانی می کنند و به این ترتیب شما می توانید میزان کدنویسی خودتان را کاهش بدهید. این موضوع می تواند با توجه به میزان دشوار بودن پیاده سازی فریم ورک ها در محیط های مختلف برنامه نویسی، خوب و یا بد باشد.فریم ورک ها در جاوادر تکنولوژی جاوا، تعداد زیادی از فریم ورک ها وجود دارند که برنامه نویسان و توسعه دهندگان می توانند از آن ها برای ساخت برنامه های پیچیده استفاده کنند. فریم ورک های موجود در جاوا عبارتند از : ‘Hibernate’, ‘Spring’, ‘Struts’ و غیره...مثالدر جاوا، یک مثال بسیار متداول از فریم ورک ها ، GUI framework ها مانند کلاس های AWT و Java Swing  هستند. زیرا آن ها حجم بالایی از کد برای مدیریت رابط های کاربری دارند، و از یک جریان وارونه کنترلی پیروی می کنند، جریان وارونه کنترلی به این دلیل اتفاق می افتند که ما ابتدا یک فریم ورک GUI را راه اندازی کردیم و سپس منتظر ماندیم تا پردازش های بعدی ، به وسیله های فراخوانی های کاربر انجام شود.برخی اوقات کلاس های Collections هم می توانند به عنوان یک framework در نظر گرفته شوند، زیرا آن ها از لحاظ سایز و پیچیدگی در سطح بالایی قرار دارند. اما آن ها در اکثر مواقع به عنوان یک کتابخانه در نظر گرفته می شوند زیرا هیچ جریان کنترلی وارونه ای در آن ها وجود ندارد. در داخل این کتابخانه ها روند برنامه به صورت فراخوانی ساده متدها در نوبت های از پیش تعیین شده انجام می شود و یا از extended class ها برای ترتیب اجرای متدها استفاده می شود. بعد از اجرا نیز پاسخ ها دریافت می شوند.این مقاله فقط جنبه ی معرفی framework ها را دارد. امیدواریم از خواندن آن لذت برده باشید.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Sun, 13 Dec 2020 13:04:29 +0330</pubDate>
            </item>
                    <item>
                <title>زامارین چیست؟ یک تکنولوژی باورنکردنی سی شارپ</title>
                <link>https://virgool.io/@MobileDeveloper/%D8%B2%D8%A7%D9%85%D8%A7%D8%B1%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-%DB%8C%DA%A9-%D8%AA%DA%A9%D9%86%D9%88%D9%84%D9%88%DA%98%DB%8C-%D8%A8%D8%A7%D9%88%D8%B1%D9%86%DA%A9%D8%B1%D8%AF%D9%86%DB%8C-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-kfv8uqcywrqa</link>
                <description>زامارین چیست؟زامارین یک شرکت نرم‌افزاری است که ابزارهای توسعه نرم‌افزار تجاری را تولید میکند. این شرکت در سال 2011 در ایالت کالیفرنیا توسط پروژه متن باز Mono Android خلق شد.هدف زامارین این بود که به وسیله زبان برنامه‌نویسی سی شارپ برنامه‌هایی برای سه پلتفرم اندروید، آیفون و ویندوزفون بنویسد. بالاخره در اوایل سال 2016 زامارین توسط شرکت مایکروسافت خریداری شد و این آغاز شروعی تازه برای زامارین و مایکروسافت بود که به وسیله سیاست‌های جدید مایکروسافت و استراتژی جدید cloud first (ابر رایانه) و mobile first (اولین تلفن همراه) یک شانس بزرگ برای زامارین و محصولاتش بود. پس با پروژه متن‌بازMono  بستری فراهم کردند که بتوان با استفاه از C# و .Net برنامه‌هایی چون ios، os x و اندروید ساخت. برای اندروید محصول xamarin.Android را به بازار عرضه کرد.چند سکویی بودن زامارین:همان‌طور که در معرفی زبان برنامه‌نویسی زامارین گفتیم، این زبان ابزاری است که برای طراحی و ساخت نرم افزارهایی با قابلیت استفاده در تمام گوشی‌های موبایل تحت سیستم عامل‌های متفاوت به کار گرفته میشود؛ یعنی زمانی که شما با استفاده از زبان سی شارپ در فضای زامارین اقدام به ساخت اپلیکیشن میکنید دیگر نیازی به تغییر یا بازنویسی آن (مثلا به زبان جاوا و...) جهت استفاده در دیگر پلتفرم ها ندارید. در واقع میتوانیم بگوییم این زبان یک ابزار برنامه نویسی چند سکویی است.ممکن است این سوال برایتان پیش آید که اصلا برنامه چند سکویی به چه برنامه‌ای گفته میشود؟برنامه چند سکویی به برنامه‌نویسی نرم‌افزارهایی گفته میشود که قابلیت اجرا در چندین پلتفرم را هستند و به 2 دسته تقسیم میشوند.دسته اول: برنامه‌هایی که برنامه‌نویس یک بار آنها را مینویسد و کامپایلر خودش برای هر سیستم عامل یک نسخه جداگانه تولید میکند.دسته دوم: برنامه‌هایی هستند که توسط زبان‌های تفسیر شده نوشته میشوند وتوسط مفسرهای موجود در هر پلتفرم قابل اجرا هستند. زبان‌های برنامه‌نویسی مفسر به آن دسته از زبان‌هایی گفته میشود که برای استفاده نیازمند یک مفسر است مثل html یا js .خب حالا مزایای توسعه برنامه‌های موبایل چند سکویی چیست؟استفاده دوباره کدهاتوسعه سریعپیاده‌سازی آسان‌ایده‌آل برای نمونه‌سازی اولیهرقیب سرسخت زامارین:زبانی که با زامارین در حال رقابت است زبان جاواست. این زبان محبوبیت زیادی بین برنامه نویسان برای تولید اپلیکیشن‌های موبایلی دارد و میتوان گفت یک رقیب سرسخت برای زامارین به شمار میرود؛ اگرچه قدرتمند بودن زبان جاوا را نمیشود انکار کرد.در حیطه برنامه نویسی تحت موبایل، برای اندروید از جاوا و چندین ابزار آن استفاده میشود یا برای برنامه نویسی بر روی ios از زبان objective c  و ابزارهای آن استفاده میشود و یا برای برنامه نویسی درwindos phone  از زبان C# و visual studio استفاده می‌گردد. اما زامارین این امکان را به شما می‌دهد که با استفاده از زبان سی شارپ برای هر3 پلتفرم موبایلی که گفته شد تنها با یک محیط و یک زبان مشترک برنامه‌نویسی کنید.حقایقی از زامارین:یکی از کارآمد‌ترین پلتفرم‌هایی که در ساخت برنامه‌ها با سیستم عامل‌های مختلف استفاده می‌شود. به جای طراحی جداگانه برای هر سیستم، می‌توانید تقریبا 75 تا 90 درصد کدهای توسعه یافته را در همه سیستم عامل‌های بزرگ تلفن همراه به اشتراک بگذارید و هزینه که زمان ورود به بازار و هزینه کاهش پیدا میکند.UX عالی را ارائه می‌دهد.یکپارچگی، کیفیت و تست عملکرد را در طیف وسیعی از دستگاه‌ها تضمین می‌کند.حقایق بیشتری از زامارین بدانید:به‌خاطر چند‌سکویی بودن زامارین، می‌توانید به راحتی تغییرات را برای فایل منبع گسترش دهید. یعنی نگهداری و آسان‌ترتوسعه‌دهندگان مک و ویندوز جهت ساخت برنامه‌های iOS Apple Watch، از زامارین استفاده می‌کنند و این یعنی پشتیبانی این تکنولوزی از برنامه ساعت‌های هوشمند.آیا می‌دانستید زامارین محدود به توسعه برنامه تلفن همراه نیست و می‌توانید با آن برنامه‌هایی چون: Wearable، Mac، TvOs و بازی‌های OpenGL و SceneKit/SpriteKit/Metal را توسعه دهید.نوشتن کدهای چندگانه در زمان مشابه برای ساخت برنامه‌های بومی در سیستم عامل‌های مختلف ارزشمند نیست و با استفاده از زامارین می‌توانیم زمان و هزینه را کاهش دهیم که می‌توانیم همان کد پایه (70 تا 80 درصد کد) را برای ایجاد برنامه‌های تلفن همراه بومی دوباره استفاده کرد.چه شرکت‌های مشهوری از زامارین استفاده می‌کنند؟CognizantBoschSiemensLEAP3MSlackPinterestمزایای زامارین:امکان انتقال کدها، میان اپلیکیشن‌های ساخته شده با استفاده از زامارین صرف نظر از ساختار پلتفرمی که در آن قرار دارد.زامارین تنها چارچوبیست که در هر قالب پلتفرمی، ویژگی اپلیکیشن‌های (native) آن پلت‌فرم را به خوبی به خود میگیرد. (native app)native app: به اپلیکیشن هایی گفته میشود که در محیط نرم‌افزاری مختص به پلت‌فرمی خاص ساخته میشود. مثلاْ برای استفاده در پلت‌فرم اندروید اپلیکیشنی را در Android studio طراحی کنیم.امکان ساخت اپلیکیشن‌های (IOS – Android – Windows phone ) با قابلیت انتقال کدهای یکسان (تا حدود ۹۶%)[portable class librariries] : به شما امکان استفاده مجدد از کدها را داده و در عین حال تعداد پروژه‌ها را کاهش میدهد.امکان اضافه کردن مؤلفه‌هایی شامل نمودارها، جداول، نماهای زیبا،[UI control] ها و… بصورت مستقیم از  .[IDE]با قالب زامارین رابط طراحی هر سه پلتفرم بصورت مشترک با چارچوب اساسی [XAML] خواهد بود.معایب زامارین:بعد از اینکه در مورد مزایای زامارین صحبت کردیم حال تعدادی از مشکلات و معایب آن را در بخش زیر قرار داده ایم:دارا بودن لایسنس: Xamarin.Android همانند Xamarin.IOS و Xamarin.OS x ابزارهای تجاری هستند و باید خریداری شوند. البته در کشور ما این مشکل حادی نیست.انتظار برای آپدیت: در اکثر مواقع وقتی که یک نسخه از اندروید به بازار عرضه می‌شود، مدت زمانی طول می‌کشد که شرکت Xamarin نرم افزار خود را آپدیت کند تا نرم افزار را با آخرین نسخه اندروید سازگار کند.کارایی (performance) و مدیریت حافظه: گاهی اوقات گفته می‌شود که استفاده از زبان #C برای توسعه برنامه‌های اندروید سرعت را کاهش می‌دهد ولی هنوز اندازه‌گیری و ارزیابی درستی از این قضیه به عمل نیامده است.زامارین به چه صورتی کار می‌کند؟بیشترین سوالی که پرسیده می‌شود این است که زامارین به چه صورتی کار می‌کند؟ آیا با استفاده از یک کد امکان توسعه اپلیکیشن برای تمامی پلتفرم‌ها وجود دارد؟بله زامارین این امکان را به برنامه‌نویس میدهد. با تبدیلSDK های Android و IOs بهC# ، این قابلیت را به وجود آورده است که به تمامیAPI های Android و IOs دسترسی داشته باشد. زامارین با تبدیل اینSDK ها به سی شارپ، کار را برای توسعه اپلیکیشن موبایل راحت نموده است و با ادغام تمامیSDK ها، توسعه را با استفاده از یک زبان راحت، قدرتمند و فراگیر، میسر نموده است.طرح اپلیکیشن‌ها (UI) در زامارین به چه صورتی می‌باشد؟برای طراحی  UI Xamarinمیتوان همانند سایر زبان‌ها عمل کرد. شما بایستی برای هر پلتفرم، UI متفاوتی را ایجاد کنید و آن را به Codebase متصل نمایید. برای طراحی UI اپلیکیشن، 2 راه پیش رو دارید:استفاده از متدهای اصلی Nativeاستفاده از Xamarin.Formاستفاده از Xamarin Form این امکان را به شما می‌دهد که UI را فقط یکبار ایجاد کنید.ارزیابی کلی زامارین (xamarin) با توجه به مطالب گفته شده:دانستیم که زامارین یک پلتفرم انعطاف‌پذیر است که به طرز باور‌نکردنی کدهای سی شارپ را به راحتی در سیستم عامل‌های مختلف تلفن همراه کامپایل میکند. بنابراین هر آنچه که برنامه‌نویسان برای ساخت یک App حرفه‌ای نیاز دارند را فراهم کرده است.شرکت مایکروسافت که در آن زمان حق مالکیت زامارین را گرفته بود به کاربران خود قول داد که در زمان نه چندان دور باUpdate های فراوان تمام Bug و مشکلات زامارین را حل کرده و بر قدرت این ابزار فرا پلتفرمی می‌افزاید.هنگام مقایسه زامارین با دیگر ابزارهای برنامه نویسی باید توجه ویژه‌ای به افزایش کیفیت آن از زمان کسب مالکیت کامل زامارین توسط مایکروسافت (24 فوریه 2016) تا به امروز داشت. با توجه به کاسته شدن بسیاری از [Error]های رایج در زامارین ظرف این مدت و رفع مشکل عدم آشنایی توسعه‌دهنده‌ها [Developer] با [Error]ها که بی‌شک یکی از معایب هر ابزار نوپایی است، میتوان آینده روشنی را برای زامارین متصور شد.پیشرفت‌های بزرگی در زمینه زامارین شکل گرفته است و شرکت‌های بزرگی از جمله Olo food ،CA mobile :و سایر بانکها با بیش از 30 میلیون کاربر با مایکروسافت قرار داد بسته‌اند که برای بهبود تجارت الکترونیکی خودApp هایی با امنیت بالا ساخته شود.البته اشاره به این امر هم ضروریست که با قرار گرفتن زامارین در محیط [Visual studio] محبوبیت آن در امر کار گروهی[Team work] افزایش چشم‌گیری پیدا کرده است. دیگر اینکه، چه به عنوان مدیر پروژه و چه به عنوان توسعه‌دهنده [Developer]، در امر کنترل منبع [Source control] که یکی از مشکلات کار در محیط‌های [Native] و  [Android Studio]است، زامارین توانسته برتری بیشتری نسبت به ابزارهای کاری در محیط [Native] ایجاد کند. چنانکه میدانید هر بار که یکی از اعضای تیم بخواهد یک [Reference]  را بررسی نماید تمام اعضای گروه باید مدتها وقت صرف رفع [Error] ها بگذارند.نتیجه گیری:پس اگر با زبان سی‌شارپ آشنا هستید، فورا وارد دنیای برنامه‌نویسی زامارین شوید و اپلیکیشن‌های موبایلی را با توجه به علاقه خود کد نویسی کنید. چرا که با استفاده از تکنولوژی زامارین و فقط با یادگیری سی‌شارپ می توانید برای تمامی پلتفرم ها کد بزنید و دیگر نیاز نیستSyntax های متفاوتی یاد بگیرید. برای توانایی این تکنولوژی میتوان گفت با استفاده از این زبان می‌توانید یک کد #C را روی ۲.۶ میلیارد دستگاه اجرا کنید و اگر هیچ شناختی درباره سی‌شارپ ندارید، نگران نباشید می توانید از دوره آموزش سی شارپ مقدماتی تا متوسط ما استفاده کنید. ما در دوره تمامی مباحثی که به عنوان مفاهیم مقدماتی به آن نیاز دارید را به صورت کامل و کاملا کاربردی بیان کرده‌ایم.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Sat, 05 Dec 2020 17:27:27 +0330</pubDate>
            </item>
                    <item>
                <title>بهترین کتابخانه ها اندروید برای برنامه نویسان</title>
                <link>https://virgool.io/@MobileDeveloper/%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%D9%87%D8%A7-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D8%A7%D9%86-coomieosrb7z</link>
                <description>لیست بهترین کتابخانه های اندرویددر این مقاله قصد داریم در مورد بهترین و مفیدترین کتابخانه های اندروید که هر برنامه نویس اندرویدی باید با آن ها آشنایی داشته باشد را به شما کاربران عزیز معرفی کنیم.1. Retrofit https://virgool.io/d/coomieosrb7z/%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87%D8%B1%D8%AA%D8%B1%D9%88%D9%81%DB%8C%D8%AA%DB%8C%DA%A9%DB%8C%D8%A7%D8%B2%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87%D9%87%D8%A7%DB%8C%D9%85%D8%B9%D8%B1%D9%88%D9%81%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%DB%8C%D8%A8%D8%B1%D8%A7%DB%8C%DA%A9%D8%A7%D8%B1%D8%A8%D8%A7%D9%88%D8%A8%D8%B3%D8%B1%D9%88%DB%8C%D8%B3%D9%87%D8%A7%D8%A7%D8%B3%D8%AA.%D8%A7%DB%8C%D9%86%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87%D8%B1%D8%A7%D9%85%DB%8C%D8%AA%D9%88%D8%A7%D9%86%DB%8C%DA%A9RestClient%D8%A8%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%D9%88%D8%B2%D8%A8%D8%A7%D9%86%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%D9%86%D9%88%DB%8C%D8%B3%DB%8C%D8%AC%D8%A7%D9%88%D8%A7%D8%A8%D9%87%D8%AD%D8%B3%D8%A7%D8%A8%D8%A2%D9%88%D8%B1%D8%AF.%D8%A7%DB%8C%D9%86%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87%D8%A7%D8%B2OkHttp%D8%A8%D8%B1%D8%A7%DB%8C%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA%D9%87%D8%A7%DB%8CHTTP%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%D9%85%DB%8C%DA%A9%D9%86%D8%AF.%D8%A8%D8%A7%DB%8C%D8%AF%D8%A8%D8%AF%D8%A7%D9%86%DB%8C%D8%AF%D8%A7%DB%8C%D9%86%D8%AA%D9%86%D9%87%D8%A7%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87%D8%A8%D8%B1%D8%A7%DB%8C%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA%D9%87%D8%A7%DB%8CHTTP%D8%AF%D8%B1%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%D9%86%DB%8C%D8%B3%D8%AA%D9%88%D8%B1%D9%82%DB%8C%D8%A8%D8%A7%D9%86%D8%A8%D8%B2%D8%B1%DA%AF%DB%8C%D9%85%D8%A7%D9%86%D9%86%D8%AFVolley%D8%AF%D8%A7%D8%B1%D8%AF. کتابخانه Volley یک کتابخانه بسیار قدرتمند است که شرکت بزرگی مانند گوگل از آن پشتیبانی می کند. در حال حاضر برنامه نویسان توجه خود را بیشتر به سمت کتابخانه رتروفیت برده اند و بازار این کتابخانه داغ تر است!دو کتابخانه Retrofit و Volley هر کدام مزایا و معایب مخصوص به خود را دارند که در اینجا یک مقایسه کوچک از آن ها می  آوریم:معماری Retrofit بسیار راحت تر از Volley است.Volley درخواست های تکراری آزاردهنده را به خوبی مدیریت می کند.پیگیری درخواست HTTP با Retrofit آسان تر است.در اندروید استودیو می توانید از طریق فایل build.gradle این کتابخانه را به پروژه خود اضافه کنید.2. Moshi https://virgool.io/d/coomieosrb7z/%F0%9F%93%B7%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87%D9%87%D8%A7%DB%8C%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%DA%A9%D8%AF%D8%A7%D9%85%D9%86%D8%AF%D8%9F(Moshi) به عبارت دیگر این کتابخانه می تواند پاسخ های JSON API را به کدهای مفهوم دار زبان جاوا تبدیل کند. دو کتابخانه Retrofit و Moshi از یکدیگر پشتیبانی می کنند و می توان این ها را با همدیگر نیز استفاده کرد.3. Chuckبا استفاده از این کتابخانه شما می توانید تاریخچه درخواست های HTTP  پروژه خود را بر روی گوشی همراهتان مشاهده کنید.هنگامی که از این کتابخانه استفاده کنید تمام جزئیات و Log های مربوط به HTTP برای شما به عنوان یک ناتیفیکیشن نمایش داده خواهد شد.اگر در برنامه باگ یا مشکلی وجود داشته باشد در صورت استفاده از این کتابخانه به راحتی می توانید تشخیص دهید که این مشکل از سرور نرم افزار است یا کد های Backend برنامه؟در واقع معمولا از این کتابخانه به عنوان یک Logcat استفاده می شود، حتی می توان گفت کاربرد آن خیلی بیشتر از آن است.اگر تا به حال تجربه انجام پروژه ای را در اندروید استودیو داشته باشید باید بدانید گاهی اوقات Logcat بعد از کرش کردن اپلیکیشن و بسته شدن آن اطلاعات خود را حذف می کند در صورتی که برای کتابخانه Chuck چنین اتفاقی نمی افتد.4. Glide https://virgool.io/d/coomieosrb7z/%F0%9F%93%B7%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87%D9%87%D8%A7%DB%8C%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%DA%A9%D8%AF%D8%A7%D9%85%D9%86%D8%AF%D8%9F(Glidelibrary) معمولا در اندروید اگر از API برای لود کردن تصاویر استفاده کنید در تغییر سایز کردن عکس ها به خطای OutOfMemoryException مواجه می شوید.کتابخانه Glide یکی از بهترین کتابخانه های اندروید مخصوص کار کردن با تصاویر در اندروید است. جالب است بدانید یک API هم دارد که با استفاده از آن می توانید هر کاری با تصاویر انجام دهید.با استفاده از این کتابخانه می توانید تصاویر را به راحتی در ImageView لود کنید.در صورتی می توانید خوبی استفاده از این کتابخانه را درک کنید که تصمیم داشته باشید کارهای مربوط به لود کردن و ویرایش تصاویر را بدون استفاده از این کتابخانه انجام دهید.این کتابخانه از CircleImage نیز پشتیبانی می کند.5. ThreeTen https://virgool.io/d/coomieosrb7z/%F0%9F%93%B7%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87%D9%87%D8%A7%DB%8C%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%DA%A9%D8%AF%D8%A7%D9%85%D9%86%D8%AF%D8%9F(ThreeTenLibrary) این لایبرری کار با Android Calender API را برای برنامه نویسان بسیار راحتتر کرد. کتابخانه های بسیاری در زمینه تاریخ و زمان وجود دارد که یکی از آن ها JodaTime می باشد.کتابخانه ThreeTen از لحاظ تعداد متدها و حجم بسیار خلاصه تر از JodaTime می باشد و بنابراین کار کردن با آن راحتتر است. اگر تا الان از JodaTime استفاده می کردید حتما به شما پیشنهاد می کنم در پروژه بعدی از ThreeTen استفاده کنید(ارزشش را دارد!)6. Timber https://virgool.io/d/coomieosrb7z/%F0%9F%93%B7Timberlibrary این کتابخانه به شما این اجازه را می دهد که قابلیت لاگ را خاموش یا روشن کنید.این کتابخانه نیز می تواند از Log کردن رشته های قالب بندی شده و Exception ها پشتیبانی کند.7. Room https://virgool.io/d/coomieosrb7z/%F0%9F%93%B7Roomlibrary این کتابخانه یک API مانند رتروفیت دارد، همچنین استفاده زیادی از Annotation ها و سینتکس استاندارد SQL کرده است.این کتابخانه از RX و LiveData هم پشتیبانی می کند، یعنی در صورت نیاز می توانید در پروژه خود از آن ها هم استفاده کنید.این کتابخانه نسبت به دیگر ORM ها سادگی بیشتری دارد. برای استفاده از اکثر ORM ها به دلیل پیچیدگی زیادی که دارند شما باید قبل از استفاده از آن ها کل Documentation آن ها را مطالعه کنید تا بتوانید از آن ها استفاده کنید.دلیل سادگی این کتابخانه استفاده از سینتکس استاندارد SQL است.بنابراین استفاده از این ORM بسیار بهتر است، زیرا بدون وقت گذاشتن و خواندن Documentation آن می تواند از آن استفاده کنید و پروژه خود را انجام دهید.8. RxJava https://virgool.io/d/coomieosrb7z/%F0%9F%93%B7RxJava در این دوران توقع کاربران از برنامه ها بیشتر شده و توقع دارند که برنامه های مدرن بتوانند داده ها را به صورت Real time (بدون تاخیر) نمایش دهند.این کتابخانه به برنامه این قدرت را می دهد که داده ها به صورت خودکار بروزرسانی شوند.وقتی بخواهید داده ها را بدون تاخیر درخواست کنید، استفاده از چندین فراخوانی API، عوض کردن Thread ها و مدیریت Exception ها کار بسیار مشکلی خواهد بود.در این زمینه کتابخانه RxJava می تواند خودی نشان دهد و به همین دلیل است ما این کتابخانه را در لیست بهترین کتابخانه های اندروید آورده ایم.باید به این نکته هم توجه کنید که استفاده از این کتابخانه کمی مشکل و گیج کننده است، اما کاملا ارزش زمانی را که برای یادگیری آن می کنید را دارد.9. Android KTX https://virgool.io/d/coomieosrb7z/%F0%9F%93%B7AndroidKTX هدف از ساخت این لایبرری این بوده که استفاده از Android API را برای شما خوشایندتر کند.با استفاده از این کتابخانه می تواند بسیاری از امکانات و متد های جالب زبان کاتلین مانند lambdas, name paramaters و default parameter values را به پروژه اندروید خود اضافه کنید.این کتابخانه دارای بسیاری از افزونه های کاربردی است و تنها راه برای پی بردن به نحوه کارکرد این لایبرری خواندن کدهای آن است.10. Dagger https://virgool.io/d/coomieosrb7z/%F0%9F%93%B7Dagger یادگرفتن این لایبرری نیز مانند RxJava سخت است اما کاملا ارزش وقت صرف کردن برای یادگیری را دارد.این لایبرری یک فریم ورک استاتیک و Compile-time dependency injection است.Dependency injection یک روش است که در آن اجزای کوچک از یک مدل را فراهم می کنیم و سپس آن ها را با کمترین زحمت به هم متصل می کنیم.برای درک بهتر این موضوع به این مثال دقت کنید:اگر شما یک مدل ماشین داشته باشید می توانید از قبل لاستیک هایی برای ماشین خود تهیه کنید تا در صورت لزوم آن ها را تعویض کنید، بدون اینکه نیاز به تغییر بقیه قسمت های ماشین باشد.وقتی با پروژه های بزرگ سر و کله می زنید اصلا دوست ندارید Dependency Injection را خودتان را مدیریت کنید.زیرا حجم کدها به سرعت زیاد می شود و کنترل کردن آن ها بسیار سخت تر می شود.این کتابخانه به شما کمک می کند این شرایط را بهتر کنترل کنید، زیرا در هنگام کامپایل شدن برنامه از پردازش Annotation استفاده می کند.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Sun, 29 Nov 2020 12:19:32 +0330</pubDate>
            </item>
                    <item>
                <title>زبان برنامه نویسی کاتلین (Kotlin) چیست؟</title>
                <link>https://virgool.io/@MobileDeveloper/%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%A9%D8%A7%D8%AA%D9%84%DB%8C%D9%86-kotlin-%DA%86%DB%8C%D8%B3%D8%AA-xmc4egnjodhp</link>
                <description>در این مطلب، به بررسی زبان برنامه‌نویسی کاتلین (Kotlin Programming Language) پرداخته شده است. جامعه توسعه‌دهندگان نرم‌افزارهای کاربردی موبایل که از زبان کاتلین استفاده می‌کنند، به سرعت در حال افزایش است. در سال ۲۰۱۷، گوگل، کاتلین را به عنوان دومین زبان رسمی خود برای توسعه اندروید معرفی کرد. از آن زمان تاکنون، رشد بسیار بزرگ و مهمی در تقاضا برای این زبان برنامه‌نویسی در میان توسعه‌دهندگان و جوامع کسب و کار به وقوع پیوسته است. گوگل در حال حاضر زبان برنامه نویسی کاتلین را به عنوان یکی از بهترین زبان‌های برنامه‌نویسی برای توسعه اپلیکیشن‌های اندرویدی اعلام کرده است. این نشان می‌دهد که آینده خوبی در انتظار این زبان برنامه‌نویسی است.زبان برنامه نویسی کاتلین«کاتلین» (Kotlin) یک زبان برنامه‌نویسی «تایپ استاتیک» (Statically Typed) و «همه‌منظوره» (General-Purpose) است که توسط «جت‌برینز» (JetBrains) توسعه داده شده و دارای «محیط‌های توسعه یکپارچه» (Integrated Development Environment) کلاس جهانی مانند «اینتلیج آیدیا» (IntelliJ IDEA)، «پی‌اچ‌پی‌استورم» (PhpStorm)، «اپ‌کد» (Appcode) و دیگر موارد است.«کاتلین» (Kotlin) ابتدا و در سال ۲۰۱۱ میلادی توسط جت‌برینز به عنوان زبان جدیدی برای JVM معرفی شد. این زبان، یک زبان برنامه‌نویسی «شی‌گرا» (Object Oriented) است و به زعم بسیاری از افراد، بهتر از «جاوا» (Java) محسوب می‌شود.گوگل اسپانسر کاتلین است. این زبان در سال ۲۰۱۷، توسط گوگل، به عنوان دومین زبان رسمی برای توسعه اندروید معرفی شد. مثالی از کد نوشته شده به این زبان، در ادامه ارائه شده است.1234fun main(){println(&quot;Hello Geeks&quot;);}ویژگی‌های کلیدی کاتلیندر ادامه، برخی از ویژگی‌های کلیدی زبان برنامه نویسی کاتلین مورد بررسی قرار می‌گیرد.تایپ استاتیک: تایپ استاتیک یک مشخصه برنامه‌نویسی کامپیوتری است؛ بدین معنا که نوع هر متغیر و عبارت در زمان کامپایل شناخته می‌شود. با وجود اینکه کاتلین یک زبان تایپ استاتیک است، نیاز به این ندارد که نوع هر متغیر صراحتا «اعلان» (Declare) شود.کلاس‌های داده: در این زبان، «کلاس‌های داده‌ای» (Data Classes) وجود دارد که منجر به تولید خودکار تساوی‌های قابل استفاده مجدد (Boilerplate Like Equals)، «هش کد» (HashCode) و toString و بسیاری از گزینه‌های دیگر می‌شود.کد جاوای زیر، در این راستا مثال زیر قابل توجه است./*     Java Code     */class Book {private String title;private Author author;public String getTitle(){return title;}public void setTitle(String title){this.title = title;}public Author getAuthor(){return author;}public void setAuthor(Author author){this.author = author;}اما در کاتلین، تنها از یک خط برای تعریف کلاس بالا استفاده می‌شود.12/* Kotlin Code */data class Book(var title:String, var author:Author)اختصار: این زبان، به طور چشم‌گیری میزان کدی که نیاز به نوشتن آن برای یک منظور خاص است را نسبت به کدهای مورد نیاز برای همان کار در دیگر زبان‌های برنامه‌نویسی شی‌گرا، کاهش می‌دهد.امنیت: زبان برنامه نویسی کاتلین امنیت را در مواجهه با NullPointerExceptions با پشتیبانی از Nullability به عنوان بخشی از سیستم خود، استفاده می‌کند. هر متغیری در این زبان، به طور پیش‌فرض غیر نال است.1String s = &quot;Hello Geeks&quot; // Non-nullاگر تلاش شود تا به s یک مقدار نال تخصیص داده شود، خطای زمان کامپایل نمایش داده می‌شود.1s = null // compile time errorبرای تخصیص مقدار Null به هر رشته، آن را باید به عنوان رشته قابل نال شدن (Nullable) معرفی کرد.1String nullableStr? = null // compiles succesfullyتابع length‎()‎ در رشته قابل نال شدن غیر فعال شده است.قابل تفسیر با جاوا: کاتلین روی «ماشین مجازی جاوا» (Java Virtual Machine | JVM) نیز اجرا می‌شود؛ بنابراین به طور کلی با جاوا قابل تفسیر است. می‌توان به سادگی به کد جاوا از کاتلین و از جاوا به کد کاتلین دسترسی داشت.قابلیت‌های تابعی و شی‌گرا: کاتلین دارای غنی‌ترین مجموعه از ابزارهای کارآمد بسیاری است که شامل توابع سطح بالاتر، عبارات لاندا (Lambda Expression)، «سربارگذاری عمل‌گرها» (Operator Overloading)، «ارزیابی کندرو» یا «فراخوانی به هنگام نیاز» (Lazy Evaluation) و بسیاری از دیگر موارد می‌شود. تابع مرتبه بالاتر، تابعی است که تابع را به عنوان پارامتر دریافت می‌کند و یا تابع را باز می‌گرداند و یا هر دو کار را انجام می‌دهد. مثالی از «تابع مرتبه بالاتر» (Higher-Order Function) در ادامه ارائه شده است.fun myFun(company: String,product: String, fn: (String,String) -&gt; String): Unit {val result = fn(company,product)println(result)}fun main(args: Array){val fn:(String,String)-&gt;String={org,portal-&gt;&quot;$org develops $portal&quot;}myFun(&quot;JetBrains&quot;,&quot;Kotlin&quot;,fn)}خروجی قطعه کد بالا به صورت زیر است.JetBrains develops Kotlinاسمارت کَست (Smart Cast): زبان کاتلین به طور صریح به «تبدیل کردن نوع» (تایپ کَست یا Typecast) مقادیر غیر قابل تغییر (Immutable) می‌پردازد و مقادیر را به طور خودکار در اسمارت کَست قرار می‌دهد.تلاش برای دسترسی داشتن به یک نوع قابل نال کردن از رشته (”String? = “BYE) بدون استفاده از اسمارت کَست، منجر به ایجاد خطای کامپایل می‌شود.12345fun main(args: Array){var string: String? = &quot;BYE&quot;print(string.length) // compile time error}fun main(args: Array){var string: String? = &quot;BYE&quot;if(string != null) { // smart castprint(string.length)}}زمان کامپایل: کاتلین، نسبت به برخی از دیگر زبان‌ها، دارای کارایی بالاتر و زمان اجرای سریع‌تری است.ابزارپسندی (Tool- Friendly): زبان کاتلین دارای پشتیبانی فوق‌العاده‌ای از ابزارها است. همه IDEهای جاوا (IntelliJ IDEA، «ایکیلیپس» (Eclipse) و اندروید استودیو)، برای کاتلین قابل استفاده هستند. همچنین، می‌توان برنامه کاتلین را از خط فرمان اجرا کرد.مزایای زبان کاتلیندر ادامه، برخی از مزایای زبان برنامه‌نویسی کاتلین مورد بررسی قرار می‌گیرد.یادگیری آسان: مبانی آن مشابه زبان برنامه‌نویسی جاوا است. در واقع می‌توان گفت، هر کس که بتواند با جاوا کار کند، می‌تواند کاتلین را به سادگی درک کند.کاتلین چندسکویی است: کاتلین توسط IDE‌های گوناگون جاوا پشتیبانی می‌شود، بنابراین می‌توان برنامه‌ها را به زبان کاتلین نوشتن و آن را روی هر ماشینی که JVM را پشتیبانی می‌کند اجرا کرد.از جاوا امن‌تر است.امکان استفاده از چارچوب جاوا و کتابخانه‌های آن را در پروژه‌های کاتلین با استفاده از چارچوب‌های پیشرفته و بدون نیاز به تغییر کل پروژه در جاوا، فراهم می‌کند.زبان برنامه‌نویسی کاتلین دارای کامپایلر و کتابخانه‌های گوناگونی است؛ همچنین، همه ابزارهای آن کاملا رایگان و متن‌باز است و روی گیت‌هاب قرار دارد. گیت‌هاب کاتلین از این مسیر [+] در دسترس است.کاربردهای زبان کاتلینمی‌توان از کاتلین برای ساخت برنامه‌های کاربردی اندرویدی استفاده کرد.کاتلین را می‌توان به جاوا اسکریپت کامپایل کرد و بدین شکل، از این زبان برای «فرانت‌اند» (Frontend) نیز استفاده کرد.زبان کاتلین برای توسعه وب و توسعه سمت سرور نیز به خوبی قابل استفاده است</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Mon, 23 Nov 2020 14:41:16 +0330</pubDate>
            </item>
                    <item>
                <title>بهترین شبیه ساز های اندروید 2020 برای ویندوز</title>
                <link>https://virgool.io/@MobileDeveloper/%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D8%B4%D8%A8%DB%8C%D9%87-%D8%B3%D8%A7%D8%B2-%D9%87%D8%A7%DB%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-2020-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-zg7e0mh1mq9x</link>
                <description>اگر می‌خواهید از برنامه‌ها و بازی‌های اندروید روی کامپیوتر استفاده کنید، با این مقاله همراه باشید تا بهترین شبیه ساز های اندروید برای ویندوز را به شما معرفی کنیم.دلایل زیادی وجود دارد برای اینکه افراد از برنامه های شبیه ساز اندروید برای ویندوز استفاده کنند. اگر یک برنامه‌نویس باشید، احتمالا می‌خواهید قبل از انتشار رسمی اپلیکیشنی که ساخته‌اید، آن را روی یک کامپیوتر تست کنید. اگر هم گیمر باشید، حتما بدتان نمی‌آید که بعضی از بازی‌های اندروید را با موس و کیبورد روی PC تجربه کنید. به هر دلیلی ممکن است بخواهید که یک برنامه یا بازی اندرویدی را روی کامپیوتر خود اجرا کنید که این کار با کمک شبیه ساز های اندروید امکان‌پذیر خواهد بود.خوشبختانه تعداد زیادی از برنامه های شبیه ساز اندروید برای ویندوز وجود دارند که می‌توانید از آن‌ها استفاده کنید. هر کدام از این برنامه‌ها ویژگی‌های مخصوص خودشان را دارند و امکانات مختلفی را ارائه می‌کنند. در ادامه قصد داریم 11 تا از بهترین شبیه ساز های اندروید برای کامپیوتر را به شما معرفی کنیم.شبیه ساز اندروید Noxشبیه ساز اندروید برای کامپیوتر MeMuشبیه ساز اندروید برای کامپیوتر LDPlayerنرم افزار شبیه ساز اندروید Remix OS Playerشبیه ساز اندروید GameLoopنرم افزار شبیه ساز اندروید Genymotionنرم افزار شبیه ساز اندروید AndYنرم افزار شبیه ساز اندروید KoPlayerشبیه ساز اندروید Phoenix OSنرم افزار شبیه ساز اندروید Android Studioچه کسانی از شبیه ساز اندروید برای ویندوز استفاده می کنند؟به طور کلی سه گروه هستند که از برنامه های شبیه ساز اندروید برای ویندوز استفاده می‌کنند. دسته اول گیمرها هستند که به دلیل راحتی بیشتر می‌خواهند بازی‌های خود را روی کامپیوتر اجرا کنند. با این کار آن‌ها دیگر نگران تمام شدن باتری گوشی موقع بازی کردن نیستند و علاوه بر آن، می‌توانند از امکانات اضافی مانند موس و کیبورد نیز در بازی‌های خود بهره ببرند. این ویژگی مخصوصا در بازی‌های چندنفره که این روزها خیلی هم پر طرفدار شده‌اند، بسیار کارآمد خواهد بود.دسته دوم برنامه‌نویس‌های اندروید هستند. این افراد برای اینکه برنامه‌های خود را قبل از انتشار روی کامپیوتر تست کنند و عملکرد آن‌ها را مورد بررسی قرار دهند، از شبیه ساز های اندروید استفاده می‌کنند که برنامه Android Studio یکی از بهترین‌ها در این زمینه است.اما گروه سوم افرادی هستند که صرفا می‌خواهند به منظور افزایش بهره‌وری، سرویس‌ها و اپلیکیشن‌های خود را روی کامپیوتر هم در اختیار داشته باشند. البته بسیاری از اپلیکیشن‌های اندرویدی روی کروم‌بوک‌ها به طور رسمی عرضه می‌شوند و قابل استفاده هستند، اما از آنجا که همه افراد به کروم‌بوک دسترسی ندارند، استفاده کردن از شبیه ساز های اندرویدی بهترین گزینه برای این کار خواهد بود.بهترین شبیه ساز های اندروید برای ویندوزدر ادامه فهرستی از بهترین شبیه ساز های اندروید برای کامپیوتر را مشاهده می‌کنید. درباره هر کدام از این برنامه‌ها توضیحات مختصری را ارائه می‌کنیمشبیه ساز اندروید برای کامپیوتر BlueStacksبرنامه BlueStacks احتمالاً شناخته‌شده‌ترین شبیه ساز اندروید در فهرست ماست. این برنامه به گونه‌ای طراحی شده تا استفاده از آن راحت باشد و دقیقاً طرز کار گوشی‌ها یا تبلت‌های اندرویدی را شبیه‌سازی کند. BlueStacks دارای دو نسخه رایگان و پولی است که در نسخه رایگان آن شاهد تبلیغات هستیم. این برنامه در اصل برای بازی‌های اندرویدی طراحی شده و رابط کاربری آن به گونه‌ای است که افراد بتوانند به راحتی بازی‌ها را دانلود و نصب کنند. البته امکان مراجعه به گوگل پلی و جستجو برای سایر اپلیکیشن‌ها نیز وجود دارد. علاوه بر این، اگر بخواهید برنامه‌ها و بازی‌ها را از یک منبع خارجی نصب کنید، می‌توانید از فایل APK آن‌ها استفاده کنید. BlueStacks به طور کامل با ویندوز سازگاری دارد و به راحتی با سخت افزار کامپیوتر شما هماهنگ می‌شود. به همین خاطر می‌توان گفت این برنامه یکی از بهترین شبیه ساز های اندروید برای کامپیوتر است. شبیه ساز اندروید Noxیکی دیگر از شبیه ساز های اندروید Nox نام دارد که از نظر سرعت و کارایی، می‌توان آن را در رتبه دوم لیست بهترین نرم افزار اجرای اندروید در ویندوز قرار داد. اگر بخواهید از این شبیه‌ساز برای بازی کردن استفاده کنید، خبر خوشحال‌کننده برای شما آن است که از گیم‌پد پشتیبانی می‌کند. حتی می‌توانید عملکرد دکمه‌های گیم پد خود را از داخل این شبیه‌ساز تنظیم کنید تا با بازی‌های مختلف سازگار باشند. Nox بر اساس اندروید 4.4.2 طراحی شده است که کمی قدیمی به نظر می‌رسد، اما تقریباً با همه برنامه‌های سیستم عامل سازگاری دارد.Nox کاملاً رایگان است و مانند اکثر شبیه ساز های اندروید به طور خاص برای گیمینگ طراحی شده، ولی امکان نصب سایر برنامه‌ها از طریق گوگل پلی را در اختیار کاربران می‌گذارد. در سایدبار سمت راست این برنامه گزینه‌های جالبی مانند ضبط ویدیو یا گرفتن اسکرین‌شات از محیط شبیه‌ساز وجود دارند. همچنین گزینه‌ای برای نصب فایل‌های APK را می‌توانید در این بخش مشاهده کنید.شبیه ساز اندروید برای کامپیوتر MeMuشبیه ساز MeMu یک برنامه نسبتا جدید است که توانایی اجرای بازی‌ها و برنامه‌های اندرویدی با بهترین عملکرد ممکن را دارد. توصیه شده است که برای مشاهده بهترین کارایی این برنامه، گزینه مجازی‌سازی پردازنده کامپیوتر خود را فعال کنید. MeMu با پردازنده‌های اینتل و AMD سازگاری کامل دارد. همچنین از اکثر کارت‌های گرافیکی پشتیبانی می‌کند. بنابراین می‌توان گفت که از نظر سخت‌افزاری هماهنگی خوبی با کامپیوتر شما خواهد داشت.در داخل این برنامه می‌توانید عملکردهای مختلفی را برای کلیدهای کیبورد تعریف کنید تا تجربه بهتری هنگام بازی کردن داشته باشید. می‌توانید برنامه‌ها و بازی‌های مختلف را از گوگل پلی دانلود کرده یا با کشیدن فایل APK به درون محیط شبیه‌ساز، به راحتی آن‌ها را اجرا کنید. مانند برنامه Nox، در MeMu هم شاهد یک منوی عمودی هستیم که گزینه‌های خوبی را در اختیار کاربران قرار می‌دهد. شاید تنها نکته منفی این برنامه، طراحی آن بر اساس اندروید 5.1.1 باشد که تا حدودی قدیمی به نظر می‌رسد.شبیه ساز اندروید برای کامپیوتر LDPlayerLDPlayer یکی دیگر از برنامه های شبیه ساز اندروید برای گیمرها است که ساختار آن با اندروید 7.1 چیده شده. این نرم افزار، تقریبا تمام امکانات لازم برای بازی را برایتان فراهم می‌کند که از جمله آن‌ها می‌توان به پشتیبانی از موس و کیبورد، پشتیبانی از چند اکانت، فریم ریت بالا و پشتیبانی از تنظیمات گرافیکی. LDPlayer یکی از معدود نرم افزارهایی است که هر ماه بطور مرتب آپدیت می‌شود. این نرم افزار از بازی‌های زیادی زیادی پشتیبانی می‌کند که از جمله آن‌ها می‌توان به Garena Free Fire, Clash of Clans, Black Desert Mobile و بازی‌های دیگر اشاره کرد. این نرم افزار در آخرین آپدیت خود قابلیت auto headshot را در بازی Free Fire بهبود داده؛ به همین دلیل یکی از نرم افزارهای محبوب در بین گیمرهای Free Fire محسوب می‌شود. این نرم افزار شبیه ساز اندروید در ویندوز را می‌توانید از سایت رسمی LDPlayer دریافت کنید.نرم افزار شبیه ساز اندروید Remix OS Playerشبیه ساز Remix OS Player بر پایه اندروید مارشمالو طراحی شده است و یکی دیگر از جدیدترین گزینه‌ها در این زمینه به شمار می‌رود. نصب برنامه‌ها و بازی‌های مختلف در این شبیه‌ساز بسیار راحت است. در این برنامه نیز می‌توانید شاهد گزینه‌های اختصاصی برای گیمینگ باشید. همچنین امکان شخصی‌سازی نوار ابزار در Remix OS Player وجود دارد. با این برنامه می‌توانید چند اپلیکیشن را به طور همزمان اجرا کنید. اگرچه این برنامه رابط کاربری مناسبی دارد و امکانات خوبی را در اختیار مخاطبانش می‌گذارد، اما در حال حاضر وبسایت آن از دسترس خارج شده است. به نظر می‌رسد که روند توسعه این برنامه توسط سازندگانش متوقف شده و احتمال دارد در سال‌های آینده شاهد عدم پشتیبانی از آن نیز باشیم؛ ولی فعلا می‌توانید از آن به عنوان یک گزینه مناسب استفاده کنید.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Thu, 19 Nov 2020 12:17:49 +0330</pubDate>
            </item>
                    <item>
                <title>قواعد دستورات در زبان جاوا</title>
                <link>https://virgool.io/@MobileDeveloper/%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D8%AC%D8%A7%D9%88%D8%A7-zyajfrfaqt0e</link>
                <description>یک برنامه جاوا را می توان به عنوان مجموعه ای از اشیائی تعریف کرد که از طریق فراخوانی متدهای یکدیگر با هم ارتباط برقرار می کنند. حال به طور خلاصه به بررسی کلاس، شیء، متدها و متغیرها می پردازیم.شیء (Object)اشیاء حالت ها و رفتارهایی دارند. مثلا یک سگ حالت هایی مانند رنگ، نام، نژاد و رفتار هایی مانند پارس کردن، غذا خوردن و غیره را دارد. یک شیء نمونه ای از یک کلاس می باشد.کلاس (Class)یک کلاس حالت ها و رفتارهایی که در یک شیء از نوع آن کلاس پشتیبانی می شود، را تعریف می کند.متدها (Methods)یک متد اساسا یک رفتار است. هر کلاس می تواند متدهای مختلفی داشته باشد. متدها معمولا برای انجام عملیات های مختلف و دستکاری داده های استفاده می شوند.متغیرهای نمونه (Instance Variables)هر شیء یک مجموعه منحصر به فرد از متغیرها را دارد و حالت های یک شیء توسط مقادیری که به این متغیرها اختصاص داده می شود، تعیین می شوند.اولین برنامه جاوابه مثال زیر که عبارت “Hello World” را در خروجی چاپ می کند، توجه کنید:public class MyFirstJavaProgram {/* This is my first java program.* This will print &#x27;Hello World&#x27; as the output*/public static void main(String []args) {System.out.println(&quot;Hello World&quot;); // prints Hello World}}در زیر چگونگی ذخیره فایل، کامپایل و اجرا برنامه را توضیح داده شده است:Notepad را باز کنید و کد زیر را اضافه کنید.فایل را با نام MyFirstJavaProgram.java ذخیره کنید.CMD را باز کرده و با استفاده از دستور cd به محلی که فایل جاوای خود را ذخیره کردید، بروید.سپس در CMD دستور javac MyFirstJavaProgram.java را تایپ کرده و اینتر را بزنید تا کدهای موجود در فایل جاوای شما کامپایل شوند. اگر خطای در هنگام کامپایل رخ ندهد، به خط بعدی در CMD منتقل خواهید شد (دستور javac زمانی کار خواهد کرد که متغیر PATH به درستی تنظیم شده باشد).حال دستور java MyFirstJavaProgram را تایپ کنید تا برنامه شما اجرا شود.بعد از اجرا شدن برنامه شما، عبارت Hello World بر روی صفحه CMD چاپ خواهد شد.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Thu, 12 Nov 2020 15:39:28 +0330</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی شی گرا چیست؟</title>
                <link>https://virgool.io/@MobileDeveloper/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B4%DB%8C-%DA%AF%D8%B1%D8%A7-%DA%86%DB%8C%D8%B3%D8%AA-qmlpxuc17vtr</link>
                <description>اگر برنامه نویسی را در حد مبتدی شروع کرده باشید و یا حتی به زبان های مختلف نگاهی کرده باشید، احتمالا با عبارت &quot;برنامه نویسی شی گرا&quot; و یا به عبارتی دیگر OOP آشنا هستید. مطالب فنی زیادی در این مورد وجود دارد که میتوان همه ی آنها را بیان کرد اما امروز قصد داریم به روشی ساده این متد برنامه نویسی را برای شما توضیح دهیم.بررسی زبان های رویه ایبرای درک یک زبان برنامه نویسی شی گرا باید بدانید این متد به عنوانی جایگزین برای چه روش هایی استفاده میشود. زبان های برنامه نویسی ابتدایی، به اصطلاح رویه ای هستند، زیرا برنامه نویس مجموعه ای از رویه ها را برای اجرا در کامپیوتر تعریف میکند. جالب است بدانید در اولین روزهای برنامه نویسی، رویه ها بر روی کارت های پانچ نوشته میشدند. به این طریق داده ها را به کامپیوتر منتقل کرده و سپس مجموعه ای از عملیات بر روی داده ها انجام میشد و نتیجه آنها چیزی بود که ما میخواستیم.زبان های رویه ای برای زمانی بسیار خوب عمل میکردند (حتی عده ای هنوز از آنها استفاده میکنند). اما زمانی که می خواهید چیزی فراتر از مجموعه از مراحل را برنامه نویسی کنید، زبان های رویه ای می توانند برای مدیرت پروژه مشکل ساز شوند. اینجا دقیقا جایی است که برنامه نویسی شی گرا وارد میشود.برنامه نویسی شی گراحالا بیایید ببینیم برنامه نویسی شی گرا چیست؟اولین زبان برنامه نویسی شی گرا (همه معتقدند سیمولا اولین زبان برنامه نویسی شی گرا بود) ایده ی اشیا را معرفی کرد. اشیاء مجموعه ای از اطلاعات هستند که به عنوان یک موجودیت منحصر به فرد معرفی میشوند. ما در این مقاله در این زمینه کمی عمیق تر خواهیم شد اما اجازه دهید در ابتدا در مورد کلاس ها صحبت کنیم. کلاس ها مفهوم و تعریف اشیا را ارائه میدهند. کلاس ها حاوی لیستی از مشخصه ها هستند که وقتی تعریف میشوند به یک شی تبدیل میشوند.بیایید مثال خود را از یک بازی شطرنج مطرح کنیم. ممکن است کلاسی به نام Piece (مهره) داشته باشیم. در داخل این کلاس، لیستی از ویژگی های زیر را داریم:رنگارتفاعشکلحرکت مجازشی ایی از این کلاس زمانی که تعریف میشود شامل همه مشخصا فوق است. بنابراین می توانیم یک شی به نام WhiteQueen داشته باشیم. این شی برای هر چهار مشخصه بالا دارای تعاریف خاصی است (سفید، بلند، استوانه ای، هر تعداد از حرکت در هر جهت). این شی حتی ممکن است دارای متدها و توابع مشخصی هم باشد.?اما چه چیزی باعث میشود این روش از روش رویه ای بهتر باشد؟ به طور خلاصه، سازماندهی داده ها و کد ها در زبان های برنامه نویسی شی گرا (مانند جاوا) برای پروژه های بزرگتر آسان تر است. برای بحث و گفتگو با جزئیات بیشتر در این مورد، ما در مورد چهار اصل برنامه نویسی شی گرا صحبت خواهیم کرد.برنامه نویسی شی گرا : Abstractionوقتی میخواهید با چیزی کار کنید همیشه لازم نیست بدانید چطور کار میکند. به عنوان مثال یک دستگاه اسپرسو، ، پیچیده است. اما شما لازم نیست بدانید که چگونه کار می کند. فقط باید بدانید که هنگامی که &quot;On&quot; را فشار می دهید، قهوه اسپرسو را دریافت خواهید کرد.?همین مسئله در مورد برنامه نویسی شی گرا نیز صادق است. در مثال شطرنجی که در بالا به آن اشاره کردیم ممکن است متدی به نام ()move داشته باشیم. این متد ممکن است برای انجام کار خود به متدها و داده های دیگری نیاز داشته باشد.ممکن است نیاز داشته باشد موقعیت کنونی و موقعیت نهایی را بداند. اما این کار را متدی دیگر برای او انجام میدهد، او لازم نیست بداند این کار به چه طریقی انجام میشود. حتی زمانی که از متد ()move برای حرکت استفاده میکنید فقط استفاده از این متد برای حرکت کردن شما کافیست و لازم نیست بدانید این کار به شکلی انجام میشود.این مفهوم Abstraction و یا اتزاع در متد شی گرایی است که اشیا عملیات خود را از دیگران مخفی نگه میدارند. در این صورت پیچیدگی به شدت کاهش میبابد.برنامه نویسی شی گرا : EncapsulationEncapsulation یکی از راه هایی است که برنامه نویسی شی گرا از طریق آن انتزاع را ایجاد میکند. هر شی ایی مجموعه ای از داده ها است که که با آن به عنوان موجودیتی واحد رفتار خواهد شد. درون اشیا داده ها قرار دارند(هم متغیر ها و هم متد ها).متغیرهای درون یک شی به طور کلی خصوصی نگهداری می شوند، به این معنی که اشیاء و متدهای دیگر نمی توانند به آنها دسترسی پیدا کنند. اشیا تنها از طریق متدهای خود تاثیر میپذیرند. مهره فیل در بازی شطرنج میتواند شامل اطلاعات مختلفی باشد. برای مثال، می تواند متغیری با نام &quot;position&quot; داشته باشد. این متغیر برای استفاده در متد ()move میتواند حیاتی باشد.با خصوصی قرار دادن متغیر &quot;position&quot;  و عمومی قرار دادن متد ()move برنامه نویس از تاثیر ناپذیری متغیر توسط چیزی غیر از متد ()move مطمئن خواهد شد و این همان مفهوم کپسوله سازی در برنامه نویسی شی گراست.برنامه نویسی شی گرا : ارث بریعلاوه بر کلاسها، زبانهای برنامه نویسی شی گرا شامل زیر کلاس ها هم هستند. زیر کلاس ها همه میتوانند همه مشخصات کلاس های والد خود را به ارث ببرند و خود نیز مستقلا دارای مشخصه های مربوط به خود باشند.در بازی شطرنج ما، زمانی که مهره سرباز به انتهای صفحه شطرنج در زمین رغیب میرسد میتواند به مهره ای دیگر تبدیل شود. در اینجا میتوانیم متدی به نام  ()transformPiece را برای شی سرباز پیاده سازی کنیم. با این حال همه مهره های سرباز نمیتوانند به انتهای زمین رغیب برسند و البته بیشتر آنها نمیتوانند از این متد استفاده کنند.پس میتوان به جای تعریف این متد در کلاس اصلی ، زیر کلاسی برای کلاس سرباز ایجاد کرد که همه مشخصات کلاس والد خود را به ارث میبرد و فقط شامل متد ()transformPiece برای تبدیل به مهره ای دیگر است.برنامه نویسی شی گرا : PolymorphismPolymorphism و یا به عبارت دیگر چند ریختی نتیجه وراثت است. درک کامل مفهوم چندریختی نیاز به کمی دانش برنامه نویسی دارد، بنابراین در اینجا اصول اولیه را بیان میکنیم. به طور خلاصه، پلی مورفیسم به برنامه نویسان اجازه میدهد از متد های همنام اما به همراه اشیای مختلف استفاده کنند.برای مثال کلاس مهره در بازی شطرنج شامل متدی به نام ()move برای حرکت به اندازه یک خانه در هر جهتی است که البته برای مهره پادشاه عالی عمل میکند، اما برای مهره های دیگر مناسب نیست. برای حل مشکل میتوان در زیر کلاس های هر مهره متدی با همین نام را تعریف کرده که بسته به نوع مهره میتواند نوع حرکت را مشخص کند. اکنون برنامه نویس فقط کافی است متد ()move را بر روی مهره ای اعمال کند . در این صورت خود برنامه میداند نحوه حرکت به چه شکل است.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Mon, 09 Nov 2020 13:10:41 +0330</pubDate>
            </item>
                    <item>
                <title>گرامر زبان دارت Dart</title>
                <link>https://virgool.io/@MobileDeveloper/%DA%AF%D8%B1%D8%A7%D9%85%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D8%AF%D8%A7%D8%B1%D8%AA-dart-gfrjr7y67hbm</link>
                <description>با عرض سلام خدمت کاربران محترم سایت ویرگول.در این جلسه قصد داریم به آموزش گرامر زبان دارت بپردازیم.گرامر زبان دارتگرامر های زبان های برنامه نویسی، مجموعه ای از قوانین را برای نوشتن برنامه های کامپیوتری مشخص می‌کنند.هر زبان برنامه نویسی گرامر مختص به خودش را دارد.!Hello Worldطبق معمول، اولین کد هر زبان را با چاپ عبارت “Hello World” آموزش می‌دهیم.main() {print(&quot;Hello World!&quot;);}تابع main یک تابع از پیش تعریف شده در زبان دارت است.این تابع نقطه شروع برنامه های نوشته شده زبان دارت است. در واقع هر برنامه برای اجرا شدن به این تابع نیاز دارد. (با توابع در جلسات آینده بیشتر آشنا خواهید شد)تابع print نیز یه مقدار (رشته) را به عنوان ورودی گرفته و آن را در ترمینال (خط فرمان) چاپ می‌کند.خروجی کد بالا به صورت زیر خواهد بود:Hello World!اجرای برنامهاگر تنها از ویرایشگر های متن به جای IDE استفاده می‌کنید، برای اجرای برنامه ها باید از خط فرمان (Commnad Line) استفاده کنید.برای این کار خط فرمان را در مسیر فایل برنامه قرار داده و از دستور زیر برای اجرای برنامه استفاده کنید:dart file_name.dartاجرا در حالت Checkedبرنامه های زبان دارت در دو حالت اجرا می‌شوند:Checked ModeProduction Mode (پیش‌فرض)پشنهاد می‌شود که در مدت تست و توسعه برنامه، از Checked Mode در Dart VM استفاده کنید.زیرا این حالت تمام هشدار ها و خطا های موجود در کد را اعلام می‌کند که می‌تواند در فرآیند اشکال زدایی بسیار مفید باشد.برای فعال کردن Checked Mode، از پارامتر c- یا checked- – در دستور اجرای برنامه ها استفاده کنید. این پارامتر باید قبل از نام فایل برنامه قرار گیرد.به هر حال برای داشتن پرفرمنس بهتر در زمان کامپایل، می‌توانید از حالت Production استفاده کنید.فایل test.dart زیر را در نظر بگیرید.void main() {int n = &quot;hello&quot;;print(n);}رشته “hello” در متغیری از نوع int (عدد صحیح) ریخته شده که خطا است. اما این کد در حالت production اجرا می‌شود.حال فایل بالا را در حالت Checked با استفاده از دستور زیر اجرا کنید.dart - - checked Test.dartمشاهده خواهید کرد که کامپایلر خطا ها و پیام های زیر را نمایش خواهد داد.شناسه ها در Dartشناسه ها در واقع نام هایی هستند که به عناصر مختلف زبان دارت مانند متغیر ها، توابع، کلاس ها و … داده می‌شوند.شناسه ها می‌توانند شامل حروف و اعداد باشند. اما یک شناسه نمی‌تواند با اعداد آغاز شود.شناسه ها به جز آندرلاین (_) نمی‌توانند شامل هیچ سمبل دیگری باشند.شناسه ها نمی‌توانند کلمات کلیدی و رزرو شده زبان دارت باشند.شناسه ها به حروف کوچک و یزرگ حساس هستندشناسه ها نباید حاوی space (فضای خالی) باشندکلمات کلیدی زبان Dartکلمات کلیدی معانی خاصی در یک زبان برنامه نویسی دارند که برای اعمال مختلف استفاده می‌شوند.سمیکالن (Semicolon)در زبان Dart تمام دستورات با علامت ; خاتمه می‌یابند.توضیحات (Commnets)کامنت ها برای توضیح بخشی از کد به دیگران یا یادآوری به خود استفاده می‌شوند و در بین کد های برنامه قرار می‌گیرند.همچنین می‌توانند اطلاعات اضافی دیگری مانند نام برنامه نویس، نسخه برنامه، لاینسس و … را در ابتدای فایل نمایش دهند.از دو روش می‌توانیم کامنت ها را ایجاد کنیم:کامنت تک خطی : این نوع کامنت ها فقط می‌توانند در یک خط نوشته شوند. با استفاده از علامت // آغاز می‌شوند.کامنت چند خطی : این نوع کامنت ها می‌توانند در چندین خط نوشته شوند. با علامت */ آغاز و با علامت /* پایان می‌یابند.مثال:1// this is single line comment/* This is aMulti-line comment*/</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Fri, 06 Nov 2020 10:57:12 +0330</pubDate>
            </item>
                    <item>
                <title>زبان برنامه نویسی دارت چیست؟</title>
                <link>https://virgool.io/@MobileDeveloper/%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AA-%DA%86%DB%8C%D8%B3%D8%AA-w5hczypzn9rz</link>
                <description>سلام به علاقه مندان تکنولوژی امروز اومدم تا شما را با زبان برنامه نویسی دارت اشنا کنم پس همراه ما باشید......دارت از سوی گوگل ایجاد شده است و هدف اولیه آن مقابله با زبان‌های مبتنی بر C مانند ++C# ،C و جاوا بوده است. دارت یک زبان برنامه‌نویسی چندمنظوره است که زمان کامپایل سریعی دارد، منسجم است و همچنین یادگیری آن آسان است. دارت کاملاً شیءگرا، با نوع‌بندی اختیاری و یک زبان مبتنی بر کلاس است که پشتیبانی مناسبی از برنامه‌نویسی «تابعی» (Functional) و همچنین «واکنشی» (Reactive) دارد. اگر این اصطلاح‌ها برای شما ناآشنا هستند، جای نگرانی نیست، چون ما در این مقاله از مبانی اولیه برنامه‌نویسی آغاز می‌کنیم و همه این مفاهیم را در طی این نوشته آموزش خواهیم داد. در ادامه به معرفی مفاهیم عمده برنامه‌نویسی می‌پردازیم.مبانی برنامه‌نویسییک برنامه رایانه‌ای به مجموعه‌ای از دستورالعمل‌ها، یعنی یک توالی از دستورهای کوچک مستقل گفته می‌شود که یکی پس از دیگری می‌آیند.این دستورالعمل‌ها ممکن است 5 خط یا 1000 خط باشند و یا حتی ممکن است 500 میلیون خط باشند که هر کدام از آن‌ها به سیستم رایانه‌ای می‌گویند که کار کوچکی را انجام دهد. این کار هر چند کوچک کاملاً مشخص است، مثلاً «10 را بر 2 تقسیم کن». به همین دلیل است که برنامه‌نویسی جذاب است چون به وسیله آن می‌توان یک مسئله بزرگ را به اجزای کوچک‌تر تقسیم کرد و شروع به ساخت همه چیز از صفر کرد. این وضعیت ممکن است کمی انتزاعی باشد. در ادامه مثالی از یک نمونه کوچک برنامه‌نویسی در زندگی روزمره را بررسی می‌کنیم.تصور کنید در خانه‌تان تنها هستید و احساس گرسنگی می‌کنید و آشپزی هم بلد نیستید. ناگهان به خاطر می‌آورید که یک بسته نودل در آشپزخانه دارید، بنابراین با مادر خود تماس گرفته و از وی می‌پرسید که چگونه می‌توانید آن نودل را درست کنید. مادرتان یک راهنمای گام به گام در مورد روش پخت نودل به شما ارائه می‌کند.بنابراین همان طور که می‌بینید آشپزی یک سفر است که از نقطه (الف) یعنی باز کردن بسته نودل آغاز و به نقطه (ب) که ریختن آن در قابلمه است می‌رسد. باید از مادرتان متشکر باشید که این فرایند را به چنین گام‌های کوچکی تجزیه کرده است تا بتوانید سریع‌تر آن را درک کنید. اینک همان طور که قبلاً متوجه شده‌اید، توالی مراحل نیز نقشی حیاتی دارد، اگر قبل از آن که قابلمه را روی اجاق گاز قرار دهید، نودل ها را روی آن بریزید، چیزی که به دست می‌آید، کاملاً متفاوت خواهد بود!بدین ترتیب در برنامه‌نویسی نیز، مراحل مورد نیاز برای انجام کار مورد نظرمان را به رایانه می‌دهیم. در این روش یک مسئله پیچیده به دستورالعمل‌های منفرد کاملاً کوچکی تقسیم می‌شود و سپس با استفاده از زبان برنامه‌نویسی این دستورالعمل‌ها نوشته می‌شوند. زبان برنامه‌نویسی نیز مانند زبان مکالمه روزمره ما دستورزبانی دارد که باید رعایت شود تا رایانه درک کند که باید دقیقاً چه کاری باید انجام دهد. همان طور که در زبان معمولی، جمله داریم، در زبان برنامه‌نویسی هم «گزاره» (statement) وجود دارد. با این که این گزاره‌ها ممکن است کلیدواژه و ساختار متفاوتی در زبان‌های متفاوت داشته باشند؛ اما مفاهیم اساسی تشکیل دهنده برنامه‌نویسی، مشابه هستند. درک قواعد یک زبان خاص به این معنی است که دستور زبان آن زبان برنامه‌نویسی را می‌آموزیم. زمانی که مبانی زبان برنامه‌نویسی را آموختید، زبان‌های برنامه‌نویسی دیگر را نیز راحت‌تر فرامی‌گیرید.زبان دارت (Dart) چیست؟تصور کنید از شما خواسته شده است که یک اپلیکیشن تجارت آنلاین برای یک مشتری بنویسید که BestBikes نام دارد. این اپلیکیشن ساده برای خرید و فروش دوچرخه‌های دست دوم است. کلاینت از شما یک وب اپلیکیشن برای مشتریان و یک اپ موبایلی برای فروشنده می‌خواهد. وب اپلیکیشن بخش عمده پروژه است، اما اپلیکیشن موبایل چنین نیست و صرفاً به فروشنده امکان می‌دهد که تصاویری از دوچرخه خود تهیه کرده و روی سرور بارگذاری کند. بنابراین احتمالاً تصمیم می‌گیرید برای این بخش از Flutter استفاده کنید.فلاتر یک فریمورک توسعه موبایل است که از سوی گوگل توسعه یافته و از دارت به عنوان زبان برنامه‌نویسی بهره می‌گیرد. فلاتر برای ساخت نمونه‌های اولیه بسیار سریع است. از آنجا که اغلب برنامه‌نویسان این حوزه با جاوا و جاوا اسکریپت آشنا هستند، بادگیری دارت برای آن‌ها بسیار آسان خواهد بود. استفاده از دارت آسان و یادگیری آن به سرعت امکان‌پذیر است و از این نظر شباهتی به زبان‌های دیگر مانند سی شارپ یا جاوا ندارد. به باور بسیاری از افراد دارت آینده توسعه چند پلتفرمی را تصاحب خواهد کرد، چون به وسیله آن می‌توان اپلیکیشن‌های وب، موبایل و حتی سمت سرور را برنامه‌نویسی کرد.ساختار اصلییکی از مهم‌ترین نکاتی که وجود دارد این است که ما باید کد منبع خود را به کد ماشین تبدیل کنیم تا رایانه بتواند آن را بفهمد. البته لازم نیست شما همه این مراحل را بدانید؛ اما اگر می‌خواهید برنامه‌نویس بهتری باشید، دانستن آن‌ها مورد نیاز خواهد بود. در ابتدا دارت را روی رایانه خود نصب می‌کنیم. به این منظور بهتر است به مستندات رسمی دارت (+) مراجعه کنیم چون به‌روزتر است و روش آسان‌تری را پیشنهاد می‌کند. زبان‌های برنامه‌نویسی به زبان ساده‌ای نوشته می‌شوند و از این رو می‌توانید یک ویرایشگر متنی ساده را باز کرده و شروع به نوشتن برنامه خود بکنید. دقت کنید که فایل‌های دارت دارای پسوند فایلی به صورت dart. هستند.در ادامه یک برنامه ساده Hello World را می‌بینید که ازنظر فنی یک برنامه کامل دارت محسوب می‌شود.متغیرها و انواع دادهدر هر برنامه‌ای که می‌نویسیم باید تغییرات برخی از اطلاعات را ردگیری کنیم. برای نمونه در یک بازی ساده Flappy Bird باید امتیاز بازیکن کنونی، بالاترین امتیاز و مواردی از این دست را ذخیره کنیم. این‌ها بخش‌های داده ساده‌ای هستند که باید برای ذخیره‌سازی‌شان متغیرهایی بسازیم. متغیرها در واقع بخش‌هایی از حافظه هستند که در سیستم نگهداری می‌شوند و نام خاصی به آن‌ها می‌دهیم تا بتوانیم در مراجعات بعدی آن‌ها را راحت‌تر پیدا کنیم و سپس در صورت نیاز مقدار ذخیره شده در آن‌ها را تغییر می‌دهیم.اصطلاح دیگری نیز وجود دارد که باید بشناسیم و آن «نوع داده» (datatype) است. منظور از نوع داده در واقع نوع قالب مورد نیاز برای ذخیره‌سازی یک داده است. برخی موارد از انواع داده رایج شامل عدد صحیح، عدد اعشاری، رشته و آرایه است. انواع داده مختلف می‌توانند مانند تاریخ، مقادیر بولی و مقادیر زمان سپری شده کاملاً اختصاصی باشند. با این وجود انواع داده در دارت همگی شیء هستند و از این رو مقدار اولیه آن‌ها به صورت پیش‌فرض null یعنی صفر است. ما در ادامه به این موضوع بیشتر خواهیم پرداخت. در این بخش اقدام به ساخت چند متغیر می‌کنیم و روش استفاده از آن‌ها را مورد بررسی قرار می‌دهیم. دارت پشتیبانی خاصی از انواع داده زیر دارد:عدد (شامل int و double)رشتهبولیلیست (که آرایه نیز نامیده می‌شود)نگاشتRunes (برای بیان کاراکترهای یونیکد در رشته)نمادنکته: دارت یک زبان با تعیین نوع صریح است، یعنی تضمین می‌کند که یک متغیر با نوع خاص، نمی‌تواند مقداری از نوع دیگر را تولید کند.در ادامه مواردی که در قطعه کد فوق آمده‌اند را توضیح می‌دهیم.در دارت از علامت // برای درج کامنت های تک‌خطی استفاده می‌کنیم. کامنت‌ها در واقع نکات مفیدی هستند که برای توجه برنامه‌نویسان در کد نوشته می‌شوند. این توضیحات در برنامه نهایی اجرا نخواهند شد.10 یک عدد است. Sharad Ghimire یک رشته است. هر دو نوع گیومه یعنی ‘…’ یا “…” در دارت پشتیبانی می‌شوند.اینت یک نوع داده عدد صحیح است و می‌تواند همه مقادیر اعداد صحیح که فاقد مقدار اعشاری هستند را در خود ذخیره کند.ور روشی برای اعلان یک متغیر بدون تعیین نوع آن است.تابع مین یک تابع خاص است که از سوی دارت ارائه شده و حضور آن ضروری است. این تابع سطح بالا جایی است که اپلیکیشن‌های دارت شروع به کار می‌کنند.بول یک نوع داده خاص بولی است که صرفاً می‌تواند شامل دو مقدار مختلف true و false باشد.کاراکتر ; یک نقطه‌ویرگول است که خاتمه هر گزاره را اعلام می‌کند.برای ارزیابی مقدار موجود در سمت راست علامت تساوی و انتساب آن مقدار به آن چه در سمت چپ قرار دارد استفاده می‌شود.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Wed, 04 Nov 2020 10:03:17 +0330</pubDate>
            </item>
                    <item>
                <title>زبان برنامه نویسی جاوا (Java)</title>
                <link>https://virgool.io/@MobileDeveloper/%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AC%D8%A7%D9%88%D8%A7-java-ufxqewurfghb</link>
                <description>چرا ما باید زبان جاوا را دوست داشته باشیم؟ زبان جاوا، یک زبان برنامه‌نویسی محبوب است که از ویژگی شی گرایی پشتیبانی می‌کند. این تکنولوژی که به صورت رایگان در اختیار همگان استتا جایی که به جاوا مربوط می‌شود، همه چیز از اوایل دهه 1990 آغاز شد، یعنی زمانی که شرکت سان مایکروسیستمز (Sun Microsystems) شروع به توسعه نسخه بهتری از ++C کرد که بتواند به آسانی پرتابل شود، برای افراد مبتدی مطلوب باشد و به مدیریت خودکار حافظه بپردازد. تحقیقات این شرکت منجر به خلق یک زبان کاملاً جدید شد که نام آن از میان ده‌ها نام پیشنهادی در اتاق جلسه معرفیش انتخاب شد. امروزه لوگوی جاوا به صورت فنجان قهوه‌ای که از آن بخار می‌دمد، به نماد جهانی برنامه‌نویسی تبدیل شده است. در واقع دیگر کسی نمی‌داند که ارتباط برنامه‌نویس‌ها با کافئین قدیمی‌تر است؛ یا ارتباطشان با جاوا که امروزه مترادف با قهوه است.جاوا چیست؟جاوا یک زبان برنامه‌نویسی چندمنظوره و شی‌گرا است که تا حدودی زیادی به C و ++C شباهت دارد؛ اما استفاده از آن آسان‌تر است و امکان ساخت برنامه‌هایی قدرتمند با آن وجود دارد. البته تعریفی که شرکت سان مایکروسیستمز در سال 2000 ارائه کرده است، شاید از تعریف فوق گویاتر باشد:|جاوا زبان رایانه‌ای ساده، شی‌گرا، مناسب شبکه، تفسیرشدنی، مستحکم، امن، فارغ از معماری، پرتابل، با عملکرد بالا، چندنخی و دینامیک است.جاوا یک زبان ساده استجاوا در ابتدا بر اساس زبان‌های C و ++C و با حذف برخی ویژگی‌هایی که قابلیت سردرگم کننده داشتند مدلسازی شد. از جمله این ویژگی‌ها می‌توان به اشاره‌گرها، پیاده‌سازی چندباره وراثت و بارگذاری بیش از حد عملگرها اشاره کرد که در جاوا حذف شدند. یکی از ویژگی‌هایی که در C++/C وجود نداشت؛ اما جزو ویژگی‌های اساسی جاوا به شمار می‌آید، امکان بازیافت حافظه (garbage-collection) است که به طور خودکار اشیا و آرایه‌های بی استفاده را حذف می‌کند.جاوا یک زبان شی‌گرا استتمرکز شی‌گرایی جاوا موجب شده است که توسعه‌دهندگانی که از این زبان استفاده می‌کنند، از آن برای حل یک مسئله استفاده کنند و نه سروکله زدن با آن برای رفع محدودیت‌های مسئله. این وضعیت موجب تمایز بین جاوا و C شده است. برای نمونه اگر می‌خواهید برنامه‌ای برای یک حساب بانکی بنویسید، در جاوا تنها باید به ذخیره‌سازی شی حساب بانکی بپردازید؛ اما در C باید وضعیت حساب (تراز حساب) و رفتارهایی مانند واریز یا برداشت را به طور مستقل برنامه‌نویسی کنید.نسخه‌های مختلف جاواشرکت سان مایکروسیستمز، کیت توسعه نرم‌افزاری (JDK) شماره 1.0 جاوا را در سال 1995 منتشر کرده است. این JDK نخست برای توسعه اپلیکیشن‌های دسکتاپ و اَپلت (applet) مورد استفاده قرار گرفت. متعاقباً جاوا برنامه‌نویسی دستگاه‌های موبایل و سرورهای تجاری را نیز در این کیت میسر ساخت. ذخیره‌سازی همه کتابخانه‌ها در یک JDK منفرد باعث شده که این کیت بسیار بزرگ‌تر از حد مناسب برای توزیع شود. البته باید این نکته را در نظر داشته باشید که توزیع نرم‌افزارها در دهه 1990 توسط CD های اندازه کوچک و یا از طریق سرعت‌های پایین شبکه صورت می‌گرفته است. از آنجا که اغلب توسعه‌دهندگان به همه API ها نیاز نداشتند (یک توسعه‌دهنده اپلیکیشن‌های دسکتاپ به ندرت به API های سرورهای تجاری نیاز پیدا می‌کند) شرکت Sun این مشکل توزیع را با تقسیم جاوا به سه نسخه حل کرد. این نسخه‌ها نهایتاً به نام JAVA SE، JAVA EE و JAVA ME نامیده شدند که در ادامه هر کدام را توضیح داده‌ایم.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Thu, 29 Oct 2020 18:33:04 +0330</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی موبایل چیست؟</title>
                <link>https://virgool.io/Only-js/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%85%D9%88%D8%A8%D8%A7%DB%8C%D9%84-%DA%86%DB%8C%D8%B3%D8%AA-xzpbzthbyavv</link>
                <description>با سلام به همه ویرگولی های عزیز امروز میخواهیم درباره اندروید و برنامه نویسی در این حوزه صحبت کنیم در ابتدا باید بگویم که همه این موضوع درباره ساختن اپلیکیشن های موبایل نیست، هرچند که بخش بسیار بزرگی از آن را شامل میشود، بلکه درباره همه انواع برنامه نویسی یا توسعه دادن برای همه دستگاه های قابل حمل است. شاید عبارت آخر یک مقدار کلیشه ای بنظر برسد، ولی تا انتهای این مقاله با برنامه چی همراه باشید تا کاملا این عبارت را برای شما توضیح بدهیم.منظوری که از نوشتن این جمله داشتم، این بود که این مدل از برنامه نویسی به ساختن برنامه برای گوشی های تلفن همراه، تبلت ها، ساعت های هوشمند و همه انواع دیگر گجت های پوشیدنی که نوعی از سیستم های عامل را اجرا میکنند، اشاره میکند.برنامه نویسی موبایل لزوما به معنی توسعه اپلیکیشن هایی که فقط روی موبایل اجرا میشوند نیست، زیرا حتی توسعه دهندگان وب نیز امروزه به این فکر هستند که صفحه هایی که طراحی میکنند قرار است روی موبایل هم اجرا بشوند.در حقیقت، اپلیکیشن های موبایل حتی میتوانند فقط بر روی دستگاه های موبایل اجرا بشوند اما کاملا یک اپلیکیشن بر پایه وب باشند. با توجه به اینکه روز به روز دستگاه های موبایل در حال قوی تر شدن هستند و مرورگر ها نقش بیشتری را در آنها بازی خواهند کرد، حتی میتوانیم پیش بینی کنیم که این روند در آینده بیشتر مورد استفاده قرار میگیرد.چرا برنامه نویسی موبایل خاص است؟زیرا برنامه نویسی موبایل یک فرصت بسیار طلایی برای تیم های توسعه دهنده انفرادی (یه نفره) به وجود می آورد که میتوانند اپلیکیشن های واقعی، قابل استفاده و به درد بخور را در یک دوره زمانی نسبتا کوتاه تولید کنند. همچنین یک فرصت کارآفرینی را به وجود می آورد که بسیاری از برنامه نویسان میتوانند به آن برسند.قصد ندارم بگویم که یک توسعه دهنده نرم افزار نمیتواند یک صفحه وب یا برنامه دسکتاپ را به تنهایی بسازد، اما برنامه نویسی موبایل بسیار قابل دسترس تر است زیرا از اپلیکیشن های موبایل انتظار میرود که کوچک و منحصر به فرد باشند.حتی در دنیای بازی ها، بازی های موبایل هم میتوانند ما را به دنیای ساده تری که قبل از به وجود آمدن گرافیک های سه بعدی و پایگاه های بزرگ کد وجود داشت، برمیگرداند. یعنی بازی های سبک Retro که دوران اوج خودشان را خیلی وقت پیش گذرانده اند، هنوز روی موبایل دارای طرفداران زیادی هستند. در صورتیکه روی پلتفرم های دیگر زیاد پذیرفته شده نیستند.</description>
                <category>Mobile Developer</category>
                <author>Mobile Developer</author>
                <pubDate>Wed, 14 Oct 2020 15:37:48 +0330</pubDate>
            </item>
            </channel>
</rss>