Як навчитися програмувати під iOS Swift. Мова програмування з відкритим кодом. Потужність, простота та приголомшливі програми

З кожним днем ​​зростає кількість людей, які мріють навчитися створювати програми. Після збору інформації в мережі до них приходить думка, що найперспективнішою є розробка програм для iOS - операційної системи від Apple. Насправді мріяти – це одне, а програмувати – інше. Створити власний додаток нелегко. Але й не надхмарно складно. Що ж для цього потрібне?

Мова програмування

Щоб писати програми для певної платформи, потрібно використовувати певну мову програмування. Розробка програм для iOS і Android відрізняється. Якщо у платформи від "Гугла" вибирати потрібно мову Java, то для iOS вибір стоїть між Objective-C і Swift. Довгий час розробка під платформу iOS велася лише за допомогою мови програмування Objective-C. Незважаючи на те, що йому багато років, він все ще розвивається і використовується великою кількістю розробників. Але його мінус – це високий поріг входження.

Оскільки найголовнішим джерелом прибутку компанії Apple є її магазин додатків, співробітники зацікавлені у більшій кількості корисних та цікавих утиліт. З цієї причини регулярно проводиться конференція для розробників, де розповідають про зміни в операційних системах. У 2014 році розробникам показали новітню мову програмування Swift, якою ведеться розробка програм для iOS. Swift легкий у освоєнні, тому що має дуже простий синтаксис та строго типізований. Для бажаючих освоїти самостійно ця мова підходить дуже добре.

Що знадобиться для початку

Крім базових знань програмування, потрібно мати таке:

  • комп'ютер або ноутбук із операційною системою OSX на борту;
  • середовище розробки Xcode, яке є безкоштовним.

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

  • запускати розроблені програми над симуляторі, але в справжніх пристроях;
  • розміщувати програми у магазині App Store;
  • завантажувати нові версії середовища розробки та iOS.

У нових версіях Xcode з'явився такий елемент, як пісочниця, названий Playground. Тут розробник може поекспериментувати з новою мовою програмування.

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

З чого починається розробка програм для iOS та Android? Навчання відбувається практично. Тож починати треба з неї. Багато теорії – це не завжди добре. Адже якщо людина прочитає від кірки до кірки десять вона не стане. Потрібно діяти.

Playground

Ця «пісочниця» - це чудове оточення вивчення мови програмування. Як вона виглядає? Користувач вводить рядок програмного коду і відразу бачить результат виконання. Після того, як стане зрозуміло, що написаний фрагмент працює так, як потрібно, його можна просто перенести до проекту. За допомогою «пісочниці» можна вирішити такі завдання, як:

  • освоєння синтаксису мови програмування;
  • покращення навичок програмування за допомогою експериментів з новими API;
  • здійснення простих арифметичних обчислень;
  • розробка нового алгоритму та спостереження за кожним його кроком.

Розробка програм для iOS: з чого почати

Теорія - це, звичайно, добре, але, як говорилося раніше, потрібна практика. Щоб познайомитися з «пісочницею», потрібно запустити середовище розробки Xcode. Після запуску користувач може бачити вікно, в якому пропонується створити новий проект або запустити Playground. Потрібен другий пункт. Тепер необхідно вигадати ім'я та зберегти «пісочницю» в будь-яке зручне місце на комп'ютері. До речі, розробка додатків для iOS на Windows теж можлива, але тоді потрібно буде вирішити велику кількість проблем. Це і встановлення піратської операційної системи, і редагування важливих файлів, і безліч помилок і вильотів.

Після збереження буде запущений той Playground, який потрібен.

На перший погляд, тут нема нічого цікавого. Але варто вписати туди свій код, як зовнішній вигляд відразу зміниться.

Для початку можна спробувати написати таке:

for var y = 0; y< 10; ++y {

println (“result: (z)”)

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

Коментування коду

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

Змінні

Отже, програми пишуться мовою програмування. Основу будь-якої мови становлять змінні. Розробка програм для iOS та Android без використання змінних неможлива. Як відомо з назви, це контейнер, у якому міститься значення, що змінюється. Кожна змінна повинна мати унікальне ім'я і може містити як числові, так і текстові значення. У мові програмування Swift змінні визначаються слів var і let. У другому випадку змінна не може змінюватися і має бути проініціалізована під час оголошення. У першому випадку змінна ініціалізується безпосередньо перед використанням.

Кожна змінна має якийсь тип. Це можуть бути рядки, числа з плаваючою точкою (дрібні), булеві значення (істина та брехня).

Виведення результатів

Результат виконання програми виводиться у консоль. Що це таке? Це те, що забезпечує взаємодію користувача з комп'ютером. Так, консоллю виводу раніше називали монітор, а консоллю введення – клавіатуру. Нині значення термінів трохи змінилося. Так називають програмне вікно, призначене для введення та виведення команд. Розробка програм для iOS нерідко вимагає виведення якихось даних. Для цього у мові Swift передбачені команди print та println. Перша відрізняється від другої тим, що автоматично починається з нового рядка.

Функції

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

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

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

Що тепер?

Отже, як видно з вищесказаного, розробка додатків для iOS своїми руками цілком може виявитися під силу кожному. Головне - вивчити основи мови програмування, познайомитися із середовищем розробки та дуже багато та часто практикуватися. Саме практика допомагає досягти значного прогресу. Адже описане тут - це лише початок. Далі у світі програмування буде багато цікавого, складного, цікавого. Це допоможе завжди тримати мозок у тонусі, створювати щось нове та непогано заробляти. Адже техніка від Apple використовується у всьому світі. Тому ваш додаток зможуть оцінити мільйони людей.

У 2015 році вже не можна вийти на вулицю, щоб одразу не зустріти людину, яка відповідає двом критеріям: 1. У нього є iPhone/iPad. 2. Він хоче бути програмістом. Наведена нижче добірка iOS-додатків складена саме для таких людей. З нею можна вивчити одну або кілька із 20 найпопулярніших у світі мов програмування.

Tiobe index

Tiobe Index – це рейтинг популярності мов програмування у світі. Він складається на основі кількості посилань у результатах видачі популярних пошукових систем за запитом « + programming». Індекс будується щомісяця, починаючи з 1987 року. На даний момент для розрахунку рейтингу використовують дані з наступних сайтів: Google, YouTube, Amazon, Baidu, Qq, Yahoo, Ebay, Hao123, Bing, Alieexpress, Alibaba та Cntv.

Значення індексу розраховується для мов, які відповідають двом вимогам. По-перше, мова має бути Т'юрінгом повною, а по-друге, про неї має бути стаття в англомовній Вікіпедії. Як визначити, що мова є Тьюрінг повним? Якщо нею можна виконати будь-яку обчислювану функцію, це Тьюринг повний мову. SQL відповідає першому критерію, проте для нього вже багато років розраховується значення Tiobe Index. Загалом у рейтингу бере участь 237 мов.

Аналітики використовують Tiobe Index у своїй роботі, щоб прогнозувати розвиток IT-індустрії. Програмісти звіряються з його значенням, що не помилиться з вибором професійного вектора розвитку. 25 років історії індексу дозволяють впевнено стверджувати: «хороші фахівці з мов, що займають перші 10 рядків рейтингу, неодмінно будуть затребувані на ринку праці в найближчі 3-4 роки».

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

1. Java

Значення Tiobe Index для цієї мови – 19.56%. Java використовується у 80-90% відсотках корпоративних додатків. На ньому пише абсолютну більшість розробників під Android. Java часто застосовується у високонавантажених веб-додатках. Цією мовою можна написати практично все. Чим з успіхом і займаються сотні мільйонів розробників у всіх куточках планети. додаток Java Develope Reference All In Oneмістить найповнішу інформацію про цю мову.

2. C

Цією мовою пишуть операційні системи та інше низькорівневе програмне забезпечення. Вивчити мову допоможе програма C Reference.

3. C++

З + + - це основна мова розробки комерційного прикладного ПЗ. Він складніше для освоєння, ніж Java, тому менш популярний. Для його вивчення є програма - C++ Referecnce.

4. C#

Ця мова спрощена версія C++ призначена для роботи із середовищем розробки .NET Framework. Для освоєння синтаксису мови є програма C# Programming Language.

5. Python

На Python пишуть десктопне та серверне програмне забезпечення, високонавантажені веб-програми. Його використовують у Google та BitTorrent. додаток Python 2 Developer Referenceдопоможе у вивченні цієї мови.

6. PHP

Це найпопулярніша мова програмування для створення веб-сторінок. На ньому написано мільярди сайтів. Сотні мільйонів розробників у всьому світі володіють ним тією чи іншою мірою. Вхідний поріг для новачків крайній низький. Створити сторінку виду «Ось я, ось мій кіт. Надішліть лист через цю форму» можна через півгодини після початку вивчення PHP. У освоєнні технології допоможе програма PHP Reference.

7. Java Script

Ця мова призначена для впровадження у веб-сторінки динамічних сценаріїв, що виконуються на стороні клієнта. Рідкісний сайт обійдеться хоча б без кількох рядків коду на Java Script. Теоретично можна написати цією мовою практично всі: серверні (Node.js) та мобільні (PhoneGap) програми. Починаючи з OS X, Yosemite Java Script став альтернативою мови макрос для OS X Apple Script. Ходять легенди про умільця, який переписав JS ядро ​​Linux. Вивчити основи Java Script можна за допомогою програми Java Script Programming Language.

8. Visual Basic for .NET

Для написання програми цією мовою не можна обійтися без платформи.NET Framework. Тому окремої програми для цієї мови немає. Але його синтаксис ідентичний із звичайним Visual Basic, про який буде розказано трохи нижче.

9. Perl

Спочатку створювався для обробки великих обсягів текстових даних. Сфера застосування частково перетинається з PHP, а частково з мовою C. Глибше ознайомитися з його синтаксисом і спробувати себе в написанні скриптів можна в додатку Perl Programming Language

10. Objective-C

Ця мова вже 32 роки використовується для розробки програм, що працюють на пристроях виробництва компанії Apple. На ньому пишуться програми для OS X та iOS. Вивчити Objective-C можна за допомогою програми Objective-C Programming Language

11. Assembly

Асемблер - дозволяє звертатися до команд процесора безпосередньо. Це найбільш низькорівнева мова програмування. Його знання буває необхідне створення мов програмування вищого рівня, операційних систем, драйверів. Вміння читати код на асемблері нагоді вірусним аналітикам і людям, зайнятим зломом ліцензійного ПЗ. Для iOS є навчальна програма Assembly Programming Language.

12. Ruby

Мова Ruby - це вдосконалена об'єктно-орієнтована версія мови Perl, розроблена в Японії. Він застосовується для створення веб-застосунків за допомогою фреймворку Ruby on Rails. Саме завдяки цьому фреймворку, що дозволяє дуже швидко розгортати веб-програми, Ruby перебуває на такій високій позиції. Хоча мова і не входить у топ-10, класний фахівець за цією технологією 100% не виявиться без шматка хліба в найближчі п'ять років. Для вивчення є програма Ruby Programming Language.

13. Delphi

На жаль, для цієї мови немає програми iOS. Воно й не дивно. По-перше, щоб написати програму на Delphi не потрібно знати його синтаксису. Достатньо відкрити середовище розробки, перетягнути кілька кнопочок і полів для введення на робочий простір, натиснувши правою кнопкою миші, прописати їм параметри поведінки і все. Вміння розбиратися в Delphi-вихідникам знадобитися молодим програмістам, які прийшли через десять років, яких начальство попросити змусити цю програму працювати під нову версію Windows. По-друге, на Delphi зараз уже не пишуть нічого нового, і його високу позицію в рейтингу Tiobe забезпечують мученики, яким доводиться доопрацьовувати софт 15-річної давності.

14. Visual Basic

Знання мови буде корисним для більшості офісних працівників. На ньому можна написати безліч корисних речей: збір даних із анкет у таблицю Excel, генерацію файлів за шаблоном, автоматизовану розсилку в Outlook. Для вивчення є програма - Visual Basic Programming Language.

15. Pascal

Основами цієї мови володіють дві третини росіян, шкільні та студентські роки яких припали на кінець 90-х та 2000-ті. У багатьох країнах світу склалася традиція застосовувати цю мову для навчання інформатики. На рубежі тисячоліть, коли в школах по всій планеті стали масово впроваджувати навчання комп'ютерної грамотності, однією з найкомерційніше успішних мов був Delphi. Синтаксис цієї мови практично ідентичний синтаксису Pascal. З цієї причини укладачі навчальних програм і вибрали його як першу мову програмування для мільйонів людей. Наприкінці 2000-х Delphi майже помер, але підручники з інформатики у більшості навчальних закладів досі не оновили. У дитинство плацкартний квиток подарує додаток Pascal Programming Language.

16. Swift

Мова Swift була анонсована навесні 2014 року. Він застосовується для розробки програм для iOS та OS X. Позиціонується як більш безпечна альтернатива Objective-C. додаток Swift Programming Language- це повноцінний навчальний посібник з мови, складений програмістами Apple.

17. MATLAB

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

18. SQL


SQL – це процедурна мова для роботи з базами даних. З його допомогою можна заносити дані до баз, а потім читати, змінювати та видаляти їх. SQL Programming Languageдозволяє вучити SQL та особливості його застосування для найпоширеніших систем управління реляційними базами даних: MySQL, SQL Server, PostgreSQL, Oracle та ін.

19. R

R – це мова для статистичної обробки інформації. Він вбудований у багато популярних у світі програм для аналізу даних: SPSS, Statistica, SAS. Вивчити його можна за допомогою програми R Programming Language.

20. COBOL

Мова COBOL існує з 1959 року. Це єдина серед 20 найпопулярніших мов світу, створенням якої керувала жінка – контр-адмірал американського флоту Грейс Хоппер. Спочатку проектувався під створення бізнес-додатків. Дуже багато систем грошових переказів, розробка яких почалася ще в 70-х написані мовою COBOL. У державних та приватних корпораціях США є безліч працюючих систем, які потребують технічної підтримки та написані на COBOL. У деяких навчальних закладах Америки цю мову використовують для навчання студентів програмування. Ознайомитися з ним допоможе програма COBOL Programming Language.

Висновок

В App Store є програми для вивчення та менш популярних мов. Якщо трохи постаратися, то там можна знайти навчальні програми та для наступних 30 рядків у рейтингу Tiobe Index.

Отже, вам теж спала на думку: « Як мені навчитися писати програми для iPhone?«, « Як мені зробити свій мобільний додаток?«, « Як заробити мільйони нічого не роблячи?«. Намагаюся покроково відповісти на ці запитання (крім останнього).

Що потрібно знати від початку

Щоб створювати програми для iOSофіційно від вас потрібний комп'ютер Apple (iMacабо Macbook). Але якщо говорити чесно, вам потрібна операційна система OS Xтому багато хто спочатку хитрує і примудряється використовувати Хакінтош (Hackintosh), тобто запускають OS X на звичайних комп'ютерах - це економний варіант, протизаконний і досить клопіткий у плані налаштування. Я вам рекомендую, якщо ви вже твердо вирішили стати iOS-розробником, купити простенький Macbook або Mac Mini, можна навіть б/в (будь-який, випущений з 2010 року).

Далі – на чому писати. Програми для iOSпишуться мовами програмування Swiftабо Objective-C, а все магічне дійство відбувається у програмі Xcode(Безкоштовна). Swift— це дуже нова мова, яку Apple представила буквально нещодавно (середина 2014 року) і тепер активно доносить думку, що програмувати потрібно тільки нею, за нею майбутнє, вона сучасніша і швидша. І вони мають рацію, навчайте Swift. Objective-Cнавпаки мова з давнім минулим, тому зрозуміти його значно складніше початківцям, що не скасовує його міць і багатство існуючих напрацювань і книг по ньому (чого не скажеш зараз про Swift). І тим не менш, повторюю, вчіть Swift.

Якщо хочете робити кросплатформні програми (одночасно під iOS та Android) - вчіть C#та використовуйте середовище розробки Xamarin(Платна). Хочете робити кросплатформні ігри - качайте середу розробки Unity3D(умовно-безкоштовна), навчайте вже згадуваний вище C#.

А ще, щоб запускати свої програми на iPhone/iPad (навіть на етапі розробки) і потім викладати їх у AppStore, вам потрібно придбати статус Apple Developerза 100 $ на рік. Після покупки це вкотре мотивує як мінімум відбити ці гроші 🙂

Коли я поставив це питання, то подумав, що потрібно просто взяти хорошу товсту «біблію» по Objective-C (нагадаю, Swift тоді ще не було) і осягати таємні знання мови програмування главу за главою. Усі радили книгу Стівена Кочана « Програмування на Objective-C«. Wrong!Не повторюйте моїх помилок. Так, ази мови були збагнуті, книга хороша, але це довідник і він далекий від реальної розробки додатків з нуля. Щоб навчитися програмувати, вам потрібно «забруднити руки», намагаючись написати перші, нехай зовсім прості, але працюючіпрограми. Вам потрібні уроки із прикладами. Від простого до складного. А ще важливо поставити реальну мету, перша програма, які ви хочете написати і випустити в AppStore. Кожен урок або книга повинні давати вам знання, які ви можете застосувати у вашому проекті. Не робіть помилку «вічного студента», який тільки те й робить, що вивчає-вивчає-вивчає, але відкладає момент початку справжньої роботи. Наприклад, я ставив собі за мету зробити додаток-радіо і випустити його в AppStore за місяць - і мені вдалося.

Якщо ви знаєте англійську, вважайте вам пощастило, зараз я розповім вам, де черпати всі знання. Російською, на жаль, інформації дуже мало і часто вона запізнюється (і перекладається з англійської).

The iOS Apprentice

Кращий англомовний навчальний сайт RayWenderlich.com. Він мега-крут із трьох причин: 1) можна безкоштовно прочитати море уроків від азів до спроби повторити існуючі успішні програми (у тому числі на Swift), при цьому все написано душевно і з гумором; 2) там є відео-уроки (щоправда, платні); 3) Найважливіша причина- У них є книги для початківців, які навчать вас з нуля на прикладі створення додатків, дуже зрозуміло, з картинками (ну, як ми любимо). Книги платні (дають безкоштовно лише першу частину), але вони того варті. Купив їх усі і вони давно окупилися, тому що вони будують гарний фундамент цеглинок за цеглиною. Це не порівняти просто з читанням різних уроків упереміш на цьому ж сайті. Почніть із покупки книги The iOS-apprentice (першу частину якої можна скачати безкоштовно). Вона навчить вас створювати перші програми на Swift. Також у них є книги з розробки ігор SpriteKit(Фреймворк Apple для розробки ігор).

Другий корисний ресурс - AppCoda. Він простіший за RayWenderlich, але суть та ж — читаємо уроки з Swift, вчимося на прикладах. Вони теж мають власні книги (платні), крім безкоштовних уроків.

А що, якщо не знаєте англійської — упс, подібних російських інтернет-ресурсів просто немає. Книги російською? Звичайно, ви знайдете якісь книги на Ozon, але всі вони застарілі і не навчать вас мови Swift (на даний момент все лише Objective-C).

Найкраще, що я можу запропонувати вам, це хаб «iOS-розробка» на Хабрі, там постійно з'являються нові статті, але дуже хаотично.

Де знайти відповідь, щось не виходить

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

StackOverflow— найбільша криниця готових відповідей англійською. 80% відповідей знаходжу там.

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

Тостер- Аналог StackOverflow, але російською. Тут поки що складно знаходити відповіді, оскільки база питань ще не дуже велика. Зате можна запитати - на ресурсі достатньо професіоналів, які вам дадуть відповідь.

Ну чи можете спитати мене. Поки що безкоштовно 🙂

  1. Мова програмування. Який потрібно знати, щоб писати програми під iOS.
  2. Чи потрібний дизайнер, розробник інтерфейсів чи хтось ще?
  3. Офіційна частина: сертифікат розробника.
  4. Потрібне обладнання для комфортної розробки.
  5. Вічне питання: AndroidOS чи iOS?
  6. Що потрібно зробити сьогодні?
  7. Створення нового проекту.
  8. Компіляція. Що це таке і навіщо це потрібне?
  9. Запуск на симуляторі.
  10. Виводимо "Hello, world!".
  11. Які стандартні view є в iOS.

Мова програмування. Який потрібно знати, щоб писати програми під iOS

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

Мабуть, питання, яке я поставив у назві цієї частини, досить складне. Я можу відповісти на нього просто – Objective-C. Якби я на цьому зупинився, то я виявився б неправий. Я сказав би, що Objective-C – це необхідний мінімум. Нещодавно проходила конференція від Яндекса – YET, на ній одна з доповідей була присвячена саме тому, які мови програмування повинен знати розробник. Відповідь була на кшталт наступного: "Він повинен вивчати нові та нові мови програмування постійно, не зупиняючись на якомусь конкретно". Я із цим повністю згоден. Вивчаючи нові мови програмування, ви вивчаєте нові підходи, методи програмування. Тому, щоб писати програми під iOS, потрібно знати Objective-C, але також бажано знати інші мови програмування, щоб ваш код був хорошим, ефективним, гнучким.

Якщо ви ще не програміст, то я раджу вам почати з мови Сі. Скачайте книгу Кернігана та Рітчі ( а краще купіть) про мову Сі, прочитайте її, проробіть все, що там вам пропонується, і вже після цього я порадив би вам переходити до Objective-C. Якщо ж ви вже уявляєте, як писати програми, готові з легкістю відповісти на запитання – Що таке типи даних? Що таке змінна? Що таке функція чи метод? Що таке посилання та покажчик? Що таке "include”?” , ви знаєте Сі або C++ або Java або C#, то ви готові до написання свого першого додатку під iOS.

Також вам необхідно знати основи ООП та шаблони проектування. Напевно, список можна й надалі продовжувати, але навряд чи я готовий претендувати на якісне пояснення цих понять. Так, на жаль, Objective-C не та мова, з якої можна почати свій шлях програміста. Але якщо вам подобається і хочеться творити, то вам час бігти в магазин, закуповуватися книгами і починати свій шлях розробника.

Чи потрібний дизайнер, розробник інтерфейсів чи хтось ще?

Чергове, не менш просте питання. Якщо ви програміст і вмієте писати консольні програми і хочете почати писати програми під iOS, то на початковому етапі вам така людина не потрібна. Якщо у вас є iPhone | iPad || iPod Touch, ви знайомі з iOS, то вам не потрібний розробник інтерфейсів. Взагалі, Apple має такий документ – HumanInterfaceGuidelines. У цьому документі описано, де і який елемент інтерфейсу слід використовувати. Тому на початковому етапі можна обійтися без третіх осіб. Взагалі iOS SDK надає достатньо можливостей для розмальовки інтерфейсу програми, так що малювати в PS якісь там кнопочки або різнокольорові тексти, градієнтні заливки та інше вам не доведеться. Пізніше ми з вами створимо перший проект, в якому ми познайомимося з усіма етапами створення програми Hello, World!.

Однак, потрібно розуміти, що коли підуть серйозні проекти, програми, які ви захочете опублікувати в AppStore, то вам вже буде складніше без дизайнера та розробника. Складність може проявитися на різних етапах - або при розробці додатків, коли ви будете витрачати години в пошуках необхідної картинки або сидіти і творити в PS, або після того, як опублікуєте додаток і почнете отримувати коментарі від наших улюблених користувачів, які будуть скаржитися на ваш убогий дизайн безкоштовний додаток. Я зіткнувся на обох етапах із такими проблемами. Після отримання відстійних коментарів в AppStore я хотів закинути свою програму, яка між іншим безкоштовна, і забути про невдячних користувачів. Однак, корисність самої програми для мене, а також для багатьох інших користувачів, змусила мене проковтнути ті гнівні коментарі та продовжити розробку програми. Місяця три тому я почав розробляти додаток разом з дизайнером, який говорить що і куди вставляти, який колір вибирати, де і яку картинку малювати, і це, я хочу сказати, досить зручно. Тому я все ж таки раджу в якийсь момент почати використовувати послуги дизайнерів, щоб отримувати хороший фідбек від користувачів. І пам'ятайте - користувачі iOS-пристроїв хочуть бачити гарнийдизайн програми, навіть якщо його функціональність страждає.

Офіційна частина: сертифікат розробника

Напевно, ви вже багато чули про якийсь сертифікат розробника. Зараз я постараюся вас ввести в курс справи – навіщо він і чи потрібен він вам зараз. Сертифікат розробника являє собою файл, як і будь-який інший сертифікат. Цей файл видає вам компанія Apple після того, як ви пройдете всі етапи реєстрації в системі iOS (MacOS) Developer (Enterprise) Program.

Що ж вам дасть наявність файлу та реєстрація в одній з вищезгаданих програм? Відповідей на це питання – темрява темрява. Тому скажу тільки про найважливіше (все нижчеописане дається вам рівно на один рік):

  • тестування ваших додатків на своїх девайсах (хоча начебто це хакається і можна і без сертифікату)
  • доступ до форуму розробників на порталі Apple (хоча є спільнота StackOverflow.com, де набагато оперативніше можна знайти відповідь на ваше запитання)
  • можливість скачати бета-версії (ну і звичайно ж поточні) iOS та Xcode
  • можливість встановити бета-версії iOS на свій девайс
  • можливість опублікувати програму в AppStore
  • можливість прив'язати до 100 пристроїв до свого облікового запису, тим самим дозволивши даним девайсам встановлювати бета-версії iOS, тестувати ваші додатки (ще не опубліковані в AppStore) і ще багато чого нелегального
  • можливість попонтуватись перед друзями, що ви офіційний розробник iOS-додатків

Якщо ви вирішили, що вам потрібен такий сертифікат, то будьте готові розлучитися зі 100$ (300$ для Enterprise), відправити факс до США, ввести дані вашої банківської картки (увага! Вашої, саме вашої), та й дочитати цей розділ.

Тож поїхали.

  1. Ідемо за цим посиланням http://developer.apple.com/programs/ios/
  2. Клацаємо на Enroll Now
  3. Читаємо уважно флуд та йдемо далі – Continue
  4. Тут ми маємо 4 пункти:?a. Ви хочете створити новий Apple ID для Apple Developer Program?b. Ви хочете використовувати існуючий Apple ID?c. Ви вже зареєстровані як простий розробник, а тепер хочете стати офіційним розробником з усіма вищеописаними плюшками? Ви вже є учасником iOS або Mac Developer Program і бажаєте прив'язати до вашого облікового запису ще одну програму
  5. Друзі, далі вам самим треба пройти кілька кроків із заповнення особистих даних. Я вже точно не пам'ятаю, що там. Виникнуть питання - ставте в цьому топіку, я відповім по-можливості на все.
  6. Вам дали посилання на .pdf файл, який треба заповнити та відправити факсом до Apple.
  7. Друкуємо його, заповнюємо (дуже уважно та акуратно).
  8. Відправляємо факс до офісу Apple у США. (Будьте пильні, щоб ваш факс не потрапив у чужі руки, тому що там ви вказуєте номер банківської картки та CVV).
  9. Чекаємо на N-у кількість днів (тижнів), поки Apple обробить ваш запит.
  10. Отримуємо листа, в якому вас вітають з тим, що ви зареєструвалися в програмі і втратили сто доларів. Ура!

Після успішного проходження квесту у вас буде доступ до http://developer.apple.com/membercenter/ . Мабуть, огляд тієї сторінки або потребує окремої статті, або вимагає пошуку в Google/Яндекс.

Ну от, друзі, перейдемо до питань, що залишилися на порядку денному.

Необхідне обладнання для комфортної розробки

Якщо ви серйозно вирішили почати розробляти програми під iOS, то рекомендую відразу придбати комп'ютер/laptop з MacOs. Найдешевший варіант – Mac Mini, або щось б/в. Якщо ви студент і збираєтеся таксати обладнання з собою – Macbook Air. Якщо у вас багато грошей і ви хочете потужного універсального ноутбука – для ігор, складних обчислювальних завдань та програмування – Macbook Pro. Якщо ви бажаєте взяти настільний комп'ютер – iMac або Mac Mini. Для розробки – вам підійде будь-який комп'ютер у будь-якій існуючій конфігурації. Розмір екрану – на вашу думку. Я ось особисто зараз сиджу за Macbook 13” та Mac Mini 17”. Мене влаштовують обидва дисплеї. Якщо що, то завжди можна підключити зовнішній монітор до ноутбука.

Не забуваємо про те, вам рано чи пізно знадобиться iPhone, iPod чи iPad. Не треба довіряти лише iOS-симулятору, який поширюється в одному пакеті з Xcode. Завжди тестуйте релізні версії на девайсах. Або ж – шукайте тестерів (відповідальних та сумлінних).

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

Вічне питання: Android чи iOS?

Можливо, що це питання треба було поставити на самому початку, проте воно все ж таки розташувалося наприкінці цієї статті. Ви впевнені, що хочете спробувати себе в галузі мобільної розробки, але не знаєте яку мобільну платформу вибрати? Я не зможу відповісти на це запитання за вас. Але я знаю одне – якщо ви хочете розробляти програми під iOS, то ви повинні любити продукцію Apple та операційну систему iOS та MacOs. Ви запитаєте чому це? Відповідь проста - ви повинні любити свою справу, ви повинні творити. Тільки тоді ви зможете розробити класний і корисний продукт. Тільки в цьому випадку ви будете вивчати із задоволенням Objective-C та iOS. Вважаю, що це дуже важливо. Якщо ви маєте схожі почуття до продукції Apple, то сміливо йдіть в область iOS-розробок. Якщо ви думаєте - я знаю Java, але не знаю Objective-C, проте мені більше подобається iOS, ніж AndroidOs - то вибирайте iOS. Ні, а що ви очікували, що я почну хвалити Android OS?

Також мені подобається iOS-сфера своїм магазином програм. Там все красиво, правильно і там дуже жорстка модерація програм. Те звалище додатків, яке зараз в Andoroid OS - це просто жах, як для користувачів, так і гідних розробників.

Що потрібно зробити сьогодні?

Сьогодні ви повинні вирішити: коли ви почнете розробляти програми, чи вистачить вам поточного досвіду для вивченняObjective- CЧи є у вас необхідне обладнання, а найголовніше бажання?

Hello, світ.

Перевірка готовності

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

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

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

Вибираємо пункт "Create a new Xcode project". У наступному вікні вибираємо тип проекту. Нам потрібен: "iOS - Application - Single View Application".

Натискаємо Next. Побачимо вікно наступного змісту:

Роз'ясню поля введення:

  1. Product Name – Назва нового проекту – можете ввести будь-яке, але я раджу використовувати назви, ідентичні моїм, тому що я періодично на них посилатимуся.
  2. Company Identifier – Ідентифікатор вашої компанії – можете заповнити його як завгодно.
  3. Bundle Identifier – унікальний ідентифікатор вашої програми. Це поле можна буде редагувати пізніше.
  4. Class Prefix – префікс, який приписуватиметься до назв усіх класів, які ви створите у проекті. Я залишив поле порожнім ( "XYZ"- Це просто підказка).
  5. Device Family – які типи пристроїв можна буде встановлювати проект. Можна вибрати один із трьох варіантів: iPad/ iPhone/ Universal. Їхнє призначення очевидне. Якщо ви зараз не можете вирішити, чи потрібно вам створювати універсальну програму, то можете вибрати будь-який з інших варіантів. Це можна буде виправити будь-якому етапі життєвого циклу ПЗ.
  6. Use Storyboard – це пов'язано зі створенням моделі інтерфейсу користувача. Додалося разом з iOS5, так що при використанні цього жаху вашу програму можна буде встановити лише на пристрої з віссю iOS5 або вище.
  7. Use Automatic Reference Counting – це нова фішка компілятора Apple LLVM 3.0 – автоматично (майже) керує пам'яттю (стежить за витоками, зомбі та іншими жахами). Я сказав би, що для новачка – ідеальний варіант. АЛЕ – 1) не все там вже таке автоматичне, 2) чи довіряєте компілятору більше, ніж собі?, 3) Рекомендую управляти пам'яттю вручну.
  8. Include Unit Tests – підключити до проекту юніт-тестування.

У вас з'явиться вікно вибору категорії, куди буде розміщено проект. Хочу тільки попередити, що автоматично буде створено папку з назвою вашого проекту в тій папці, яку ви обрали, тобто додатково папку під конкретний проект створювати не потрібно.

Галочку “Create local git repository for this project” не ставимо. Краще потім за необхідності підключимо наш проект до репозиторію коду, якщо раптом знадобиться.

Натискаємо “Create” та бачимо нове вікно, вікно нашого робочого простору:

І так, у нас створено проект, згенерувалися якісь файли, якісь вікна відкриті.

Ознайомимося з файлами в меню навігації:

  • файли з суфіксом ".h" - це хедери, там, де ми даватимемо опис класів
  • файли з суфіксом “.m” – це implementation файли, там, де ми реалізовуватимемо раніше описані класи
  • файли з суфіксом ".xib" - це файли, в яких описується інтерфейс одного вікна програми

Компляція проекту

Компіляція -

  1. трансляція програми на мову, близьку до машинного, і подальше її компонування.
  2. трансляція програми, складеної вихідною мовою, в об'єктний модуль (здійснюється компілятором) і подальше її компонування готовий до використання програмний модуль.
  3. трансляція програми, складеної вихідною мовою, і подальше її компонування в програму на якомусь машинонезалежному низькорівневому коді, що інтерпретується (як наприклад у випадку мови Java).

Процес компіляції складається з наступних фаз:

  1. Лексичний аналіз. На цій фазі послідовність символів вихідного файлу перетворюється на послідовність лексем.
  2. Синтаксичний (граматичний) аналіз. Послідовність лексем перетворюється на дерево аналізу.
  3. Семантичний аналіз. Дерево аналізу обробляється з метою встановлення його семантики (сенсу) - наприклад, прив'язка ідентифікаторів до їх визначень, типів даних, перевірка сумісності типів даних, визначення результуючих типів даних виразів і т. д. Результат зазвичай називається «проміжним поданням/кодом», і може бути доповненим деревом розбору, новим деревом, абстрактним набором команд або ще чимось, зручним для подальшої обробки.
  4. Оптимізація. Видаляються надлишкові команди і спрощується (де це можливо) код із збереженням його сенсу, тобто алгоритму, що ним реалізується (у тому числі передраховуються (тобто обчислюються на фазі трансляції) вирази, результати яких практично є константами). Оптимізація може бути різних рівнях і етапах - наприклад, над проміжним кодом чи над кінцевим машинним кодом.
  5. генерація коду. З проміжного уявлення породжується код цільовою мовою (зокрема виконується компонування програми).

Простіш мовою від мене. На етапі лексичного аналізу перевіряється, що це символи у вашому вихідному коді йдуть у порядку і пов'язані символи наступних етапах розглядатимуться як єдина сутність – лексема. На етапі синтаксичного аналізу перевіряється, що це лексеми розташовані у правильному порядку, на необхідних місцях, у правильній послідовності. І, зрештою, на етапі семантичного аналізу перевіряються відповідності типів даних.

І так, коли ви натискаєте “Build project”, то спочатку виконується лексичний аналіз вашого коду, якщо він успішний, синтаксичний аналіз, а потім семантичний аналіз. У Xcode весь час працює легкий процес, який виконує цю функцію, тим самим підказуючи розробнику "на льоту". Наприклад, якщо ви не поставили “;” або раптом прирівняли int якийсь рядок символів, то Xcode підкреслить рядок червоною хвилястою лінією.

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

І так, спробуємо запустити наш проект, для якого ми ще не написали жодного рядка коду особисто.

Для цього звернемося до меню: Схема компіляції(Їй надано зелений колір на моєму скріншоті). Схема – це певна конфігурація проекту. Xcode генерує її автоматично. Натискаємо на рядок, який стоїть праворуч від назви проекту (ім'я девайса), якщо девайс не підключений, буде написано “iOS Device”. У вас з'явиться список наступного змісту:

У цьому списку ми вибираємо те, куди буде встановлений наш проект: це може бути ваш девайс, або симулятор. Якщо ви вибрали тип програми універсальний, можна буде вибрати тип симулятора: iPhone або iPad. Також можна вибрати для симуляторів версію операційної системи (важливо протестувати проект на всіх версіях iOS, на які програму можна встановити). Якщо заговорили про мінімальну версію iOS, то треба і згадати, як визначити її мінімальну версію? Все просто – якщо ви використовуєте методи (фічі), які були додані до версії iOS, наприклад, 4.0 , то планка мінімальної необхідної операційної системи піднімається до 4.0 . Давайте опустимо планку до 4.0 з 5.0 . Для цього звернемося до меню: “Deployment target” (виділено синім кольором на моєму малюнку). З випадаючого списку вибираємо 4.0 . Тепер знову повернемося до меню: Схема компіляції. Наш список тепер виглядає так:

Виберемо "iPhone 4.0 Simulator". І, нарешті, натискаємо на стрілочку, під якою написано "Run". У "Інформаційне табло"ми побачимо процес компіляції. Після того, як все успішно збереться, у нас відкриється вікно симулятора iPhone:

Тепер швидко пробіжимося на можливості симулятора.

  • Можна симулювати iPhone, iPhone Retina, iPad.
  • Симулювати різні версії iOS.
  • Знімати скріншоти.
  • Крутити екрани (портретний та ландшафтний режими)
  • Тряснути
  • Симулювати нестачу пам'яті.
  • Симулювати сервер друку
  • Геолокаційне становище
  • Мультитач жести (максимум 2 пальці)
  • Інше

До цього можна отримати доступ з меню програми симулятора:

Кілька слів про симулятор. На симулятор можна встановлювати програми тільки через Xcode, їх можна видаляти прямо з симулятора (як і на реальному пристрої), він підтримує багатозадачність. Але й має багато обмежень, наприклад, не можна встановлювати сертифікат в локальне сховище сертифікатів програми. Але найголовніший недолік те, що це СИМУЛЯТОР, а не ЕМУЛЯТОР. Тобто він лише робить вигляд, що є iOS-девайсом, просто малюючи схожий інтерфейс (програмний рівень). А ось емулятор виконує в точності те, що виконуватиме девайс (фізично). Який треба зробити висновок? Обов'язково тестуйте на реальному девайсі. У мене були випадки, коли на девайсі працює, а на симуляторі немає, і навпаки.

Виводимо "Hello, world!".

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

Цей розділ написано на згадку про Деннісе Рітчі, творця мови програмуванняCта ключовий розробник операційної системиUNIX, а також як співавтор книги «Мова програмуванняC» .

Мета глави – прикрасити наш пустий сірий екран. Чудово, поїхали. Повертаємося в Xcode, вибираємо у навігаційному меню "ViewController_iPhone.xib". Далі вибираємо “View” у списку. Праворуч вибираємо "Attributes Inspector". Ось як вікно виглядає у мене плюс додаткові коментарі:

Тепер додамо мітку UILabel. UILabel – це назва класу в iOS SDK, який дозволяє відобразити текст, що не редагується на екрані. Взагалі всі класи, що дозволяють щось відобразити, мають префікс. UI: UIView, UITableView, UITextView, UIButton,…. У вікні "Доступні об'єкти для відображення" шукаємо рядок з ім'ям Label. Як тільки знайшли, то натискаємо на неї і перетягуємо на наш поточний вигляд екрану.

Сині пунктирні лінії допоможуть відцентрувати/відкалібрувати відносне положення мітки. І так, вибираємо Label у списку об'єктів, що відображаються, якщо ще не вибрано, і бачимо у властивостях пункт: Text. Давайте впишемо туди "Hello, World!" і натиснемо Enter. Ось у нас змінився текст мітки та стиснувся. Давайте це виправимо. У категорії властивостейоберемо "лінійку""Size Inspector". Там є поля:

  • x та y – координати верхнього лівого кута мітки щодо батьківського вигляду, тобто того виду, куди ми помістили мітку – це вид View у нашому випадку.
  • width і height – відповідно ширина і висота об'єкта, що редагується.

Ви можете спробувати редагувати ці значення та простежити зміни. Також редагувати положення і розмір можна безпосередньо рухаючи мітку (текст) і смикаючи її каркас за різні "точки".

Витратьте ще хвилин 15-25 і пограйтеся з різними властивостями у різних категоріях:

  1. Вирівнювання тексту
  2. Розмір шрифту
  3. Колір, тінь тексту
  4. та ін.

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

Які стандартні view є в iOS.

У попередньому пункті я торкнувся назв деяких класів, відповідальних за інтерфейс. Власне приставка UIта означає User Interface. Тут я наведу, можливо, не повний, список доступних типів view. По-перше, всі наведені нижче класи успадковуються від UIView, тобто. володіють тими самими властивостями та методами. По-друге, ви завжди можете створити свій кастомний view. Список нижче:

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

2) UIButton – кнопка – основне призначення: звичайна кнопка, посилає сигнали об'єктам, повідомляючи у тому, що у неї натиснули

3) UISegmentedControl – кнопка із сегментами – основне призначення: кнопка з кількома активними частинами, можна визначити, на яку натиснули

4) UITextField – текстове поле введення – основне призначення: поле для введення тексту користувачем

5) UISlider - слайдер - основне призначення: звичайний слайдер, допомагає більш інтуїтивно змінювати будь-які налаштування

6) UISwitch – On/Off перемикач – основне призначення: має два стани – увімкнено або вимкнено, призначення очевидно

7) UIActivityIndicatorView – індикатор активності – основне призначення: зазвичай використовується, щоб повідомити користувача про те, що програма або завантажує дані, або просто виконує якісь обчислення

8) UIProgressView – індикатор стану (прогресу) – основне призначення: відображати стан завершеності чогось

9) UIPageControl – переключення між сторінками – основне призначення: відображення кількості сторінок, відображення поточної сторінки

10) UIStepper (>= iOS 5)- +/- покроковий контролер - основне призначення: теж очевидно

11) UITableView - таблиця - основне призначення: відображення таблиці, мабуть, найпопулярніший елемент

12) UITableViewCell – комірка таблиці – основне призначення: відображення рядка у таблиці, зазвичай кастомізується

13) UIImageView - зображення - основне призначення: відображення картинки або зображення

14) UITextView – текстове поле (скрольоване) – основне призначення: відображення великого обсягу тексту, який можна прокрутити.

15) UIWebView - web - основне призначення: відображення web-сторінки

16) UIMapView - карти - основне призначення: відображення карти

17) UIScrollView – скрольований вигляд – основне призначення: відображення кількох view, які не розміщуються на одному екрані

18) UIDatePicker – вид вибору дати – основне призначення: ідеальний варіант для введення дати

19) UIPickerView - вид вибору барабанний - основне призначення: альтернатива таблиці при виборі будь-якої опції

20) UIView - просто вид - основне призначення: очевидно

21) UINavigationBar - навігаційна панель - основне призначення: панель, в яку виводиться заголовок екрана та додаткові кнопки управління

22) UINavigationItem – елементи UINavigationBar – основне призначення: очевидно

23) UIToolbar - тулбар - основне призначення: відображення панелі, на яку поміщаються кнопки для керування додатком

24) UIBarButtonItem – елементи тулбара – основне призначення: очевидно

25) UIBarButtonItem (fixed and flexible space) – елементи тулбара особливі – основне призначення: змінюємо відстань між кнопками на тулбарі

26) UITabBar – таббар – основне призначення: допомагає перемикатися між різними екранами, що не пов'язані з один одним.

27) UITabBarItem – елемент таббара – основне призначення: очевидно

Ця стаття відкриває цикл, призначений для новачків. Смію сподіватися, що рівень подачі матеріалу дозволить розібратися в ньому навіть людям не знайомим із програмуванням. Почнемо нашу розповідь із невеликого ліричного відступу. Програми для iPhone та iPad пишуться мовою Objective-C. Ця мова широко використовувалася в компанії NeXT і прийшла в Apple після повернення Стіва Джобса. В даний час Objective-C є основною мовою розробки OS X та iOS додатків.

Для того, щоб розпочати програмування під iOS, Вам знадобиться комп'ютер Mac на базі процесора Intel та середовище розробки XCode. Якщо у Вас немає Mac-а – не біда. Можливо Вам підійде один із описаних методів вирішення цієї проблеми. Ми будемо орієнтуватися на XCode 4 та iOS5.

Встановлення XCode

Для початку нам доведеться зареєструватися на Apple-івському dev сайті. Перейдіть за посиланням і натисніть на register. Натисніть кнопку Get Started і пройдіть процес реєстрації. Там все досить просто, тому я не зупинятимуся на цьому моменті. Після реєстрації Вам надішлють лист із вашим Apple ID. Поверніться на сторінку Apple Developers та використовуйте її для входу в захищену зону. У розділі DevCenters клацніть посилання iOS. Як бачите, Apple пропонує вам купу документації, вихідників та уроків. На цій сторінці є все, що потрібно для початку розробки під iOS. На самому низу є кнопка Download Xcode, яку потрібно натиснути. Після завантаження встановіть Xcode на Mac.

Знайомство з інтерфейсом XCode 4

Для запуску Xcode перейдіть на свій головний диск і натисніть на developer>Applications.

Після того, як Xcode запуститься, виберіть пункт меню File>New Project, потім "Single View Application" і введіть як ім'я проекту (Product Name) HelloWorld. В результаті у вас має відображатися щось на зразок цього

Весь Ваш код та ресурси розкладені за спеціальними папками, які розташовуються в лівій частині вікна Xcode. Панель називається "Project Navigator" та містить усі елементи Вашої програми. Файли з вихідним кодом мають розширення ".h" та ".m". Якщо ви натиснете такий файл, то в правій частині Xcode відкриється редактор з кодом.

Не будемо поки що зупинятися на коді. Ми повернемося до цього питання трохи згодом. Якщо Ви подивіться на верхню частину екрана, побачите кілька кнопок, пов'язаних з Вашим проектом. Вивчимо цю панель докладніше.

Кнопка Run запускає ваш проект. Ви можете протестувати свою програму і переконатися, що вона поводиться дійсно так, як ви того очікуєте. Кнопка "Tasks" зупиняє запущену програму.

За допомогою кнопки Schemr можна вибрати цільову платформу, де запускатиметься ваша програма. Тут ви можете вибрати будь-який simulator і налагодити програму на комп'ютері, або запустити її на своєму iPhone (iOS Device), якщо Ви заплатили збір у $99. Єдина перевага, яка дає цей платіж – можливість запускати програму на реальному пристрої та розміщувати її в App Store. Я б не рекомендував Вам витрачатися до того моменту, поки у Вас не буде готова нормальна програма.

Breakpoints (точки зупинки) – дуже корисна штука. За допомогою цієї кнопки ви можете відзначити у вихідному коді рядки, і коли в ході виконання програми справа дійде до позначеного рядка, програма припиниться, і ви зможете переглянути стан змінних. Це дуже потужний і повсюдно використовуваний інструмент.

Натисніть "Run". Ви побачите вікно емулятора зі своїм проектом. Як бачите, поки він не блищить функціональністю – це просто заготівля.

Програмування для iPhone - Перший крок

Досить ходити навкруги, давайте щось закодимо. У вікні Project Navigator містяться файли з вихідним кодом. Клацніть по якомусь файлу.m. Зверніть увагу, деякі рядки пофарбовані в зелений колір – це коментарі, які виконують роль шпаргалок. Щоб не заплутатися в коді, програміст може залишати собі підказки та пояснення. Для позначення коментарів у мові C використовується поєднання слішів //. Все, що знаходиться в рядку правіше цих знаків, вважається коментарем. Якщо Ви хочете написати багаторядковий коментар, то можете використовувати поєднання /* і */ для позначення початку та кінця багаторядкового коментаря.

Перш ніж приступити до написання коду програми, я повинен на пальцях пояснити вам кілька концепцій: ООП (об'єктно-орієнтоване програмування), MVC (Modal View Controller), ".h" та ".m" файли. Отже... об'єктно-орієнтоване програмування передбачає поділ всього коду на так звані об'єкти, всередині яких зберігаються дані та команди, що їх обробляють. Об'єкт у Objective-C і двох файлов.h і.m. Файл.h називається заголовком (header) в ньому міститься "малюнок" об'єкта - перераховуються всі дані та назви блоків команд (методів), що містяться в об'єкті. Файл.m називається файлом реалізації (implementation) й у ньому докладно розписується усе те, що в заголовку саме тут програмується вся логіка програми.

MVC (Model View Controller) – це щось, що розділяє код та інтерфейс, який бачить користувач. Model - це дані користувача та дані, які ви показуєте користувачеві. View - це інтерфейс користувача і код, який забезпечує зв'язок між View і Model. Концепція MVC може здатися Вам надто дивною, проте з часом Ви побачите, що цей підхід дійсно спрощує життя програміста. Ця концепція має на увазі наступний порядок роботи: програміст окремо створює шаблон дизайну програми, де розміщує всі кнопки, текстові поля та іншу важливу нісенітницю, та окремо пише програм. Потім він показує XCode який метод (блок коду) повинен викликатися у відповідь на ту чи іншу дію користувача та яку назву має той чи інший елемент керування у тексті програми.

Розробляємо дизайн програми для iPhone

Давайте розпочнемо створення нашої програми з розробки дизайну. Клацніть у вікні Project Navigator по рядку MainStoryboard_iPhone.storyboard. В результаті XCode запустить редактор інтерфейсу.

У правому нижньому кутку Ви бачите список об'єктів (Library), які можна використовувати у своєму інтерфейсі, в центральній частині відображається вікно View, яке представляє макет інтерфейсу вашої програми. Правое верхнє вікно має кілька режимів, які перемикаються за допомогою розміщених над вікном іконок. На малюнку показано режим Atribute Inspector. Тут можна змінювати різні атрибути об'єктів, що становлять ваш інтерфейс.

Перетягнемо з вікна Library об'єкт Label на наш макет вікна. За допомогою мишки змінимо розмір об'єкта, як показано нижче. Інспектор відображає властивості об'єкта Label. Давайте відцентруємо текст, натиснувши відповідну іконку в рядку Layout.

Видалимо текст у полі Text (там було написано слово Label) і введемо там “Some String”.

Аналогічно додайте на макет кнопку (об'єкт Button)

Отже, ми розробили дизайн нашої програми. Нічого складного можете натиснути кнопку Run та подивитися на роботу своєї програми у вікні емулятора.

Починаємо кодувати

Отже, у нас є два візуальні компоненти розміщені на макеті. Ми хочемо, щоб при натисканні на кнопку змінювався текст у рядку. Щоб реалізувати цю задумку, нам знадобиться з коду програми звертатися до стороку (об'єкт Label) і викликати метод (блок коду) при натисканні на кнопку.

Клацніть на файлі "ViewController.h" на панелі ліворуч. Ми збираємось описати IBOutlet. IBOutlet з'єднує наш код з візуальним об'єктом, наприклад, з написом (label) або кнопкою (button). Приведіть код у файлі ViewController.h на вигляд

#import @ interface ViewController: UIViewController( IBOutlet UILabel* label; //надамо нашому рядку ім'я Label } //це заголовок методу, який буде //викликатися у відповідь натискання кнопки- (IBAction) buttonClick: (id) sender; @end

Це все, що нам потрібно прописати в заголовку. IBAction дозволяє з'єднати який-небудь метод з елементом інтерфейсу користувача, наприклад, у відповідь на натискання кнопки буде викликаний написаний нами програмний код.

Отже, ми сказали, що називатимемо рядок з текстом label і що у відповідь на дію користувача буде викликатися метод buttonClick. Давайте напишемо код цього методу. Переключимося на файл ViewController.m у дереві проектів. Після рядка @implementation...додамо код

- (IBAction) buttonClick: (id) sender( label. text = @ " Hello from Mobilab. ru "; )

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

Давайте розберемося, що тут бачимо. Ми звертаємося до об'єкта label – рядку тексту на екрані. Оскільки це об'єкт, він має всередині різні дані (які в ОВП також називають властивостями об'єкта) і методи яких можна звернутися, поставивши крапку після імені об'єкта. Властивість text відповідає за текст, що міститься всередині рядка.

Ми завершили кодування, залишилося зв'язати label та buttonClick з елементами всередині макету дизайну. Клацніть у вікні Project Navigator по рядку MainStoryboard_iPhone.storyboard, щоб перейти до конструктора інтерфейсу. Зетем клацніть на іконці “View controller”. Перейдіть на режим connections в інспекторі (остання іконка). Подивіться, що в інспекторі в області Outlets з'явився рядок label. Це та назва, яку ми вказали у файлі ViewController.h. Клацніть по кружечку в правій частині рядка label і перетягніть його на рядок з текстом Some Text у макеті дизайну.

Аналогічну операцію виконайте з кнопкою. Клацніть по кнопці з кружечком у групі "Received Actions", потім по buttonClick і перетягніть її на кнопку в макеті. В результаті розкриється контекстне меню, за допомогою якого можна вибрати момент виклику методу. Можна, наприклад, викликати код, коли користувач натисне кнопку, коли відпустить. Там багато варіантів. Виберіть "Touch up Inside".

От і все! Зберігайте проект і клацніть на кнопці "Run" на панелі зверху. Якщо ви все зробили правильно, то повинен запуститися емулятор з вашою програмою. Натисніть кнопку. Текст у рядку має змінитися. От і все. З першим уроком покінчено