Menu

З чого почати? Інструкція, як розробити додаток для iOS з нуля


С чего начать? Инструкция, как разработать приложение для iOS с нуля

У нас є серйозна тема для тих, хто хоче створити своє власне додаток для iOS. Перед вами - перша стаття в нашому довідковому циклі, яка допоможе навчитися програмуванню під Swift, створити свою першу програму і розібратися в базових речах. Що найголовніше, вам завжди готові допомогти в коментарях! Поїхали.


Сміливо починаємо

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

Над текстом працював Руслан Гуменний - провідний розробник компанії e-Legion, творця різноманітних програм та ігор для мобільних платформ.

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


Вступ і трохи про історію Swift


С чего начать? Инструкция, как разработать приложение для iOS с нуля

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

За великим рахунком, від вас буде досить базових знань в області програмування. А ще потрібно таке технічне оточення:

  • комп'ютер з операційною системою OS X Yosemite
  • безкоштовна IDE під назвою Xcode версії не нижче 6.1.1 (можна завантажити в App Store за посиланням)

Такий набір дозволить вам запускати додатки в OS X на симуляторі. Крім того, ви можете використовувати Xcode як наворочений калькулятор (про це нижче) і легко виробляти необхідні для життя і побуту розрахунки.


С чего начать? Инструкция, как разработать приложение для iOS с нуля

Надалі вам, можливо, буде потрібно заплатити 99 доларів за річну підписку в Apple Developer Program. Зробивши це, ви зможете:

  • запускати свої програми на реальних пристроях
  • публікувати додатки в App Store
  • скачувати останні бета-версії iOS і Xcode


Swift

Довгий час нативна розробка під iOS здійснювалася з використанням мови програмування Objective-C. Це відмінний мова та її історія налічує вже не одне десятиліття. Незважаючи на настільки похилий вік, він все ще продовжує розвиватися. У Objective-C є багато переваг і недоліків, і, мабуть, головним недоліком можна назвати складність освоєння. Новачкові без досвіду програмування дуже складно почати розробляти з використанням Objective-C.

Одним з головних джерел доходу для Apple є магазин додатків App Store. І, отже, чим більше буде цікавих додатків, тим вищим буде прибуток Apple.

В Купертіно це розуміють, і тому регулярно проводять WWDC (The Apple Worldwide Developers Conference), де розповідають розробникам про нові зміни в iOS і OS X, проводять майстер-класи і роблять іншу роботу для популяризації платформи серед розробників.


С чего начать? Инструкция, как разработать приложение для iOS с нуля

І ось в 2014 році на черговому розробників WWDC був показаний новий мову програмування під назвою Swift. Головними особливостями мови можна називати простий синтаксис і більш строгу типізацію. Плюс в Xcode з'явився Playground, свого роду «песочинца», в якій користувач може «пограти» з новою мовою, виконуючи різні вирази і відразу бачачи, в що вони перетворюються.

Таким чином, Apple представила відмінну зв'язку для старту новачків - мова з простим синтаксисом і строгою типізацією (дозволяє зменшити число помилок) + Playground. Крім того, мова сподобався досвідченим розробникам, так як за допомогою нього можна створювати більш надійні програми. У підсумку Swift дуже швидко знайшов популярність і зараз майже не знайти нових туториалов або статей, в яких використовується Objective-C. Swift став домінувати, і з цим вже не посперечаєшся.


С чего начать? Инструкция, как разработать приложение для iOS с нуля

На жаль, поки що у Swift є невеликі проблеми з продуктивністю, які неминучі для такого молодого мови. Але в останніх бета версіях Xcode все вже набагато краще: як і було обіцяно на WWDC, продуктивність коду на Swift більше або дорівнює продуктивності коду на Objective-C.

Давайте починати!


Playground

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

Наприклад, за допомогою Playground ви можете вирішити наступні завдання:

  • освоїти синтаксис Swift
  • поекспериментувати з новими API, щоб поліпшити навички програмування
  • розробити новий алгоритм і поспостерігати за кожним кроком його виконання
  • провести прості арифметичні обчислення

1. Як кажуть «краще один раз побачити, ніж 100 разів почути», тому давайте подивимося на Playground самі. Щоб це зробити нам потрібно запустити Xcode.

2. Після запуску Xcode ви побачите віконце з пропозицією створити новий проект або запустити Playground. Власне нам потрібен Playground, тому сміливо вибирайте пункт «Get started with a playground».


С чего начать? Инструкция, как разработать приложение для iOS с нуля

3. Тепер вам потрібно придумати ім'я для свого Playground, натиснути кнопку Next і зберегти його куди-небудь. Рекомендую зберегти Playground на робочий стіл або перетягнути потім в Dock, щоб його можна було швидко запустити.


С чего начать? Инструкция, как разработать приложение для iOS с нуля

4. Після того, як ви натиснете кнопку «Save», ви побачите той самий Playground.


С чего начать? Инструкция, как разработать приложение для iOS с нуля

5. Можливо, ви засмутилися, що тут немає нічого цікавого. Давайте це виправимо, замінивши текст в Playground наступного:

var j = 2
for var i = 0; i < 5; ++i {
j += j * i
}

j

println("result: \(j)")

6. В результаті Playground буде виглядати так:


С чего начать? Инструкция, как разработать приложение для iOS с нуля

Правий стовпчик називається панеллю результатів (results sidebar) і для кожного рядка в ньому показано значення, яке буде отримано в результаті її виконання. Наприклад, для рядка 2 з арифметичним виразом у стовпці результату буде значення цього виразу.

7. Зверніть увагу на рядок 6, в ній панель результатів містить не результат виразу, а те, скільки разів цей вираз було пораховано (5 разів). Ми можемо побачити, які значення були отримані для цього рядка. Щоб це зробити, треба натиснути на маленький плюсик поряд з текстом (5 times). Після чого Playground стане виглядати так:


С чего начать? Инструкция, как разработать приложение для iOS с нуля

8. Тепер в правій частині Playground відображається панель Timeline. Ще її можна відкрити, вибравши пункт меню View->Assistant Editor->Show Assistant Editor.

9. Timeline дозволяє побачити, як змінювалося значення вибраного вираз по часу. Щоб це зробити, використовуйте повзунок внизу. Спробуйте поперетаскивать його.

10. Крім того, в Timeline показується «Console Output». Це той текст, який би вивела ваша програма консоль пристрою або термінал.

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


Коментарі

11. Коментарями називаються рядки, які ігноруються при виконання програми і в яких розробники залишають якийсь пояснюючий текст.
Коментар може бути однострочным (текст коментаря йде після //) і многострочным (текст коментаря укладено в /* */).


С чего начать? Инструкция, как разработать приложение для iOS с нуля


Змінні

12. Змінною називають якесь значення, асоційоване з символічним ім'ям (ідентифікатором). І таким чином, коли говорять «X-змінна зберігає значення 3», мають на увазі, що значення 3 ассоцировано з символічним ім'ям X.

Значення, які зберігаються в змінних, можуть бути різних типів: рядок, ціле число, число з плаваючою крапкою, ...

Ще є таке поняття як тип змінної. Тип змінної визначає типи значень, які вона може зберігати. Т. е символьна змінна може зберігати тільки рядка і не може зберігати числа і т. д.

13. В Swift для визначення змінних використовуються ключові слова var і let. Різниця між ними в тому, що змінна, оголошена з використанням let, мінятися не може.

14. Давайте оголосимо кілька змінних:


С чего начать? Инструкция, как разработать приложение для iOS с нуля

Як бачите, присвоювання значення змінної, оголошеної з допомогою let, призводить до помилки. А також призводить до помилки спроба використовувати значення не відповідний для даної змінної.


С чего начать? Инструкция, как разработать приложение для iOS с нуля

15. Зверніть увагу, що ніде явно не фігурує тип змінної. Він визначається не явно з присваемого значення. Тим не менш, його можна задати явно після імені змінної.

16. Зверніть увагу ще на один момент. Змінна, оголошена за допомогою let, завжди повинна бути ініціалізований при оголошенні, у той час як змінна, оголошена за допомогою var, повинна бути ініціалізований тільки перед використанням.

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

String

17. Рядок, для створення значення використовуються лапки "".

При створенні рядка ви можете використовувати різні вирази на Swift, використовуючи синтаксис «\()», де будь-який вираз. Є обмеження, ви не можете в ньому використовувати символ лапок («). Приклад:


С чего начать? Инструкция, как разработать приложение для iOS с нуля

Int

18. Ціле число.


С чего начать? Инструкция, как разработать приложение для iOS с нуля

Float/Double

19. Число з плаваючою точкою. Double відрізняється від Float тим, що може зберігати значення, які в два рази більше. Якщо тип не вказано, то за замовчуванням використовується Double.


С чего начать? Инструкция, как разработать приложение для iOS с нуля

Bool

20. Булев тип. Може приймати значення true (істина) або false (брехня).


С чего начать? Инструкция, как разработать приложение для iOS с нуля


Висновок в консоль

21. Консоллю було прийнято називати сукупність пристроїв, які забезпечують взаємодію людини з комп'ютером. Наприклад, консоллю висновку можна назвати монітор, а консоллю введення клавіатуру. Зараз термін став абстрактним і не пов'язаними з реальним пристроєм (наприклад, дані можуть виводитися не на монітор, а записуватися у файл) і на різних пристроїв консоль реалізована по-різному.

Наприклад, на кожному iOS пристрої є діагностична консоль, в яку виводяться системні повідомлення від додатків. Вона доступна через Xcode і виглядає так:


С чего начать? Инструкция, как разработать приложение для iOS с нуля

Таким чином, «Console Output», який показує Timeline представляє з себе текст, який побачить користувач в консолі.

22. Щоб показати щось в консолі, потрібно використовувати команди print і println.

Команда print відрізняється від команди println тим, що включає у собі символ першого рядка (\n").

23. Спробуйте рядки:

print("a")
print("b")
println("c")
println("d")
print("e\n")
print("f")

24. В результаті ви побачите наступне:


С чего начать? Инструкция, как разработать приложение для iOS с нуля

25. Як ви пам'ятаєте, при створенні рядків можна використовувати вирази. Таким чином конструювання вирази для виводу на консоль можна помітно спростити.


С чего начать? Инструкция, как разработать приложение для iOS с нуля


Функції

26. Функцією називається послідовність операцій виконують певне завдання. Функція може приймати значення і повертати результат.

Для оголошення функції використовується ключове слово func, після якого іде ім'я функції і круглі дужки. Якщо функція повертає значення, то його тип повинен бути вказаний після круглих дужок з використанням ключового слова "->". Якщо функція не повертає значення, то тип можна не вказувати або на тип Void, який означає «нічого» або пусте значення.

27. Значення, що приймаються функцією, вказуються в круглих дужках. Оголошення аргументів аналогічно оголошенню змінних, причому можна явно не вказувати var/let. За замовчуванням використовується let.

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


С чего начать? Инструкция, как разработать приложение для iOS с нуля

28. Ви можете зробити так, щоб ім'я параметра обов'язково вказувалося при виклику функції. Для цього його треба обрамити за допомогою символу #. При цьому всередині функції ви можете використовувати скорочене ім'я, задаючи його після імені с #


С чего начать? Инструкция, как разработать приложение для iOS с нуля

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))")


С чего начать? Инструкция, как разработать приложение для iOS с нуля


Що далі

Вітаю! Ви дізналися про те, що таке Swift і Playground. Але це тільки початок. Попереду ще багато цікавого, з чим вам належить познайомитися.

Тепер ви можете продовжити рухатися далі використовуючи ресурси від Apple або дочекатися нових випусків від iPhones.ru. Стежте за новинами!

Якщо ви шарите в темі і вам є, що додати, не соромтеся - пишіть в редакцію зі своїми статтями на тему розробки додатків. А якщо у вас залишились запитання або з'явилися якісь проблеми в процесі використання нашої інструкції - сміливо і впевнено пишіть в коментарі до цієї статті. Вам допоможуть!


С чего начать? Инструкция, как разработать приложение для iOS с нуля


  Ще цікаве:
  • Мова програмування Swift від Apple розроблявся 4 роки
    Нова мова програмування Swift став найбільш несподіваною новинкою на WWDC...
  • Нова мова програмування Swift: коментарі розробників
    Представлена на WWDC 2014 мова програмування Swift став причиною великої...
  • Apple заборонила розробникам використовувати Garbage Collection
    У п'ятницю Apple розіслала повідомлення розробникам про те, що до...
|