ویرگول
ورودثبت نام
احسان طوقیان
احسان طوقیانبرنامه نویس تا کمی مهندس نرم افزار، اهل مطالعه، اهل سیاست
احسان طوقیان
احسان طوقیان
خواندن ۲ دقیقه·۴ ماه پیش

توسعه اپ اندروید با Uno Platform

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

چون دستم به سی-شارپ فرز هست یه بررسی رو .NET MAUI کردم و دیدم که جواب میده، پس یه mvp باهاش بالا آوردم. از نوشتن کد تکراری (Boilerplate) در معماری MVVM در MAUI خوشم نیومد، پس دنبال معماری جایگزین گشتم.

آشنایی با Uno Platform

از راه همین گشت و گذار با فریم ورک Uno آشنا شدم. یک پلفرم توسعه Cross Platform که با دات نت می تونی هم برای ویندوز و هم لینوکس و هم مک و هم وب و هم اندروید کد بنویسی. خیلی گرفتم!
پس استارت یه MVP جدید رو باهاش زدم. خییییییییییییییلی عالی بود. من کد سی-شارپ می نوشتم و اجرای اون رو توی اندروید میدیدم. مطمئن شدم که انتخاب درستی بود. کما اینکه بسیاری از کارای بیخود dot NET MAUI رو هم حذف کرده بود و سرعت توسعه رو بیشتر می کرد.

تصمیمم رو نهایی کردم و شروع به کار کردم. از Disorder Evaluator ها که ریسک بیماری ها رو ارزیابی کرد شروع کردم و بعد تست هاش رو نوشتم. حجم خوبی از کار جلو رفت و رسید به قسمتی از اون که کمتر باهاش راحت بودم و اون قسمت ظاهر برنامه بر اساس فایل های xaml بود. کم کم این ها رو هم انجام دادم.

اما یه چیزی که این روزا خیلی داره اذیتم می کنه، اینه که به هیچ عنوان خطاهایی که throw میشن، باعث کرش کردن برنامه نمیشه و این فاجعه س موقع توسعه


نقطه درد یا Pain Point

راه های متعددی که در وب بود رو امتحان کردم، داکیومنت خوندم ولی نتونستم برنامه رو کرش کنم. انگار در یک try/catch سراری هستی که ازش نتونی فرار کنی.
کم کم مسائل دیکه هم پیش اومد. آپدیت نبودن داکیومنت های Uno Platform، کامپتیبل نبودن nugetها با نسخه های پایین تر، بعضی از لایبراری ها اندروید وابسته به پیاده سازی لایبرای ویندوزی بودن و نداشتن کامپوننت های ساده ایی مثل Number Picker

چه کردم؟

با زحمت فراوان! (بدبختی) دارم کار رو تموم می کنم ولی مطمئن هستم دفعه بعدی قطعا از کاتلین و همون Tool Chain های اندروید برای نوشتن یک اپ استفاده خواهم کرد. مثالش اینه که بخوان با چاقوی میوه خوری، طناب ببرم. آخرش میشه ولی به ........ میریم

سی شارپاندرویدفریم ورکغربالگری
۲
۰
احسان طوقیان
احسان طوقیان
برنامه نویس تا کمی مهندس نرم افزار، اهل مطالعه، اهل سیاست
شاید از این پست‌ها خوشتان بیاید