علی فلاح
علی فلاح
خواندن ۶ دقیقه·۴ سال پیش

اندروجت: شیوه جدید برای پیاده سازی UI در اندروید

چرا اکثر اپلیکیشن های ایرانی از UI بد رنج میبرن؟

تا سال گذشته این سوال همیشگی من بود! من خودم یک برنامه نویس اندروید نیستم اما یه داداش دارم که اونم برنامه نویس اندروید نیست (iOS کار میکنه) من توی پیاده سازی UI به کد کاملا بهش ایمان دارم. هر یوآی که تحویل میگیره (معمولا به صورت xd) اپلیکیشن اش رو کاملا شبیه اون طراحی میکنه.

یه بار ازش پرسیدم چرا اکثر اپلیکیشن های اندروید ایرانی از نظر ظاهری ضعیف هستن نظرش این بود که چون کد نویسی UI توی اندروید کار سختری از کد نویسی اون توی iOS با سوئیفت هست و بعد شروع کرد به باز کردن اندروید استادیو و ایکس کد و توضیح دادن اینکه اتفاقات ساده مثل سایه دادن توی iOS چطوریه و همین کار ساده توی اندروید چه دردسری داره و برای چندتا کار ساده باید کلی لایبراری اضافه کرد. اصلا برام قابل باور نبود که اندروید با این همه کاربر و این همه برنامه نویس و شرکت گوگل به این بزرگی چنین ابزاری برای توسعه دست برنامه نویس ها داده باشه...!!

این موضوع همیشه به عنوان یک ایده توی ذهنم بود و هر چند وقت یکبار بهش فکر میکردم شاید که روزی بتونم ابزاری برای برنامه نویسان مظلوم اندروید ایجاد کنم که کد نویسی UI رو در حد نوشتن CSS ساده کنه...! اینطوری برنامه نویس ها میتونستن بیشتر روی کد اصلی برنامه تمرکز کنن....!

سال ها گذشت با زبان های برنامه نویسی مختلفی کار کردم، سورس های مختلفی خوندم و مطالب زیادی درباره معماری کامپیوتر، سیستم عامل و کامپایلر یاد گرفتم.

بعد از اینکه استارتاپ خودمون رو راه اندازی کردیم اولین محصول ما که یک محصول سخت افزاری بود با شکست مواجه شد و با وجود پیشرفت ۹۰ درصدی به تولید نرسید. اما ما ناامید نشدیم و به سراغ محصول جدیدی رفتیم اما اینبار یک محصول نرم افزاری چیزی که در ایران (به دلیل نبود قانون کپی رایت) به ندرت پیدا میشه. خوبی محصول نرم افزاری نداشتن گیر و گور های قانونی و اداری و... است. فروش اش هم راحتتره، خط تولید نمیخواد و واردات هم نداره (تازه به قیمت دلار هم بستگی نداره)

معرفی: AndroJet ابزاری برای توسعه UI در اندروید

بعد از کلی توسعه نرم افزار و تجربه های فراوون به عنوان اولین ایده نرم افزاری با قابلیت تجاری سازی به سراغ طراحی یک ابزاری رفتیم که باهاش کار برنامه نویس های اندروید رو راحتتر کنیم. اینطوری برنامه نویس های اندروید میتونن برنامه های خوشگل تر و بهتری توسعه بدن که هم به نفع اوناست و هم به نفع کاربری که قراره ازش استفاده کنه. و شاید بزرگترین مزیت اش این باشه که میتونن برنامه ها رو سریع تر توسعه بدن و در نتیجه پروژه های بیشتر و به دنبال اون درآمد بیشتری کسب کنن.

الان که دارم این مطلب رو برای شما مینویسم کار توسعه این ابزار تقریبا تموم شده. داکیومنت اش به زبان انگلیسی آماده شده و طی یکی دو هفته آینده تبلیغات اش رو شروع میکنیم و این ابزار رو عرضه میکنیم.

اسمش رو گذاشتیم AndroJet و فعلا به صورت CLI هست یعنی محیط گرافیکی نداره و باید با کامندلاین و ترمینال باهاش کار کرد (مثل AdonisJs).

مفاهیم جدیدی تعریف کردیم و ویژگی هایی بهش اضافه کردیم که خودمون واقعا از کار باهاش لذت میبریم. یک زبان نشانه گذاری جدید به اسم JML تعریف کردیم که بشه باهاش مثل XML ظاهر برنامه رو توصیف کرد.

دیگه سایه دادن به هر کامپوننتی شده آب خوردن.

از الان دیگه میتونید با نوشتن یک خط، ImageView خودتون رو گرد کنید (بهش border-radius بدید)

تازه نکته خوبش اینجاست که این ابزار علاوه بر ساخت فایل های XML فایل های ساده کاتلین هم تولید میکنه که به راحتی بتونید کار برنامه نویسی رو شروع کنید.

همچنین توی لیست ها id کامپوننت ها رو در میاره و توی فایل کاتلین مربوطه به صورت کامنت قرار میده که به راحتی بتونید از آیدی هایی که به کامپوننت ها دادید (و احتمالا در هنگام برنامه نویسی کاتلین یادتون نمیاد چی بودن) استفاده کنید.

همه جوره هواتون رو داشتیم که یه وقتی خدایی نکرده سختی نکشید :)

ویژگی های دیگه ای که داره توی لیست زیر آوردم:

  • میتونید با یک دستور ساده، مشخص کنید کدوم اکتیوی اول باز بشه. (ما اسمش رو گذاشتیم Hot Activity)
  • میتونید بدون اندروید استادیو پروژه رو کاملا بیلد کنید و فایل apk خروجی بگیرید (البته باید SDK رو نصب داشته باشید)
  • همچنین میتونید به راحتی پروژه رو درون اندروید استادیو import کنید. کاملا سازگاره
  • میتونید برای هر کامپوننت یه مقدار پیشفرض قرار بدید. (مثلا برای TextView ها یه فونت پیشفرض بزارید که همه از اون استفاده کنن)
  • میتونید Local Library تعریف کنید. یعنی بخشی از کدتون رو یه جا بزارید و هرجا که خواستید صداش بزنید. تاااااااازه، میتونید مثل تابع براش آرگومان بفرستید تا مقادیر متفاوتی داشته باشن. (مثلا یک دکمه خاص طراحی میکنید و هرکجا خواستید صداش میکنید و متن دکمه رو هم براش میفرستید)
  • این تازه اول کاره و ما با حمایت شما یک عالمه ویژگی بهش اضافه میکنیم که برنامه نویسی رو برای شما ساده تر و لذت بخش تر کنیم.

قبل از آوردن یه مثال این نکته رو ذکر کنم که متاسفانه در حال حاضر شما نمیتونید Preview کدی که نوشتید رو مشاهده کنید و اگه خواستید اینکار رو انجام بدید باید به کمک اندروید استادیو این کار رو انجام بدید. (که ما اینکار رو توصیه میکنیم) ولی نمایش Preview جزو اولیت های ما برای توسعه اندروجت هست.

به عنوان نمونه از داکیومنت اش این بخش رو آوردم که نشون میده با کد زیر میتونید این صفحه رو ایجاد کنید. (نتیجه بیلد کردن این کد ۱. ساخت فایل XML برای این اکتیوی ۲. ساخت فایل XML برای بکگراند ۳. ساخت فایل کاتلین (ساده) و ۴. اضافه کردن اکتیویتی به فایل Manifest هست)

activity { name: &quotNino&quot frame { h: mp; w: mp background: #E1E7F1F6 text { padding: 40dp text: &quotTest Background&quot background: #00dae6 border-radius: 50dp border-color: #7AE9FF border-width: 10dp align: c } } }

کد بالا صفحه زیر رو رسم میکنه:

بکگراند گرد یک تکست به همراه استراک
بکگراند گرد یک تکست به همراه استراک


میتونید داکیومنت اش رو به زبان انگلیسی در صفحه زیر بخونید.

androjet.readthedocs.io

دوستان توسعه دهنده اندروید که مایل هستن این ابزار رو طی یکی دو هفته آینده تست کنن ایمیل خودشون رو کامنت کنن که فایل برنامه رو تا هفته بعد در اختیارشون قرار بدیم. (یا اگه عضو ویرگول نیستید به ایمیل شخصی من پیام بدید ali78fallah@gmail.com)

البته توجه داشته باشید که در هنگام ارایه اولیه احتمالا برنامه قابلیت استفاده ۱۴ روز رایگان رو داشته باشه از اون بابت نگران نباشید.

راستی این برنامه قراره برای شما ساخته بشه پس اگه برای هزینه خریدش نظری دارید یا برای فروشش پیشنهادی دارید خوشحال میشیم بهمون بگید.

بعد از ارئه اولیه برنامه متن کاملتر و جدی تری در این رابطه در ویرگول میفرستم.

ممنون میشیم اگه این صفحه و این موضوع رو به دوستانتون هم اطلاع بدید.

شاد و پیروز باشید.

اندرویدui
توسعه دهنده
شاید از این پست‌ها خوشتان بیاید