توسعه برنامه های Cross Platform با Xamarin Forms & Bit Framework - قسمت اول
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: چهار دقیقه

یکی از دغدغه‌های جدی امروزه توسعه دهندگان نرم افزار در سمت Front end، توسعه برنامه‌های Cross Platform است. در این سری آموزشی به صورت قدم به قدم و پروژه محور می‌خواهیم برنامه‌ای را برای Android/iOS/Windows توسعه دهیم که روی کامپیوتر، تبلت و موبایل به خوبی کار کند.
انتخاب ابزار درست برای شروع به کار از اهمیت شایانی برخوردار است و بد نیست در ابتدا به بررسی دلایل انتخاب ابزارهایی بپردازیم که قرار است در این دوره از آنها استفاده شود.

۱- زبان برنامه نویسی: CSharp
CSharp با وجود امکاناتی مانند Generics‌، Lambda Expressions، Linq، Async و ... که تا حدودی در سایر زبان‌ها هم هستند، زبانی خوش ساختار و کاربردی است. همچنین اضافه شدن امکانات جدیدی مانند ref returns و ... نشان دهنده این است که این زبان رو به جلو در حرکت و در برخی موارد پیشرو است. اما در توسعه یک برنامه Cross Platform مواردی اهمیت پیدا می‌کنند که شاید توسعه دهنده نرم افزار مستقیما با آنها درگیر نشود، ولی از آن‌ها تاثیر می‌پذیرد. در زبان CSharp مواردی مانند P/Invoke ،Pointers، Extern و ... جزء این دست از موارد هستند که کمک می‌کنند CSharp به یکی از لذت بخش‌ترین زبان هایی تبدیل شود که قابلیت فراخوانی 100% امکانات زبان‌های دیگر را بدون اما و اگرهای فراوان داشته باشد.
در سایر زبان‌های Cross Platform اگر کتابخانه‌های توسعه داده شده و ترکیب زبان‌های برنامه نویسی استفاده شده در آنها را بررسی کنید، می‌بینید که اگر قرار است کتابخانه مربوطه مثلا در JavaScript استفاده شود، توسعه دهنده کد، درصدی از کد را با Java، درصدی را با Swift و درصدی را با JavaScript توسعه داده است! اگر معادل همان کتابخانه را برای CSharp پیدا کنید، می‌بینید که تمامی قسمت‌های مربوط به اندروید، iOS و ویندوز به زبان CSharp است.
برای مثال در ادامه کدهای مربوط به پروژه‌ای را می‌بینید که هدف آن، ارائه متدهایی ساده برای کار با امکانات مختلف دستگاه، به صورت Cross Platform هست. مثلا برای بررسی وضعیت باطری بنویسید:
var state = Battery.State; //  Charging, Full, Discharging, ...
که تماما با CSharp توسعه داده شده است.
اما معادل چنین پروژه‌ای در هیچ زبان دیگری به صورت 100% با خود آن زبان توسعه داده نشده‌است و بیشتر مواقع با چنین چیزی مواجه می‌شوید:

این مسئله وقتی حائز اهمیت می‌شود که در پروژه‌تان به سمت کارهایی حرکت کنید که کمی خاص باشند و نتوانید کتابخانه‌ای را پیدا کنید که نیازهای شما را پوشش دهد و یا از کیفیت خوبی برخوردار نباشد و ... و خلاصه بخواهید کمی بیشتر دست به کد شوید. در چنین مواقعی شما عملا درگیر چندین زبان و محیط توسعه و سیستم عامل و Debugger و ... می‌شوید. به هر میزان که برنامه شما خاص باشد، این هزینه افزایش پیدا می‌کند تا جایی که ممکن است ادامه توسعه نرم افزار را غیر ممکن کند.
در CSharp شما به صد در صد امکانات سیستم عامل‌ها (Android/iOS/Windows/Linux/Mac/Tizen) دسترسی دارید.

۲- اجرا کننده برنامه: NET.
انتخاب NET. و کتابخانه‌های آن مانند Task Parallel Library - Entity Framework(Sqlite) - Noda - JSON.NET که در هر زمینه‌ای بالاترین کیفیت ممکن را به شما ارائه می‌کنند به خودی خود منطقی به نظر می‌رسد. اما تمامی این‌ها در کنار سرعت اجرای NET. به صورت Native و همچنین قابلیت اجرای NET. در تمامی سیستم عامل‌ها و همچنین امکان اجرای آن در مرورگر به کمک استاندارد Web Assembly آن را به انتخابی فوق العاده بدل می‌کند. سرعت گسترش محبوبیت و استفاده از NET. در دنیا نیز دلیل دیگری است برای اطمینان خاطر از انتخاب درست.

۳- Xamarin forms
Xamarin forms همه آن چیزهای پایه‌ای است که برای نوشتن یک برنامه لازم داریم. کنترل هایی مانند ListView، Button و ...به همراه Binding - Navigation و ...
در عمل می‌توانید آن را معادل Angular & Angular Material بدانید. وقتی شما فرمی را با Xamarin Forms توسعه می‌دهید و درون آن دکمه‌ای است که از فرم اول، شما را به فرم دوم می‌برد، می‌توانید آن را در هر جایی که Xamarin forms پشتیبانی می‌کند، استفاده کنید. پشتیبانی Xamarin forms برای Android/iOS/Windows خوب و برای Linux/Mac/Tizen و Web در مراحل اولیه است.
در Xamarin forms شما UI کاملا Native خواهید داشت.

۴- Prism Patterns & practices
Prism همه آن چیزی است که برای نوشتن یک برنامه با کیفیت، با قابلیت نگهداری بالا و تست پذیر احتیاج داریم.

با نقش Bit و کمک‌های آن در طول مسیر آموزش بیشتر آشنا خواهیم شد.

در قسمت‌های بعدی به آموزش نصب و نحوه دیباگ کردن کد و ارائه پابلیش در Android-iOS-Windows خواهیم پرداخت و سپس وارد کدنویسی شده و پروژه اولیه را خواهیم ساخت و در قسمت‌های بعد از آن هم کار با دیتابیس کلاینت ساید، ارتباط با سرور و ... را آموزش می‌بینیم.
اگر قبلا Xamarin Forms را تست کرده‌اید و به علت مسائلی مانند حجم بالای خروجی برنامه و یا کندی در توسعه برنامه یا اجرای آن در دستگاه مشتری آن را کنار گذاشته‌اید، توصیه می‌کنم بار دیگر آن را با ما تست کنید و با رعایت چند نکته ساده از نوشتن برنامه Cross Platform به بهترین شکل لذت ببرید و خروجی خوبی را در نهایت به مشتریان سیستم ارائه کنید.
  • #
    ‫۵ سال و ۱۱ ماه قبل، چهارشنبه ۲۵ مهر ۱۳۹۷، ساعت ۱۳:۲۹
    آیا پیشنیازی لازم به یادگیری هست که قبل از آموزش شما باید یاد بگیریم؟ مثلا لازم هست WPF را قبلا یاد گرفته باشیم؟
    • #
      ‫۵ سال و ۱۱ ماه قبل، چهارشنبه ۲۵ مهر ۱۳۹۷، ساعت ۱۵:۳۵
      یه پروژه Xamarin Forms با Xaml و CSharp زده می‌شه. هر میزان با این دو آشنایی داشته باشید بهتره. منتهی مسئله ای که وجود داشت اینه که حتی اگه کسی این دو رو بلد هم می‌بود، باز هم به سختی می‌تونست کار با Xamarin رو شروع کنه و پیش ببره. حالا یا نمی‌دونست چطوری درست نصب کنه، یا نمی‌دونست چجوری Edit & continue راه بندازه که سریع کد بزنه بره جلو یا نمی‌دونست چجوری Performance فرم‌ها رو خوب کنه یا حجم پروژه فایل پابلیش شده اش زیاد نباشه. این‌ها باعث می‌شد افراد نتونن با این ابزار درست کار کنن و فعلا تمرکز این دوره روی حل مشکلات هست، وگرنه تو آموزش Xaml که آموزش‌های خوبی هست. تو CSharp هم همین طور. حالا من اون چه که لازم هست برای شروع رو و نحوه حل مشکلات رو می‌گم، بعد تو قسمت‌های بعدی می‌گم در ادامه چی بخونین بهتره. صد البته که می‌تونید اگه سوالی هم دارید بپرسید و من سعی می‌کنم جواب بدم.
  • #
    ‫۵ سال و ۸ ماه قبل، یکشنبه ۹ دی ۱۳۹۷، ساعت ۱۲:۱۷
    سلام، خسته نباشید
    جناب مرادی اگر مقدور هست در یک مقاله مجزا ، راجع bit-framework ، روش نصبش، ویژگی‌ها ، ... یه توضیحی بدید، به نظر میاد پیشنیاز این دوره باشه.
    • #
      ‫۵ سال و ۸ ماه قبل، یکشنبه ۹ دی ۱۳۹۷، ساعت ۲۱:۴۸
      سلام. ممنون. در کنار این آموزش ها، که این سری سمت Xamarin اش هست، و سری سمت ASP.NET Core و Angular اش هم آموزش هاشون تو راهه. یاد که بگیرید، یه CLI داریم، باهاش می‌شه راحت پروژه‌ها رو ساخت. کلا ما این مدت مشغول ساختن امکانات بودیم و تا آخر امسال هم پرونده Docs رو از هر جهت می‌بندیم. شما فعلا پیش بیایید و از روی همین پروژه XamApp هم با امکانات آشنا بشید (مثلا تو همین قسمت چهاردهم که به تازگی نوشته شده، مدیریت خطا تو برنامه‌های Bit enabled رو می‌تونید ببینید)
  • #
    ‫۵ سال و ۳ ماه قبل، یکشنبه ۵ خرداد ۱۳۹۸، ساعت ۱۵:۳۴
    انتشار  Xamarin.Forms 4.0 Released  
    تبریک به آقای یاسر مرادی که جزئی از لیست Contributors های پروژه می‌باشند.