Як грамотно почати поринати в розробку під iOS і що для цього потрібно? Що необхідно для розробки програм для iOS

Шановні панове, цією статтею я відкриваю нову рубрику, присвячену програмуванню під iPhone, де будемо торкатися питань, цікавих як новачкам і не присвяченим, так і гуру від ObjC, які, як ми сподіваємося, не преминуть виправити наші помилки своїми коментарями. Сьогоднішній урок має ознайомлювальний характер.

Цілі уроку

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

Вступ

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

З чого почати? Питання швидше риторичне. Звичайно, якщо ви, дорогий читачу, юрист або, скажімо, будівельник - вам буде дуже складно почати і швидше за все не варто цього робити всерйоз, тому, як мені здається, краще робити добре одну справу, ніж дещо і погано. Однак, не виключатимемо і той момент, що вам хочеться програмувати для душі, що це ваше нове хобі. Тоді в добрий час. Однак, якщо ви, мій дорогий друже, вже маєте досвід розробки додатків, неважливо якою мовою – Сі, Паскале, Асемблере, Делфі або нарешті Бейсике або навіть Лого (у моєму підручнику з інформатики на початку 90х був і такий), то вам неодмінно треба спробувати себе на ниві програм для айфона.

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

1.Для людей взагалі незнайомих з мовою Сі – почніть із цього

2.При програмуванні під айфон вам знадобиться знання ООП (об'єктно орієнтованого програмування). Це не так складно, як може здатися з назви, насправді ОВП базується на кількох фундаментальних принципах, які зрозуміли для себе, ви з легкістю зможете робити шедеври. Читайте про ООП.

3.Якщо ви знаєте основи Сі, та й ООП не викликає у вас труднощів, вам все ж таки рекомендується почитати відмінність Objective-C застосовуваного в MacOS (і айфоні відповідно) від традиційних С і С++. Дуже непогано це описано.

4. Також відповіді на багато питань ви знайдете на нашому форумі в .

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

б) операційна система MacOS Leopard версії 10.5.5.

в) Інструментарій із сайту Apple, так званий SDK, пакет розробника. Цей пакет містить у собі все необхідне розробки. Завантажити його можна тут: http://developer.apple.com/iphone, попередньо пройшовши реєстрацію.
г) А ще нам дуже буде потрібно терпіння та посидючість. Без цього, на жаль, ніяк.

У багатьох після пункту А можуть одразу опуститися руки. Я вам скажу чесно, до знайомства з айфоном взагалі ніяк і ніколи не перетинався з Апплом, та й свою першу програму під айфон я написав взагалі не маючи макбука. Я затятий виндусятник, який почав своє свідоме життя з Windows 3.1 і дожив до Windows Vista, я був підкорений зручністю MacOS і анітрохи не шкодую про таке придбання, хоча досі левову частку часу проводжу за комп'ютерами з ОС від Білла Гейтса.

Для тих, кого ці слова не переконали, все одно є вихід. З моменту переходу комп'ютерів від Apple на платформу з процесором Intel - з'явилася можливість (природно не без танців і бубнів) встановлювати MacOS на звичайний комп'ютер, зізнаюся - я і сам так робив. У світі така ОС відома під різними назвами Kaliway, Hackint0sh тощо. На всіх файлообмінниках ви легко знайдете потрібний образ і хитнувши його, зможете поставити на свій комп'ютер Макось. І навіть за бажання запускати потім її у вікні ВМварі (VMWare). Як це все це зробити я описувати не буду, не личить пропагувати методи обходу ліцензії на Макі, але візьму на себе працю попередити вас від деяких помилок, уникнувши які ви, можливо, не втратите інтерес до програмування ще на початковому етапі підготовки інструментарію:

1. При установці ЗАВЖДИ використовуйте окремий вінчестер, підключений як майстер на нульову шину IDE або SATA.
2. Не намагайтеся встановити Леопарда з-під VMWare – перевіряв багато разів – це неможливо, хоча в мережі є люди які стверджують що робили це.

3. Після того як встановіть Макось можете спробувати запустити її з-під Віндів у ВМВарі, якщо вистачить ресурсів. Також окрема проблема, це драйвера. Мережева швидше за все схопиться у вас сама, відео буде 800х600 - тупо VGA. А ось як бути з вашою 8800GTX картою, вайфай адаптером і блакитним зубом, то тут пощастить (частіше не щастить).

4. Скільки образів мені не траплялося – на всіх була версія 10.5.1 або 10.5.2, а нам для роботи потрібно не нижче 10.5.5. Свій мак я оновлюю через інтернет, а ось з хакінтошем при оновленні на 10.5.5 такий фокус не пройде - зловіть яблуко, теж перевірено багато разів. У мережі є алгоритм як оновити хакіна до 10.5.5, зберігши працездатність системи - шукаєте бо знайдете.

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

Домашнє завдання у нас буде просте, але дуже важливе, не виконавши його, решта уроків стануть для вас марним HTML текстом, а моя праця не буде коштувати і виїденого яйця. І так, дорогі програмісти айфонщики, поки я пишу Урок №2, ви повинні:

А) Роздобути Мак або встановити хакінтош (виключно з ознайомлювальною метою)

Б) Оновити його до версії 10.5.5.

В) Завантажити та встановити SDK від Apple. Накачати купу прикладів із мережі, спробувати їх усе відкомпілювати. Загалом приступити до вивчення методом тику (найпоширеніший нашій країні метод, що вражає своєю ефективністю).

Напишіть відгуки.
Рашид (aka rashn).

сайт Шановні панове, цією статтею я відкриваю нову рубрику, присвячену програмуванню під iPhone, де будемо торкатися питань, цікавих як новачкам і не присвяченим, так і гуру від ObjC, які, як ми сподіваємося, не преминуть виправити наші помилки своїми коментарями. Сьогоднішній урок має ознайомлювальний характер. Цілі уроку 1. З чого розпочати програмування для iPhone. 2.Джентльменський набір розробника. 3.Домашнє...

У 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.

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

У сегменті мобільних технологій, безперечно, лідирує Apple зі своїм смартфоном iPhone. На презентації, що відбулася у вересні, компанія з Купертіно продемонструвала вже 7-му версію мобільного девайсу. Разом з нею Apple представила нову версію мобільної операційної системи iOS 10. Тепер це найзначніша операційна система у світі, як і її попередниці. З цього випливає, що вивчення розробки для iOS - найвигідніше вкладення часу та коштів.

«Яблучна» екосистема

Сьогодні ми займемося розробкою простого мобільного додатку для iOS. Звичайно, найкраще для цього підходить рідний Mac. Але якщо ти прихильник Windows або у тебе просто нема Мака, можна встановити операційну систему macOS під віртуальну машину у Windows. На просторах Мережі тобі не важко знайти спеціально заточену під PC версію macOS, в народі звану Хакінтош. Сміливо став її на віртуалку VMware, VirtualBox - на твій вибір. Відразу попереджу, що на PC-клавіатурі немає частини клавіш, які є на Mac-клаві, і багато їх поєднань натиснути в Хакінтоші неможливо. Це неабияк псує настрій. В іншому всі описані нижче операції можна успішно виконати на Хакінтоші.

Необхідні знання

Щоб програмувати взагалі і для iOS зокрема, треба багато знати. Математика та логіка, може, й не знадобляться спочатку, але будуть потрібні потім. Сучасні технології позбавили програміста необхідності досконально знати архітектуру комп'ютера, проте розуміти базові механізми, такі як системи числення, їх перетворення, швидкість роботи підпрограм або ефективність алгоритмів (велике O), необхідно.

На вищому рівні iOS-розробнику треба глибоко знати операційну систему macOS і власне саму iOS. Також тобі обов'язково треба освоїти «яблучну» мову програмування. Знання Delphi, C++, C# чи VB.NET тобі не дуже допоможе. У Apple своя екосистема зі своїми мовами: Objective-C та Swift. Звичайно, знання C++ ще нікому не зашкодило, програми та вставки на ньому зустрічаються скрізь, навіть у Apple. Але найвикористаніший за визначенням Objective-C, просто тому, що з'явився набагато раніше (у середині вісімдесятих років минулого століття), тоді як Swift лише два роки тому (2014-го). Apple покладає великі надії на нову мову і багато інвестує в неї. Для підтримки старенького софту вживається Objective-C, а новий пишеться на Swift. Тому тобі непогано знати обидва.

Щоб не марнувати час даремно, всі ці мови програмування можна вивчити під чуйним контролем викладачів на сайті.

Інструменти для розробки

Як ти знаєш, головний інструмент розробника під macOS і разом із нею iOS - середовище програмування Xcode. Вона включає засоби для створення програм для Mac, iPhone, iPad, Apple TV, Apple Watch. Усі платформи Apple. Xcode містить засіб побудови інтерфейсу (Interface Builder), редактор коду, що підтримує всі сучасні засоби роботи з кодом. Крім того, не виходячи з Xcode, можна протестувати програму; якщо він розробляється для зовнішнього пристрою, його можна запустити в емуляторі.

У систему включені емулятори всіх пристроїв, нові версії яких можна докачати. На додаток Xcode містить графічні інструменти для аналізу продуктивності програми, включаючи засоби діагностування завантаженості CPU, використання накопичувача (HDD, SDD та інші), навантаження на графічний адаптер (з боку OpenGL).

13 вересня вийшла нова, гаряче очікувана версія середовища розробки 8.0. Стабільні версії можна безкоштовно завантажити у App Store. Альфи та бети розповсюджуються за підпискою розробника. Восьма версія увібрала в себе: нову версію мови Swift 3, засіб вивчення Swift Playground для iPad, нову версію Interface Builder, яка стала швидше працювати і дозволяє переглядати макет програми на різних платформах, без необхідності розгортати на симуляторі саму програму.

На Xcode 8 можна розробляти програми для macOS Sierra, iOS 10, watchOS 3 та tvOS 10. Є всі SDK. Нові версії операційних систем стали послідовно з'являтися саме після презентації Apple, що відбулася на початку вересня.

Мова Objective-C

Стисло згадаємо основні відомості про мову. Objective-C - компілюється об'єктно орієнтована мова програмування, що використовується для написання додатків під «яблучні» системи. Є надмножиною або, іншими словами, надбудовою над C, успадкувавши від останнього синтаксис, типи даних, способи контролю за ходом виконання програми і додавши до нього можливості об'єктно орієнтованого програмування - опис класів та методів.

Як у C++, в Objective-C центральну роль грають об'єкти, із якими пов'язані чотири парадигми: абстракція, інкапсуляція, успадкування, поліморфізм. Мова C++ є строго типізованим, тоді як Objective-C - слабо типізований або має динамічну систему типів даних. Подібно до Smalltalk, в Objective-C об'єктам надсилаються повідомлення. Це виняткова можливість динамічних мов, оскільки тип об'єктів перевіряється під час виконання програми, а чи не під час компіляції.

Опис мови Objective-C займає не один об'ємистий томик. Тому, щоб здобути об'єктивні знання, зручно пройти курс «». Цілий розділ курсу присвячений цій мові.

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

Як семпла ми розробимо дуже простий додаток. Не відступатимемо від священної традиції, вітаємо світ. Однак з урахуванням того, що у нас графічний додаток, ми трохи урізноманітним його: додамо кнопку, натискаючи яку відображатимемо або приховуватимемо напис «Hello, World».

Запусти Xcode, у вікні вибери Create new project або в головному меню File -> New -> Project. У наступному вікні буде запропоновано вибрати цільову платформу та тип програми.


У цьому випадку нас цікавить платформа iOS. На вибір представлено сім типів програм. Шість з них - заготівлі типових додатків операційної системи iOS, які за замовчуванням містять різний набір компонентів. Сьомий тип – гра.

Типи додатків

  • Заготовка Single View Application призначена для простого застосування з одним екраном. Заготівля включає компонент View Controller, який дозволяє налаштувати вигляд програми за допомогою конструктора форм Interface Builder.
  • Master Detail Application створює додаток, де у табличному поданні відображається колекція об'єктів. Після вибору одного з них відображаються докладні відомості про цей об'єкт. Перший вид – майстер, другий – деталізація.
  • За допомогою Page-Based Application створюються програми, що мають кілька екранів, як сторінки в книзі. Отже, із цієї заготовки створюються, наприклад, читалки.
  • Tabbed application дозволяє створювати програми, де кожен екран можна переключитися будь-якої миті, тобто кожен екран має своя кнопка його активації, де відображається заголовок. Як приклад можна навести iTunes.
  • Game служить для створення заготівлі гри. На вибір пропонуються чотири фреймворки для створення гри: SpriteKit, SceneKit, OpenGL ES, Metal. Коротко розглянемо їх.
    SpriteKit є системою для двовимірної візуалізації та анімації текстурованих прямокутників - спрайтів. Під час відображення кадрів використовується стандартний цикл, кадр виводиться після того, як обробка пройде весь вміст сцени.
    SceneKit – високорівневий фреймворк для візуалізації тривимірної графіки без допомоги OpenGL. Він підтримує завантаження, маніпуляцію тривимірними об'єктами. У нього включені: фізичний двигун, генератор частинок та легкий спосіб скриптування.
    OpenGL ES - стандарт у галузі комп'ютерної графіки. Дозволяє візуалізувати 2D- та 3D-сцени. Дозволяє описати пайплайн для відеокарти: вершини проходять перетворення, збираються у примітиви, що розтеризуються у двовимірне зображення та виводяться на екран. У пайплайн можна включити програмовані шейдери.
    Metal - це низькорівневий API, який дозволить тобі вичавити всі потужності з твого відеоадаптера. Налагоджені API разом із передкомпільованими шейдерами та багатопоточністю дозволяють твоїй грі піднятися на новий рівень продуктивності та якості.
  • Sticker Pack Application - новий вид програм, що з'явився в iOS 10 і Xcode 8. Є набір простих або анімованих зображень, що використовуються в новому iMessage. Для створення не вимагає кодування.
  • iMessage Application - новий вид програм, що з'явився в iOS 10 і Xcode 8. Дозволяє створювати додатки для iMessage, наприклад для покупки та завантаження твого пакета стікерів. Також можна, скориставшись API iMessage, створити свій аналог цієї програми, включаючи програвання аудіо, відео, використання стікерів та інше.

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

Як заготівля для нашої програми виберемо Single View Application. Оскільки ми не будемо розробляти велику програму, нам вистачить коштів, що надаються цією заготівлею. Натискаємо Next. На наступній сторінці майстра слід ввести ім'я проекту, наприклад ShowLab. У спадному списку Language залишимо вибрану за замовчуванням мову - Objective-C. Далі в спадному списку Devices залишимо вибір Universal. Тут визначається, для якого пристрою (iPhone або iPad) створюється програма. Пункт Universal означає для обох. Знімемо прапорці Include Unit Tests та Include UI Tests, нам жодні тести не потрібні. Next. Виберемо папку для збереження проекту. Тепер тисни кнопку Create.

В результаті відкриється вікно зі списком всіх параметрів, що застосовуються до проекту. У цьому вікні можна змінити встановлені раніше у майстрі параметри: орієнтацію, цільовий девайс та інше.


Спочатку нам треба створити інтерфейс програми. Для цього одним кліком виберіть файл Main.storyboard у списку зліва (якщо цей файл не видно, розгорни вміст папки ShowLab). Правіше від списку все вікно займе Interface Builder. У центрі відображається макет пристрою. У нижньому правому куті вікна знаходиться панель компонентів. Перетягніть звідти на макет компоненти Label та Button. Вище панелі компонентів знаходиться перелік властивостей. Якщо у тебе він відсутній, натисніть кнопку Show the Attributes Inspector, що знаходиться під заголовком вікна у правій частині інтерфейсу.

Виділи в макеті компонент Label і налаштуйте його властивість Text: у спадному списку залиш вибір Plain, в рядок нижче введи потрібний напис, у нашому випадку «Hello, World». Якщо текст не міститься в межах напису, змініть їх, перетягуючи маркери на краях компонента. Щоб централізувати його по горизонталі, перейди на сторінку Size Inspector, натиснувши кнопку Show the Size Inspector (справа Show the Attributes Inspector). На цій сторінці зі спадаючого списку Arrange виберіть пункт Center Horizontally in Container.

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

Створюємо зв'язок між графічними елементами та кодом

Visual Studio (або Delphi) об'єкт у коді створюється автоматично в той момент, коли кладеш візуальний компонент на форму. Xcode цього не відбувається, але це не створює проблем.

Відкрийте вміст заголовкового файлу ViewController.h в окремому вікні, двічі клацнувши на ньому. У цьому файлі знаходиться оголошення розширення класу UIViewController, що позначається ключовим словом @interface. Таку можливість було додано до другої версії Objective-C. Тепер виконай такий трюк: перемістіть курсор миші на компонент - текстову мітку, затисніть клавішу Ctrl і ліву кнопку миші. Перемістіть курсор у вікно з кодом (файл ViewController.h), за курсором потягнеться синя лінія. Відпусти мишу та клавішу всередині опису інтерфейсу ViewController.

З'явиться вікно створення Outlet'у.


Це властивість об'єкта, яка посилається інший об'єкт (у разі візуальний компонент). Тобі треба ввести ім'я об'єкта Outlet, по ньому ти звертатимешся до візуального компонента, нехай буде lab. Далі вибирається тип об'єкта, він вибраний правильно: UILabel.

Ще нижче списку Storage вибирається тип посилання об'єкт: weak чи strong. Якщо вибрати strong, то об'єкт, на який вказує властивість, буде існувати до тих пір, поки властивість вказує на нього, у такому випадку він не зможе автоматично вийти, коли перестане використовуватися. З іншого боку, коли діє слабке посилання (weak), об'єкт може самознищити. Отже, вибираємо тип посилання weak і натискаємо кнопку Connect. У результаті до коду додасться такий рядок:

@property (weak, nonatomic) IBOutlet UILabel *lab;

Переконуємося, що Outlet – це властивість.

Тепер створимо Outlet для кнопки. Алгоритм залишився тим самим. Тільки властивості Name треба ввести інше ім'я, наприклад but. У код буде додано рядок:

@property (weak, nonatomic) IBOutlet UIButton *but;

В результаті маємо два покажчики на візуальні компоненти: lab та but - відповідно, напис та кнопку. Тепер, використовуючи покажчики, ми можемо маніпулювати компонентами коду.

Потім потрібно створити обробник події натискання кнопки. Для цього в окремому вікні відкрий файл реалізації ViewController.m. Точно так само, як ти перетягував лінію в заголовний файл для створення аутлета, від кнопки перетягни лінію у файл реалізації і відпусти до командної дужки, що закриває - @end. З'явиться вікно для створення події, подібне до вікна створення аутлета. Бачиш різницю: у заголовному файлі створюється посилання на об'єкт, у файлі реалізації – метод.


Заповнить поле Name, його значення представляє ім'я властивості - методу. Нехай буде onClick. Значення поля Type залиш за замовчуванням - id. У мові Objective-C цей тип є предком всім інших. У спадному списку Event вибрано за замовчуванням подію Touch Up Inside, яка відбувається в момент відпускання вказівника (миші, пальця ...) над кнопкою, тобто заключна стадія натискання кнопки. Це те що нам потрібно. У списку Arguments залишимо значення за замовчуванням: Sender - це об'єкт, який надіслав цей сигнал, у нашому випадку їм завжди буде кнопка. Тиснемо кнопку Connect. У результаті буде додано наступний код:

- (IBAction)onClick:(id)sender ( )

Мінус спочатку означає закритий метод (private). Ключовим словом IBAction є події (методи) візуальних компонентів з Interface Builder.

Між командними дужками напишемо код, що виконується при натисканні кнопки:

Lab.hidden = !_lab.hidden;

У цьому рядку коду ми інвертуємо значення якості hidden. Воно має тип BOOL, який має два значення: YES - істина і NO - брехня (кілька незвично Windows-программерам, де true і false).

Зверніть увагу на символ підкреслення, що стоїть перед ім'ям об'єкта - написи (_lab). Без нього компіляція завершиться помилково. Символ підкреслення автоматично додається для об'єктів, що містяться в інших об'єктах; тобто в даному випадку об'єкт lab міститься в об'єкті ViewController. Раніше це було умовне правило, що використовується для відмінності об'єктів, оголошених як члени класу, і локальних об'єктів. А тепер це суворе правило, реалізоване у компіляторі мови.

Зараз можна скомпілювати програму та запустити її на симуляторі. Ми вибрали симулятор для iPhone 7, що входить в Xcode 8. Кнопка компіляції та запуску є чорним прямокутником і знаходиться на панелі вгорі інтерфейсу.

Після компіляції програми, запуску симулятора та завантаження нашої програми на екрані симулятора відобразиться його інтерфейс: напис Hello, World і кнопка Switch. Якщо натиснути останню, напис зникне, при повторному натисканні з'явиться знову.

Ми зробили дуже простий додаток для розуміння суті розробки під iOS. Більш детальну інформацію про створення програм для iOS мовою Objective-C ти можеш дізнатися з курсу наших друзів з GeekBrains « ». У курсі два місяці віддається вивчення цієї мови. Під час першого місяця – вступні теми, а на другому – реальний кодинг професійних додатків.

Мова Swift

У 2014 році Apple представила нову мову програмування – Swift. Він швидко став найбільш обговорюваним і найбільш динамічно розвивається у світі. Це надійна, безпечна, інтуїтивно зрозуміла мова для розробки додатків під операційні системи macOS, iOS, tvOS та watchOS для всього парку пристроїв від Apple. Swift – ефективна мова програмування. Його легше вивчати, ніж його попередника - Objective-C, водночас Swift запозичив із нього найвдаліші ідеї. Разом з тим, розробники зробили мови сумісними, тобто в одній програмі може бути код як на Swift, так і на Objective-C. У світі є мільярди рядків коду та сотні тисяч успадкованих програм, написані на Objective-C, тому від його підтримки точно не відмовлятимуться.

При розробці Swift ставилася мета створити найзручнішу мову системного програмування - швидку, безпечну і виразну.

Алгоритм на мові Swift працює у 2,6 рази швидше, ніж такий самий алгоритм на Objective-C, та у 8,4 раза швидше, ніж на Python. Використання Swift робить процес розробки програм більш гнучким та зручним.

Завдяки своєму експоненційному розвитку, 3 грудня 2015 року мова Swift була передана до спільноти відкритих вихідних джерел. При цьому Apple суворо стежить за розвитком, організувавши комітет для його розробки. Тепер Swift доступний не тільки в системах Apple, але й у Linux. Всі додаткові інструменти для роботи з мовою, включаючи відладчик, стандартну бібліотеку, менеджер пакет, також вільні та відкриті.

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

App Store

Просто кажучи, App Store - це магазин контенту для всього спектру Apple-девайсів. Тут можна купити ігри та програми як від великих компаній, так і від незалежних розробників. Кожен розробник, у якій країні він не жив, може продавати або розповсюджувати безкоштовно свої програми на цьому майданчику цифрової дистрибуції. Щоб почати це робити, треба зареєструватися як розробник та купити ліцензію для продажу своїх додатків. Це плата за сервіс і розвиток магазину App Store.

Підсумки

Ми розробили простий додаток для мобільної операційної системи iOS, використовуючи для цього систему програмування Xcode разом із мовою Objective-C. Протестували готовий додаток на симуляторі iPhone 7. Ми дізналися, як побудувати інтерфейс користувача за допомогою Interface Builder, як зв'язати графічні елементи з кодом програми, як створити обробники подій. Познайомились із основами Objective-C. Крім того, ми звернули увагу на перспективну мову Swift, яка використовується для розробки потужних та безпечних програм для «яблучної» екосистеми.

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

Це гідний курс: пройшовши його, ти точно не витратиш час даремно. Він починається з двох докладних курсів з мови Java, потім слідує вивчення базового програмування під мобільну операційну систему Android. Далі курс з баз даних у загальному та мові SQL зокрема. Потім поглиблений курс розробки професійних додатків для Android. Після цього вектор вивчення перейде у бік Apple-систем: два докладні курси з мови Objective-C та корисний курс з Swift.


Лекції курсу проводять професійні викладачі, які мають великий досвід у розробці програмного забезпечення. Якщо щось незрозуміло, можна, не відкладаючи, поставити запитання. Взагалі, навчання на GeekBrains – живий процес, можна спілкуватися, ставити запитання, допомагати з відповідями. Для перевірки отриманих знань викладачі видають домашнє завдання, яке потім перевіряється. Після проходження навчання на тебе чекає гарантоване стажування в IT-компанії. А далі все залежить від тебе, якщо ти покажеш себе грамотним фахівцем, тебе запросять на роботу.

Спеціальний проект із компанією

Привіт, друзі.

Вирішив кардинально змінити сферу своєї діяльності (оптимізація та просування сайтів, та інтернет-магазини) та серйозно підійти до iOS-розробки. Якогось конкретного досвіду у програмуванні немає взагалі, лише у загальних поняттях лише на рівні базової теорії. До самої розробки підходжу з погляду професійного розвитку та заробітку на цьому, а також з погляду просто цікавої справи та можливих своїх проектів.

Тостер на мою тему читав, тому запитань а-ля "які книжки читати?" ставити не буду.

1. Наскільки терміново мені знадобиться MacBook для занурення у розробку?Однозначно знаю, що без нього нікуди. Справа в тому, що купити не проблема (не мільйонер, але для серйозних професійних змін готовий витратити 1000-1500 $ на робочу техніку), але чи є сенс, не знаючи ще нічого по темі, в таких початкових витратах? Чи достатньо, скажімо, встановити на Windows 7 (якщо: HP, 2 x 1.7 ГГц, 2 ГБ пам'яті, вбудоване відео) який-небудь емулятор і хоча б перші кілька місяців розібратися з початковою базою та основними поняттями?

2. Наскільки потужний потрібний MacBook для iOS-розробника?Скажімо, чи буде MacBook Air 13" ( Intel Core i5, 4 Гб, 128 Гб (SSD), Intel HD Graphics 5000)? Або дивитися який MacBook Pro 13"" Retina ( Intel Core i5, 8 Гб, 128 Гб (SSD), Intel Iris graphics 5100)? Або, може, ще що потужніше потрібно (процесор i7, пам'яті 16 Гб, відео не вбудоване)? Зрозуміло, що якщо гроші дозволяють, краще брати швидше, але, на жаль, купувати MacBook топової конфігурації - ну зовсім зараз незручно у фінансовому плані. З іншого боку, взяти старенький MacBook у когось з рук, щоб потім міняти його через півроку теж не дуже хочеться.

3. Чи потрібен сам девайс із iOS для старту навчання розробки?Або на Windows 7/OS X можна буде якось емулювати iPhone, щоб дивитися, що виходить? Чи це взагалі взагалі по-іншому робиться? :-) Знову ж таки, купити не велика проблема, але чи потрібно мені це зараз? І, якщо він необхідний, ще одне суміжне питання: чи купувати щось свіже (5/5s) чи не важливо (4s)?

4. Чи є необхідність у класичних курсах з Objective-C?Чи краще самостійно розбиратися з нуля? Живу в Мінську, курси нічого особливого не уявляють, все звичайне (підходи, методики, загальний рівень). Ще знаю, що програмування - це постійне самонавчання. Питання: чи є сенс пройти місячні курси, щоб отримати стартову базу, а вже далі рухатись самостійно? Чи без проблем можна старт взяти вдома?

5. Як планувати процес самонавчання?Нічого нового: прочитав – спробував зробити, незрозуміло – пошукав в інтернеті, сильно незрозуміло – вперед на форум? Просто приблизно так давно я навчав HTML. Але, ясна річ, Objective-C справа серйозна, як і всі суміжні технології, і чи буде толк з такого навчання? Чи потрібна якась конкретна система та чітка градація підвищення свого рівня (спочатку прочитати книгу, потім пройти курс, потім вивчити цю суміжну технологію тощо)? Підкажіть, будь ласка, як входили до iOS-розробки саме ви.

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

Дуже дякую за вашу увагу та інтерес до моїх питань. Гарного тижня всім! ;-)

  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 – елемент таббара – основне призначення: очевидно