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

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

لطفاً توجه داشته باشید که استودیو دائماً در حال به روز رسانی است، بنابراین ظاهر پنجره ها و سایر جزئیات ممکن است با این مثال متفاوت باشد. اکثر دروس موجود در سایت اکنون از نسخه 2.3 استفاده می کنند. در 25 اکتبر 2017 نسخه 3.0 منتشر شد که تغییرات زیادی در آن ایجاد شده است. در این مقاله سعی کردم تمام تصاویر را با نسخه جدید جایگزین کنم.

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

در اینجا باید یک انحراف کوچک انجام دهیم. Android Studio 3.0 پشتیبانی کامل از زبان جدید Kotlin را که توسط Kotans توسعه یافته است اضافه می کند. گوگل برنامه های خود را برای تبدیل زبان جدید «گربه» به زبان اصلی اعلام کرده است. اما باید بدانید که در سال های گذشته تعداد زیادی نمونه در جاوا نوشته شده است. اگر در زمینه برنامه نویسی تازه کار هستید، بهتر است در دوره اول آموزش کاملاً روی جاوا تمرکز کنید؛ یافتن پاسخ سوالات برای شما آسان تر خواهد بود. کاتلین از شما فرار نخواهد کرد، بعداً تغییر به آن آسان تر خواهد بود، اما روند معکوس دشوارتر خواهد بود. هنگامی که کمی با جاوا آشنا شدید، می توانید به طور همزمان نمونه هایی را در کاتلین مطالعه کنید. گوگل اکنون به طور فعال در حال بازنویسی اسناد برای Kotlin است، اما انتقال کامل هنوز بسیار دور است، حتی کمتر از 50%. کمی بعد من نیز با استفاده از Kotlin دروس را انجام خواهم داد، اما این به این زودی نخواهد بود.

طبق سنتی که در قرن گذشته ایجاد شد، هر برنامه نویسی باید «سلام جهان» را می نوشت. (سلام دنیا!) به عنوان اولین برنامه. زمان در حال تغییر است، و سلام جهان! قبلاً برای اهداف سازگاری در محیط توسعه اندروید تعبیه شده است و برنامه نویسان مدرن باید یک برنامه بنویسند سلام کیتی!(سلام بچه گربه!). موافق باشید که احوالپرسی با یک بچه گربه بیشتر از سلام کردن به هر دنیای دیگری منطقی است.

بنابراین مسئله را به دو قسمت تقسیم می کنیم. ابتدا برنامه تمام شده را بدون نوشتن کد اجرا می کنیم تا مطمئن شویم که همه ابزارها به درستی نصب شده اند و می توانیم برنامه ها را ایجاد و اشکال زدایی کنیم. و سپس ما اولین برنامه خود را می نویسیم.

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

Studio را اجرا کرده و انتخاب کنید فایل | جدید | پروژه جدید.... یک کادر محاوره ای جادوگر ظاهر می شود.

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

رشته دامنه شرکتبه نشان دادن سایت شما کمک می کند. به طور پیش فرض، نام شما به عنوان کاربر رایانه ممکن است در آنجا ظاهر شود. اگر وب‌سایتی دارید، می‌توانید آدرس آن را وارد کنید یا نامی بیاورید. نام وارد شده به خاطر سپرده می شود و به طور خودکار در پروژه های جدید بعدی جایگزین می شود. صرفه جویی اما.

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

رشته نام بستهیک بسته جاوای ویژه بر اساس نام شما از قسمت قبلی ایجاد می کند. جاوا از یک نسخه معکوس برای نامگذاری بسته ها استفاده می کند، بنابراین ابتدا می رود ruو سپس نام سایت. این بسته برای شناسایی منحصر به فرد برنامه شما در هنگام توزیع آن عمل می کند. اگر صد نفر صد برنامه را با نام "گربه" بنویسند، مشخص نیست که برنامه نوشته شده توسط توسعه دهنده واسیلی کوتوف کجاست. و برنامه با نام بسته ru.vaskakotov.catراحت تر پیدا کردن لطفاً توجه داشته باشید که Google از این بسته در اسناد خود استفاده می کند com.exampleبرای اهداف نمایشی اگر به سادگی نمونه هایی را از اسناد کپی کنید و سعی کنید آنها را در این فرم در Google Play پست کنید، هیچ چیز کار نخواهد کرد - این نام برای استفاده در فروشگاه برنامه محفوظ است و ممنوع است. دکمه ویرایش کنیدبه شما امکان ویرایش نسخه آماده شده را می دهد. به عنوان مثال، شما در حال نوشتن یک برنامه سفارشی هستید و باید از نام بسته تایید شده توسط مشتری استفاده کنید و نه پیش فرض خود.

در زیر دو گزینه برای نوشتن برنامه در C++ و Kotlin وجود دارد. ما هنوز این گزینه ها را بررسی نمی کنیم. هنگامی که در Kotlin می نویسید، کادر مربوطه را علامت بزنید. با این حال، می توانید پروژه را از جاوا به کاتلین و بعداً با استفاده از ابزارهای استودیو تبدیل کنید.

روی دکمه کلیک کنید بعدو به پنجره بعدی بروید. در اینجا انواع دستگاه هایی را انتخاب می کنیم که برنامه خود را برای آنها توسعه خواهیم داد. در بیشتر موارد، ما برای گوشی‌های هوشمند و تبلت‌ها می‌نویسیم، بنابراین کادر انتخاب را کنار اولین مورد می‌گذاریم. همچنین می‌توانید برای Android TV، Android Wear، Android Auto و Android Things برنامه بنویسید.

علاوه بر انتخاب نوع دستگاه، باید حداقل نسخه سیستمی را که اپلیکیشن تحت آن کار خواهد کرد، انتخاب کنید. گزینه خود را انتخاب کنید. در حال حاضر، گوگل از نسخه‌هایی که با API 7 شروع می‌شوند، پشتیبانی می‌کند و کتابخانه‌های سازگاری ویژه‌ای را برای دستگاه‌های قدیمی‌تر منتشر می‌کند. اما می توانید گزینه مدرن تری را انتخاب کنید. من یک گوشی با حداقل نسخه اندروید 4.4 دارم، بنابراین این گزینه را تنظیم می کنم.

جاوا

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

پاسخ

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

  • قابل کشیدن- منابع گرافیکی در این پوشه ها ذخیره می شوند - تصاویر و فایل های xml که رنگ ها و اشکال را توصیف می کنند.
  • چیدمان- این پوشه حاوی فایل های xml است که ظاهر فرم ها و عناصر مختلف فرم را توصیف می کند. پس از ایجاد پروژه قبلاً یک فایل در آنجا وجود دارد activity_main.xmlکه وظیفه ظاهر شدن پنجره اصلی برنامه را بر عهده دارد.
  • mipmap- نمادهای برنامه برای وضوح های مختلف صفحه در اینجا ذخیره می شوند
  • ارزش های- منابع رشته، منابع رنگ، تم ها، سبک ها و ابعادی که می توانیم در پروژه خود استفاده کنیم در اینجا قرار دارند. در اینجا می توانید فایل ها را مشاهده کنید Colors.xml, strings.xml, styles.xml. در پروژه های قدیمی نیز یک فایل وجود داشت dimensions.xml، اکنون رها شده است

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

کار با پروژه - سلام، جهان!

همانطور که قبلا ذکر شد، برنامه سلام دنیا!در حال حاضر در هر پروژه جدیدی ساخته شده است، بنابراین شما حتی نیازی به نوشتن چیزی ندارید. شما فقط باید پروژه را راه اندازی کنید و یک برنامه آماده دریافت کنید!

برای مطالعه باید دو فایل باز کنید - فعالیت اصلی(به احتمال زیاد از قبل باز شده است) و activity_main.xml (res/layout) در قسمت مرکزی استودیو. اگر فایل ها باز نیستند، برای ویرایش (یا مشاهده) آنها را خودتان با دوبار کلیک کردن باز کنید. به این ترتیب می توانید هر فایلی را که نیاز دارید باز کنید.

بیایید فعلاً کد را مطالعه نکنیم، بلکه فقط روی مثلث سبز کلیک کنید اجرا کن(Shift+F10) در نوار ابزار بالای استودیو برای راه اندازی برنامه.

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

اگر همه چیز به درستی انجام شده باشد، برنامه شما در شبیه ساز یا روی دستگاه بارگیری می شود. تبریک می گویم!

بنابراین، اگر برنامه شروع شده باشد، یک پنجره برنامه با کتیبه خواهید دید. عنوان برنامه نیز خواهد بود. تمام این خطوط را می توان در فایل یافت res/values/strings.xmlو در صورت تمایل ویرایش کنید

حالا بیایید به کد نگاه کنیم. اول مطالعه کنیم activity_main.xml.

شما می توانید آن را در دو حالت تماشا کنید - طرحو متن.

در حالت باز کنید متن.

این یک کد قالب جدید است که در اندروید استودیو 2.3 در مارس 2017 منتشر شد. قبلاً از کد دیگری استفاده می شد RelativeLayout(و حتی قبل از آن، یک کد دیگر با LinearLayout). اگر با نمونه های قدیمی مواجه شدید، استودیو یک منوی زمینه دارد که به شما کمک می کند کد قدیمی را به کد جدید تبدیل کنید.

کمی در مورد کد XML یک ظرف مخصوص وجود دارد ConstraintLayout، که شامل جزء است TextView، برای خروجی متن در نظر گرفته شده است.

حالا بیایید به کد جاوا نگاه کنیم ( MainActivity.java)

پکیج ru.alexanderklimov.helloworld; وارد کردن android.support.v7.app.AppCompatActivity. وارد کردن android.os.Bundle; کلاس عمومی MainActivity AppCompatActivity را گسترش می دهد (@Override void protected onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ))

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

بعد اعلامیه خود کلاس می آید که ارثی است ( گسترش می یابد) از یک کلاس انتزاعی فعالیت. این کلاس پایه برای همه صفحه های برنامه است. این امکان وجود دارد که داشته باشید AppCompatActivity، اگر هنگام ایجاد پروژه از دستگاه های قدیمی پشتیبانی کرده اید (چک سازگاری با عقب (App Compat)). نسخه های قدیمی خوبی هایی که پس از اندروید 4 ظاهر شد را نداشتند، بنابراین یک کتابخانه سازگاری ویژه برای آنها ایجاد شد که به شما امکان می دهد از موارد جدید نسخه های جدید اندروید در برنامه های قدیمی استفاده کنید. کلاس AppCompatActivityاین دقیقاً همان چیزی است که کتابخانه سازگاری در مورد آن است. او را یکی از بستگان فقیر پایگاه در نظر بگیرید فعالیت. همه روش‌ها و کلاس‌های کمکی لازم را دارد، اما نام‌ها ممکن است کمی متفاوت باشد. و شما نمی توانید نام ها را با هم مخلوط کنید. اگر از کلاسی از کتابخانه سازگاری استفاده می کنید، روش های مناسب را انتخاب کنید.

در مراحل مختلف، از نام‌های کلاس اکتیویتی مختلفی استفاده می‌شد که ممکن است در پروژه‌های قدیمی‌تر با آن‌ها مواجه شوید. مثلا اولین بار استفاده شد FragmentActivity، سپس ActionBarActivityو در 22 آوریل 2015، نسخه جدیدی از کتابخانه سازگاری منتشر شد و کلاس جدیدی در حال حاضر استفاده می شود. AppCompatActivity.

در خود کلاس یک متد می بینیم onCreate()– زمانی فراخوانی می شود که برنامه نشانه گذاری فعالیت را ایجاد و نمایش دهد. روش به عنوان علامت گذاری شده است حفاظت شدهو با حاشیه نویسی همراه است @Override(از کلاس پایه حذف شده است). خلاصه ممکن است برای شما مفید باشد. اگر در نام متد اشتباه تایپی ایجاد کنید، کامپایلر می تواند به شما هشدار دهد که کلاس والد چنین متدی ندارد. فعالیت.

بیایید به کد روش نگاه کنیم.

خط super.onCreate(savedInstanceState);سازنده کلاس والد است که عملیات لازم را برای کارکرد اکتیویتی انجام می دهد. لازم نیست این خط را لمس کنید، آن را بدون تغییر بگذارید.

خط دوم setContentView(R.layout.activity_main);مورد توجه بیشتری است. روش setContentView(int)شامل محتوای یک فایل نشانه گذاری است. به عنوان یک آرگومان، نام فایل را بدون پسوند از پوشه مشخص می کنیم res/layout. به طور پیش فرض پروژه یک فایل در آن ایجاد می کند activity_main.xml. می توانید نام فایل را تغییر دهید یا فایل خود را با نام ایجاد کنید cat.xmlو آن را به فعالیت خود متصل کنید. سپس کد به شکل زیر خواهد بود:

SetContentView(R.layout.cat)؛

برای اینکه کد خود را مرتب نگه دارید، سعی کنید استانداردها را رعایت کنید. اگر در حال ایجاد نشانه گذاری برای یک فعالیت هستید، از پیشوند استفاده کنید فعالیت_برای نام فایل به عنوان مثال، نشانه گذاری برای فعالیت دوم می تواند نامگذاری شود activity_second.xml.

09.04.17 3287

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

اندروید استودیو

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

اما ابتدا باید کیت توسعه جاوا را دانلود و نصب کنید ( JDK) از اوراکل. بخش " کیت توسعه Java SE 7u79» و نسخه را برای کامپیوتر خود دانلود کنید. مهم است که نسخه صحیح را دانلود کنید ( 32 بیتی یا 64 بیتی، در غیر این صورت اندروید استودیو نمی تواند محیط اجرای Java را پیدا کند ( JRE).

توجه: Oracle هیچ به‌روزرسانی برای Java SE 7 را در سایت‌های عمومی خود منتشر نخواهد کرد و انتظار می‌رود کاربران به طور انبوه به جاوا 8 مهاجرت کنند. اما در حال حاضر اندروید استودیو به جاوا 7 نیاز دارد. این مورد ممکن است در آینده تغییر کند.

پس از نصب JDK، باید Android Studio را نصب کنید. در حین نصب باید مشخص کنید چه مقدار حافظه برای شبیه ساز اندروید ذخیره کنید. آندروید را به عنوان یک ماشین مجازی مانند یک گوشی هوشمند مجهز به اینتل اجرا می کند. این سریعتر از شبیه سازی پردازنده ARM در رایانه شخصی است. اما برای اجرای این ماشین مجازی، شبیه ساز باید مقداری حافظه اختصاص دهد. اما قبل از اینکه خودتان یک برنامه اندروید بسازید، به خاطر داشته باشید که ترکیب اندروید استودیو، جاوا و شبیه ساز کاملاً نیازمند منابع خواهد بود و ممکن است سرعت کامپیوتر کاهش یابد.

گوگل می گوید حداقل 2 گیگابایت رم مورد نیاز است و 4 گیگابایت توصیه می شود. اما کامپیوتر اصلی من 8 گیگابایت دارد و هنوز هم گاهی کند می شود:

هنگامی که برای اولین بار Android Studio را راه اندازی می کنید، مقداردهی اولیه را انجام می دهد که شامل دانلود و نصب آخرین نسخه Android SDK است. این ممکن است چند دقیقه طول بکشد.

هنگامی که همه چیز دانلود و نصب شد، منویی را مشاهده خواهید کرد که به شما امکان می دهد یک منوی جدید ایجاد کنید، یک موجود را باز کنید یا یک پروژه را وارد کنید و غیره.

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

کلیک " یک پروژه اندروید استودیو جدید را شروع کنید"و نام برنامه خود را در فیلد وارد کنید" نام نرم افزار" در زمینه " دامنه شرکت» دامنه رسمی شرکت خود را وارد کنید. اگر یک توسعه‌دهنده یا علاقه‌مند مستقل هستید، دامنه خود را وارد کنید. اگر فقط در حال آزمایش با Android هستید و قصد ندارید به این زودی برنامه های خود را در Google Play منتشر کنید، فقط دامنه نمونه را ترک کنید، فقط " را تغییر دهید. کاربر"به نام شما (بدون فاصله):

در کادر محاوره ای بعدی، مطمئن شوید که " گوشی و تبلت"، و برای " حداقل SDK» نصب شده - API 15: Android 4.0.3. برای گزینه ها " پوشیدن"و" تلویزیون» چک باکس ها نباید علامت زده شوند.

در کادر محاوره ای " یک فعالیت به موبایل اضافه کنید» مقدار پیش فرض را بگذارید « فعالیت خالی"و فشار دهید" بعد" در کادر محاوره ای " سفارشی کردن فعالیت"همه مقادیر را رها کنید و کلیک کنید" پایان»:

محیط توسعه یکپارچه ( IDE) در حال اجراست. این ممکن است چند دقیقه طول بکشد ( به خصوص اگر این اولین بار است که یک پروژه ایجاد می کنید). در صورت مشاهده پیغام خطا " مشکلات رندر: رندر با اشکال شناخته شده انجام نشد"، روی پیوند کلیک کنید" بازسازی کنید" که در کنار پیام خطا ظاهر می شود.

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

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

درخت پروژه

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

در گره " برنامهدرخت پروژه شامل چندین گره (به عنوان مثال، پوشه ها) است که می توان آنها را گسترش داد. گره های سطح بالا عبارتند از آشکار می کند”, “جاوا"و" پاسخ" مورد دوم مخفف " منابع”.

که در " آشکار می کند"فایل قرار دارد" AndroidManifest.xml"، هر برنامه ای باید حاوی آن باشد. این یک فایل XML با اطلاعات مربوط به برنامه، از جمله نام آن است. عنصری که اغلب به این فایل اضافه می شود لیستی از مجوزهای مورد نیاز برنامه است. برای این برنامه ساده، نیازی به تغییر چیزی در اینجا ندارید.

در فصل " جاوا» حاوی کد جاوا برنامه است. این در یک زیر شاخه به نام com.example.user.myfirstapp خواهد بود. این نام دامنه شرکتی است که قبلا وارد کرده اید، اما برعکس، به اضافه نام برنامه. این پوشه حاوی فایل MainActivity.java است. این نقطه ورود به برنامه و تنها فایل جاوا است که به آن نیاز خواهیم داشت.

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

در پوشه " ارزش های"شامل چندین فایل XML است. در حال حاضر مهمترین چیز برای ما strings.xml است. به جای تنظیم مقادیر رشته در کد جاوا، معمولاً در فایل قرار می گیرند. strings.xml"، و می توانیم از طریق شناسه ها به آنها مراجعه کنیم. مزیت این است که اگر یک رشته چندین بار استفاده شود، فقط یک بار می توان آن را تغییر داد و تغییرات در همه مکان ها اعمال می شود. این همچنین پشتیبانی از چندین زبان را در برنامه آسان تر می کند.

برای ایجاد یک برنامه اندرویدی خودتان، باید فایل های MainActivity.java، activity_main.xml و strings.xml را تغییر دهید.

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

برای مثال ما یک دکمه با عنوان " اضافه می کنیم روی من ضربه بزنید!"، تغییر تبریک پیش فرض" سلام دنیا!" بر " اگر جرات داری به من ضربه بزن!" همچنین آن را طوری تغییر می دهیم که در مرکز باشد. و بیایید کد را اضافه کنیم تا وقتی روی دکمه کلیک شد، متن " نان تست»!

بیایید با تغییر متن تبریک و تراز آن شروع کنیم. ابتدا فایل را پیدا کنید activity_main.xml» و روی آن دوبار کلیک کنید. به یاد بیاور " activity_main.xml"فایلی است که حاوی تعریف رابط کاربری است. در پایین پنجره کد دو تب وجود دارد: " طرح"و" متن" برو به " طرح».

حالا روی متن کلیک کنید " سلام دنیا!"، که در پنجره پیش نمایش صفحه گوشی هوشمند نشان داده شده است. اگر خیلی کوچک است، از دکمه زوم ( ذره بین با علامت مثبت).

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

قبل از ایجاد یک برنامه اندروید بدون مهارت، بیایید متن را تغییر دهیم. خط" سلام دنیا!"در فایل ذخیره می شود" strings.xml"در بخش Res->Values. اگر روی این فایل دوبار کلیک کنید، چندین خط XML را مشاهده خواهید کرد که رشته های استفاده شده توسط برنامه را مشخص می کند.

این خط را پیدا کنید:

XMLSELECT ALL XMLSELECT ALL سلام دنیا!

و آن را به:

CSSELECT ALL CSSELECT ALL اگر جرات داری به من ضربه بزن!

ما تراز و متن تبریک را تغییر دادیم. حالا بیایید یک دکمه اضافه کنیم. بازگشت به " طرح" فایل " activity_main.xml"، در لیست پیدا کنید" جعبه رنگ نقاشی"در سمت چپ تصویر گوشی هوشمند مورد" دکمه"و روی آن کلیک کنید. اکنون در جایی زیر عبارت “کلیک کنید اگر جرات داری به من ضربه بزن!».

برای تغییر متن روی یک دکمه دوبار کلیک کنید. در انتهای میدان ” متن:یک دکمه با سه نقطه وجود دارد، روی آن کلیک کنید. در پنجره " منابع" کلیک " منبع جدید"، و سپس" مقدار رشته جدید…" در زمینه " نام منبع:" وارد " tapme"، و در زمینه" ارزش منبع:» — “ به من ضربه بزنید!" سپس روی " کلیک کنید خوب" اکنون یک دکمه داریم به من ضربه بزنید!”.

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

برای برنامه مثال ما، هر بار که یک دکمه کلیک شود، پیامی را نمایش خواهیم داد. اولین قدم اضافه کردن کد جاوا است. فایل را پیدا کنید " MainActivity.java"و کد زیر را به" اضافه کنید در ایجاد«:

JAVASELECT ALL JAVASELECT ALL public void onButtonTap(View v) ( Toast myToast = Toast.makeText(getApplicationContext()، "اوه!"، Toast.LENGTH_LONG؛ myToast.show(); )

کلمه " چشم انداز"در عبارت "( مشاهده v)" قرمز خواهد شد و پیغامی در کنار آن ظاهر می شود که نشان می دهد از طرح جدیدی استفاده کرده اید ( چشم انداز)، بدون وارد کردن آن در قسمت import، در بالای کد جاوا. درست کردنش اسونه. روی کلمه "کلیک کنید" چشم اندازو سپس ALT + ENTER. اگر کلمه " نان تست” با رنگ قرمز مشخص شده است، دوباره همین کار را انجام دهید:

بازگشت به بخش طراح فایل " activity_main.xml"، روی دکمه کلیک کنید و لیست خواص را به آیتم پیمایش کنید" روی کلیک کنید" روی کادر سمت راست کلیک کنید و لیستی از توابع روی صفحه ظاهر می شود. روی " کلیک کنید onButtonTap"، این یک ویژگی است که ما به تازگی اضافه کرده ایم.

اکنون تابع onButtonTap() هر زمان که دکمه کلیک شود فراخوانی می شود. برای نمایش پیام، ما () myToast.show را فراخوانی می کنیم.

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

ساخت و تست اپلیکیشن

در منو " ابزار» به Android-AVD Manager بروید. این ابزار لیستی از دستگاه های اندروید مجازی پیکربندی شده را نمایش می دهد. شما یک دستگاه را به طور پیش فرض پیکربندی خواهید کرد، احتمالاً یک Nexus 5. روی نماد پخش (مثلث) در " کلیک کنید اقدامات" با این کار شبیه ساز راه اندازی می شود.

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

برنامه در شبیه ساز ظاهر می شود. کلیک کنید بر روی " به من ضربه بزنید!” - یک پیام باید در پایین صفحه ظاهر شود. تبریک می گویم، همه چیز کار می کند!

بعد چه باید کرد و نتیجه گیری

شما همچنین می توانید برنامه را بر روی یک دستگاه واقعی اجرا کنید. ساده ترین راه برای انجام این کار فعال کردن است اشکال زدایی USB در اندروید-دستگاه و آن را به کامپیوتر متصل کنید. گزینه USB debugging را می توانید در بخش پیدا کنید تنظیمات - برای توسعه دهندگان. اگر این بخش را ندارید، «تنظیمات» - «درباره تلفن» را باز کنید و سپس روی «شماره ساخت» هفت بار ضربه بزنید.

هنگامی که دستگاه متصل شد، روی "کلیک کنید" برنامه را اجرا کنید" در منو " ابزار"، اما این بار برنامه را به دستگاه مجازی ارسال نکنید، بلکه آن را به دستگاه واقعی ارسال کنید. اگر دستگاه در لیست نیست، به این معنی است که اشکال زدایی USB را فعال نکرده اید یا باید درایور USB مناسب را نصب کنید. بخش OEM USB Drivers و Google USB Drivers را در اسناد Google ببینید.

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

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

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

استودیو RAD


نسخه جدید RAD Studio که برلین نام دارد، ابزاری کامل برای توسعه اپلیکیشن های چند پلتفرمی، از جمله برنامه های موبایل، به زبان های Object Pascal و C++ است. مزیت اصلی آن نسبت به سایر محیط های نرم افزاری مشابه این است که امکان توسعه بسیار سریع از طریق استفاده از خدمات ابری را فراهم می کند. پیشرفت های جدید در این محیط به شما امکان می دهد در زمان واقعی نتیجه اجرای برنامه و تمام فرآیندهای رخ داده در برنامه را مشاهده کنید که به شما امکان می دهد در مورد دقت توسعه صحبت کنید. همچنین می توانید به طور انعطاف پذیر از یک پلتفرم به پلتفرم دیگر یا به سرویس های سرور سوئیچ کنید. نقطه ضعف RAD Studio Berlin این است که یک مجوز پولی است. اما پس از ثبت نام می توانید نسخه آزمایشی رایگان محصول را به مدت 30 روز دریافت کنید. رابط محیطی انگلیسی است.

Eclipse یکی از محبوب‌ترین پلتفرم‌های نرم‌افزار متن‌باز برای نوشتن برنامه‌ها، از جمله برنامه‌های موبایل است. از جمله مزایای اصلی Eclipse مجموعه عظیمی از APIها برای ایجاد ماژول های برنامه و استفاده از رویکرد RCP است که به شما امکان می دهد تقریباً هر برنامه ای را بنویسید. این پلتفرم همچنین عناصری از IDE های تجاری را به عنوان یک ویرایشگر مناسب با برجسته سازی نحو، یک دیباگر که در حالت استریم کار می کند، یک ناوبر کلاس، مدیر فایل و پروژه، سیستم های کنترل نسخه و بازآفرینی کد در اختیار کاربران قرار می دهد. به ویژه فرصتی برای ارائه SDK لازم برای نوشتن برنامه ها خوشحال کننده است. اما برای استفاده از Eclipse باید زبان انگلیسی را نیز یاد بگیرید.

آموزش ساخت اپلیکیشن موبایل در اندروید استودیو

Android Studio یک محیط توسعه یکپارچه (IDE) مبتنی بر IntelliJ IDEA است که گوگل آن را IDE رسمی برنامه های اندروید می نامد.

این راهنما توضیح می دهد توسعه اپلیکیشن اندروید:

  • با استفاده از File Explorer بین فایل ها حرکت کنید
  • در حال نصب فایل AndroidManifest.xml
  • وارد کردن فایل ها به پروژه
  • ویرایشگر طرح‌بندی پیشرفته با ویژگی پیش‌نمایش پویا
  • استفاده از Logcat و مانیتور اندروید برای اشکال زدایی برنامه ها

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

Android Studio را در یک پنجره راه اندازی کنید Android Studio Setup Wizardانتخاب کنید یک پروژه اندروید استودیو جدید را شروع کنید(شروع یک پروژه جدید).

در پنجره ایجاد پروژه جدیدانتخاب کنید نام نرم افزار(نام برنامه) به عنوان توپ Fortune، دامنه شرکت را وارد کنید. در زمینه محل پروژهمکانی که برنامه در آن ذخیره می شود را انتخاب کنید. کلیک بعد.

یک پنجره روبروی شماست دستگاه های Android را هدف قرار دهید. انتخاب کنید گوشی و تبلت. در زمینه حداقل SDKلطفا نشان بدهید API 15. کلیک بعد.

در پنجره یک فعالیت به موبایل اضافه کنیدانتخاب کنید فعالیت پایه. تمام گزینه ها را ارزیابی کنید، این پنجره یک نمای کلی از طرح بندی های موجود را ارائه می دهد.

کلیک بعد.

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

بعد از چند ثانیه پنجره زیر ظاهر می شود:

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

این قبلاً یک برنامه کاربردی است. او کمبودهای زیادی دارد، اما اکنون می تواند به مرحله بعدی برود.

ساختار پروژه و فایل

پنجره فایل های پروژه را نشان می دهد.

منوی کشویی (عکس زیر) چندین فیلتر برای فایل ها دارد. اصلی ترین آنها Project و Android هستند.

فیلتر پروژه همه ماژول های برنامه را نشان می دهد - هر پروژه حداقل یک ماژول دارد. انواع دیگر ماژول‌ها شامل ماژول‌های کتابخانه‌های شخص ثالث یا ماژول‌هایی از سایر برنامه‌های Android (مانند برنامه‌های Android Wear، Android TV) است. هر ماژول مجموعه ای از ویژگی های خاص خود را دارد، از جمله یک فایل gradle، منابع و فایل های منبع (فایل های جاوا).

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

  • آشکار می کند
  • اسکریپت های Gradle

بخش‌های زیر هر یک از این پوشه‌ها را با جزئیات توضیح می‌دهند و با مانیفست شروع می‌شوند.

نمای کلی AndroidManifest.xml

هر برنامه اندرویدی یک فایل AndroidManifest.xml دارد که در پوشه manifests قرار دارد. این فایل XML به سیستم شما در مورد نیازهای برنامه می گوید. وجود این فایل اجباری است، زیرا آن چیزی است که به سیستم اندروید اجازه ایجاد یک برنامه را می دهد.

پوشه manifests و AndroidManifest.xml را باز کنید. دوبار کلیک کنید فایل باز می شود.

تگ های مانیفست و برنامه برای مانیفست مورد نیاز هستند و فقط یک بار ظاهر می شوند.

هر تگ همچنین مجموعه ای از ویژگی ها را به همراه نام عنصر تعریف می کند. به عنوان مثال، برخی از ویژگی ها در برنامه می تواند مانند این باشد:

android:icon، android:label و android:theme

در میان چیزهای دیگر، موارد زیر ممکن است به صورت آشکار ظاهر شوند:

  • use-permission: مجوز خاصی را درخواست می کند که به برنامه داده می شود تا به درستی کار کند. به عنوان مثال، یک برنامه باید از کاربر اجازه دسترسی به شبکه را بخواهد - در صورتی که مجوز android.permission.INTERNET را اضافه کنید.
  • فعالیت: فعالیتی را گزارش می کند که تا حدی مسئول رابط کاربری بصری و منطق است. هر فعالیتی که در برنامه ارائه می شود باید به مانیفست اضافه شود - سیستم متوجه فعالیت بدون علامت نمی شود و در برنامه نمایش داده نمی شود.
  • سرویس: سرویسی را اضافه می کند که قصد دارید از آن برای اجرای عملیات طولانی مدت یا ارتباطات API پیشرفته با سایر برنامه ها استفاده کنید. یک مثال در این مورد یک تماس شبکه است که از طریق آن یک برنامه داده ها را دریافت می کند. برخلاف فعالیت ها، سرویس ها رابط کاربری ندارند.
  • گیرنده: با یک گیرنده پیام پخش، یک برنامه سیگنال‌هایی را درباره پیام‌های سیستم یا پیام‌هایی از برنامه‌های دیگر دریافت می‌کند، حتی زمانی که سایر اجزای برنامه در حال اجرا نیستند. نمونه ای از چنین وضعیتی باتری با سطح شارژ پایین و سیستم عامل در مورد آن است.

فهرست کاملی از برچسب‌ها را می‌توانید در فایل مانیفست در وب‌سایت Android Developer پیدا کنید.

تنظیمات فایل مانیفست

ویژگی زیر را به فعالیت اضافه کنید:

android:screenOrientation=”عمودی”. برای محدود کردن صفحه نمایش فقط به حالت عمودی. اگر این کار انجام نشود، صفحه نمایش، بسته به موقعیت مکانی دستگاه، در حالت افقی یا عمودی خواهد بود. پس از افزودن ویژگی، فایل مانیفست شبیه تصویر صفحه خواهد شد.

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

نمای کلی Gradle

بیایید به سراغ Gradle برویم. Gradle یک پروژه اندروید را به یک APK قابل نصب تبدیل می کند که می تواند بر روی دستگاه ها نصب شود. فایل build.gradle در اسکریپت های Gradle در دو سطح ماژول و پروژه وجود دارد.

فایل build.gradle را باز کنید (Module:app). نصب پیش فرض gradle را خواهید دید:

اعمال افزونه: "com.android.application" android (compileSdkVersion 25buildToolsVersion "25.0.2" defaultConfig (applicationId "com.raywenderlich.fortuneball" minSdkVersion 15targetSdkVersion 25versionCode.support. .AndroidJUnit Runner") buildTypes (release (minifyEnabled falseproguardFiles getDefaultProguardFile("proguard-android.txt")، "proguard-rules.pro"))) وابستگی ها (compile fileTree(dir: "libs")، شامل: ["*.jar"])androidTestCompile( " com.android.support.test.espresso:espresso-core:2.2.2"، (بدون گروه: "com.android.support"، ماژول: "support-annotations")) "com.android.support:appcompat" را کامپایل کنید - v7:25.1.0"کامپایل "com.android.support:design:25.1.0"testCompile "junit:junit:4.12")

بیایید به اجزای اصلی نگاه کنیم:

  • افزونه application: 'com.android.application' پلاگین Android را در سطح والد اعمال می کند و وظایف سطح بالای مورد نیاز برای ساخت برنامه را در دسترس قرار می دهد.
  • در کنار بخش android(…) گزینه های تنظیمات مانند targetSdkVersion قرار دارند. SDK هدف برای برنامه شما باید در آخرین سطح API باشد. مؤلفه مهم دیگر minSDKVersion است (حداقل نسخه SDK که باید روی دستگاه نصب شود تا برنامه اجرا شود را تعریف می کند). به عنوان مثال، اگر نسخه SDK 14 باشد، برنامه نمی تواند روی آن دستگاه اجرا شود، زیرا در این مورد خاص حداقل نسخه پشتیبانی شده 15 است.
  • آخرین مؤلفه وابستگی ها (…) است. لازم است به کامپایل «com.android.support:appcompat-v7:VERSION» و کامپایل «com.android.support:design:VERSION» توجه کنید. آنها پشتیبانی و سازگاری ویژگی های API های جدید و قدیمی را ارائه می دهند.

علاوه بر کتابخانه‌های سازگاری اندروید، می‌توانید کتابخانه‌های شخص ثالث را به مؤلفه وابستگی‌ها (...) اضافه کنید. برای مثال، کتابخانه انیمیشن حاوی افکت‌های رابط کاربری است. وابستگی ها را پیدا کنید، سپس دو خط زیر را اضافه کنید:

وابستگی ها ( ... کامپایل "com.daimajia.easing:library:2.0@aar" کامپایل "com.daimajia.androidanimations:library:2.2@aar")

در اینجا می توانید وابستگی های شخص ثالث را اضافه کنید. کتابخانه ها به طور خودکار دانلود و در Android Studio ادغام می شوند. روی Sync Now کلیک کنید تا این وابستگی ها در برنامه شما یکپارچه شود.

همگام سازی چند ثانیه طول می کشد. به روز رسانی Gradle در تب پیام ها در پانل پایین ظاهر می شود.

اینها تمام تنظیماتی است که در حال حاضر در Gradle به آن نیاز دارید. چنین دستکاری هایی انیمیشن را به برنامه اضافه می کند.

وارد کردن فایل ها

هنگام توسعه یک برنامه اندروید، ادغام با منابع دیگر مهم است: تصاویر، فونت های سفارشی، صداها، فیلم ها و غیره. این منابع به اندروید استودیو وارد شده و در پوشه های مناسب قرار می گیرند که به سیستم عامل اجازه می دهد تا منابع صحیح را انتخاب کند. کاربرد. برنامه Fortune Ball ما باید تصاویر را در پوشه های قابل ترسیم وارد کند. این پوشه‌ها می‌توانند حاوی تصاویر یا فایل‌های ترسیمی XML خاص باشند (یعنی می‌توانید اشکال را با استفاده از کد XML بکشید و از آنها در طرح‌بندی‌های خود استفاده کنید).

در Android Studio، از Android به Project بروید

پوشه res (app > src > main) را باز کنید. روی پوشه res راست کلیک کنید، New > Android resource directory را انتخاب کنید.

پنجره ای به نام New Resource Directory ظاهر می شود.

از لیست کشویی Resource type، گزینه drawable را انتخاب کنید. در لیست واجد شرایط، تراکم را انتخاب کنید، سپس روی دکمه ای که در تصویر برجسته شده است کلیک کنید.

در پنجره بعدی، XX-High Density را از لیست Density انتخاب کنید. روی OK کلیک کنید.

همه چیز را برای ایجاد پوشه‌های drawable-xhdpi، drawable-hdpi و drawable-mdpi تکرار کنید. از لیست تراکم به ترتیب X-High، high و medium density را انتخاب کنید.

هر پوشه ای که دارای شناسه تراکم است (یعنی xxhdpi، xhdpi، hdpi) حاوی تصاویری است که با چگالی یا وضوح خاصی مرتبط هستند. به عنوان مثال، پوشه drawable-xxhdpi حاوی یک تصویر با چگالی بالا است، به این معنی که یک دستگاه اندرویدی با صفحه نمایش با وضوح بالا، تصویر را از این پوشه ترسیم می کند. بدون در نظر گرفتن کیفیت صفحه نمایش، تصویر در همه دستگاه های اندرویدی خوب به نظر می رسد. اطلاعات بیشتر در مورد تراکم صفحه نمایش را می توانید در مستندات Android پیدا کنید.

پس از ایجاد تمام پوشه های "طراحی شده"، می توانید به محتوای زیپ نشده در پوشه برگردید و تصویر را از هر پوشه (cmd + C) کپی کنید و (cmd + V) را در پوشه Android Studio مربوطه قرار دهید.

پس از قرار دادن فایل ها، پنجره Copy را مشاهده خواهید کرد. OK را انتخاب کنید.

نمای XML و پیش نمایش های طرح بندی پویا

ایجاد طرح‌بندی که کاربران بتوانند با آن تعامل داشته باشند، بخش مهمی از فرآیند است. در Android Studio، این کار را می توان در ویرایشگر طرح انجام داد. content_main.xml را از res/layout باز کنید. در تب Design می توانید عناصر رابط (دکمه ها، فیلدهای متنی) را جابجا کنید.

در سمت راست Design یک تب Text وجود دارد که به شما امکان می دهد XML را مستقیماً در طرح بندی ویرایش کنید.

قبل از ایجاد ظاهر، باید مقادیری را تعریف کنید. strings.xml را در تب res/values ​​باز کنید و موارد زیر را اضافه کنید:

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

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

dimens.xml را در res/values ​​باز کنید و موارد زیر را اضافه کنید:

15 ق20 قاشق غذاخوری

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

به content_main.xml برگردید و کل محتوای فایل را با کد زیر جایگزین کنید:

این کد نسبتاً بزرگ یک طرح برای برنامه ای به نام FortuneBall ایجاد می کند. در سطح بالا یک RelativeLayout اضافه کرده اید (طرح نسبی موقعیت مولفه های فرزند را نسبت به مولفه والد مشخص می کند). RelativeLayout را می توان به تناسب اندازه مؤلفه والد گسترش داد.

نشانه گذاری نسبی دو قطعه متن، یک تصویر و یک دکمه را اضافه می کند. همه این جزئیات به ترتیبی که اضافه شده اند قابل مشاهده خواهند بود. محتویات آنها را می توان در strings.xml (متن) و drawable (تصاویر) خواند.

در حین به روز رسانی content_main.xml، توجه داشته باشید که پنجره Preview UI را به روز می کند:

توجه: اگر پنجره پیش نمایش قابل مشاهده نیست، در تب Text، روی دکمه Preview در پنل ویرایشگر نشانه گذاری در سمت راست کلیک کنید.

ایجاد و راه اندازی کنید.

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

ترکیب Activity و View

شما می توانید از فایل های جاوا واقع در app/src/main/java برای ایجاد ارتباط منطقی در برنامه استفاده کنید.

MainActivity.java را باز کنید و این داده ها را به داده های موجود اضافه کنید:

وارد کردن java.util.Random;وارد کردن android.view.View;وارد کردن android.widget.Button;وارد کردن android.widget.ImageView;وارد کردن android.widget.TextView. وارد کردن com.daimajia.androidanimations.library.Techniques;وارد کردن com.daimajia.androidanimations.library.YoYo;

پنج واردات اول به کلاس های مربوطه در کد شما اشاره می کنند: تصادفی، مشاهده، دکمه، ImageView و TextView. دو واردات زیر نشان می دهد که شما از دو کلاس از کتابخانه ها استفاده خواهید کرد. build.gradle برای انیمیشن ها. در MainActivity.java، در کلاس MainActivity، اضافه کنید:

String fortuneList = ("روی آن حساب نکن"، "بعداً دوباره بپرس"، "شما ممکن است به آن تکیه کنید"، "بدون شک"، "چشم انداز چندان خوب نیست"، "قطعاً اینطور است"، "نشانه ها" به بله، "بله قطعا"، "بله"، "منابع من می گویند خیر")؛ TextView mFortuneText;Button mGenerateFortuneButton;ImageView mFortuneBallImage;

در این کد کوتاه شما 4 متغیر برای فعالیت تنظیم کرده اید. اولی خطوطی هستند که حالت های ممکن را تعریف می کنند، سه مورد دیگر عناصر UI هستند که در طرح بندی/نشانه گذاری ایجاد کرده اید.

حال محتویات متد onCreate() را با موارد زیر جایگزین کنید:

// 1:super.onCreate(savedInstanceState);// 2:setContentView(R.layout.activity_main);Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);setSupportActionBar(Toolbar);// 3:mFortuneText (TextView) findViewById(R.id.fortuneText);mFortuneBallImage = (ImageView) findViewById(R.id.fortunateImage);mGenerateFortuneButton = ( دکمه) findViewById(R.id.fortuneButton); // 4:mGenerateFortuneButton.setOnClickListener(جدید چشم انداز.OnClickListener() (@Overridepublic void onClick( چشم انداز view) (// 5:int index = جدید تصادفی().nextInt(fortuneList.length);mFortuneText.setText(fortuneList);// 6:YoYo.with(Techniques.Swing).duration(500).playOn(mFortuneBallImage);)));

  • بررسی کنید که فعالیت آماده است (اجرای سوپرکلاس).
  • مشخص کنید که طرح بندی این فعالیت با طرحی که قبلا ایجاد کرده اید نشان داده شود، نوار ابزار را بررسی کنید.
  • با استفاده از روش findViewById، مقادیر سه متغیری را که قبلا ایجاد کرده‌اید در مؤلفه‌های views layout پر کنید. مقدار id مانند طرح XML است.
  • یک OnClickListener روی دکمه اضافه کنید. این یک کلاس ساده است که عملکردی را که با کلیک یک دکمه فراخوانی می‌کند (بسته‌ها) را در بر می‌گیرد.
  • یک گزینه سفارشی را از فهرست fortune برای این برنامه انتخاب کنید و متن ثروت را برای نمایش آن به روز کنید.
  • از یک کتابخانه شخص ثالث برای اضافه کردن وابستگی به فایل gradle و در نتیجه افزودن انیمیشن به برنامه استفاده کنید.

تقریباً آماده است. اما باید دکمه شناور را بردارید. به res/layout بروید و activity_main.xml را باز کنید.

این فایل طرح‌بندی حاوی پیوندی به content_main.xml است که قبلاً ویرایش کرده‌اید. به طور پیش فرض محتوا را تعریف می کند (نوار ابزار و دکمه عمل شناور). با این حال، در این برنامه خاص (فورچون بال)، به دکمه شناور نیازی نیست. بنابراین، بلوک کد زیر را از فایل xml حذف کنید:

دیگر دکمه شناور در گوشه پایین سمت راست وجود ندارد.

یک سوال بپرسید (بخت من چیست؟) - دکمه را فشار دهید. برنامه را بررسی کنید.

مانیتور اندروید

اندروید استودیو شامل طیف گسترده ای از ابزارها است. تب Android Monitor را در پایین پنجره Android Studio باز کنید.

در اینجا گزینه های زیادی برای توسعه دهنده پیدا خواهید کرد.

  • دوربین و دکمه پخش در سمت چپ به شما امکان می دهد اسکرین شات بگیرید و فیلم ضبط کنید.
  • ذره بین تعدادی گزینه اضافی مانند تجزیه و تحلیل حافظه برنامه را باز می کند.
  • Layout Inspector یک رابط بصری ارائه می دهد که مشخص می کند چرا رابط برنامه به شکل خاصی به نظر می رسد.

LogCat نمای کلی دقیقی از پیام‌های سیستم را با توانایی بررسی داده‌های برنامه خاص، یا حتی استفاده از نوار جستجو برای فیلتر کردن پیام‌ها در صورتی که حاوی کاراکترهای خاصی نیستند، ارائه می‌کند.

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

در MainActivity.java موارد زیر را به لیست واردات خود اضافه کنید:

وارد کردن android.util.Log.

در انتهای onCreate() در MainActivity.java خط زیر را اضافه کنید:

Log.v("FORTUNE APP TAG"،"onCreateCalled");

Log.v دو پارامتر - برچسب و پیام را فراخوانی می کند. در این حالت، برچسب به عنوان "FORTUNE APP TAG" و پیام به عنوان "onCreateCalled" تعریف می شود.

برنامه را اجرا کنید تا پیام گزارش را در پانل Logcat ببینید.

محتویات LogCat را فیلتر کنید، onCreateCalled را در نوار جستجوی بالای کنسول وارد کنید:

سپس متن جستجو را حذف کنید تا دوباره همه پیام‌های گزارش را ببینید.

یکی دیگر از ویژگی های مفید، logcat است که امکان مشاهده پیام های خطا است. یک اشکال را به برنامه کاملاً کاربردی خود اضافه کنید تا ببینید کارها چگونه کار می کنند.

به MainActivity.java بروید و خط زیر را در onCreate تغییر دهید:

//mFortuneText = (TextView) findViewById(R.id.fortuneText);

برنامه را راه اندازی کنید. روی دکمه "بخت من چیست؟" کلیک کنید کار نمی کند!

اگر نمی دانستید یک باگ وجود دارد، چگونه خطا را برطرف می کنید؟ Logcat در این مورد کمک خواهد کرد.

به پانل Logcat بروید - چیزی شبیه به این است:

در اینجا متن قرمز زیادی وجود دارد. در این صورت مشکل خط 50 فایل MainActivity.java است. LogCat این پیوند را به یک لینک آبی تبدیل کرد. اگر آن را فشار دهید، می توانید متوجه شوید که مشکل چیست.

با تغییر mFortuneText = (TextView) findViewById(R.id.fortuneText)، یک متغیر ایجاد کردید اما مقدار آن را مشخص نکردید - از این رو اشاره گر تهی است. برگردید و کد را تغییر دهید، برنامه را اجرا کنید. این بار همه چیز به آرامی کار می کند. Logcat ابزاری مفید برای یافتن خطاها است.

این مقاله را به اشتراک بگذارید:

مقالات مرتبط

یادگیری یک زبان جدید و محیط توسعه حداقلی است که برای نوشتن برنامه موبایل اول خود از شما لازم است. حداقل دو هفته طول می کشد تا یک لیست کارهای اساسی برای Android یا iOS بدون کپی کردن نمونه از کتاب ترسیم شود. اما اگر از فناوری‌هایی مانند PhoneGap استفاده می‌کنید، نمی‌توانید به Objective-C یا Java تسلط پیدا کنید و همچنان به سرعت برنامه‌هایی را برای گوشی‌های هوشمند توسعه دهید.

اگر نوآوری هایی که در ویندوز 8 در انتظار ما هستند را به دقت مطالعه کرده باشید، ممکن است متوجه شده باشید که امکان توسعه برنامه های کاربردی در HTML5 تحت آن وجود خواهد داشت. این ایده، در واقع، جدید نیست - فناوری‌هایی که همان رویکرد را برای پلتفرم‌های تلفن همراه پیاده‌سازی می‌کنند، با جهش و مرز در حال توسعه هستند. یکی از این فریم‌ورک‌ها که به شما امکان می‌دهد با استفاده از HTML، جاوا اسکریپت و CSS آشنا، اپلیکیشن‌هایی را برای گوشی‌های هوشمند توسعه دهید، PhoneGap است. برنامه ای که با کمک آن نوشته شده است برای همه پلتفرم های محبوب مناسب است: iOS، Android، Windows Phone، Blackberry، WebOS، Symbian و Bada. شما نیازی به یادگیری ویژگی های برنامه نویسی برای هر پلتفرم (به عنوان مثال Objective-C در مورد iOS) ندارید یا با API های مختلف و محیط های توسعه سر و کار دارید. تنها چیزی که برای ایجاد یک اپلیکیشن موبایلی چند پلتفرمی نیاز دارید، دانش HTML5 و یک API ویژه PhoneGap است. در این حالت، خروجی یک صفحه HTML احمقانه "فریم شده" در رابط برنامه نخواهد بود، نه! API این چارچوب به شما امکان می دهد تقریباً از تمام قابلیت های تلفن استفاده کنید که هنگام توسعه با استفاده از ابزارهای بومی استفاده می شود: دسترسی به شتاب سنج، قطب نما، دوربین (ضبط فیلم و عکاسی)، لیست مخاطبین، سیستم فایل، سیستم اعلان (اعلان های استاندارد روی تلفن) ، ذخیره سازی، و غیره و غیره در نهایت، چنین برنامه ای می تواند به طور یکپارچه به هر آدرس بین دامنه ای دسترسی داشته باشد. می‌توانید کنترل‌های بومی را با استفاده از فریم‌ورک‌هایی مانند jQuery Mobile یا Sencha دوباره ایجاد کنید، و برنامه نهایی به نظر می‌رسد که به یک زبان مادری (یا تقریباً همینطور) روی تلفن همراه نوشته شده است. بهتر است موارد بالا را در عمل نشان دهید، یعنی یک برنامه بنویسید، بنابراین پیشنهاد می کنم بلافاصله تمرین را شروع کنید. زمان را پیگیری کنید - انجام همه کارها به سختی بیش از نیم ساعت طول می کشد.

چه چیزی ایجاد خواهیم کرد

بیایید iOS را به عنوان پلتفرم هدف در نظر بگیریم - بله، بله، پول در AppStore است و در حال حاضر بهتر است از پیشرفت‌های خود در آنجا کسب درآمد کنید :). اما اجازه دهید فوراً آن را روشن کنم: همین کار، بدون تغییر، مثلاً برای اندروید قابل انجام است. مدت‌ها فکر کردم که کدام مثال را در نظر بگیرم، زیرا نمی‌خواستم ابزار دیگری برای پیگیری فهرست کارها بنویسم. بنابراین تصمیم گرفتم اپلیکیشنی به نام «Georemembrance» ایجاد کنم، یک برنامه ناوبری که هدف آن را می توان در یک عبارت توصیف کرد: «وقتی دوباره اینجا آمدم به من اطلاع دهید». AppStore ابزارهای بسیاری دارد که به شما امکان می دهد مکانی را که کاربر ماشین را در آن پارک کرده است "به خاطر بیاورید". تقریباً همین است، فقط کمی ساده تر. می توانید به نقطه ای از نقشه شهر اشاره کنید، شعاع خاصی را برای آن تعیین کنید و پیامی را برنامه ریزی کنید. دفعه بعد که داخل دایره با شعاع مشخص شده قرار می گیرید، اپلیکیشن به شما اطلاع می دهد و نقطه حذف می شود. طبق این طرح پیش می رویم: ابتدا یک برنامه وب ساده ایجاد می کنیم، آن را در مرورگر آزمایش می کنیم و سپس با استفاده از PhoneGap آن را به پلتفرم iOS منتقل می کنیم. نمونه سازی و آزمایش بخش عمده ای از کد در یک مرورگر در رایانه بسیار مهم است، زیرا اشکال زدایی یک برنامه در تلفن بسیار دشوارتر است. ما از چارچوب jQuery JS با jQuery Mobile (jquerymobile.com) به عنوان فریمورک و Google Maps v3 به عنوان موتور نقشه استفاده خواهیم کرد. برنامه شامل دو صفحه خواهد بود: یک نقشه و یک لیست از نقاط.

  • نشانگر موقعیت فعلی شما روی نقشه قرار می گیرد. با کلیک بر روی نقشه، نقطه ای ایجاد می شود که پیامی به آن ضمیمه می شود (مانند ماشین در نزدیکی). یک نقطه را می توان با کلیک بر روی آن حذف کرد. برای جابجایی نشانگر شخص روی نقشه، از API geonavigation استفاده می شود.
  • در صفحه دارای لیست نقاط باید یک دکمه اضافی "حذف همه نقاط" و در کنار هر نقطه باید دکمه "حذف این نقطه" وجود داشته باشد. اگر روی عنصری در لیست کلیک کنید، نقطه مربوطه روی نقشه نمایش داده می شود. تنظیمات کاربر و لیست نقاط را در localStorage ذخیره می کنیم.

چارچوب های رابط کاربری

جی کوئری موبایل البته تنها چارچوبی برای ایجاد رابط موبایل نیست. وب سایت PhoneGap فهرست عظیمی از کتابخانه ها و چارچوب هایی دارد که می توانید از آنها استفاده کنید (phonegap.com/tools): Sencha Touch، Impact، Dojo Mobile، Zepto.js و غیره.

چارچوب برنامه

من بلافاصله توضیح خواهم داد که چرا از jQuery Mobile استفاده خواهیم کرد. این کتابخانه JS عناصر رابط برنامه تلفن همراه آماده (تا حد امکان نزدیک به موارد بومی) را برای پلتفرم های مختلف در اختیار ما قرار می دهد. ما نیاز داریم که خروجی یک برنامه موبایل باشد و نه صفحه ای از یک مرورگر! بنابراین آخرین نسخه JQuery Mobile (jquerymobile.com/download) را دانلود کنید و اولین فایل های کاربردی مورد نیاز خود را به پوشه کاری انتقال دهید:

  • images/ (تمام تصاویر را از پوشه آرشیو jq-mobile به همین نام به اینجا منتقل کنید)؛
  • index.css;
  • index.html;
  • index.js;
  • jquery.js;
  • jquery.mobile.min.css;
  • jquery.mobile.min.js.

باید منابع را بیشتر محلی کرد تا کاربر اینترنت موبایل را در آینده هدر ندهد. حالا چارچوب صفحه را در فایل index.html ایجاد می کنیم. کد زیر بالای صفحه را با یک نقشه، کتیبه "یادآوری جغرافیایی" و دکمه "نقاط" توصیف می کند.

صفحه نقشه

Georemembrance

نکته ها

صفت صفحه data-dom-cache="true" برای اطمینان از تخلیه نشدن آن از حافظه ضروری است. دکمه Points از data-transition="pop" استفاده می‌کند تا صفحه فهرست نقاط با جلوه Pop-in باز شود. می توانید اطلاعات بیشتری در مورد چگونگی ساختار صفحات jQuery Mobile در یک کتابچه راهنمای خوب (bit.ly/vtXX3M) بخوانید. بر اساس قیاس، ما یک صفحه با لیستی از نکات ایجاد می کنیم:

صفحه فهرست نقاط

همه چیز را حذف کنید

نکته ها

نقشه

برای دکمه «نقشه»، data-transition="pop" را نیز می نویسیم، اما ویژگی data-direction="reverse" را اضافه می کنیم تا صفحه "Map" با افکت "Fade" باز شود. همین ویژگی ها را در قالب پوینت می نویسیم. همین، قاب ما آماده است.

ایجاد یک اپلیکیشن

اکنون باید نقشه را نمایش دهیم که برای آن از API استاندارد Google Maps استفاده می کنیم که توسط میلیون ها سایت مختلف استفاده می شود:

Var latLng = gm.LatLng جدید (this.options.lat, this.options.lng); this.map = new gm.Map(element، ( بزرگنمایی: this.options.zoom، // انتخاب مرکز بزرگنمایی اولیه: latLng، // تنظیم مرکز اولیه mapTypeId: gm.MapTypeId.ROADMAP، // نقشه عادی disableDoubleClickZoom: true، // غیرفعال کردن بزرگنمایی خودکار با ضربه زدن/دبل کلیک بر روی disableDefaultUI: true // غیرفعال کردن همه عناصر رابط ));

در اینجا Gm متغیری است که به شیء نقشه های گوگل ارجاع می دهد. من پارامترهای اولیه را به خوبی در کد توضیح دادم. مرحله بعدی ترسیم یک نشانگر مرد روی نقشه است:

This.person = new gm.Marker(( map: this.map, icon: new gm.MarkerImage(PERSON_SPRITE_URL, new gm.Size(48, 48))));

آدرس شخص sprite از پانورامای Google به عنوان PERSON_SPRITE_URL استفاده می شود. آدرس استاتیک آن maps.gstatic.com/mapfiles/cb/mod_cb_scout/cb_scout_sprite_api_003.png است. کاربر با کلیک بر روی نقشه امتیاز اضافه می کند، بنابراین برای ترسیم آنها به رویداد کلیک گوش می دهیم:

Gm.event.addListener(this.map، "click"، تابع (رویداد) (self.requestMessage(function (err, message) ( // روشی که در صورت بازگشت (err) متن وارد شده توسط کاربر را برمی گرداند؛ // روش یک نقطه به لیست فعال اضافه می کند و // آن را روی نقشه می کشد self.addPoint(event.latLng, self.options.radius, message); self.updatePointsList(); // لیست نقاط را دوباره ترسیم کنید)؛ ) نادرست)؛

من بیشتر کدها را ارائه می کنم - بقیه کدها را روی دیسک جستجو کنید. در ادامه باید به اپلیکیشن آموزش دهیم که نماد کاربر را روی نقشه جابجا کند. در نمونه اولیه، از Geolocation API استفاده می‌کنیم (که در مرورگرهای دسکتاپ نیز استفاده می‌شود):

If (navigator.geolocation) ( // بررسی کنید که آیا مرورگر از تابع موقعیت جغرافیایی gpsSuccess(pos) پشتیبانی می کند ( var lat، lng؛ if (pos.coords) ( lat = pos.coords.latitude؛ lng = pos.coords. طول جغرافیایی؛ ) else ( lat = pos.latitude; lng = pos.longitude; ) self.movePerson(new gm.LatLng(lat, lng)); // نماد کاربر را جابجا کنید ) // هر سه ثانیه ما موقعیت // فعلی را درخواست می کنیم کاربر window.setInterval (تابع () ( // درخواست موقعیت فعلی navigator.geolocation.getCurrentPosition(gpsSuccess, $.noop, ( enableHighAccuracy: true, maximumAge: 300000 )); ), 3000)؛ )

متد movePerson از یک رویه getPointsInBounds() ساده برای بررسی اینکه آیا کاربر در نقطه‌ای فعال است استفاده می‌کند. آخرین سوال - لیست امتیازات را کجا ذخیره کنیم؟ HTML5 توانایی استفاده از localStorage را معرفی کرد، پس بیایید از آن غافل نشویم (من شما را وادار می‌کنم که خودتان این بخش‌های کد را کشف کنید، که من به خوبی در مورد آن نظر داده‌ام). بنابراین، برنامه در حال اجرا در مرورگر آماده است!

راه اندازی وب اپلیکیشن

همانطور که قبلاً گفتم، اشکال زدایی بیشتر باید در رایانه انجام شود. مناسب ترین مرورگر برای آزمایش برنامه های کاربردی وب در رایانه، سافاری یا کروم است. پس از رفع اشکال در این مرورگرها، می توانید مطمئن باشید که برنامه شما در مرورگر تلفن همراه کار نمی کند. هر دوی این مرورگرها با اکثر مرورگرهای وب موبایل سازگار هستند زیرا درست مانند آنها بر روی موتور WebKit ساخته شده اند. پس از رفع تمامی باگ ها، می توانید اقدام به راه اندازی وب اپلیکیشن موبایل به طور مستقیم بر روی گوشی خود کنید. برای این کار وب سرور خود (حتی Denwer یا XAMPP) را طوری پیکربندی کنید که صفحه ایجاد شده را ارائه دهد و آن را در مرورگر تلفن همراه خود باز کنید. برنامه باید چیزی شبیه به چیزی باشد که در شکل نشان داده شده است. درک این نکته مهم است که برنامه تلفن همراه آینده که برای پلت فرم تلفن همراه با استفاده از PhoneGap کامپایل شده است تقریباً یکسان به نظر می رسد، با این تفاوت که نوار ناوبری مرورگر روی صفحه نمایش داده نمی شود. اگر همه چیز خوب است، می توانید شروع به ایجاد یک برنامه کامل iOS از صفحه کنید. لطفاً توجه داشته باشید که تا این لحظه حتی PhoneGap و IDE توسعه موبایل را لمس نکرده ایم.

آماده سازی

برای ساختن یک اپلیکیشن برای iOS، به یک کامپیوتر با سیستم عامل Mac OS 10.6+ (یا یک ماشین مجازی در Mac OS 10.6) و همچنین محیط توسعه Xcode با iOS SDK نصب شده نیاز دارید. اگر SDK را نصب نکرده‌اید، باید یک تصویر دیسک را از وب‌سایت اپل دانلود کنید که شامل Xcode و iOS SDK است (developer.apple.com/devcenter/ios/index.action). به خاطر داشته باشید که وزن تصویر حدود 4 گیگابایت است. علاوه بر این، باید در وب سایت اپل به عنوان یک توسعه دهنده ثبت نام کنید (اگر نمی خواهید برنامه خود را در AppStore منتشر کنید، می توان از این شرط عبور کرد). با استفاده از این مجموعه می توانید برنامه هایی را به زبان مادری iOS Objective-C توسعه دهید. اما ما تصمیم گرفتیم راه حلی را در پیش بگیریم و از PhoneGap استفاده کنیم، بنابراین هنوز باید بسته PhoneGap iOS را نصب کنیم. فقط آرشیو را از سایت خارج از سایت (https://github.com/callback/phonegap/zipball/1.2.0) دانلود کنید، آن را از بسته بندی خارج کرده و نصب کننده را در پوشه iOS اجرا کنید. هنگامی که نصب کامل شد، نماد PhoneGap باید در منوی پروژه های Xcode ظاهر شود. پس از راه اندازی، باید چندین فرم را پر کنید، اما به زودی با اولین برنامه خود فضای کاری IDE را خواهید دید. برای بررسی اینکه آیا همه چیز کار می کند، روی دکمه Run کلیک کنید - شبیه ساز iPhone/iPad با برنامه قالب PhoneGap باید شروع شود. برنامه مونتاژ شده خطایی ایجاد می کند که index.html پیدا نشد - این طبیعی است. پوشه ای را که فایل های پروژه اولیه را در آن ذخیره کرده اید باز کنید و زیرپوشه www را در آن پیدا کنید. آن را به ویرایشگر بکشید، روی نماد برنامه در لیست سمت چپ کلیک کنید و در پنجره ای که ظاهر می شود، «ایجاد مراجع پوشه برای هر پوشه اضافه شده» را انتخاب کنید. اگر دوباره برنامه را اجرا کنید، همه چیز باید کار کند. اکنون می توانیم تمام فایل های نمونه اولیه خود را در پوشه www کپی کنیم. زمان آن رسیده است که نمونه اولیه خود را برای کار بر روی تلفن هوشمند با استفاده از پردازش PhoneGap تغییر دهیم.

انتقال نمونه اولیه

اول از همه، باید phonegap-1.2.0.js را در فایل فهرست خود قرار دهید. PhoneGap به شما امکان می دهد لیست میزبان های موجود برای بازدید را محدود کنید. من پیشنهاد می کنم فوراً چنین "لیست سفید" را تنظیم کنید. در منوی پروژه، Supporting Files/PhoneGap.plist را باز کنید، مورد ExternalHosts را پیدا کنید و میزبان های زیر را که برنامه ما به آنها دسترسی خواهد داشت (اینها سرورهای Google Maps هستند) به آن اضافه کنید: *.gstatic.com، *.googleapis.com، maps .google. com. اگر آنها را مشخص نکنید، برنامه یک هشدار در کنسول نمایش می دهد و نقشه نمایش داده نمی شود. برای مقداردهی اولیه نسخه وب برنامه ما، از رویداد DOMReady یا کمک کننده jQuery استفاده کردیم: $(document).ready(). PhoneGap یک رویداد deviceready ایجاد می کند که نشان می دهد دستگاه تلفن همراه آماده است. پیشنهاد می کنم از این استفاده کنید:

Document.addEventListener("deviceready", function () ( new Notificator($("#map-canvas")); // اگر کاربر اینترنت ندارد، // اگر (navigator.network.connection) به او اطلاع دهید. type = == Connection.NONE) ( navigator.notification.alert("بدون اتصال به اینترنت"، $.noop، TITLE); ) ), false);
اجازه دهید از پیمایش جلوگیری کنیم: document.addEventListener("touchmove", function (event) ( event.preventDefault(); ), false);

سپس همه هشدارها و تماس‌ها را با تماس‌های بومی که PhoneGap در اختیار ما قرار می‌دهد جایگزین می‌کنیم:

Navigator.notification.confirm("Remove point?", function (button_id) ( if (button_id === 1) ( // دکمه OK فشار داده شود self.removePoint(point); ) ), TITLE);

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

Navigator.geolocation.watchPosition(function (موقعیت) (self.movePerson(gm.LatLng جدید(position.coords.latitude، position.coords.طول جغرافیایی)); )، تابع (خطا) (navigator.notification.alert("code: " + error.code + "\nmessage: " + error.message, $.noop, TITLE); ), ( فرکانس: 3000 ));

این کد زیباتر است - فقط زمانی یک رویداد ایجاد می کند که مختصات تغییر کرده باشد. روی دکمه Run کلیک کنید و مطمئن شوید که اپلیکیشنی که ایجاد کردیم در شبیه ساز دستگاه iOS به خوبی کار می کند! زمان شروع راه اندازی در یک دستگاه واقعی است.

روی دستگاه راه اندازی شود

iPhone، iPod یا iPad خود را به رایانه ای که Xcode دارد وصل کنید. این برنامه یک دستگاه جدید را شناسایی می کند و اجازه استفاده از آن را برای توسعه می خواهد. رد کردن او فایده ای ندارد :). اجازه دهید یک بار دیگر تکرار کنم: برای اجرای یک برنامه نوشتاری در iOS، باید یک توسعه دهنده مجاز iOS باشید (به عبارت دیگر، مشترک برنامه توسعه دهنده iOS باشید). این فقط در صورتی شما را آزار می دهد که در حال توسعه برنامه های کاربردی برای محصولات اپل باشید؛ با پلتفرم های دیگر (اندروید، ویندوز فون) همه چیز بسیار ساده تر است. کسانی که در دانشگاه تحصیل می کنند به لطف برخی مزایا، فرصتی برای دسترسی رایگان به این برنامه دارند. هر کس دیگری باید 99 دلار در سال برای شرکت در برنامه بپردازد. اپل گواهی صادر می کند که با آن می توانید کد خود را امضا کنید. برنامه امضا شده مجاز است در iOS راه اندازی شود و در اپ استور توزیع شود. اگر دانش آموز نیستید و هنوز برای آزمایش های بی گناه 99 دلار متاسفید، راه دیگری وجود دارد - فریب دادن سیستم. می‌توانید یک گواهی امضاشده برای تأیید کد ایجاد کنید و برنامه تلفن همراه را روی یک دستگاه iOS جیلبریک شده اجرا کنید (من در این مورد کوتاه نمی‌مانم، زیرا همه چیز تا حد امکان با جزئیات در این مقاله توضیح داده شده است: bit.ly/tD6xAf) . به هر حال، به زودی یک برنامه کاربردی را بر روی صفحه نمایش تلفن همراه خود خواهید دید. کرونومتر را متوقف کنید. برای شما چقدر طول کشید؟

پلتفرم های دیگر

علاوه بر PhoneGap، پلتفرم‌های دیگری نیز وجود دارند که به شما امکان می‌دهند بدون استفاده از زبان‌های مادری، اپلیکیشن‌های موبایل ایجاد کنید. بیایید باحال ترین بازیکنان را فهرست کنیم.

Appcelerator Titanium (www.appcelerator.com).

تیتانیوم می تواند برنامه های کاربردی را در درجه اول برای اندروید و آیفون بسازد، اما همچنین ادعا می کند که از بلک بری پشتیبانی می کند. علاوه بر خود چارچوب، این پروژه مجموعه ای از ویجت های بومی و IDE را ارائه می دهد. شما می توانید برنامه های کاربردی را به صورت رایگان در Titanium توسعه دهید، اما باید برای پشتیبانی و ماژول های اضافی (از 49 دلار در ماه) هزینه کنید. قیمت برخی از ماژول های شخص ثالث به 120 دلار در سال می رسد. توسعه دهندگان Appcelerator Titanium ادعا می کنند که بیش از 25 هزار برنامه بر اساس چارچوب آنها نوشته شده است. کد منبع پروژه تحت مجوز آپاچی 2 توزیع شده است.

Corona SDK (www.anscamobile.com/corona).

این فناوری از سیستم عامل های اصلی - iOS و Android پشتیبانی می کند. هدف اصلی این چارچوب، توسعه بازی است. البته، توسعه دهندگان ادعا می کنند بهینه سازی با کیفیت بالا در OpenGL. این پلتفرم نسخه رایگان ندارد و قیمت آن بسیار بالاست: 199 دلار در سال برای مجوز برای یک پلتفرم و 349 دلار در سال برای iOS و Android. Corona IDE و شبیه سازهای دستگاه خود را ارائه می دهد. برنامه های Corona به زبانی مشابه جاوا اسکریپت نوشته می شوند.

نتیجه

ما یک برنامه وب ساده برای موبایل ایجاد کردیم و آن را با استفاده از PhoneGap در چند مرحله ساده به پلتفرم iOS منتقل کردیم. ما حتی یک خط کد Objective-C ننوشتیم، اما برنامه ای با کیفیت مناسب دریافت کردیم که حداقل زمان را برای انتقال و یادگیری PhoneGap API اختصاص دادیم. اگر پلتفرم دیگری، به عنوان مثال اندروید یا ویندوز موبایل 7 را ترجیح می دهید، می توانید به همین راحتی، بدون هیچ تغییری برای این پلتفرم ها، اپلیکیشن ما را بسازید (برای هر یک از آنها یک راهنمای مقدماتی و آموزش تصویری خوب وجود دارد: phonegap.com/ شروع). برای بررسی قابلیت زنده بودن پلتفرم، می‌توانید به برنامه‌های آماده در PhoneGap نگاه کنید، که توسعه‌دهندگان فناوری آن‌ها را در یک گالری ویژه (phonegap.com/apps) جمع‌آوری کرده‌اند. در واقع، PhoneGap یک پلت فرم ایده آل برای ایجاد حداقل یک نمونه اولیه از یک برنامه آینده است. مزیت اصلی آن سرعت و حداقل هزینه است که به طور فعال توسط استارتاپ هایی که از همه لحاظ منابع محدودی دارند استفاده می شود. اگر برنامه از کار افتاد و به دلایلی دیگر از داخلی های HTML+JS راضی نیستید، همیشه می توانید برنامه را به یک زبان مادری پورت کنید. نمی‌توانم بگویم که PhoneGap در ابتدا توسط Nitobi به عنوان یک پروژه منبع باز توسعه داده شد (مخزن در GitHub قرار دارد: github.com/phonegap). کد منبع همچنان باز باقی خواهد ماند، اگرچه Adobe در اکتبر گذشته Nitobi را خریداری کرد. باید بگویم پروژه با حمایت چنین غولی چه چشم اندازی دارد؟

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