З чого почати? Інструкція, як розробити додаток для iOS з нуля
У нас є серйозна тема для тих, хто хоче створити своє власне додаток для iOS. Перед вами - перша стаття в нашому довідковому циклі, яка допоможе навчитися програмуванню під Swift, створити свою першу програму і розібратися в базових речах. Що найголовніше, вам завжди готові допомогти в коментарях! Поїхали.
Ця інструкція призначається для людей, які тільки-тільки почали цікавитися темою. Сприймайте її як керівництво до дії, а не як пояснення всього і вся. В той же час не соромтеся задавати питання, тому що вам оперативно дадуть потрібні відповіді в коментарях.
Над текстом працював Руслан Гуменний - провідний розробник компанії e-Legion, творця різноманітних програм та ігор для мобільних платформ.
Він і його колеги завжди готові відповісти на ваші питання в коментарях. Для зручності кожен етап, пункт або абзац пронумеровані, щоб вам легше було відзначити, в якому місці у вас виникли проблеми.
Багато хотіли б почати розробляти додатки для iOS, але вважають, що це дуже важко. Не буду вас обманювати, так і є. Як і в будь-якій іншій області для того, щоб бути професіоналом, треба володіти великою кількістю знань, а також мати великий досвід. Але для того, щоб зробити невеликий додаток для повсякденних потреб, бути професіоналом не треба.
За великим рахунком, від вас буде досить базових знань в області програмування. А ще потрібно таке технічне оточення:
- комп'ютер з операційною системою OS X Yosemite
- безкоштовна IDE під назвою Xcode версії не нижче 6.1.1 (можна завантажити в App Store за посиланням)
Такий набір дозволить вам запускати додатки в OS X на симуляторі. Крім того, ви можете використовувати Xcode як наворочений калькулятор (про це нижче) і легко виробляти необхідні для життя і побуту розрахунки.
Надалі вам, можливо, буде потрібно заплатити 99 доларів за річну підписку в Apple Developer Program. Зробивши це, ви зможете:
- запускати свої програми на реальних пристроях
- публікувати додатки в App Store
- скачувати останні бета-версії iOS і Xcode
Довгий час нативна розробка під iOS здійснювалася з використанням мови програмування Objective-C. Це відмінний мова та її історія налічує вже не одне десятиліття. Незважаючи на настільки похилий вік, він все ще продовжує розвиватися. У Objective-C є багато переваг і недоліків, і, мабуть, головним недоліком можна назвати складність освоєння. Новачкові без досвіду програмування дуже складно почати розробляти з використанням Objective-C.
Одним з головних джерел доходу для Apple є магазин додатків App Store. І, отже, чим більше буде цікавих додатків, тим вищим буде прибуток Apple.
В Купертіно це розуміють, і тому регулярно проводять WWDC (The Apple Worldwide Developers Conference), де розповідають розробникам про нові зміни в iOS і OS X, проводять майстер-класи і роблять іншу роботу для популяризації платформи серед розробників.
І ось в 2014 році на черговому розробників WWDC був показаний новий мову програмування під назвою Swift. Головними особливостями мови можна називати простий синтаксис і більш строгу типізацію. Плюс в Xcode з'явився Playground, свого роду «песочинца», в якій користувач може «пограти» з новою мовою, виконуючи різні вирази і відразу бачачи, в що вони перетворюються.
Таким чином, Apple представила відмінну зв'язку для старту новачків - мова з простим синтаксисом і строгою типізацією (дозволяє зменшити число помилок) + Playground. Крім того, мова сподобався досвідченим розробникам, так як за допомогою нього можна створювати більш надійні програми. У підсумку Swift дуже швидко знайшов популярність і зараз майже не знайти нових туториалов або статей, в яких використовується Objective-C. Swift став домінувати, і з цим вже не посперечаєшся.
На жаль, поки що у Swift є невеликі проблеми з продуктивністю, які неминучі для такого молодого мови. Але в останніх бета версіях Xcode все вже набагато краще: як і було обіцяно на WWDC, продуктивність коду на Swift більше або дорівнює продуктивності коду на Objective-C.
Давайте починати!
Playground, або в перекладі на російську «пісочниця», представляє з себе відмінне оточення для того, щоб вивчити Swift. Виглядає це так: ви вводите рядок коду і моментально бачите результат його виконання. Після того, як ви переконаєтеся, що написаний вами код дає потрібний результат, ви можете просто взяти і перенести його в свій проект.
Наприклад, за допомогою Playground ви можете вирішити наступні завдання:
- освоїти синтаксис Swift
- поекспериментувати з новими API, щоб поліпшити навички програмування
- розробити новий алгоритм і поспостерігати за кожним кроком його виконання
- провести прості арифметичні обчислення
1. Як кажуть «краще один раз побачити, ніж 100 разів почути», тому давайте подивимося на Playground самі. Щоб це зробити нам потрібно запустити Xcode.
2. Після запуску Xcode ви побачите віконце з пропозицією створити новий проект або запустити Playground. Власне нам потрібен Playground, тому сміливо вибирайте пункт «Get started with a playground».
3. Тепер вам потрібно придумати ім'я для свого Playground, натиснути кнопку Next і зберегти його куди-небудь. Рекомендую зберегти Playground на робочий стіл або перетягнути потім в Dock, щоб його можна було швидко запустити.
4. Після того, як ви натиснете кнопку «Save», ви побачите той самий Playground.
5. Можливо, ви засмутилися, що тут немає нічого цікавого. Давайте це виправимо, замінивши текст в Playground наступного:
var j = 2
for var i = 0; i < 5; ++i {
j += j * i
}
j
println("result: \(j)")
6. В результаті Playground буде виглядати так:
Правий стовпчик називається панеллю результатів (results sidebar) і для кожного рядка в ньому показано значення, яке буде отримано в результаті її виконання. Наприклад, для рядка 2 з арифметичним виразом у стовпці результату буде значення цього виразу.
7. Зверніть увагу на рядок 6, в ній панель результатів містить не результат виразу, а те, скільки разів цей вираз було пораховано (5 разів). Ми можемо побачити, які значення були отримані для цього рядка. Щоб це зробити, треба натиснути на маленький плюсик поряд з текстом (5 times). Після чого Playground стане виглядати так:
8. Тепер в правій частині Playground відображається панель Timeline. Ще її можна відкрити, вибравши пункт меню View->Assistant Editor->Show Assistant Editor.
9. Timeline дозволяє побачити, як змінювалося значення вибраного вираз по часу. Щоб це зробити, використовуйте повзунок внизу. Спробуйте поперетаскивать його.
10. Крім того, в Timeline показується «Console Output». Це той текст, який би вивела ваша програма консоль пристрою або термінал.
На цьому короткий знайомство з Playground можна вважати закінченим, давайте розберемося, що ж ми написали, а для цього познайомимося з синтаксисом Swift.
11. Коментарями називаються рядки, які ігноруються при виконання програми і в яких розробники залишають якийсь пояснюючий текст.
Коментар може бути однострочным (текст коментаря йде після //) і многострочным (текст коментаря укладено в /* */).
12. Змінною називають якесь значення, асоційоване з символічним ім'ям (ідентифікатором). І таким чином, коли говорять «X-змінна зберігає значення 3», мають на увазі, що значення 3 ассоцировано з символічним ім'ям X.
Значення, які зберігаються в змінних, можуть бути різних типів: рядок, ціле число, число з плаваючою крапкою, ...
Ще є таке поняття як тип змінної. Тип змінної визначає типи значень, які вона може зберігати. Т. е символьна змінна може зберігати тільки рядка і не може зберігати числа і т. д.
13. В Swift для визначення змінних використовуються ключові слова var і let. Різниця між ними в тому, що змінна, оголошена з використанням let, мінятися не може.
14. Давайте оголосимо кілька змінних:
Як бачите, присвоювання значення змінної, оголошеної з допомогою let, призводить до помилки. А також призводить до помилки спроба використовувати значення не відповідний для даної змінної.
15. Зверніть увагу, що ніде явно не фігурує тип змінної. Він визначається не явно з присваемого значення. Тим не менш, його можна задати явно після імені змінної.
16. Зверніть увагу ще на один момент. Змінна, оголошена за допомогою let, завжди повинна бути ініціалізований при оголошенні, у той час як змінна, оголошена за допомогою var, повинна бути ініціалізований тільки перед використанням.
Для використання доступно багато різних типів. З часом ви познайомитеся з більшістю з них. Зараз же почнемо з базових.
String17. Рядок, для створення значення використовуються лапки "".
При створенні рядка ви можете використовувати різні вирази на Swift, використовуючи синтаксис «\()», де будь-який вираз. Є обмеження, ви не можете в ньому використовувати символ лапок («). Приклад:
Int18. Ціле число.
Float/Double19. Число з плаваючою точкою. Double відрізняється від Float тим, що може зберігати значення, які в два рази більше. Якщо тип не вказано, то за замовчуванням використовується Double.
Bool20. Булев тип. Може приймати значення true (істина) або false (брехня).
21. Консоллю було прийнято називати сукупність пристроїв, які забезпечують взаємодію людини з комп'ютером. Наприклад, консоллю висновку можна назвати монітор, а консоллю введення клавіатуру. Зараз термін став абстрактним і не пов'язаними з реальним пристроєм (наприклад, дані можуть виводитися не на монітор, а записуватися у файл) і на різних пристроїв консоль реалізована по-різному.
Наприклад, на кожному iOS пристрої є діагностична консоль, в яку виводяться системні повідомлення від додатків. Вона доступна через Xcode і виглядає так:
Таким чином, «Console Output», який показує Timeline представляє з себе текст, який побачить користувач в консолі.
22. Щоб показати щось в консолі, потрібно використовувати команди print і println.
Команда print відрізняється від команди println тим, що включає у собі символ першого рядка (\n").
23. Спробуйте рядки:
print("a")
print("b")
println("c")
println("d")
print("e\n")
print("f")
24. В результаті ви побачите наступне:
25. Як ви пам'ятаєте, при створенні рядків можна використовувати вирази. Таким чином конструювання вирази для виводу на консоль можна помітно спростити.
26. Функцією називається послідовність операцій виконують певне завдання. Функція може приймати значення і повертати результат.
Для оголошення функції використовується ключове слово func, після якого іде ім'я функції і круглі дужки. Якщо функція повертає значення, то його тип повинен бути вказаний після круглих дужок з використанням ключового слова "->". Якщо функція не повертає значення, то тип можна не вказувати або на тип Void, який означає «нічого» або пусте значення.
27. Значення, що приймаються функцією, вказуються в круглих дужках. Оголошення аргументів аналогічно оголошенню змінних, причому можна явно не вказувати var/let. За замовчуванням використовується let.
Виклик функції здійснюється за допомогою вказівки її імені і значень аргументів.
28. Ви можете зробити так, щоб ім'я параметра обов'язково вказувалося при виклику функції. Для цього його треба обрамити за допомогою символу #. При цьому всередині функції ви можете використовувати скорочене ім'я, задаючи його після імені с #
29. Тепер ми можемо зробити якусь корисну функцію. Наприклад функцію, яка буде вважати число кілокалорій для вказаної кількості білків, жирів, вуглеводів.
func kilocalories(#fats: Double, #proteins: Double, #carbohydrates:Double) -> Double {
return 4 * (carbohydrates + proteins) + 9 * fats
}
println("kilocalories == \(kilocalories(fats: 20, proteins: 15, carbohydrates: 32))")
Вітаю! Ви дізналися про те, що таке Swift і Playground. Але це тільки початок. Попереду ще багато цікавого, з чим вам належить познайомитися.
Тепер ви можете продовжити рухатися далі використовуючи ресурси від Apple або дочекатися нових випусків від iPhones.ru. Стежте за новинами!
Якщо ви шарите в темі і вам є, що додати, не соромтеся - пишіть в редакцію зі своїми статтями на тему розробки додатків. А якщо у вас залишились запитання або з'явилися якісь проблеми в процесі використання нашої інструкції - сміливо і впевнено пишіть в коментарі до цієї статті. Вам допоможуть!
Ще цікаве:
- Мова програмування Swift від Apple розроблявся 4 роки
Нова мова програмування Swift став найбільш несподіваною новинкою на WWDC... - Нова мова програмування Swift: коментарі розробників
Представлена на WWDC 2014 мова програмування Swift став причиною великої... - Apple заборонила розробникам використовувати Garbage Collection
У п'ятницю Apple розіслала повідомлення розробникам про те, що до...