نحوهی ساخت برنامه اندروید با جاوا
اگر شما قصد دارید برنامه نویسی اندروید با جاوا را یاد بگیرید و همچنین میخواهید یک برنامه اندروید با جاوا ایجاد کنید، مطمئنا باید برای انجام این کار زیاد فکر کنید چون کار آسانی نیست اما بسیار لذتبخش است و شما زمانی که وارد این کار میشوید برنامهنویسی بهترین شغل دنیا میشود. در ادامه خواهیم فهمید که برنامه نویسی اندروید با جاوا به چه صورت است.
شما میتوانید یاد بگیرید که چگونه با جاوا کدنویسی کنید یا چارچوب جدید و محبوب Flutter را مطالعه کنید و یاد بگیرید که چگونه آن را توسط خودتان طراحی کنید. اگر پیش زمینه کدگذاری از همان ابتدا را داشته باشید پس به یک برنامه اندازهگیری احتیاج دارید، این روش احتمالاً برای شما مناسب نیست. همچنین، حتی اگر بتوانید پروژه خود را به پایان برسانید کارتان به اندازه یک کار حرفهای صورت نخواهد گرفت.
برای ساخت برنامه اندروید با کمک جاوا باید برخی از الگوها و قابلیتهای از پیش تعیین شده را در هر یک از سازندگان محبوب ساخت برنامه جاوا تست کنید، این عمل (ساخت برنامه اندروید با جاوا) یک سرمایه گذاری با ارزش فوق العاده عالی برای پول است که یک آزمایش سریع مانند آزمایش بازار را برای شما انجام میدهد. فقط این مورد را به یاد داشته باشید که سعی نکنید با یک MVP که شبیه به دهها راه حل متوسط در همان سیستم عامل یا مشابه برنامههای اندرویدی بومی است، رقابت کنید.
میتوانید برای ساخت برنامه با جاوا به یک آژانس توسعه نرم افزار اندروید متخصص بروید. آنها طیف کاملی از خدمات را در زمینه توسعه، طراحی و تضمین کیفیت به شما ارائه میدهند. این احتمالاً گرانترین روش برای دریافت یک برنامه با طراحی جاوا است.
یک اپلیکیشن جداگانه اندرویدی با یک رابط کاربری درخشان، قابلیتهای پیشرفته و همچنین داشتن طراحی جذاب از موثرترین روشها برای ایستادگی آن برنامه است.
یک فریلنسر (freelancer) یا تیمی از متخصصان پیدا کنید که تمام کارها را برای شما انجام دهند. این روش سریعتر و ارزانتر است اما این روش خطراتی را نیز به همراه دارد مانند شکست زمان بندی و کیفیت برنامه.
حال که این موضوع را فهمیدیم چگونه میتوانیم یک برنامه با کمک جاوا تولید کنیم؟ برای جواب این پرسش همراه ما باشید.
چگونگی برنامه نویسی اندروید با جاوا
کیت توسعه نرمافزار اندروید (Android) اصلیترین ابزاری است که توسعهدهندگان برای تهیه برنامه نویسی اندروید با جاوا از آن استفاده میکنند.
اول از همه، برنامه اندروید استودیو (Android Studio) را نصب کنید. این محیط رسمی توسعه IDE برای اندروید است و برای سیستم عامل ویندو macOS و لینوکس در دسترس است. با این وجود میتوانید هنگام برنامه نویسی اندروید با جاوا از محیطهای دیگر علاوه Android Studio استفاده کنید.
اگر Android SDK و سایر اجزای آن را روی رایانه خود نصب نکنید، Android Studio آنها را به صورت خودکار بارگیری میکند. از آنجا که Android SDK یک محیط برنامه نویسی مناسب برای ساخت برنامه اندروید با جاوا است باید با IDE نصب شود.
SDK شامل مواردی همچون کتابخانهها، اجراییها، اسکریپتها، اسناد و مدارک و… است.
همچنین ایده خوبی است که یک شبیهساز اندروید (Android) را روی رایانه خود نصب کنید تا بتوانید بعداً برنامههای APK را روی آن اجرا کنید. شبیهساز با برنامه Android Studio همراه است.
حال که تمام ابزارهای مورد نیاز را روی رایانه خود نصب کردهاید، می توانید اولین پروژه خود را ایجاد کنید. برای برنامه نویسی اندروید با جاوا شما باید مفاهیم اساسی آنچه را که یک برنامه تشکیل میدهد را بشناسید و درک کنید.
چگونه یک اپلیکیشن اندروید را با استفاده از جاوا طراحی کنیم
تعدادی از مزیتهای کلیدی در استفاده از پروندههای منابع XML برای طراحی یک رابط کاربری برخلاف نوشتن کد جاوا وجود دارد. در حقیقت، گوگل به مدارک قابل توجهی در اسناد اندرویدی میرود تا فضایل منابع XML را بر روی کد جاوا بگذارد. یکی از مزیتهای مهم رویکرد XML شامل امکان استفاده از ابزار Graphic Layout است که به خودی خود، منابع XML را تولید میکند.
از نظر نقاط قوت طراحی اپلیکیشن با استفاده از برنامه نویسی جاوا برای ایجاد چیدمان، شاید مهمترین مزیتی باشد که جاوا نسبت به پروندههای منابع دارد.
کد جاوا برای ایجاد رابطهای کاربر و همچنین طراحی اپلیکشن به صورت پویا در زمان اجرا ایده آل است. بنابراین، برخی از توسعه دهندگان صرف نظر از مزایای ارائه شده توسط رویکردهای مختلف صرفاً ترجیح میدهند کد جاوا را بنویسند تا از ابزارهای طرح بندی و XML استفاده کنند.
حال که مزیتها و رابطهای کاربری جاوا را فهمیدیم میتوانیم به سراغ طراحی یک اپلیکشن اندروید با استفاده از جاوا برویم به این صورت که:
Eclipse را راه اندازی کنید و یک پروژه برنامه اندرویدی با نام JavaLayout با نام بسته مناسب و انتخاب SDK ایجاد کنید. ایجاد یک فعالیت خالی و استفاده از نمادهای پیش فرض پرتاب (launcher) را درخواست کنید. فعالیت JavaLayoutActivity و طرح مربوط به فعالیت javalayout را با طرح قطعه به نام fragment_java_layout نامگذاری کنید.
پس از ایجاد پروژه، در پنل Package Explorer حرکت کنید تا به <name name> برسید و آن انتخاب کنید و بعد بر روی پرونده JavaLayoutActivity.java کلیک کنید تا در پانل ویرایش بارگیری شود. همانطور که انتظار داشتیم، Eclipse فعالیت الگو را ایجاد کرده و روش onCreate را نادیده گرفته است و مکانی ایده آل برای اضافه کردن کد جاوا برای ایجاد یک رابط کاربری و طراحی اپلیکشن فراهم کرده است.
روش onCreate در حال حاضر برای استفاده از یک فایل طرح منبع (resource layout) و یک قطعه برای رابط کاربری طراحی شده است. بنابراین با حذف این موارد و سطر ها از روش زیر شروع کنید تا به این صورت بخوانید:
<span style="font-size: 16px;">@Override protectedvoidonCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); }</span> |
در قسمت بعدی در روش onCreate برخی از کدهای جاوا برای اضافه کردن یک موضوع RelativeLayout با یک نمایش دکمهای واحد شروع به فعالیت میکند. این عمل باعث ایجاد موارد جدید مانند کلاسهای RelativeLayout میشود.
سپس دکمه نمای (Button view) باید به نمای RelativeLayout اضافه شود که به نوبه خود با تماس با روش setContentView است از نمونههای فعالیت آن نمایش داده میشود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <span style="font-size: 16px;">packagecom.example.javalayout; import android.app.Activity; import android.app.ActionBar; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.os.Build; import android.widget.Button; import android.widget.RelativeLayout; publicclassMainActivityextendsActivity{ @Override protectedvoidonCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); Button myButton=newButton(this); RelativeLayout myLayout=newRelativeLayout(this); myLayout.addView(myButton); setContentView(myLayout); } . . . }</span> |
پس از اتمام موارد فوق، برنامه یا اپلیکشن (بر روی دستگاه فیزیکی یا شبیه ساز) را کامپایل (compile) و اجرا کنید. پس از راهاندازی، نتیجه قابل مشاهده دکمهای خواهد بود که هیچ متنی در گوشه سمت چپ بالای نمای RelativeLayout را ندارد.
حال در این قسمت میخواهیم ویژگیهای نمایش را تنظیم کنیم که برای ما به پیش زمینه نمای RelativeLayout به رنگ آبی و نمای دکمه برای نمایش متنی که میخواند Press me نیاز داریم. هر دو این کارها را میتوان با تنظیم ویژگیها بر روی نماها همانطور که در بخش کد زیر مشخص شده است بدست آورد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <span style="font-size: 16px;">packagecom.example.javalayout; import android.app.Activity; import android.app.ActionBar; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.os.Build; import android.widget.Button; import android.widget.RelativeLayout; import android.graphics.Color; publicclassMainActivityextendsActivity{ @Override protectedvoidonCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); Button myButton=newButton(this); myButton.setText("Press me"); myButton.setBackgroundColor(Color.YELLOW); RelativeLayout myLayout=newRelativeLayout(this); myLayout.setBackgroundColor(Color.BLUE); myLayout.addView(myButton); setContentView(myLayout); } . . . }</span> |
برنامه و اپلیکشن اندروید اکنون کامپایل (compiled) شده و اجرا شده است طرح تنظیمات ویژگی را نشان میدهد به گونهای که طرح با پس زمینه آبی ظاهر میشود و دکمه متن اختصاص داده شده را بر روی یک پس زمینه زرد نشان میدهد.
چگونه با کمک جاوا برنامه برای دسکتاپ بسازیم
ما در این بخش قصد داریم تا یک برنامه دسکتاپ ساده ایجاد کنیم که متن انگلیسی را به مورس کد و بالعکس در مراحل بسیار ساده و همچنین مرور کلی از رابط کاربری گرافیکی جاوا ترجمه کند. این یک آموزش مقدماتی در دنیای Graphics Interface User (GUI) با زبان برنامهنویسی جاوا خواهد بود.
ابتدا قبل از شیرجه رفتن به بخش گرافیکی، اجازه دهید منطق رانندگی (driving logic) را مرور کنیم HashMap زیر (کلاس Map که یک فروشگاه Key-Value است) برای ساخت فرهنگ لغت نامههای انگلیسی و کد مورس مربوطه استفاده میشود. بنابراین ما چیزی شبیه به این مورد داریم:
<span style="font-size: 16px;">privateHashMap<String,String>englishToMorseLib=newHashMap<>(); englishToMorseLib.put("A",".-"); englishToMorseLib.put("B","-..."); englishToMorseLib.put("C","-.-."); . . . . //link to full source code on github is giving at the end of the article</span> |
سپس در این موقعیت دو روش ایجاد شد: یکی ترجمه متن انگلیسی به کد مورس و دیگری برای انجام بالعکس آن. در هر دو حالت، متن با استفاده از Regex که با فضای سفید و کاراکترهای خط جدید مطابقت میکند تقسیم میشود. هر یک از آرایههای حاصل با بهرهگیری از Java Streams برای کارآیی بهتر پردازش میشوند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <span style="font-size: 16px;">//this method will convert English Words to Morse Code publicStringenglishWordToMorseWord(StringenglishWord){ StringBuffer buffer=newStringBuffer(); Stream.of(englishWord.split("[\\s\\n]")) .forEach(s->{ for(charc:s.toCharArray()){ buffer.append(englishToMorseLib.containsKey(String.valueOf(c).toUpperCase())?englishToMorseLib.get(String.valueOf(c).toUpperCase())+" ":"?? "); } buffer.append(" / "); }); returnbuffer.toString(); } //this method will convert Morse code to English Word publicStringmorseWordToEnglishWord(StringmorseWord){ StringBuffer buffer=newStringBuffer(); Stream.of(morseWord.split("[\\s\\n]")) .filter((s)->s!=null&&!s.isEmpty()) .forEach(s->{ if(s.equalsIgnoreCase("/")||s.equalsIgnoreCase("|")){ buffer.append(" "); }else{ buffer.append((morseToEnglishLib.containsKey(s)?morseToEnglishLib.get(s):"?? ").toLowerCase()); } }); returnbuffer.toString(); }</span> |
حال میخواهیم به سراغ عناصر جاوا برای طراحی برنامه برای دسکتاپ برویم.
عناصر GUI در جاوا
جاوا مجموعهای غنی از عناصر رابط کاربری گرافیکی دارد که به عنوان بلوکهای ساختمانی برای یک برنامه کامل دسکتاپ از GUI استفاده می کند.
عنصر JFrame
بالاترین لایه Java GUI JFrame است. این خارجیترین کانتینر (container) است که عناصر یا موارد دیگر را در خود جای داده است. خطوط کدنویسی زیر یک شی JFrame ایجاد میکنند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <span style="font-size: 16px;">//create JFrame Instance JFrame frame=newJFrame(); frame.setTitle("Morse Code Translator by Seun Matt (@SeunMatt2)"); frame.setLayout(newBorderLayout()); //add other containers and elements to the JFrame frame.add(mainPanel,BorderLayout.CENTER); frame.setSize(newDimension(800,650)); //this terminate the app when the close button is clicked frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //this will make the app to always display at the center frame.setLocationRelativeTo(null); //well, I don't want you to resize the window frame.setResizable(false); //and yes this will show the visible frame/app frame.setVisible(true);</span> |
آنچه کد فوق انجام میدهد ایجاد اساس و نمونهای از شی JFrame است که تنظیم پارامترهایی از قبیل عنوان چیدمان، اندازه، مکان و همچنین تنظیم رفتار JFrame مانند توانایی تغییر اندازه قاب و قابلیت مشاهده است.
عنصر JPanel
این ظرف (container) است به این معنی که عناصر دیگر را در کنار هم نگه میدارد. خطوط کدنویسی زیر مسئول ایجاد سطر دکمه در پایین قسمت Morse Text در سمت راست برنامه هستند.
<span style="font-size: 16px;">JPanel morseControlPanel=newJPanel(); //set the layout style morseControlPanel.setLayout(newFlowLayout(FlowLayout.RIGHT)); //add the Morse >> English button morseControlPanel.add(morseToEnglishBt); //add the Clear Text >> button morseControlPanel.add(clearMorseText);</span> |