مهارت هایی که هر توسعه دهنده اندروید مبتدی باید بداند

مرداد 20, 1398     زهرا حسینی    

مهارت هایی که هر توسعه دهنده اندروید مبتدی باید بداند

مهارت هایی که هر توسعه دهنده اندروید مبتدی باید بداند

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

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

به هر حال قدرت، مسئولیت می آورد پس ما باید مراقب رویکرد طراحی برنامه اندرویدی خود باشیم. بسیار اتفاق می افتد که در آموزش به مبتدیان در این زمینه ، به عنوان مثال در درک معماری های اندروید قبل از شروع  کد نویسی ، سهل انگاری می شود . لذا این گونه سهل انگاری ها روی طراحی برنامه های اندرویدی تأثیر بدی می گذارد.
در این پست ، برخی از شیوه هایی را مشاهده خواهیم کرد که یک توسعه دهنده سطح مبتدی یا بالاتر باید بداند تا بتواند از فریم ورک اندروید بهتر استفاده کند.
  • تفاوت بین @+id و @id

در کد نویسی اندروید، برای دسترسی به یک ویجت یا کامپوننت در جاوا باید یک مقدار منحصر به فرد برای آن تعریف کنیم. این مقدار توسط android:id در فایل xml به وسیله @+id/ ایجاد می شود. به عنوان مثال یک id برای toolbar به صورت زیر تعریف می شود:

android:id=”@+id/toolbar

اکنون این id در فایل جاوا توسط findViewById(…) تعریف می شود و به راحتی می توان از کامپوننت مورد نظر استفاده کرد.

اما @id درست مانند findViewById(…) رفتار می کند یعنی کامپوننت با id  مشخص را دنبال می کند اما با این تفاوت که فقط در لایه های xml استفاده می شود . به مثال زیر توجه کنید :
android:layout_below=”@id/toolbar”

 

  • استفاده از @string برای تعریف رشته ها در xml

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

android:text=”My Awesome Application”

شما می توانید متن دلخواه خود را در فایل strings تعریف کرده و به صورت زیر از آن استفاده کنید :

<string name=”app_name”>My Awesome Application</string>

و بعد از آن در جاهای مختلف برنامه استفاده نمایید :

android:text=”@string/app_name”

 

  • تفاوت بین SP و DP

قبل از اینکه راجع به تفاوت این دو صحبت کنیم باید بدانیم این دو مؤلفه چه چیزی هستند و برای گرفتن بهترین نتیجه کجا از آنها استفاده کنیم .

SP یا  Scale-independent pixels معمولاً برای تنظیم سایز  TextView ها استفاده می شود تا با تغییر صفحه نمایش تغییری نکند. در عوض ، محتوای TextView باید براساس نیازهای کاربر یا به طور ساده اندازه فونتی که کاربر ترجیح داده می دهد، تنظیم شود.

برای هز چیز دیگری که نیاز به دامنه و یا موقعیت دارد ، DP or Densityindependent pixels استفاده می شود. همانطور که در بالا گفته شد  SP و DP مشابه هم هستند ، فقط DP  با تغییر تراکم به راحتی تغییر می کند زیرا سیستم اندروید پیکسل های تراکم صفحه نمایش را به صورت دینامیکی محاسبه کرده و آن را برای دستگاه های مختلف تنظیم می کند.

 

  • استفاده از Vector Drawables

به منظور پشتیبانی از تراکم صفحه های نمایش مختلف ، اضافه کردن چندین نسخه (اندازه) از یک asset مشابه بسیار رایج است . در حالی که این رویکرد به درستی کار می کند اما این باعث افزایش سایز apk و یا توسعه اضافی شود . برای از بین بردن این سربارها ، تیم اندرویدی در گوگل از اضافه شدن Vector Drawables خبر داد.

Vector Drawables در واقع svg ها هستند که در فایل xml یک عکس را با استفاده از ترسیم مجموعه ای از نقاط ، خطوط و منحنی ها با رنگ های پر شده ارائه می کنند. این واقعیت که Vector Drawables از خطوط و نقاط ساخته شده اند، به آنها امکان مقیاس در تراکم های مختلف و بدون از دست دادن وضوح را می دهد.

<vector xmlns:android=”http://schemas.android.com/apk/res/android” android:width=”24dp” android:height=”24dp” android:viewportWidth=”24.0″ android:viewportHeight=”24.0″> <path android:fillColor=”#69cdff” android:pathData=”M3,18h18v-2L3,16v2zM3,13h18v-2L3,11v2zM3,6v2h18L21,6L3,6z”/></vector>

این چند خط کد ، نتیجه زیر را نمایش می دهد :

 

vector drawable

vector drawable

 

برای اضافه کردن یک vector drawable به پروژه اندرویدی خود کافیست روی ماژول app کلیک راست کرده سپس New >> Vector Assets را انتخاب کنید. سپس از این قسمت می توانید یا از طریق material icon فایل مورد نظر خود را انتخاب کنید و یا از طریق local SVG or PSD file از فایل های روی سیستم کامپیوتر خود استفاده نمایید.

 

  • ایجاد margin برای ابتدا و انتها

این یکی از ساده ترین کارهایی است که مردم از دست می دهند. حاشیه ! مطمئناً اضافه کردن حاشیه آسان است اما پشتیبانی از سیستم عامل های قدیمی تر چه می شود؟

start و end  به ترتیب به معنی چپ و راست هستند . بنابرایناگر برنامه minSdkVersion 17 یا کمتر داشته باشد ، حاشیه start و end  با عنوان چپ و راست استفاده می شود.

android:layout_marginEnd=”20dp” android:paddingStart=”20dp”

 

  • استفاده از ایجاد کننده Getter / Setter

یکی از ناامیدکننده ترین کارهایی که باید هنگام ایجاد کلاس نگهدارنده انجام دهید (که داده های متغیری را در خود نگه می دارد) ایجاد چندین

Getter / Setter است. خوشبختانه ، اندروید استودیو راه حلی برای آن دارد . به این صورت :

تمام متغیرهای موردنیاز خود را در داخل کلاس اعلام کنید و به Toolbar >> Code بروید. میانبر این کار ALT + Insert می باشد. با کلیک بر روی Code شما را تولید می کند ، روی آن ضربه بزنید و در بین بسیاری از گزینه های دیگر گزینه Getter و Setter وجود دارد. و به این ترتیب به ازای متغیر های کلاس Getter / Setter ایجاد می شوند.

منبع :Medium

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

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Rating*