Якою мовою програмують для андроїд. Програмування під Android: як почати створювати свої програми та ігри? Інструменти для розробки

При зміні новин Ви отримаєте повідомлення на E-mail та в ЛЗ.

Вже підписалися: 2

Як навчитися створювати програми на Android?По-перше, Вам необхідно освоїти мову Java, оскільки програми для Android пишуться саме цією мовою. Далі у Вас є різні шляхи: записатися на офлайн-курси, що дорого і, як на мене, марно, плюс дуже незручно. Також можна звернутися до репетитора, що ще дорожче, так само не дуже незручно, але, щоправда, набагато ефективніше. Ще можна читати багато книг, шукати інформацію в Інтернеті. І, на мій погляд, цей спосіб вже на порядок кращий за попередні, але він займає, на жаль, дуже багато часу. В принципі, я якраз і навчався у такий спосіб. Головна проблема, з якою я стикався, – це застарілий код. Переважна більшість навчальних статей для Android написана ще в 2011-2012 роках. І якщо деякі ще актуальні, то частина просто застаріла так, що, в принципі, не працюють. Далі знову потрібно шукати свіжішу інформацію, причому дуже бажано знати англійську мову, щоб знайти правильний варіант вирішення того чи іншого завдання. Така сама проблема і в книг, оскільки з моменту написання книги і до її публікації проходить часто не один рік, а це, нехай і не критично (як помилково думає більшість), але все-таки серйозно впливає на актуальність.

Тому найкращим способом я вважаю відеонавчання, спираючись на такі факти:

  1. Найкраща засвоюваність матеріалу. Ви бачите, як автор пише та коментує код, запускає програму, і Ви разом бачите результат. Тобто у Вас задіяні одразу і слух, і зір, що спрощує засвоєння матеріалу порівняно, наприклад, з книгами.
  2. Дивитися можна будь-якої миті. Ви не обмежені конкретною датою та часом якогось семінару в Москві, Ви не зав'язані на те, щоб жити там, де він проводиться, та ще й ходити туди. Ви можете дивитися відеокурс, де завгодно і будь-коли. Вам не потрібен для цього постійний Інтернет, як, наприклад, для навчання за статтями в Інтернеті.
  3. Висока швидкість навчання. За рахунок того, що Ви отримуєте все і відразу в одному місці, плюс Ви ще швидко все засвоюєте.
  4. Бюджетний варіант. Ціна відеокурсу – це пара годин занять із середнім репетитором, або кілька занять в офлайні, за які Ви дізнаєтесь замало. Взагалі, програмування – це те, чому варто навчатися в аудиторіях.
  5. Набагато цікавіше. Це, можливо, суб'єктивно, але особисто я і, певен, більшість людей вважає за краще не читати, а саме дивитися. Для мене, наприклад, відеоуроки з цікавої для мене теми набагато цікавіші за будь-який фільм. І думаю, що для багатьох із Вас це так само.

Курс складається з 16-ти розділів:

  • Розділ №1. Вступ.
    • Як правильно проходити курс?
    • Як встановити Android Studio та, головне, як правильно його налаштувати.
    • Як встановити емулятор Android, щоб Вам не довелося постійно завантажувати програму на свій пристрій.
    • Після цього розділу у Вас буде повністю готове та налаштоване середовище для розробки програм на Android.
  • Розділ №2. Основи програмування на Android
    • Як пишеться найпростіший додаток Hello World.
    • Яка структура проекту? Це дуже важливий урок, у якому Ви дізнаєтесь про призначення всіх файлів і папок у проекті.
    • Як запустити програму на реальному смартфоні або планшеті. Ви побачите, які дії потрібно зробити на телефоні, як правильно його підключити до комп'ютера і як завантажити програму на сам пристрій.
    • Для чого потрібний файл AndroidManifest.xml та як його використовувати.
    • Пройшовши цей розділ, Ви зможете вже створювати свої перші програми.
  • Розділ №3. Основи інтерфейсу програм.
    • Ви дізнаєтеся, що таке файли Layout та як їх використовувати.
    • Ви дізнаєтесь, як задавати розміри елементів та як їх позиціонувати на екрані пристрою.
    • Ви навчитеся створювати прості інтерфейси користувача.
    • Ви дізнаєтесь, як обробляти події (наприклад, клік по кнопці).
    • Ви навчитеся створювати багатосторінкові програми.
    • Ви навчитеся працювати з ресурсами.
    • Переглянувши цей розділ, Ви зможете створювати відносно складні програми, які активно взаємодіють з користувачем.
  • Розділ №4. Менеджери компонування.
    • Ви навчитеся працювати з різними менеджерами компонування: LinearLayout, TableLayout, FrameLayout, RelativeLayout, ConstraintLayout, ScrollView, GridLayout.
    • Ви дізнаєтесь, як програмно створювати та використовувати менеджери компонування.
    • Ви навчитеся поєднувати різні менеджери компонування разом.
    • Після цього розділу Ви зможете створювати інтерфейси будь-якої складності.
  • Розділ №5. Компоненти
    • Ви навчитеся використовувати різні компоненти: текстові мітки, текстові поля, кнопки, чекбокси, радіо-кнопки, списки, компоненти для вибору дати і часу, повзунки, спливаючі повідомлення.
    • Ви дізнаєтесь, як створюються та як використовуються списки в програмі.
    • Після цього розділу Ви зможете використовувати різні компоненти у своїх додатках. Починаючи з цього моменту, Ви вже в змозі створювати складні проекти, тому що Ви знатимете: як створюється інтерфейс, як відбувається взаємодія з користувачем і як виводиться інформація на екран.
  • Розділ №6. Меню.
    • Як створювати меню, підменю, чекбоси та радіо-кнопки в меню.
    • Як обробляються натискання на різні види пунктів меню.
    • Після цього розділу Ви зможете у своїх додатках створювати та використовувати найрізноманітніші види меню.
  • Розділ №7. Діалогові вікна.
    • Які базові діалогові вікна вже вбудовані в Android та як їх використовувати.
    • Як утворюються свої діалогові вікна.
    • Як обробляти дії користувача з діалоговим вікном
    • Вивчивши цей розділ, Ви зможете використовувати у своїх додатках різні діалогові вікна.
  • Розділ №8. Дизайн програми.
    • Що таке стилі та як їх використовувати.
    • Що таке теми і чому вони такі важливі та зручні.
    • Цей розділ допоможе Вам створювати різні дизайнерські версії програми та змінювати дизайн всієї програми буквально одним кліком.
  • Розділ №9. Робота з Activity та Service.
    • Які є методи зворотних дзвінків у Activity.
    • Що таке об'єкт Intent та як його використовувати.
    • Що таке Intent-фільтри та як їх можна застосовувати.
    • Як передавати дані з одного Activity до іншого.
    • Що таке обслуговування.
    • Як створити сервіс
    • Як виводити повідомлення.
    • Цей розділ дійсно важливий, і після нього Ви зможете створювати по-справжньому складні функціональні програми: з фоновими процесами, з безліччю Activity, які обмінюються даними між собою.
  • Розділ №10. Фрагменти.
    • Що таке фрагменти і навіщо вони потрібні.
    • Як відбувається обмін даними між фрагментами
    • Які є методи зворотних дзвінків у фрагментів.
    • Як зробити перегортання сторінок за допомогою ViewPager.
    • Пройшовши цей розділ, Ви зможете робити Ваші програми більш ефективними за допомогою фрагментів.
  • Розділ №11. Робота з мультимедіа.
    • Як працювати із зображеннями.
    • Як працювати з аудіо.
    • Як працювати з відео.
    • Що таке SoundPool та як його використовувати.
    • Пройшовши цей розділ, Ви зможете використовувати у своїх програмах мультимедіа.
  • Розділ №12. Збереження даних.
    • Записувати інформацію у файл.
    • Зчитувати інформацію із файлу.
    • Зберігати та завантажувати установки програми.
    • Після цього розділу Ви зможете працювати з файлами в Android, а також навчитеся зберігати різні налаштування користувача та службову інформацію навіть при виході користувачем з програми.
  • Розділ №13. Телефонні дзвінки та SMS.
    • Як здійснювати дзвінок прямо з вашої програми.
    • Як надіслати SMS із Вашої програми.
    • Як перехопити SMS, що входить.
    • Як отримати доступ до SMS пристрою та прочитати їх.
    • Як працювати з контактами у телефонній книзі пристрою.
    • Як правильно вимагати дозвіл на доступ до цих функцій у користувача, тому що за замовчуванням вони, зрозуміло, заборонені.
    • Переглянувши цей розділ, Ви зможете створювати програми, що взаємодіють із телефонними функціями пристрою.
  • Розділ №14. Малювання в Android.
    • Як взагалі відбувається малювання в Android.
    • Як малювати та позиціонувати фігури.
    • Як малювати складні постаті.
    • Що таке Matrix-перетворення та як їх використовувати.
    • Що таке Bitmap?
    • Що таке Drawable, як його створювати та використовувати.
    • Як намалювати власний компонент (наприклад, свою кнопку).
    • Як зробити анімацію компонентів (наприклад, плавна поява, зникнення, переміщення, розгортання тощо).
    • Як зробити анімацію зображень.
    • Після цього розділу Ви зможете створювати красиві та стильні програми.
  • Розділ №15. Робота з Інтернетом.
    • Ви дізнаєтесь, як отримати дані з URL.
    • Ви дізнаєтесь, що таке JSON та як з ним працювати.
    • Ви побачите приклад парсингу даних про поточну погоду за гео-координатами, отриманими за API стороннього сервісу, та виведення їх на екран.
    • Дуже важливий розділ, який дозволить Вам створювати програми, що взаємодіють із API будь-яких Інтернет-сервісів.
  • Розділ №16. Багатопотокове програмування в Android.
    • Ви дізнаєтеся, як створюються багатопотокові програми в Android.
    • Ви дізнаєтесь, як використовувати клас AsyncTask і для чого він потрібний.
    • Ви побачите, як створюється таймер зворотного відліку.
    • Ви дізнаєтесь, як змусити телефон вібрувати та як налаштувати шаблон вібрування.
    • Після цього розділу Ви зможете створювати багатопотокові програми в Android. Це дуже важливий розділ, оскільки обробка дій користувача, якийсь фоновий службовий потік, якийсь таймер зворотного відліку, секундомір, годинник – все це має працювати в різних потоках. І ось створенню різних потоків з різними цілями і завданнями Ви навчитеся в цьому розділі.


БонусиКурс і так вийшов дуже об'ємним, але крім самого курсу разом з ним Ви також отримаєте ще й кілька безкоштовних Бонусів. Весь вихідний код із Бонусів, безумовно, додається до курсу.

  • Бонус №1 Створення віджету.Упевнений, що багато хто з Вас знає, що таке віджет. Але для тих, хто не знає, коротко поясню, що віджет – це невелика програма, що знаходиться на робочому столі. Там може бути, наприклад, баланс Вашого банківського рахунку, відомості про погоду, список справ на сьогодні тощо. І в цьому Бонусі, що складається з 5-ти уроків, Ви навчитеся:
    • Створювати віджет.
    • Приймати налаштування від користувача.
    • Обробляти натискання на віджеті.
    • Оновлювати інформацію у віджеті.
    • Створювати повноцінні віджети з нуля на прикладі погодного віджету.
  • Бонус №2. OpenGL та 3D-малювання.Дуже складний матеріал, але дуже корисний для тих, хто планує створювати графічні програми, наприклад, ігри. Цей Бонус складається з 11 уроків, у яких:
    • Ви ознайомитеся з OpenGL.
    • Ви дізнаєтесь, що таке шейдери.
    • Ви дізнаєтесь, як малюються фігури на OpenGL.
    • Ви дізнаєтеся, як працювати з кольором OpenGL.
    • Ви дізнаєтесь, як створюються 3D зображення.
    • Ви дізнаєтеся, як усунути спотворення при різних орієнтаціях екрана.
    • Ви дізнаєтесь, як працювати з камерою.
    • Ви дізнаєтесь, як зробити анімацію камери.
    • Ви дізнаєтесь, як застосовуються трансформації.
    • Ви дізнаєтесь, як текстурувати об'єкт.
    • Ви побачите приклад створення текстурованого 3D-об'єкта з камерою, що обертається.
  • Бонус №3 Створення програми Vision.Цей додаток я написав колись для себе, але вважаю, що він буде корисним для всіх, хто багато працює за комп'ютером і при цьому хоче зберегти свій зір. Суть його полягає в тому, щоб через рівні проміжки часу робити перерви. Наприклад, 50 хвилин за комп'ютером та 10 хвилин перерва. Після кожного інтервалу телефон повинен сигналізувати про те, що час за комп'ютер або час робити перерву. Зрозуміло, у функціях цієї програми цей час має налаштовуватися. Також у цьому додатку має бути реалізовано безліч дрібних нюансів: скидання таймера, діалогові вікна, робота таймера при закритті програми та багато іншого. Так ось ця програма, яку я сам особисто використовую і раджу її використовувати і Вам, у цьому Бонусі ми з Вами створимо. Сам Бонус складається з 10 уроків, у яких Ви побачите:
    • Як створюється головний дисплей.
    • Як створюється екран із налаштуваннями.
    • Як додається підтримка альбомної орієнтації.
    • Як відбувається обробка та збереження налаштувань.
    • Як робиться годинник.
    • Як створюється таймер зворотного відліку.
    • Як виводиться та обробляється діалогове вікно.
    • Як додається вібродзвінок та аудіо-сигнал.
    • Як робиться клавіша зміни режиму роботи таймера.
    • Як робиться кнопка скидання таймера.

Операційна система Android з кожним роком стає не лише придатною ОС для звичайних користувачів, а й потужною платформою для розробників. Що ж вдієш: Google завжди йде назустріч девелоперам, надаючи широкі можливості та потужний інструментарій, заправлений інформативною документацією.
До того ж не варто зважати на той факт, що «зелений робот» є лідером за популярністю серед мобільних операційних систем. Це говорить про те, що, програмуючи під Android, ви матимете широку аудиторію, яка згодом може принести прибуток. Загалом, Android – своєрідний «оазис» для розробників. Тому ми підготували для вас спеціальну добірку мов програмування, а також середовищ розробки для цієї ОС.
Увага, невелике повчання новачкам
: програмування на Android може спочатку здатися складним або надто монотонним Порада: попередньо розгляньте посилання на корисні документації, перш ніж братися за справу, і тоді програмування на Android не стане для вас проблемою.

Java – основний засіб для Android-розробника

Середовища розробки: Android Studio (IntelliJ IDEA) , Eclipse + плагін ADT
Підійде дляширокого спектра завдань
Java – основна мова для програмістів під Android, обов'язковий маст-хев для новачків. Основний вихідний код Android написаний саме цією мовою, так що легко зрозуміти, чому більшість вибирають саме цю мову. Програми, написані на Java, запускаються в Android за допомогою віртуальної машини ART (або Dalvik в Jelly Bean і раніше версіях Android) - аналога віртуальної машини Java, через яку у Google присутні серйозні судові позови з Oracle.


Google на даний момент офіційно підтримує досить потужне середовище розробки Android Studio, яке зібрано на основі Intellij IDEA від JetBrains. Також не варто забувати про дуже докладну документацію від Google, в якій розбирається все: від match_parent і wrap_content до конструкторів, констант та основних методів класу JavaHttpConnection обов'язково варто почитати.

Крім того, не варто забувати про Eclipse - дуже популярне середовище для Java-програмістів. З офіційним плагіном ADT від Google цей тулкіт стане потужною та легковажною зброєю у ваших руках. Але хлопці з Маунтін-В'ю ще з літа минулого року перестали підтримувати Eclipse, поступившись місцем свіжої Android Studio. Рекомендується використовувати на слабких комп'ютерах.

Необхідна документація:

С++ - потужний інструмент у руках майстра

Основні середовища розробки: Android Studio (версія 1.3 і вище), Visual Studio 2015, QtCreator
Підійде дляігрових двигунів та ресурсоємних додатків.
С++ - немолода, але дуже потужна мова програмування, яка відзначила минулого року своє тридцятиліття. Був винайдений в 1985 завдяки старанням товариша Бьорна Страуструпа і досі займає верхні позиції найпопулярніших мов програмування. «Плюси» надають повну свободу дії, обмежуючи вас лише рамками розумного.




За все існування Android було створено чимало фреймворків та засобів розробки для C++. Особливо хочеться виділити широко відомий Qt і IDE QtCreator, що дозволяють розробляти кросплатформні програми для Windows, Windows Phone, Windows RT, iOS, SailfishOS та Android (колись до цього списку входив ще й Symbian). Крім того, ви отримуєте зручну бібліотеку контейнерів, алгоритмів і шаблонів Tulip, що ввібрала все найкраще з Java і Android. Ну і, нарешті, ви отримуєте безліч різних QT-модулів для високо-і низькорівневої роботи із системою. Ваш покірний слуга кодує саме у зв'язці C++ та Qt.

Минулого року на конференції Windows: The Next Champter було приділено широку увагу досить популярному середовищу розробки Visual Studio 2015. Одним з головних нововведень стала підтримка розробки програм як під Windows Phone, так і під Android - Microsoft намагалася хоч якось збільшити кількість програм своєю ОС.

Не можна також не згадати, що офіційний Android Studio став підтримувати NDK. За допомогою NDK ви зможете використовувати під час роботи з Android графіку OpenGL. Якщо вам потрібна швидкість та ефективність – вибирайте NDK! Цей метод розробки відмінно підійде для ігрових двигунів, що вимагають великої продуктивності.

Android розробка на C або C++ може здатися більш простою ніж на Java, але, незважаючи на те, що мова пропонує вам повну свободу дій і не обмежує вас у ваших кроках, він має деякі специфічні особливості, на вивчення яких піде чимало часу - недарма C++ порівнюють з нунчаками (чудовою зброєю, яка, на жаль, вимагає величезної майстерності). Проте розробка програм під Android на C і C++ може виявитися цікавою справою.

Необхідна документація:

Інші мови

Тепер саме час розповісти про інші менш популярні, але теж цікаві мови та фреймворки для них. Однак з багатьох причин ви не зможете досягти такого успіху як з Java та C++.

Corona (LUA Script)


Підійде длястворення ігор та простих додатків
Якщо вам з якихось причин не хочеться вивчати Java або розбиратися в побудові інтерфейсу через XML, то ви можете вибрати собі це IDE. Corona - це досить легковажна середовище розробки, код в якій необхідно писати на легкому LUA (любителі Pascal гідно оцінять).

Цей тулкіт допоможе вам при написанні найпростіших 2D-ігор, для яких тут присутні бібліотеки для 2D=об'єктів, звуків, мережі та ігрового двигуна. Створені ігри працюють із OpenGL, що означає високу ефективність. Відмінно підходить для новачків, можливо, саме на ньому ви зможете створити свій перший мобільний додаток на Android!


Необхідна документація:

Adobe PhoneGap (HTML5, JavaScript, CSS)


Підійде длястворення нересурсоємних додатків
Якщо ви вже знайомі з HTML, CSS і JavaScript, як альтернативу ви можете спробувати PhoneGap. Це IDE дозволить збирати повноцінні програми, розроблені на вищезгаданих мовах програмування та розмітки.

Насправді готові програми з PhoneGap являють собою найпростіші WebView, пожвавлені за допомогою JavaScript. За допомогою різноманітних API ви зможете використовувати різний функціонал пристрою як на нативних додатках. Що цікаво – програми компілюються на сервері і потім вже доступні для використання на iOS, Android, Windows Phone, Web OS та BlackBerry OS. З такою широкою кросплатформністю розробка програм може значно прискоритися.


Необхідна документація:

Fuse (JavaScript та UX)


Підійде длястворення як простих, так і складних програм
Коли люди говорять про засоби розробки під Android, часто згадують Fuse. Цей інструмент - один із найзручніших у своєму роді, і він може представити перед розробником широкий спектр можливостей та переваг.

Основна логіка Fuse-додатків будується на JavaScript - простій і зрозумілій мові з низьким порогом входження. Інтерфейсний фундамент представляє UX-розмітка - інтуїтивно зрозуміла кожному. Ну а «плюшки» середовища дозволять вам застосовувати зміни прямо під час роботи програми на вашому пристрої або емуляторі - як у Android Studio 2.0 і вище. За допомогою Fuse розробка програм для Android може виявитися нескладною та приємною.

Необхідна документація:

Слова «під завісу»

Звичайно, ми вам показали далеко не всі існуючі на даний момент інструменти розробки. Цією статтею ми вам хотіли пояснити, що стати Android-розробником не так вже й складно, хоча це часто вимагає старанності та завзятості. Світ розробки під мобільні платформи є відкритим для вас, але пам'ятайте: перший крок завжди за вами.

Якийсь час тому офіційної IDE для Androidбув Eclipse (як стандарт де-факто для Java) з плагіном ADT. Через деякий час серед Java-програмістів почала набирати популярність IDE від JetBrains, потім для неї з'явився плагін для розробки під Android, і народ почав потихеньку переходити на неї з Eclipse.

Ще трохи пізніше Google повідомляє про те, що робитиме Android Studio на базі IDEA. І ось на підході вже друга версія Android Studio, і Eclipse згадується хіба як страшний сон:)

Android Studio- Офіційне середовище розробки під Android. По суті, Android Studio це відома Java IDE IntelliJ IDEA з плагінами.

На даний момент існують такі опції при виборі IDE для Android:

  1. Eclipse. Найпопулярніший якийсь час тому IDE для Java, зараз використовувати її для розробки під Android вкрай не рекомендується.
  2. IntelliJ IDEA. Відмінна IDE, добре підходить для Android.
  3. Android Studio. Найкраща IDE для Android. Від IDEA відрізняється дрібницями, але ці дрібниці дуже приємні і сильно полегшують нашу працю:) Саме на ній ми і зупинимося.

Перш за все, потрібно переконатися, що у вас встановлено JDK (Java Development Kit). Це обов'язковий компонент для розробки на Java, а оскільки технологія під Android ведеться на Java - то і для розробки під Android теж.

По-друге, поставте галочки "show line numbers" і "show method separators":

Перша відображатиме номери рядків ліворуч від тексту, друга — малюватиме роздільники між методами в коді.

Ці дві опції неймовірно важливі, особливо для новачків, і я не розумію, чому вони вимкнені за замовчуванням.

По-третє, налаштуйте автодоповнення. Для цього в "Case sensitive completion" виберіть "None":

Поясню чому саме так. Опція за замовчуванням передбачає спрацювання автодоповнення лише в тому випадку, якщо перша літера набрано у правильному регістрі. Опція None викликатиме автодоповнення незалежно від того, у якому регістрі ви почали набирати код.

Стандартне значення цієї опції, як і минулих двох, викликає в мене подив.

Створення першого проекту

Що ж, з налаштуванням та встановленням Android Studio ми розібралися, настав час створити наш перший проект.

У головному вікні Android Studio натисніть на « Start a new Android Studio проект«:

З'явиться нове вікно, в якому потрібно виконати кілька дій.

У першому потрібно задати ім'я програми, домен компанії (з цих двох параметрів буде створено ім'я пакета), та розташування проекту на диску:

В Android, як і Java, основним ідентифікатором програми є ім'я пакета. Якщо ви раніше працювали з Java, ви знаєте, що таке. Тим же, хто не знає, рекомендую Google, або, наприклад, ось .

Далі Android Studio запитає нас, які та яких версій SDK ми хочемо використати. Поки що нам вистачить «Phone and Tablet» SDK, версію API поставте 16 замість 15-ї, що рекомендується, оскільки API 15 вже неактуально і зовсім не поширене:

На наступному екрані запитають, які компоненти програми ми хочемо створити. Виберіть «Empty Activity»:

На наступному кроці просто натисніть Finish, нічого не змінюючи.

Після завершення цього процесу ви побачите, нарешті, свій перший проект:

Він вже цілком працездатний, але щоб його запустити, нам знадобиться емулятор Android.

Створення емулятора Android

Для створення емулятора Android нам знадобиться Android AVD Manager(AVD = Android Virtual Device). Не турбуйтеся, ставити більше нічого не потрібно. Просто натисніть на цю кнопку:

Потім на цю кнопку:

А потім просто кілька разів натисніть "Next" і, нарешті, "Finish"

Запуск Hello World

Настав час запустити наш перший проект, створений у Android Studio!

Натисніть на ось цю кнопку (або Shift-F10):

Після цього ви побачите діалог, в якому вам буде запропоновано вибрати девайс, на якому IDE має запустити зібраний додаток:

Поставте виділену стрілкою галочку та натисніть «ОК». Почнеться складання проекту, запуск емулятора, встановлення програми на емулятор і запуск програми.

На це піде деякий час (що потужніший ваш комп'ютер – тим менше часу знадобиться), оскільки емулятор – річ досить повільна, незважаючи на колосальні покращення в останні пару років.

І ось, через 1-10 хвилин (після запуску емулятора проекти, звичайно ж, будуть збиратися і запускатися швидше), ви, нарешті, побачите свій Hello World на екрані емулятора!

На цьому все, а в наступному уроці ми розглянемо.

Нові уроки додаються щодня! Щоб нічого не пропустити, підпишіться на нашу

У будь-якій справі найскладніше – це початок. Часто буває важко увійти в контекст, з чим зіткнувся і я, вирішивши розробити свій перший Android-додаток. Ця стаття для тих, хто хоче почати, але не знає з чого.

Стаття торкнеться всього циклу розробки програми. Разом ми напишемо просту гру "Хрестики-Нолики" з одним екраном (в ОС Android це називається Activity).

Відсутність досвіду розробки мовою Java не повинна стати перешкодою в освоєнні Android. Так, у прикладах не будуть використовуватись специфічні для Java конструкції (або вони будуть мінімізовані на стільки, наскільки це можливо). Якщо Ви пишете, наприклад, на PHP і знайомі з основними принципами розробки ПЗ, ця стаття буде вам найбільш корисна. У свою чергу, оскільки я не є експертом з розробки на Java, можна припустити, що вихідний код не претендує на лейбл "кращі практики розробки на Java".

Встановлення необхідних програм та утиліт

Перелічу необхідні інструменти. Їх 3:

  1. IDE з підтримкою розробки для Android:
    • Eclipse + ADT plugin;
    • IntelliJ IDEA Community Edition;
    • Netbeans + nbandroid plugin;

Утиліти встановлюються у визначеному вище порядку. Ставити всі перераховані IDE сенсу немає (хіба якщо Ви відчуваєте труднощі з вибором відповідної). Я використовую IntelliJ IDEA Community Edition, одну з найрозвиненіших на даний момент IDE для Java.

Запуск віртуального пристрою

Запустивши AVD Manager і встановивши додаткові пакети (SDK різних версій), можна розпочати створення віртуального пристрою з необхідними параметрами. Розібратися в інтерфейсі не повинно скласти труднощів.

Список пристроїв

Створення проекту

Мені завжди не терпиться приступити до роботи, мінімізуючи підготовчі заходи, до яких належить створення проекту в IDE, особливо коли проект навчальний і на продакшн не претендує.

Отже, File->New Project:

Після натискання кнопки F6 проект збереться, відкомпілюється і запуститься на віртуальному девайсі.

Структура проекту

На попередньому скріншоті видно структуру проекту. Оскільки в цій статті ми переслідуємо суто практичні цілі, зверніть увагу лише на ті папки, які будемо використовувати в процесі роботи. Це такі каталоги: gen, resі src.

В папці genзнаходяться файли, які генеруються автоматично під час складання проекту. Вручну їх міняти не можна.

Папка res призначена для зберігання ресурсів, таких як картинки, тексти (у тому числі переклади), за замовчуванням, макети (layouts).

src- це папка у якій відбуватиметься переважна більшість роботи, бо тут зберігаються файли з вихідними текстами нашої програми.

Перші рядки

Як тільки створюється Activity (екран програми), викликається метод onCreate(). IDE заповнила його 2 рядками:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
Метод setContentView (рівно this.setContentView) встановлює xml-макет для поточного екрана. Далі xml-макети називатимемо «layout», а екрани – «Activity». Layout у додатку буде наступний:

Для цієї програми ідеально підійде TableLayout. Id можна присвоїти будь-якому ресурсу. В даному випадку, TableLayout присвоєно id = main_l. За допомогою методу findViewById() можна отримати доступ до виду:
private TableLayout layout; // це властивість класу KrestikinolikiActivity public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout)

Тепер необхідно реалізувати метод buildGameField(). Для цього потрібно згенерувати поле у ​​вигляді матриці. Цим займатиметься клас Game. Спочатку потрібно створити клас Square для осередків та клас Player, об'єкти якого будуть заповнювати ці осередки.

Square.java

package com.example; public class Square ( private Player player = null; public void fill(Player player) ( this.player = player; ) public boolean isFilled() ( if (player != null) ( return true; ) return false; ) public Player getPlayer () ( return player; ) )

Player.java

package com.example; public class Player ( private String name; public Player(String name) ( this.name = name; ) public CharSequence getName() ( return (CharSequence) name; ) )

Всі класи нашої програми знаходяться у папці src.

Game.java

package com.example; public class Game ( /** * поле */ private Square field; /** * Конструктор * */ public Game() ( field = new Square; squareCount = 0; // заповнення поля for (int i = 0, l = field.length;i

Ініціалізація Game у конструкторі KrestikinolikiActivity.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // буде реалізований пізніше )

Метод будівництваGameField() класу KrestikinolikiActivity. Він динамічно додає рядки та колонки в таблицю (ігрове поле):
private Button buttons = New Button; //(....) private void buildGameField() ( Square field = game.getField(); for (int i = 0, lenI = field.length; i
У рядку 8 створюється об'єкт, який реалізує інтерфейс View.OnClickListener. Створимо вкладений клас Listener. Він буде видно тільки з Крестікінолікіактивності.
public class Listener implements View.OnClickListener ( private int x = 0; private int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick(View view) ( Button button = (Button) view; ) )
Залишилось реалізувати логіку гри.
public class Game ( /** * гравці */ private Player players; /** * поле */ private Square field; /** * розпочато гра? */ private boolean started; /** * поточний гравець */ private Player activePlayer;/** * Вважає кількість заповнених осередків */ private int filled;/** * Усього осередків */ private int squareCount; // Заповнення поля for (int i = 0, l = field.length; i

Визначення переможця

К. О. підказує, що в хрестики-нуліки вириває той, хто вибудує X або O в лінію довжиною, що дорівнює довжині поля по-вертикалі, або по-горизонталі, або по-діагоналі. Перша думка, яка спадає на думку - це написати методи для кожного випадку. Думаю, у цьому випадку добре підійде патерн Chain of Responsobility. Визначимо інтерфейс
package com.example; public interface WinnerCheckerInterface ( public Player checkWinner(); )
Оскільки Game має обов'язок виявляти переможця, він реалізує цей інтерфейс. Настав час створити віртуальних «лайнсменів», кожен із яких перевірятиме свою сторону. Всі вони реалізують інтерфейс WinnerCheckerInterface.

WinnerCheckerHorizontal.java

package com.example; public class WinnerCheckerHorizontal implements WinnerCheckerInterface ( private Game game; public WinnerCheckerHorizontal(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlay i = 0, len = field.length;

WinnerCheckerVertical.java

package com.example; public class WinnerCheckerVertical implements WinnerCheckerInterface ( private Game game; public WinnerCheckerVertical (Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlay = i = 0, len = field.length;

WinnerCheckerDiagonalLeft.java

package com.example; public class WinnerCheckerDiagonalLeft implements WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalLeft(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer ; 1; for (int i = 0, len = field.length; i

WinnerCheckerDiagonalRight.java

package com.example; public class WinnerCheckerDiagonalRight implements WinnerCheckerInterface ( private Game game; public WinnerCheckerDiagonalRight(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer ; 1; for (int i = 0, len = field.length; i
Проініціалізуємо їх у конструкторі Game:
//(....) /** * "Судді" =). Після кожного ходу вони перевірятимуть, * чи немає переможця */ private WinnerCheckerInterface winnerCheckers; //(....) public Game() ( //(....) winnerCheckers = new WinnerCheckerInterface; winnerCheckers = new WinnerCheckerHorizontal(this); winnerCheckers = new WinnerCheckerVertical(this); winnerCheckers = new WinnerCheckerDiago winnerCheckers = new WinnerCheckerDiagonalRight(this); //(....) )
Реалізація checkWinner():
public Player checkWinner() ( for (WinnerCheckerInterface winChecker: winnerCheckers) ( Player winner = winChecker.checkWinner(); if (winner != null) ( return winner; ) ) return null; )
Переможця перевіряємо після кожного ходу. Додамо код у метод onClick() класу Listener
public void onClick(View view) ( Button button = (Button) view; Game g = game; Player player = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName()) ; ) Player winner = g.checkWinner(); if (winner != null) ( gameOver(winner); ) if (g.isFieldFilled()) ( // у випадку, якщо поле заповнене gameOver(); ) )
Метод gameOver() реалізований у 2-х варіантах:
private void gameOver(Player player) ( CharSequence text = "Player \"" + player.getName() + "\" won!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); refresh(); ) private void gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); )
Для Java, gameOver(Player player) та gameOver() - різні методи. Скориставшись Builder"ом Toast.makeText, можна швидко створити та показати повідомлення. refresh() оновлює стан поля:
private void refresh() ( Square field = game.getField(); for (int i = 0, len = field.length; i

Готово! Сподіваюся, ця стаття допомогла Вам освоїтись у світі розробки під OS Android. Дякую за увагу!

Відео готової програми

Як відбувається процес розробки під Android? Виділимо кілька основ:

  • У Java файлах ви описуєте логіку програми - те, що ви хочете, щоб ваша програма виконувала.
  • У XML файлах ви розробляєте макети – зовнішній вигляд.
  • Як тільки програма буде написана, потрібно використовувати інструмент збирання для того, щоб скомпілювати всі файли і упаковати їх разом в.apk файл, який можна запускати на пристроях Android та/або опублікувати в Google Play.
  • Всі утиліти та файли, які використовуються для створення програми під Android, об'єднані в інтегроване середовище розробки (IDE). IDE – це програма, яку ви відкриєте для редагування ваших файлів коду, а також компіляції та запуску.
  • Раніше стандартною IDE для розробки під Android була Eclipse, але зараз її замінила функціональніша Android Studio — продукт компанії Google.

Ви, звичайно ж, знайдете більш глибокі процеси, що відбуваються за лаштунками перерахованих вище кроків. Наприклад, просунуті користувачі захочуть дізнатися про роль віртуальної машини Dalvik. Наприкінці статті будуть перераховані посилання на корисні ресурси, з якими має бути знайомий кожен Android розробник. Першою з них є офіційна документація від Google.

  • Завантажимо та встановимо Android Studio.
  • Дізнаємося про запуск та тестування програм на пристроях та емуляторах Android.
  • Створимо простий додаток на Android, який виводить напис Hello World на екран мобільного пристрою.

Наприкінці статті ви можете ознайомитися з корисними рекомендаціями розробникам-початківцям від компанії.

Встановлення середовища розробки Android Studio

Почати читати документацію і писати код щоб дізнатися на що здатна платформа - це дійсно привабливо. І ми скоро це зробимо! Однак для початку роботи з платформою Android необхідно налаштувати середовище розробки.

Новачкам у програмуванні під Андроїд особливо важливо не поспішати і методично слідувати кожному кроці. Навіть якщо ви виконуєте кроки правильно, може знадобитися усунути невелику проблему з настроюванням середовища в залежності від конфігурації вашої системи або версії продукту. Для цього використовуйте пошукові послуги. Особливо можна виділити ресурс StackOverflow.

Важливо не допустити, щоб будь-які підводні камені перешкоджали вашій кінцевій меті - навчитися програмування Android. Відомо, що навіть професіонали іноді мають певні проблеми з налаштуванням робочого оточення. У таких випадках буває важливим є знання командного рядка. Якщо ви хочете краще ознайомитися з цим інструментом, внизу наводиться посилання на хороший вступний .

Поряд із тренуваннями в синтаксисі, важливо навчити себе мисленню успішного програміста, яке не прийматиме повідомлення про помилку file X not found остаточним вироком. Таке мислення легко тренується вами у випадках, якщо ви не здаєтеся і шукайте вирішення проблеми.

Перейдіть на сторінку Android Studio developer.android.com/studio/index.html та знайдіть кнопку для завантаження останньої версії для своєї платформи.

Клацніть по кнопці завантаження і вас попросять ознайомитися з правилами та умовами використання програмного продукту. Після уважного прочитання (як ви завжди це робите) і прийняття починається завантаження. Ймовірно, це триватиме кілька хвилин. Після цього ви можете встановити Android Studio аналогічно до будь-якої іншої програми. На початковій сторінці завантаження містяться інструкції з інсталяції під Mac та Windows.

Тепер, коли ви встановили Android Studio, запустимо його! Відкрийте Android Studio. Програма запитає, чи ви хочете імпортувати свої настройки. Оскільки ви починаєте з нуля, просто оберіть другий пункт і продовжуйте.

Ви повинні побачити гарний завантажувальний екран у стилі Material Design.

Після закінчення завантаження ви потрапите на екран привітання.

Навіть у тому випадку, якщо ви щойно завантажили Android Studio, у вас може бути не остання версія. Щоб уникнути проблем з версіями надалі, натисніть кнопку Check for updates now і, якщо необхідно, виконати всі інструкції для отримання останньої версії. Іноді Studio автоматично інформує вас про те, що є оновлення за допомогою екрана, подібного до цього:

У такому разі завжди вибирайте Update and Restart. Чудово! Ми успішно впоралися із встановленням середовища для розробки.

Створення першого Android проекту

Настав час створити перший проект. Почнемо із простого. У програмістів прийнято називати першу програму Hello World. Давайте слідувати цій традиції, а потім зробимо кілька невеликих змін, щоб програма використовувала ваше ім'я для привітання. В кінці ви зможете завантажити його на пристрій та показати своїм знайомим. Android Studio має невеликий покроковий інструмент, який допоможе створити свій проект. Натисніть "New Project" на стартовому екрані:

Заповніть його так. Не соромтеся замінити "example" у імені пакета на щось ще, щоб видалити попередження внизу екрана. Ви також можете встановити розташування проекту, вказавши будь-яку папку на жорсткому диску

Для версій SDK, що розкриваються, зверніть увагу на розділ «Опис» у нижній частині діалогового вікна. У ньому пояснюється, для чого призначено кожне налаштування.

Встановіть мінімальний потрібний SDK, як показано на знімку екрана. Це встановлює мінімальну версію Android, необхідну для запуску програми. Вибір цього значення для ваших власних проектів — це питання балансування можливостей SDK, які ви хочете, та пристроїв, які будуть підтримуватись.

Для отримання додаткової інформації про версії API та їх використання на сайті для розробників під Android існує спеціальна сторінка Dashboards https://developer.android.com/about/dashboards/index.html.

Після вибору версії відкривається екран вибору стартового шаблону. Ви можете створити програму, яка вже взаємодіє з api google maps і відображає карту. У нашому тестовому прикладі вибираємо Empty Activity та натискаємо кнопку «Next».

І зараз ви знаходитесь на останньому кроці процесу створення програми. Перш ніж натиснути Finish, зверніть увагу на деякі речі. Тут ви вперше стикаєтеся зі згадками про головні архітектурні компоненти будь-якої програми.

  • — це перша, але не остання згадка слова Activity. У контексті Android, Activity зазвичай розглядається як "екран" у вашому додатку. Цей елемент дуже гнучкий. Коли Android Studio створює клас MainActivity, він успадковує його від класу Activity із пакета Android SDK. Ті, хто знайомий з об'єктно-орієнтованим програмуванням, розуміють цю концепцію, але для новачків, це, в основному, означає, що ваша MainActivity буде версією Activity, що настроюється.

  • Layout Name— макет того, що буде показано користувачеві, визначено у спеціальному вигляді Android XML. Ви скоро навчитеся читати та редагувати ці файли.

Натискаємо Finish. Деякий час займе створення та завантаження проекту. Через деякий час Android Studio завершить білд вашого проекту. Звичайно, проект поки що порожній, але в ньому є все необхідне для запуску на Android-пристрої або емуляторі.

Після завантаження проекту ви переглядаєте файл макета у форматі XML. Перш ніж перейти до програмування під Android, давайте поговоримо про те, як ми можемо запустити цю програму. Настав час сказати «Hello world!».

Запуск програми на емуляторі

Тепер настав час сказати кілька слів про емулятор. Android Studio поставляється з програмним забезпеченням, здатним емулювати Android-пристрій для запуску на ньому програм, перегляду веб-сайтів, налагодження та всього іншого.

Цю можливість надає Android Virtual Device (AVD) Manager. За бажанням ви можете налаштувати кілька емуляторів, встановити розмір екрану та версію платформи для кожного нового емулятора. Цей функціонал дуже корисний, оскільки позбавляє розробників необхідності купувати кілька пристроїв для тестування програм.

Натисніть кнопку Run у вигляді зеленої стрілки.

Прийде почекати деякий час, поки емулятор завантажиться і як тільки він буде готовий, ви побачите щось на зразок цього:

Мої вітання! Ви зробили свій перший додаток для Android!

І так ... Чому і як це спрацювало?

Щоб почати робити зміни та додавати цікаві функції, необхідно отримати робоче знання про те, що відбувається за лаштунками. Погляньте на розділ проекту Android Studio з файлами та папками у лівій частині екрана. Можливо, вам потрібно натиснути маленьку вкладку на краю (див. нижче), якщо провідник проекту не відображається.

Перегляньте кілька хвилин структуру папок і двічі клацніть по файлах, щоб побачити їх вміст у головному вікні. Якщо все це виглядає загадково, не хвилюйтесь!

Структура Android проекту: Команда

Кожна хороша команда складається з людей, які виконують відведені їм ролі. Ви хочете виконати роботу правильно? Вам потрібна правильна команда. У проектах Android є кілька ключових елементів, і кожен із них має відіграти певну роль:

Java: Професіонал

Це частина вашого коду, яка відповідає за логіку програми. Ваш код знаходиться в каталозі src\main\java в основній папці проекту. Для вивчення Java можна порадити книгу Брюса Еккеля "Філософія Java";

Resources: Артист

Недостатньо просто зробити Android додаток, він має бути ще й стильним. Ваша програма ніколи не буде виділятися, якщо у нього немає чітких значків та зображень, добре продуманих макетів і, можливо, навіть плавних анімацій.

При ініціалізації папка містить такі папки:

  • drawable, де зберігаються іконки. Зараз там лежить лише стандартна іконка програми.
  • layout з XML файлами, які є дизайнами екранів.
  • menu c XML файлами списків елементів, які відображатимуться на панелі дій.
  • values ​​з XML файлами, що містять розміри, кольори, строкові константи та стилі.

AndroidManifest.xml: Бос

Цей XML-файл інформує вашу систему про вимоги до обладнання та програмного забезпечення програми та містить його версію ім'я та значок. Маніфест також містить інформацію про всі Activity у додатку. Вам потрібна робота, яку виконує ваш додаток? Спочатку поговоріть із начальником.

Внесення змін

Перейдіть до res/values/strings.xml та двічі клацніть файл. Коли ви відкриєте файл, ви побачите два рядкові ресурси в XML.

Ці ресурси використовуються в різних місцях, але дуже зручно мати весь текст, який використовується у вашому додатку в одному файлі. Якщо вам потрібно перекласти його, або якщо ваш колега з маркетингу попросить видалити всі зайві посилання, тут легко внести всі зміни.

Змініть рядок hello_world, який програма відображає на екрані. Змініть її вміст на щось особисте, наприклад, використовуйте власне ім'я. Вийде щось на кшталт:

Matt is learning Android!

Натисніть кнопку Run. Програма повинна перезапуститись і ви побачите персональне повідомлення:

Ми вітаємо вас – ви зробили перший проект та навчилися редагувати вихідний код. Перший крок в програмуванні Android зроблено. Бажаємо удачі на цьому непростому, але дуже цікавому шляху! Якщо вам потрібна професійна розробка програми для Android, звертайтеся до фахівців Infoshell.