نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • جالب هست
  • ما در حال نوشتن اولین برنامه خود برای اندروید هستیم. برنامه نویسی برای اندروید: چگونه شروع به ایجاد برنامه ها و بازی های خود کنیم

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

عالی. اما از کجا شروع کنیم؟ چه زبانی را یاد بگیرم؟ از چه منابعی؟ و مهارت های اولیه کسب شده را در کجا به کار ببریم؟ مقاله ما به شما کمک می کند تا به این سوالات پاسخ دهید.

هر زبان و چارچوبی پیچیدگی ها و تفاوت های ظریف، مزایا و معایب خاص خود را دارد. بیایید به زبان های اصلی برای نوشتن برنامه های اندروید نگاه کنیم.

جاوا

زبان برنامه نویسی رسمی که توسط محیط توسعه اندروید استودیو پشتیبانی می شود. طبق نظرسنجی سالانه Stackoverflow، در سال 2018 جاوا در بین پنج زبان برنامه نویسی محبوب قرار گرفت.

اولین قدم برای تسلط بر جاوا، نصب اندروید استودیو است. این یک نوع نرم افزار به نام IDE - Integrated Development Environment یا محیط توسعه داخلی است. Android Studio با Android SDK ارائه می شود - مجموعه ای از ابزارها برای توسعه Android و همه چیزهایی که برای شروع مطمئن نیاز دارید.

بیشتر اسناد رسمی گوگل به جاوا اشاره دارد و یافتن کتابخانه ها و آموزش های پولی و رایگان کار دشواری نیست - تعداد زیادی از آنها وجود دارد.

دلایل اصلی استفاده از PhoneGap برای توسعه برنامه در Live Typing عبارتند از:

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

نتیجه

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

و باید از مقاله ما که در آن جمع آوری کرده ایم با جنبه نظری توسعه اندروید آشنا شوید.

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

این مقاله کل چرخه توسعه برنامه را پوشش می دهد. با هم یک بازی Tic-Tac-Toe ساده با یک صفحه می نویسیم (در سیستم عامل اندروید به آن Activity می گویند).

عدم تجربه توسعه جاوا نباید مانعی برای تسلط بر اندروید باشد. بنابراین، نمونه‌ها از ساختارهای خاص جاوا استفاده نخواهند کرد (یا تا حد امکان به حداقل می‌رسند). اگر به عنوان مثال PHP می نویسید و با اصول اساسی توسعه نرم افزار آشنا هستید، این مقاله برای شما بسیار مفید خواهد بود. به نوبه خود، از آنجایی که من در توسعه جاوا متخصص نیستم، می توان فرض کرد که کد منبع برای برچسب "بهترین شیوه ها برای توسعه جاوا" واجد شرایط نیست.

نصب برنامه ها و ابزارهای مورد نیاز

من ابزارهای لازم را لیست می کنم. 3 مورد از آنها وجود دارد:

  1. IDE با پشتیبانی از توسعه اندروید:
    • پلاگین Eclipse + ADT;
    • IntelliJ IDEA Community Edition.
    • پلاگین Netbeans + nbandroid;

برنامه های کاربردی به ترتیب مشخص شده در بالا نصب می شوند. نصب تمام IDE های لیست شده فایده ای ندارد (مگر اینکه در انتخاب مناسب مشکل داشته باشید). من از IntelliJ IDEA Community Edition استفاده می کنم، یکی از پیشرفته ترین IDE های جاوا که امروزه در دسترس است.

راه اندازی یک دستگاه مجازی

با راه اندازی AVD Manager و نصب بسته های اضافی (SDK نسخه های مختلف)، می توانید شروع به ایجاد یک دستگاه مجازی با پارامترهای لازم کنید. درک رابط نباید دشوار باشد.

لیست دستگاه

ایجاد یک پروژه

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

بنابراین، File->New Project:

با فشردن دکمه F6 پروژه مونتاژ، کامپایل و روی دستگاه مجازی راه اندازی می شود.

ساختار پروژه

اسکرین شات قبلی ساختار پروژه را نشان می دهد. از آنجایی که در این مقاله اهداف کاملاً عملی را دنبال می کنیم، فقط بر روی پوشه هایی تمرکز خواهیم کرد که در روند کار از آنها استفاده خواهیم کرد. این ها دایرکتوری های زیر هستند: ژنرال, پاسخو src.

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

پوشه res برای ذخیره منابعی مانند تصاویر، متون (از جمله ترجمه ها)، مقادیر پیش فرض، طرح بندی ها در نظر گرفته شده است.

src- این پوشه ای است که قسمت اصلی کار در آن انجام می شود، زیرا فایل هایی با کد منبع برنامه ما در اینجا ذخیره می شوند.

خطوط اول

به محض ایجاد Activity (صفحه برنامه)، متد onCreate() فراخوانی می شود. IDE آن را با 2 خط پر کرد:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
متد setContentView (معادل this.setContentView) طرح بندی xml را برای صفحه فعلی تنظیم می کند. در ادامه، طرح‌بندی xml را «طرح‌بندی» و صفحه‌نمایش‌ها را «فعالیت» می‌نامیم. طرح بندی در برنامه به صورت زیر خواهد بود:

TableLayout برای این برنامه ایده آل است. شناسه را می توان به هر منبعی اختصاص داد. در این حالت به TableLayout id = main_l اختصاص داده می شود. با استفاده از متد findViewById() می توانید به view دسترسی داشته باشید:
طرح بندی TableLayout خصوصی. // این یک ویژگی از کلاس KrestikinolikiActivity است void public onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.mainame)؛ ))

حال باید متد buildGameField() را پیاده سازی کنیم. برای این کار باید یک فیلد به شکل ماتریس ایجاد کنید. این کار توسط کلاس Game انجام خواهد شد. ابتدا باید یک کلاس Square برای سلول ها و یک کلاس Player ایجاد کنید که اشیاء آن این سلول ها را پر کنند.

Square.java

بسته com.example; کلاس عمومی مربع ( پخش کننده خصوصی = تهی؛ پر کردن فضای خالی عمومی (بازیکن پخش کننده) (این. بازیکن = پخش کننده؛ ) بولین عمومی isFilled() (اگر (بازیکن != پوچ) (بازگشت درست؛) برگشت نادرست؛ ) عمومی پلیر getPlayer () (بازیکن برگشتی؛ ) )

Player.java

بسته com.example; کلاس عمومی Player ( نام رشته خصوصی؛ پخش کننده عمومی (نام رشته) ( this.name = نام؛ ) عمومی CharSequence getName() (بازگرداندن (CharSequence) نام؛ ))

تمام کلاس های برنامه ما در پوشه src قرار دارند.

Game.java

بسته com.example; کلاس عمومی بازی ( /** * فیلد */ فیلد مربع خصوصی؛ /** * سازنده * */ بازی عمومی() ( فیلد = مربع جدید؛ مربع تعداد = 0؛ // پر کردن فیلد برای (int i = 0، l = میدان.طول؛ من

راه اندازی بازی در سازنده KrestikinolikiActivity.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // بعدا پیاده سازی خواهد شد)

متد buildGameField() از کلاس KrestikinolikiActivity. به صورت پویا سطرها و ستون ها را به جدول (فیلد بازی) اضافه می کند:
دکمه های خصوصی = دکمه جدید. //(...) خلا خصوصی buildGameField() ( فیلد مربع = game.getField()؛ برای (int i = 0, lenI = field.length; i
خط 8 یک شی ایجاد می کند که رابط View.OnClickListener را پیاده سازی می کند. بیایید یک کلاس Listener تودرتو ایجاد کنیم. فقط از KrestikinolikiActivity قابل مشاهده خواهد بود.
Public class Listener View.OnClickListener را پیاده سازی می کند (int خصوصی x = 0؛ خصوصی int y = 0؛ public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick (نمایش مشاهده) ( دکمه دکمه = (دکمه) نمایش؛ ) )
باقی مانده است که منطق بازی را پیاده سازی کنیم.
بازی کلاس عمومی ( /** * بازیکنان */ بازیکنان خصوصی؛ /** * فیلد */ فیلد مربع خصوصی؛ /** * بازی شروع شده است؟ */ بولین خصوصی شروع شده است؛ /** * بازیکن فعلی */ خصوصی Player activePlayer؛ /** * تعداد سلول های پر شده را می شمارد */ int خصوصی پر شده؛ /** * کل سلول ها */ private int squareCount؛ /** * Constructor * */ public Game() ( فیلد = مربع جدید؛ مربع تعداد = 0؛ // پر کردن فیلد برای (int i = 0، l = field.length; i

تعیین برنده

K.O پیشنهاد می کند که برنده در تیک تاک کسی است که X یا O را در خطی برابر با طول میدان به صورت عمودی یا افقی یا مورب ردیف کند. اولین فکری که به ذهن خطور می کند نوشتن روش هایی برای هر مورد است. من فکر می کنم الگوی زنجیره مسئولیت در این مورد به خوبی کار خواهد کرد. بیایید رابط را تعریف کنیم
بسته com.example; رابط عمومی WinnerCheckerInterface (بازکن عمومی checkWinner();)
از آنجایی که Game مسئولیت تعیین برنده را دارد، این رابط را پیاده سازی می کند. زمان ایجاد "خطوط" مجازی است، که هر کدام سمت خود را بررسی می کنند. همه آنها رابط WinnerCheckerInterface را پیاده سازی می کنند.

WinnerCheckerHorizontal.java

بسته com.example; کلاس عمومی WinnerCheckerHorizontal WinnerCheckerInterface (بازی خصوصی بازی؛ عمومی WinnerCheckerHorizontal(بازی) (این. بازی = بازی؛ ) عمومی چکWinner() (فیلد مربع = game.getField()؛ بازیکن currPlayer؛ بازیکن lastPlayer = تهی؛ برای (int) i = 0، len = میدان.طول؛ i

WinnerCheckerVertical.java

بسته com.example; کلاس عمومی WinnerCheckerVertical WinnerCheckerInterface را پیاده سازی می کند (بازی خصوصی بازی؛ عمومی WinnerCheckerVertical (بازی) (این. بازی = بازی؛ ) عمومی چکWinner() ( فیلد مربع = game.getField()؛ بازیکن currPlayer؛ بازیکن lastPlayer = null؛ برای (int i = 0، len = میدان.طول؛ i

WinnerCheckerDiagonalLeft.java

بسته com.example; کلاس عمومی WinnerCheckerDiagonalLeft WinnerCheckerInterface را پیاده سازی می کند (بازی خصوصی بازی؛ عمومی WinnerCheckerDiagonalLeft(بازی) (این. بازی = بازی؛ ) چک بازیکن عمومیWinner() ( فیلد مربع = game.getField()؛ بازیکن currPlayer؛ بازیکن lastPlayer = تهی؛ int successCo 1؛ برای (int i = 0، len = field.length؛ i

WinnerCheckerDiagonalRight.java

بسته com.example; کلاس عمومی WinnerCheckerDiagonalRight WinnerCheckerInterface را پیاده سازی می کند (بازی خصوصی بازی؛ عمومی WinnerCheckerDiagonalRight(بازی) (این. بازی = بازی؛ ) عمومی چکWinner() (فیلد مربع = game.getField(); CurrPlayer بازیکن؛ بازیکن lastPlayer = تهی؛ int موفقیتCo 1؛ برای (int i = 0، len = field.length؛ i
بیایید آنها را در سازنده Game مقداردهی کنیم:
//(....) /** * «قضات» =). بعد از هر حرکت آنها * را بررسی می کنند تا ببینند آیا برنده ای وجود دارد */ WinnerCheckerInterface winnerCheckers خصوصی. //(....) عمومی بازی() ( //(....) winnerCheckers = WinnerCheckerInterface جدید؛ winnerCheckers = new WinnerCheckerHorizontal(this)؛ winnerCheckers = new WinnerCheckerVertical(this); winnerCheckers = new WinnerCheckerDiagonalLeft(this); winnerCheckers = جدید WinnerCheckerDiagonalRight(this); //(...))
پیاده سازی checkWinner():
عمومی پخش کننده checkWinner() (برای (WinnerCheckerInterface winChecker: winnerCheckers) (بازیکن برنده = winChecker.checkWinner(؛ if (برنده != تهی) (برنده برگشت؛) ) برنده صفر؛ )
ما بعد از هر حرکت برنده را بررسی می کنیم. بیایید کدی را به متد onClick() کلاس Listener اضافه کنیم
public void onClick(نمایش) (دکمه دکمه = (دکمه) نمایش؛ بازی g = بازی؛ بازیکن بازیکن = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName()) ; ) برنده بازیکن = g.checkWinner(); if (برنده != null) ( gameOver(برنده)؛ ) if (g.isFieldFilled()) ( // اگر فیلد پر شده باشد gameOver(); ) )
متد gameOver() در 2 نوع پیاده سازی شده است:
خصوصی void gameOver(بازیکن) ( متن CharSequence = "بازیکن \"" + player.getName() + "\" برد!"؛ Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset ()؛ refresh(); ) خصوصی void gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); )
برای جاوا، gameOver (پخش کننده) و gameOver() روش های متفاوتی هستند. با استفاده از Builder Toast.makeText، می توانید به سرعت یک اعلان ایجاد و نمایش دهید. refresh () وضعیت فیلد را به روز می کند:
Private void refresh() (فیلد مربع = game.getField(); برای (int i = 0، len = field.length; i

آماده! امیدوارم این مقاله به شما کمک کرده باشد تا در دنیای توسعه اندروید راحت باشید. از توجه شما متشکرم

ویدیوی برنامه تمام شده

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

شروع کار

برای کسانی که تازه برنامه نویسی می کنندمال ما کمک خواهد کرد

برای مبتدیان اندرویدگوگل در وب سایت خود معرفی خوبی برای اندروید انجام داده است. همچنین یک راهنمای اندروید جمع‌سپاری عالی وجود دارد. همچنین یک دوره از گوگل در مورد Udacity وجود دارد.

اگر تجربه می کنید مشکلات اندروید، توصیه می شود ابتدا StackOverflow را بررسی کنید. برای پاسخ به سوالات فنی طراحی شده است و حتی یک .

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

سوالات متداول

من می خواهم شروع به توسعه برای اندروید کنم. از کجا شروع کنم؟

اولین و مهمترین قدم در توسعه اندروید یادگیری جاوا و XML است. هنگامی که کم و بیش با هر دو آشنا شدید، مستندات رسمی اندروید را بررسی کنید و چند آموزش ببینید تا زمانی که برای ایجاد پروژه های خود به اندازه کافی اعتماد به نفس داشته باشید. موفق باشید!

آیا برای توسعه به دستگاه اندرویدی نیاز دارم؟

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

از کدام IDE استفاده کنم؟

  • اندروید استودیو- یک IDE با پشتیبانی رسمی برای توسعه اندروید. این همان چیزی است که در راهنماها و ویدیوهای مدرن، از جمله آنهایی که از Google استفاده می شود، استفاده می شود.
  • کسوفبرای سال‌ها IDE اولیه برای توسعه اندروید بوده است، به همین دلیل است که بیشتر آموزش‌ها، منابع، ویدیوها و اسکرین شات‌های قدیمی با آن ساخته می‌شوند.
  • ایده IntelliJجایگزینی برای Eclipse بود، اما امروزه منطقی‌تر است که با Android Studio شروع کنیم. Android Studio یک انشعاب IntelliJ IDEA است، بنابراین شما از تمام مزایای آن به همراه پاداش های اندروید بهره مند می شوید.

شاید باید جاوا را فراموش کنم و شروع به یادگیری کاتلین کنم؟

گوگل اکنون به طور رسمی از Kotlin به عنوان یک زبان توسعه اندروید پشتیبانی می کند، اما این بدان معنا نیست که می توانید پشتیبانی جاوا را فراموش کنید. در آینده قابل پیش‌بینی نزدیک، اسناد، ابزارها و ویژگی‌های پلتفرم جدید از Kotlin و Java پشتیبانی خواهند کرد. اگرچه Kotlin یک زبان جدیدتر با برخی ویژگی های خوب است، اما هنوز هم می توانید برنامه های کاربردی عالی در جاوا ایجاد کنید. انتخاب با شماست، اما اگر اهمیتی نمی دهید یا مبتدی هستید، شاید بهتر باشد کاتلین را انتخاب کنید.

منابع

در اینجا منابع اصلی برای یادگیری توسعه اندروید به زبان انگلیسی آورده شده است. این یک لیست کامل نیست، اما برای شروع کافی است.

منابع رسمی اندروید

طرح

  • Beauties for Android - الهام بخش ایجاد رابط های گرافیکی برای اندروید.

خبرنامه ها

  • Android Weekly یک خبرنامه عالی است که به شما کمک می کند تا از آخرین پیشرفت های اندروید به روز بمانید.

مجموعه های کتابخانه

ابزار

  • Genymotion یک شبیه ساز بسیار مفید و کاربردی است.
  • Android Asset Studio مجموعه ای عالی از ابزارها برای ایجاد/ویرایش آیکون ها، تصاویر و غیره است.
  • افزونه Codota برای Android Studio - نمونه کدهای عالی درست در Android Studio.

نمونه هایی از برنامه های متن باز

ایده های کاربردی

بنابراین شما یک ایده برای یک برنامه دارید... مردم هر روز در مورد آن می نویسند. اما قبل از درخواست کمک برای اجرای یک پروژه، باید به سوالات کلیدی زیر پاسخ دهید:

بودجه من چقدر است؟

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

استراتژی بازاریابی من چیست؟

آیا قصد دارید از تبلیغات شفاهی منظم استفاده کنید یا حاضرید برای شهرت هزینه کنید؟

لیست وظایف این پروژه چیست؟

همچنین محدودیت ها چیست؟ به چند توسعه دهنده نیاز دارم؟

داده ها از کجا می آیند / کجا ذخیره می شوند؟

و همچنین نحوه استفاده از آنها چگونه خواهد بود؟ آیا من سیاست حفظ حریم خصوصی مناسبی دارم؟

آیا هدفی برای کسب درآمد وجود دارد؟

اگر بله، چگونه می خواهید به آن دست یابید؟ از طریق تبلیغات، IAP، اشتراک، برنامه های کاربردی پولی؟ همه موارد بالا؟

چگونه به توسعه دهندگان خود پرداخت خواهید کرد؟

آیا سرمایه دارید یا قرار است پس از شروع درآمدزایی اپلیکیشن به آنها پرداخت کنید؟ اغلب پیمانکاران مستقل بخشی از هزینه کل را از قبل نیاز دارند. بیشتر توسعه دهندگان علاقه ای به اشتراک درآمد ندارند مگر اینکه خودشان روی برنامه سرمایه گذاری کنند.

روش آزمایش چگونه خواهد بود؟

روی چه نوع دستگاهی قرار است آن را نصب کنید؟ به چند تکرار نیاز دارید؟ چه نوع افرادی را می خواهید درگیر کنید؟

چقدر زود می خواهید برنامه خود را در فروشگاه منتشر کنید؟

این قطعا بر درآمد نهایی تاثیر خواهد گذاشت.

آیا به ثبت/ادغام رسانه های اجتماعی نیاز دارید یا پیشنهاد می دهید؟

اجرای این قابلیت را در نظر بگیرید.

مخاطب هدف شما چیست؟

آیا این یک برنامه طاقچه است یا می توان آن را در همه جا توزیع کرد؟

آیا ایده من قبلاً اجرا شده است؟

اگر چنین است، چگونه می توانم آن را بهبود بخشم یا چه چیزی از آن کم است؟

اگر توسعه‌دهنده نیستید، با ایده‌های اپلیکیشن چه باید کرد؟

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

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

  • طرح را بکشیدبرنامه شما (ظاهر و عملکرد). می تواند خشن باشد و روی کاغذ کشیده شود. اما باید کاملا مشخص باشد و مبهم نباشد.
  • فهرستی از مهارت های خود تهیه کنیدمربوط به ایده
  • فهرستی از آنچه سرمایه گذاری خواهید کرد تهیه کنیدبه ایده شما

درک کنید که توسعه به تلاش قابل توجهی نیاز دارد. تصور کنید یک توسعه دهنده به مدت 2 ماه تمام وقت (8 ساعت) برای ایجاد برنامه شما کار می کند. و همچنین تمام وقت کار می کنید. در این زمان چه کار می کنید؟اگر کار شما، به نظر شما، زودتر به پایان می رسد، پس باید در این ایده تجدید نظر کنید. در این سناریو، توسعه دهنده بیشتر کارها را انجام می دهد و رک و پوست کنده، شما بی فایده هستید. آنچه که می توانید پس از اتمام برنامه ارائه دهید واقعاً مهم نیست و توسعه دهنده را برای تکمیل محصول ترغیب نمی کند.

بازبینی ایده شما

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

  • کار را تا حد امکان منصفانه توزیع کنید.
  • ابتدا روی مهارت های خود تمرکز کنید.
  • حجم کاری شما باید تقریباً معادل 2 ماه کار تمام وقت باشد. البته ممکن است برای برنامه های ساده دانلود کمتر باشد. می توانید از جامعه بپرسید (مثلا

این مقاله مشکلات اصلی ایجاد برنامه های کاربردی برای اندروید را شرح می دهد.
مفاهیم اولیه برنامه نویسی اندروید پوشش داده شده است.
به عنوان نمونه ساخت بازی سودوکو از کتاب Hello, Android - Ed Burnette شرح داده شده است.
مراقب باشید اسکرین شات های زیادی وجود دارد.

1. مشکلات توسعه

اندروید یک سیستم عامل منحصر به فرد است. توسعه‌دهنده برنامه باید ویژگی‌ها و تفاوت‌های ظریف آن را بداند تا به نتیجه خوبی برسد. چالش هایی وجود دارد که باید در هنگام طراحی () در نظر گرفته شوند. بیایید آنها را به اختصار فهرست کنیم:
1) برنامه به دو (یا حتی چهار) فضای بیشتر برای نصب نسبت به اندازه اصلی برنامه نیاز دارد.
2) با کاهش فضای خالی سرعت کار با فایل ها در درایو فلش داخلی ده ها برابر کاهش می یابد.
3) هر فرآیند می تواند تا 16 مگابایت (گاهی اوقات 24 مگابایت) رم استفاده کند.

2. اصول توسعه برنامه های کاربردی برای اندروید

برای کار به Android SDK و Eclipse نیاز دارید. در مورد نحوه نصب همه چیز و شروع کار نوشته شده است.

برای بارگذاری یک پروژه در Eclipse، مراحل زیر را دنبال کنید:
1) پروژه را در یک پوشه جداگانه در فضای کاری Eclipse از حالت فشرده خارج کنید.
2) آیتم منو File->New->Android Project را انتخاب کنید.
3) در گفتگوی New Android Project، گزینه Create project from exist source را انتخاب کنید.
4) در قسمت Location مسیر پوشه دارای پروژه را مشخص کنید. روی Next کلیک کنید.

منوی برنامه

منوی بازی در فایل res/layout/main.xml توضیح داده شده است. توضیحات رابط را می توان به صورت XML یا به عنوان یک رابط رندر شده ویرایش کرد. برای جابه‌جایی، از برگه‌های پایین ناحیه نمایش محتوا استفاده کنید.

معمولاً کنترل‌ها در یک ظرف، در مورد ما LinearLayout قرار می‌گیرند. تمام عناصر را در یک ستون مرتب می کند.

منابع

لطفاً توجه داشته باشید که همه برچسب‌های متنی (android:text) داده‌ها را از منابع دریافت می‌کنند. به عنوان مثال، ورودی android:text="@string/main_title" مشخص می کند که متن باید در فایل res/values/string.xml در گره ای به نام main_title (اندروید سودوکو) جستجو شود. رنگ پس زمینه نیز در منابع (android:background="@color/background") اما در فایل color.xml (#3500ffff) موجود است. هنگام باز کردن فایل های منبع در ویرایشگر ممکن است خطایی رخ دهد. اما همیشه می توانید به صفحه نمایش XML بروید.

کنترل هایی که باید از طریق کد به آنها دسترسی داشت باید دارای شناسه باشند. دکمه ها دارای شناسه (android:id="@+id/continue_button") هستند تا بتوان یک کنترل کننده کلیک را به دکمه متصل کرد. علامت مثبت نشان می دهد که باید یک شناسه برای دکمه در فایل /gen/org.example.sudoku/R.java ایجاد کنید (public static final int continue_button=0x7f0b000b;). این فایل به صورت خودکار تولید می شود و تغییر آن توصیه نمی شود. فایل حاوی کلاس R است که از طریق آن می توانید به هر عنصر رابط و سایر منابع دسترسی داشته باشید.

ایجاد ویندوز

بیایید ایجاد یک پنجره با اطلاعات مربوط به برنامه را در نظر بگیریم. طرح این پنجره در فایل /res/layout/about.xml است. کلاس Activity در فایل /src/org.example.sudoku/About.java توضیح داده شده است. فعالیت با نشانه گذاری در فایل AndroidManifest.xml مرتبط است. این فایل را می توان از طریق ویرایشگر یا به صورت XML مشاهده کرد. می توانید بخش های مختلف فایل را در تب های ویرایشگر مختلف انتخاب کنید. بخش Application شامل پارامترهای Activity است. توجه داشته باشید که پارامتر Theme :style/Theme.Dialog است. این باعث می شود سبک پنجره بیشتر شبیه یک گفتگوی مدال باشد.

پنجره حاوی اطلاعات برنامه از کلاس سودوکو با کلیک بر روی دکمه About فراخوانی می شود. کلاس سودوکو به گونه‌ای نوشته شده است که خود رویداد Click را مدیریت می‌کند (کلاس عمومی سودوکو اجراهای Activity OnClickListener را گسترش می‌دهد). متد public void onClick(View v) تعیین می کند که کدام دکمه رویداد را راه اندازی کرده و کد مربوطه را اجرا می کند. برای نمایش پنجره About، Intent مربوطه فراخوانی می شود.
مورد R.id.about_button:
Intent i = New Intent(this, About.class);
startActivity(i)؛
زنگ تفريح؛

کنترل کننده های رویداد را می توان بر روی کنترل های خاص نیز نصب کرد. به عنوان مثال، در کلاس Keypad، زمانی که کلاس ایجاد می شود، کنترل کننده های دکمه های جداگانه در متد setListeners () نصب می شوند.

دیالوگ ساده

باید به کاربر فرصت داده شود تا سطح دشواری را انتخاب کند. این یک گفتگوی کوچک است که در آن باید یکی از چندین گزینه را انتخاب کنید. من بسیار خوشحالم که نیازی به ایجاد یک Intent جداگانه برای این کار ندارید، بلکه فقط از کلاس AlertDialog استفاده کنید.
بیایید به روند شروع یک بازی جدید نگاه کنیم. کاربر روی دکمه New Game کلیک می کند. کنترل کننده کلیک روشی از کلاس سودوکو - onClick است. سپس متد openNewGameDialog فراخوانی می شود که دیالوگ انتخاب سختی را نشان می دهد و بازی را با درجه سختی انتخاب شده شروع می کند. این گفتگو با استفاده از کلاس AlertDialog ساخته شده است.

Private void openNewGameDialog() ( جدید AlertDialog.Builder(this).setTitle(R.string.new_game_title).setItems(R.array.difficulty, new DialogInterface.OnClickListener() ( public void onClick(Dialogceaterface,Dialogeaterface) (من نشان می دهم()؛ )

لطفاً توجه داشته باشید که محتویات گفتگو (مجموعه ای از دکمه ها) از آرایه ای از رشته ها R.array.difficulty ساخته شده است. یک کنترل کننده کلیک دکمه دیالوگ بلافاصله اختصاص داده می شود که بر اساس تعداد دکمه فشرده شده، با فراخوانی متد startGame، بازی جدیدی را با سطح دشواری مشخص شروع می کند.

هنرهای گرافیک

کلاس Game مسئولیت منطق بازی را بر عهده دارد. در اینجا کارها بارگیری می شوند و شرایط برنده شدن بررسی می شود. کلاس Game یک Activity است، اما رابط در XML توضیح داده نشده است، بلکه توسط کد ایجاد می شود. متد onCreate یک View ایجاد می کند:

PuzzleView = PuzzleView جدید (این);
setContentView(puzzleView);
puzzleView.requestFocus();

PazzleView کلاسی است که از View مشتق شده است، زمین بازی را ترسیم می کند و رویدادهای لمسی صفحه (روش onTouchEvent) و فشار دادن کلیدها (روش onKeyDown) را پردازش می کند.

بیایید به روند ترسیم در اندروید نگاه کنیم. برای ترسیم باید متد onDraw را اضافه بار کنید. متد شی Canvas را دریافت می کند که از طریق آن طراحی انجام می شود. برای تنظیم رنگ ها، آبجکت هایی از کلاس Paint ایجاد می شوند. رنگ در فرمت ARGB مشخص شده است. بهتر است رنگ به عنوان منابع (فایل colors.xml) ذخیره شود. Paint فقط یک کلاس برای ذخیره اطلاعات رنگ نیست. به عنوان مثال، هنگام ترسیم متن، حاوی اطلاعاتی در مورد روش سایه، فونت و تراز متن است.

Canvas شامل مجموعه ای از روش ها برای ترسیم گرافیک (drawRect، drawLine، drawPath، drawText و غیره) است.

برای بهینه سازی گرافیک بهتر است از ایجاد اشیا و محاسبات غیر ضروری در داخل متد onDraw خودداری شود (مثال در نظر گرفته شده اجرای گرافیک بهینه نیست).

موسیقی

کلاس MediaPlayer برای پخش موسیقی استفاده می شود. موسیقی بازی به منابع اضافه شده است. شما فقط باید فایل های لازم را در پوشه /res/raw کپی کنید (فرمت های WAV، AAC، MP3، WMA، AMR، OGG، MIDI).
ابتدا باید یک نمونه از کلاس MediaPlayer ایجاد کنید:
mp = MediaPlayer.create (زمینه، منبع)؛
در اینجا زمینه معمولاً کلاسی است که راه اندازی موسیقی را آغاز می کند، منبع شناسه منبع با موسیقی است. برای کنترل پخش، از روش های شروع، توقف و انتشار استفاده کنید.

در بازی، موسیقی در منوی اصلی (راه اندازی شده از کلاس سودوکو) و در گیم پلی (راه اندازی شده از کلاس Game) پخش می شود. کلاس موسیقی برای کنترل پخش ایجاد شده است. کلاس شامل یک نمونه ثابت از MediaPlayer است که نیاز به ایجاد یک پروژه جداگانه برای هر راه اندازی منبع صوتی را از بین می برد.

در کلاس‌های سودوکو و بازی، متدهای onResume و onPause لغو می‌شوند که در آن‌ها موسیقی با شروع فعالیت شروع می‌شود و پس از غیرفعال شدن متوقف می‌شود.

نتیجه گیری

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

P.S. با تشکر فراوان از کاربر

برنامه نویسی یکی از آن حوزه هایی است که همه می توانند احساس کنند خالق هستند. معمولاً به توسعه برنامه های کاربردی برای رایانه های شخصی، واحدهای تجهیزات تولید یا به سادگی برای محصولات خانگی الکترونیکی اشاره دارد. اما با گسترش دستگاه های تلفن همراه با صفحه لمسی، برنامه نویسی برای اندروید، iOS یا پوسته سیستم دیگری از نوع مشابه روز به روز محبوب تر می شود. خوب، باید اعتراف کنم، این یک شغل امیدوارکننده است. بنابراین، در چارچوب مقاله، اجرای اندروید را از ابتدا در نظر خواهیم گرفت. چه ویژگی هایی وجود دارد؟ چه زبانی استفاده می شود؟

ایجاد برنامه ها

قبل از اینکه خودتان برنامه بنویسید، باید تمام اجزای لازم برای این کار را مطالعه کنید:

  1. زبان.
  2. محیط توسعه خود را انتخاب کنید. همچنین به جزئیات زبان و همچنین محصولات نرم‌افزاری که در آن برنامه‌ها ایجاد خواهند شد، خواهیم پرداخت. اما ابتدا اجازه دهید کمی در مورد محیط های توسعه صحبت کنیم. به طور متعارف، آنها را می توان به سه جزء تقسیم کرد:
  • گرافیکی;
  • معمولی؛
  • برخط.

در مورد ایجاد برنامه ها باید توجه داشت که اکنون ارائه ایده ای که قبلاً کار نشده است دشوار است. بنابراین، در صورت بروز مشکل یا صرفاً در صورت کمبود دانش، باید سوء تفاهم ایجاد شده را به درستی تدوین کرد و به برنامه نویسان با تجربه تر مراجعه کرد. آنها می توانند با مشاوره سازنده به شما در ایجاد برنامه ها کمک کنند.

برنامه ها به چه زبانی نوشته می شوند؟

جاوا برای این اهداف استفاده می شود. لازم به ذکر است که این یک زبان برنامه نویسی نسبتاً پیچیده است. اما برای ایجاد برنامه های کاربردی خود، نیازی به دانستن کامل آن ندارید. دانش و مهارت های اولیه در کار با اطلاعات مرجع برای دریافت پاسخ سوالات شما کافی خواهد بود. علاوه بر این، تنظیمات پیش‌فرض خاصی وجود دارد که با استفاده از آنها می‌توانید مراحلی را برای ایجاد یک برنامه بدون مشکل مهم انجام دهید. سپس برنامه نویسی برای اندروید تبدیل به یک لذت می شود.

انتخاب یک محیط توسعه منظم

Eclipse و Android SDK به عنوان بزرگترین بازیکنان شناخته می شوند. هر دو آزاد هستند. در مجموع باید توجه داشت که این محیط های توسعه رقبای جدی هستند و هر کدام دارای نقاط قوت و ضعف متعددی هستند. هر یک از آنها ارزش مطالعه دارد. به طور جداگانه، اجازه دهید کمی روی یک جنبه از Android SDK - شبیه ساز تمرکز کنیم. این برنامه ای است که وانمود می کند گوشی یا تبلتی است که روی اندروید اجرا می شود. شبیه ساز به راحتی روی یک کامپیوتر معمولی اجرا می شود و مانند یک دستگاه تلفن همراه استاندارد روی دسکتاپ به نظر می رسد. تنها یک ویژگی وجود دارد - با استفاده از ماوس و صفحه کلید کنترل می شود و نه با انگشت شما. در شبیه ساز، می توانید عملکرد برنامه را برای پسوندهای مختلف صفحه نمایش و همچنین در نسخه های مختلف سیستم عامل موبایل اندروید بررسی کنید. بنابراین، مهم نیست که چقدر برای شما عجیب به نظر می رسد، هنگام توسعه برنامه های کاربردی با هدف اندروید، داشتن یک گوشی اصلا ضروری نیست.

برای توسعه اپلیکیشن خود به چه چیزی نیاز دارید؟

محیط های توسعه گرافیکی

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

  1. در دسترس بودن یک رابط بصری.
  2. با استفاده از منطق عملیاتی روشن
  3. امکان ایجاد عناصر در حالت های گرافیکی و کد.
  4. در دسترس بودن اسناد برای کار با محیط توسعه و یک انجمن پشتیبانی.

محیط توسعه آنلاین

آنها می توانند طیف گسترده ای از عملکرد را در یک نقطه دسترسی ساده - اینترنت - ارائه دهند. "محیط توسعه آنلاین" احتمالاً همه چیز را می گوید. اگرچه باید روشن شود که تحت اندروید هنوز کار آسانی نیست. بنابراین، سخت‌ترین کار پیاده‌سازی تیراندازها و برنامه‌های کاربردی با پیچیدگی مشابه خواهد بود. اما برنامه هایی با قالب بندی متن و انتقال داده ها آسان هستند.

نتیجه

امیدواریم در مورد مراحل اولیه آماده سازی برای ایجاد برنامه های خود سوال دیگری وجود نداشته باشد. اگر تصمیم دارید برنامه نویسی را جدی بگیرید، می توانید از ادبیات خاصی استفاده کنید. به عنوان مثال، کتاب "برنامه نویسی برای اندروید" نوشته هاردی برایان. البته این تنها کار خوب نیست، بلکه باید از یک جایی شروع کرد. با خواندن این راهنما می توانید مسیر موفقیت را آغاز کنید.

بهترین مقالات در این زمینه