четверг, 24 июля 2014 г.

2. Android "Перша програма"

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

  1. Перша програма;
  2. Структура проекту;
  3. Створення .apk файлу.

Кому хочеться сидіти і зубрити теорію? Це ж фігня для ботанів, нам треба одразу ж в бій. Отже робимо наш перший проект. Зазвичай, перший проект, перша програма на будь-якій мові - це "Hello World", але якщо ти пройшов мій перший урок, то там було щось на кшталт цього, і це тупо, тому що IDEA зробила все за нас, ми навіть довбаного рядка не написали.
Запускаємо Android Studio i Genymotion це обов'язково, інакше нічого не вийде.
Рисунок 1 - запуск Android Studio

Рисунок 2 - Запуск Genymotion

Рисунок 3 - Вікно запущеного віртуального пристрою

В Android Studio створимо новий проект File -> New Project. Вводимо назву нашого додатку (Application Name), ну нехай це буде "BestApp1" щоб конкуренти знали з ким зв'язались. Далі необхідно ввести "Company Domain, тобто сайт вашої компанії, чи ваш сайт, але це по любому має бути унікальне ім'я і не співпадати з існуючими вже. Якщо вже хтось раніше публікував на Google Play додатки з таким доменним ім'ям то виникне конфлікт імен, ваш додаток не опублікують на сайті, а світ втратить ще одного розробника, і десь заплаче котик.
Рисунок 4 - Котик, якого ти розчарував

Ви ж не хочете засмучувати маленького?
За використанням вашого доменного імені та імені додатку утвориться унікальна назву пакету для вашого додатку типу com.YOURNAME.bestapp1. А ще автоматично утвореться каталог з вашим проектом C:\Users\YOURNAME\Documents\GitHub\BestApp1. Тут майже нічого й робити не треба, все робиться автоматично. Халява.
"Next"
Вибираємо платформу для якої будемо розробляти наш додаток в мене це "Phone and Tablet", minimum sdk я вибрав "API 16: Android 4.1 (Jelly Bean)", що охоплює 72.0% існуючих пристроїв. Можна звичайно вибрати API 8: Android 2.2 (Froyo) щоб задіяти всі існуючі пристрої, але це марна трата часу та сил, тим паче, що функціонал API 8 значно обмеженіший.

Якщо ви попередньо не завантажили SDK з якими збираєтесь працювати, то без сумніви ви зараз застряли і не можете нічого вибрати. "Tools" -> "Android" -> "SDK Manager"

"Blank Activity" - пустий екран, все що треба ми додамо самі. "Next" нічого не змінюємо "Finish".

Чекаємо доки Gradle збере наш додаток. З повільним підключенням до інтернет, це може бути проблемно. Виберемо offline режим


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

Рисунок 5 - Вікно вибору пристрою

Пам-Пара-Пам.

Рисунок 6 - BestApp1 в дії


Програма, яка нічого толкового не робить. Ура :-(
Додамо декілька змін. Але для цього необхідно трохи розібратися з структурою проекту.

Рисунок 7 - Дерево проекту в Android Studio


Дерево проекту - це такий собі перелік файлів і папок проекту, що розміщено за адресою вказаною навроти імені проекту BestApp1 (C:\Users\astefanovskiy\Documents\GitHub\BestApp1). Можна відкрити в Explorer і подивитися в звичному вам виді.
Рисунок 8 - Дерево проекту в Explorer

Розглянемо основні необхідні нам каталоги, щоб зрозуміти, що і до чого тут.
src - вихідний код ПО;
java - вихідний код Java;
res - вихідний XML код Activity та ресурси ПО (зображення, звуки, відео, тексти, бази даних)
drawable - каталоги зображень для різної роздільної здатності пристроїв від 320х240 до 1920х1080;
layout - XML файли компонування екрану Activity;
menu - меню ПО;
values - строкові ресурси, кольори та розміри;
AndroidManifest.xml - файл, що вказує точку входу в додаток та задає дозволи на використання ресурсів додатком будь то камера, місце знаходження чи інтернет з'єднання.
R.java - важливий файл, про який знати просто необхідно. Він знаходиться в BestApp1 -> app -> build -> generated -> sourse -> r. Це файл, що генерується автоматично і містить в собі посилання на всі компоненти, унікальні ідентифікатори (ID). Імена ID співпадають з іменанми ресурсів. Змінювати будь-які значення не рекомендується, та це й не має сенсу, так як файл генерується автоматично, як я вже й сказав.

Таксс... основу заложено.
Почнемо наші зміни. Переходимо в BestApp1->app->src->main->res->layout і відкриваємо наш файл activity_my.xml
Рисунок 9 - Вигляд вікна Android Studio

Знизу є дві вкладки "Design" та "Text". Нам потрібно змінити на "Text".

1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2.     xmlns:tools="http://schemas.android.com/tools"
3.     android:layout_width="match_parent"
4.     android:layout_height="match_parent"
5    android:paddingLeft="@dimen/activity_horizontal_margin"
6.     android:paddingRight="@dimen/activity_horizontal_margin"
7.     android:paddingTop="@dimen/activity_vertical_margin"
8.     android:paddingBottom="@dimen/activity_vertical_margin"
9.     tools:context=".MyActivity">
10. 
11.     <TextView
12.         android:text="@string/hello_world"
13.         android:layout_width="wrap_content"
14.         android:layout_height="wrap_content" />
15. 
16. </RelativeLayout>

Змінимо текст: в коді вище, червоним виділений рядок в якому заданий ресурс, що відповідає за текст. Зараз про це розповідати не буду, просто видаліть 12-ий рядок, а замість нього вставте два нових:
android:text="Linkin Park - War"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"

Перший - це просто текст, другий означає, що текст буде зверху, а третій означає, що текст буде розміщено по центру по горизонталі.
Додамо зображення: припустимо у вас є зображення але воно занадто велике. А, як відомо, мобільні пристрої обмежені в ресурсах. Нам необхідно зменшити розмір зображення, та ще й підготувати декілька його варіантів для різних видів екранів (одна з найбільших морок розробки під андроід це наявність великої кількості пристроїв з різними розмірами екранів та різною роздільною здатністю). Є дуже корисна штука для вашого PhotoShop, що автоматично створює різні розміри зображення завантажити Action Script  можна за вказаним лінком. Встановлюється дуже просто. В Photoshop тиснемо Alt+F9, з'явиться вікно з операціями, завантажуємо скачану нами операцію. Вибираємо зображення, тиснемо F9 і конвертоване зображення зберігаємо в папку проекту починаючи з найбільшого, тобто drawable-xxhdpi. Імена файлів можуть бути тільки латинськими маленькими буквами, цифрами та знаком "_". В іншому разі вас чекатиме помилка.
Повертаємось в Android Studio і в файл activity_my.xml  додаємо наступні рядки:
1    <ImageView
2        android:layout_width="wrap_content"
3        android:layout_height="wrap_content"
4        android:id="@+id/imageView"
5        android:src="@drawable/cover"
6        android:layout_below="@+id/textView"
7        android:layout_alignParentLeft="true"
8        android:layout_alignParentStart="true" /> 
Якщо ви назвали всі зображення cover то все добре, в інакшому випадку назва зображень має бути однаковою і, якщо вона відрізняється від cover то необхідно це виправити в 5 рядку.

Настав момент створити з цього чуда, власний .apk файл щоб друзі могли з тебе посміятися.
Build -> Generate Signed APK... -> Перед вами з'явиться вікно
Рисунок 10 - Створення підписаного APK файлу
Необхідно створити ключ, яким ми будемо підписувати свої програми. Це необхідно для того щоб всі знали хто тут татко  щоб при завантаженні ПО в магазин Google компанія могла виявити належність автора, і щоб ваші програми не продавали різні лузери.
Тиснемо "Create new..."
Рисунок 11 - Створення сховища для ваших ключів
Вводмо необхідні дані. По мінімуму необхідно вказати розташування, паролі, alias - ім'я ключа, знову паролі, ім'я ваше, краще вводити своє, щоб уникнути проблем при отриманні гонорарів. Далі - Далі - Готово. І у вас є збережений apk файл, яким тепер можна поділитися.

Все.
Радий був для вас старатися.
"Дружелюбный сосед Человек-Паук"



среда, 23 июля 2014 г.

1. Android "Те про що пишуть всі і на чому, в основному, і закінчується жага до викладальницької діяльності

Ти хочеш створювати програми на Android тому що це в тренді, популярно і престижно. Ти або знаєш вже Java або тільки вивчаєш, або ще ні. Вчити Java тобі доведеться все-одно, бо без неї нікуди не подінешся в нашій тяжкій справі программерів.
З чого почати навчання? З встановлення необхідного програмного забезпечення, на кшталт: середовище розробки (Eclipse, IDEA), JDK, альтернативна віртуальна машина відмінна від стандартної (Genimotion, Jar of Beans, Native Android Emulator, YouVawe, BlueStacks). Цим і займемося сьогодні.
Не бачу сенсу описувати супердетально процес встановлення програм. Приведу лінки та порядок встановлення.
1. JDK
Переходимо за посиланням, вибираємо вашу операційну систему, скачуєму. Процес встановлення стандартний ("Згоден", "Далі", "Далі", "Готово")
2. ADT
Можна скачати просто ADT і налагодити для роботи з Eclipse, IDEA чи чимось іншим на ваш розсуд. Я рекомендую Android Studio, хоча дане ПО зараз і знаходиться в бета тесті, але воно має багато переваг перед конкурентами.
"Завантажити" - "Встановити"

3. Genymotion
Genymotion на відміну від стандартного емулятора працює на базі VirtualBox за рахунок чого і являється швидшим, а також має багато додаткових функцій в розробці, що можуть виявитися корисними в розробці та тестуванні ваших шедеврів.
a) Завантажуємо і встановлюємо VirtualBox.
b) Заходимо на головну Genymotion, реєструємось (важливо вибрати пункт, для власного користуванн, тобто безкоштовний варіант, для початку і цього вистачить, якщо вам сподобається даний емулятор то пізніше зможете купити), підтверджуємо реєстрацію, завантажуємо ПО, стандартне встановлення. Тепер вибираємо віртуальні девайси, що вам необхідні для тестуванн - Genymotion все завантажить та встановить.
c) Налагодження в Android Studio емулятора.
Тут неочікувано нам необхідно створити нашу першу програму. Вибираємо все за стандартом. "Далі"-"Далі"-"Готово"
І ось тут момент з налагодженням Genymotion. Run->Edit Configurations->General->Target Device->Show Chooser Dialog або USB Device. В першому випадку вам запропонують вибрати з запропонованого переліку можливих пристроїв, будь то віртуальні девайси вбудованого емулятора, реальні підключені пристрої чи створений наш в Genimotion. (Перед запуском додатку необхідно запустити віртуальний пристрій.) 
Натискаємо на клавішу Run (зелений трикутник) і перед нами з'являється вікно вибору. Вибираємо наш пристрій і вуаля - все працює швидко, круто і красиво.

Дякую за увагу.

Ліниві курси Android.

четверг, 3 июля 2014 г.

Становление на путь истинный


Программирование под ОС Android становится все более доступным. Еще год назад, научиться писать под данную ОС было возможно разве, что по туториалах на developer.android.com, но время идет и вот за последние пару месяцев появилась, прямо таки куча ресурсов и курсов на разнообразных образовательных ресурсах.
Сразу хочу отметить, что пишу это исключительно для себя. Кому не нравится то прошу просоледовать по ссылке  ->.

Хекслет
1. Разработка под Android

Coursera
1. https://class.coursera.org/androidapps101-001/auth/auth_redirector?type=login&subtype=normal
2. https://class.coursera.org/android-001/auth/auth_redirector?type=login&subtype=normal
3. https://class.coursera.org/posa-002/auth/auth_redirector?type=login&subtype=normal
4. https://www.coursera.org/course/mobilecloud

Udacity
1. UX Design for Mobile Developers
2. Developing Android Apps Android Fundamentals

Alexander Klimov 
StartAndroid
Android на DevColibri
DevColibri Android на YouTube

Ну и статья их Хабрахабра: Ресурсы, о которых должен знать каждый Android-разработчик

Ну и несколько тестов и т.п. для проверки Java на programmr



Статью я буду дополнять, наверно, или нет.