Swift — язык, который изменит программирование.

, watchOS , tvOS , Linux

Swift - (произносится [ swɪft ])мультипарадигменный объектно-ориентированный язык программирования, созданный компанией Apple для разработчиков iOS , OS X , watchOS и tvOS . Swift работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на Objective-C .

История

8 июня 2015 года компания Apple объявила о выпуске новой версии Swift 2.0, которая получила более высокую производительность, новое API обработки ошибок, улучшения синтаксиса языка, а также функцию проверки доступности функций Swift для целевых ОС. Новый улучшенный компилятор и стандартные библиотеки будут выпущены под операционные системы OS X, iOS и Linux и приобретут статус Open Source

Описание

Swift берет довольно многое из Objective-C , однако он определяется не указателями, а типами переменных, которые обрабатывает компилятор. По аналогичному принципу работают многие скриптовые языки. В то же время, он предоставляет разработчикам многие функции, которые прежде были доступны в C++ и Java , такие как определяемые наименования, так называемые обобщения и перегрузка операторов.

Часть функций языка выполняется быстрее по сравнению с другими подобными языками. Например, сортировка комплексных объектов выполняется в 3,9 раз быстрее, чем в Python , и почти в 1,5 раза быстрее, чем в Objective-C .

Код, написанный на Swift, может работать вместе с кодом, написанном на языках программирования , C++ и Objective-C в рамках одного и того же проекта.

Типы, переменные, области видимости

Пример кода, выполняющего конкатенацию 2-х строк.

var str = "hello," str += " world"

Swift поддерживает 3 уровня доступа: public, internal и private.

Опциональные типы и цепочки вызовов

Важной особенностью в Swift являются опциональные типы, которые позволяют обрабатывать ссылки и значения по образцу, сходному в , в котором указатель может ссылаться на значение или иметь значение null. Это означает, что неопциональные типы не могут выдать ошибку "указатель на null", поскольку компилятор устраняет такую возможность.

Сущность цепочки вызовов заключается в вызове нескольких связанных методов. Например:

let aTenant = aBuilding . TenantList [ 5 ] let theirLease = aTenant . leaseDetails let leaseStart = theirLease . startDate

Можно сократить:

let leaseStart = aBuilding . TenantList [ 5 ] ? . leaseDetails ? . startDate

Типы значений

В отличии от большинства объектно-ориентированных языков, Swift предлагает встроенную поддержку по передаче данных, и по ссылке, и по значению. В случае ссылки используются классы, в случае со значением используются структуры. При этом структур имеют всё те же программные механизмы, такие как методы, реализации протоколов. Тем не менее, структуры не допускают наследование.

Программист имеет право выбрать любую из этих двух семантик при реализации структур данных. Например при выборе больших структур программист может их реализовать как классы. А маленькие структуры данных (например 2D точка) можно реализовать в виде структуры, передаваемой по значению, таким образом получая данные без перехода по указателю. Преимущество Swift заключается в том, что по умолчанию он передаёт такие типы данных как Int и Double по значению, а такие как String и Array по ссылке. Такой подход может дать сильный выигрыш в производительности приложений.

Протокол-ориентированное программирование

Swift использует протоколы, которые в общем случае известны как интерфейсы.

Например можно объявить протокол SupportsToString, который будет гарантировать, что объекты, соответствующие этому протоколу, будут реализовывать метод toString. Код протокола будет выглядеть:

protocol SupportsToString { func toString () -> String }

Теперь можно реализовать этот протокол по отношению к классу String без доступа к базовому классу:

extension String : SupportsToString { func toString () -> String { return self } }

Библиотеки, разработка и выполнение

Swift использует ту же среду исполнения что и Objective-C , однако требует iOS 7 / OS X 10.9 или выше. Код Swift может быть использован вместе с кодом Objective-C , а при наличии расширений и с и C++ .

Чтобы помочь разработчикам при повторном использовании уже существующего кода, Xcode 6 предлагает полуавтоматическую систему которая привязку заголовочных файлов "bridging header" чтобы предоставить коду Swift доступ к коду Objective-C .

Управление памятью

Swift использует автоматический подсчёт ссылок (АПС) для управления памятью. Apple потребовалось ручное управление при использовании Objective-C , однако представленный в 2011 году АПС обеспечил более простое выделение и очищение памяти.

Отладка и прочее

Ключевым элементом системы Swift является возможность отчётливо отлаживать и выполнять код с помощью среды разработки, используя принцип Read-eval-print loop (REPL). Согласно этому принципу пользователь вводит выражение (read), система его вычисляет (eval) и выводит пользователю (print), а затем всё повторяется (loop). Таким образом REPL действует согласно принципу "песочницы". "Песочницы" - это интерактивные представления, выполняемые в среде Xcode, которые отвечают на запросы "на лету". Если время запроса превысит время ожидания по отношению к текущему запросу, то можно использовать график для демонстрации результата.

Сходства с C

  • Большинство операторов в Swift пришли из C, несмотря на несколько новых.
  • Фигурные скобки группируют выражения.
  • Переменные присваивают значение по знаку равенства а сравниваются по двойному знаку равенства. Новый оператор === проверяет указывают ли 2 ссылки на один и тот же объект.
  • Операторы for, while, if, switch используются похожим образом, однако новые операторы вроде for in итерирует только по коллекциям, а switch может брать нецелые значения.

Сходства с Objective-C

  • Основные численные типы (Int, UInt, Float, Double).
  • Квадратные скобки используются в массивах и для объявления и для получения элемента по индексу.
  • Методы классов наследуются как и методы экземпляров. Ссылка self в методах класса указывает на класс, в котором был вызван метод.

Отличия от Objective-C

  • Выражения не нуждаются в терминирующем символе (;), хотя они нужны при записи нескольких выражений на одной строке.
  • Нет необходимости в заголовочных файлах.
  • Использование вывода типов.
  • Обобщённое программирование.
  • Функции являются объектами первого класса.
  • Перечисление пунктов может включать алгебраический тип данных.
  • Операторы могут быть переопределены для классов, а также можно создать новые операторы.
  • Строки полностью поддерживают Unicode . Большинство символов Unicode могут быть использованы в идентификаторах и операторах.
  • До Swift 2.0 отсутствовала обработка исключений (хотя оно могла быть эмулирована замыканий).
  • Поведение нескольких известных потенциальных ошибок изменено:
    • Указатели по умолчанию не являются открытыми. Программисту не нужно отслеживать и помечать имена для ссылки или перехода по ссылке.
    • Присвоения не возвращают значения. Это предотвращает известную ошибку написания i=0 вместо i == 0 при компиляции.
    • Не нужно использовать break в конце блоков switch . В общем случае нет перехода к следующему блоку за исключением случая с использованием fallthrough .
    • Переменные и константы всегда инициализированы и границы массивов всегда проверяются.
    • Переполнения целого, вызывающие неопределённое поведение отслеживаются во время исполнения кода в Swift. Программист может разрешить переполнение с помощью операторов &+ , &- , &* , &/ или &% . Свойства min и max определены для всех типов и могут быть использованы для проверки потенциальных переполнений вместо того чтобы использовать константы из внешних библиотек.

Пример кода

// this is a single line comment using two slashes. /* this is also a comment, but written over multiple lines */ /* multiline comments /* can be nested! */ Therefore you can block out code containing multiline comments */ // Swift variables are declared with "var" // this is followed by a name, a type, and a value var explicitDouble : Double = 70 // If the type is omitted, Swift will infer it from // the variable"s initial value var implicitInteger = 70 var implicitDouble = 70.0 var 國 = "美國" // Swift constants are declared with "let" // followed by a name, a type, and a value let numberOfBananas : Int = 10 // Like variables, if the type of a constant is omitted, // Swift will infer it from the constant"s value let numberOfApples = 3 let numberOfOranges = 5 // Values of variables and constants can both be // interpolated in strings as follows let appleSummary = "I have \(numberOfApples) apples." let fruitSummary = "I have \(numberOfApples + numberOfOranges) pieces of fruit." // In "playgrounds", code can be placed in the global scope print ("Hello, world" ) // This is an array variable var fruits = [ "mango" , "kiwi" , "avocado" ] // Example of an if statement; .isEmpty, .count if fruits . isEmpty { print ("No fruits in my array." ) } else { print ("There are \(fruits.count) items in my array" ) } // Define a dictionary with four items: // Each item has a person"s name and age let people = [ "Anna" : 67 , "Beto" : 8 , "Jack" : 33 , "Sam" : 25 ] // Now we use Swift"s flexible enumerator system // to extract both values in a single loop for (name , age ) in people { print ("\(name) is \(age) years old." ) } // Functions and methods are both declared with the // "func" syntax, and the return type is specified with -> func sayHello (personName : String ) -> String { let greeting = "Hello, \(personName)!" return greeting } // prints "Hello, Dilan!" print (sayHello ("Dilan" )) // Parameter names can be made external and required // for calling. // The external name can be the same as the parameter // name by prefixing with an octothorpe (#) // - or it can be defined separately. func sayAge(#personName: String, personAge age: Int) -> String { let result = "\(personName) is \(age) years old." return result } // We can also specify the name of the parameter print(sayAge(personName: "Dilan", personAge: 42))

Swift - это надёжный и интуитивно понятный язык программирования от Apple, при помощи которого можно создавать приложения для iOS, Mac, Apple TV и Apple Watch. Он предоставляет разработчикам небывалую свободу творчества. Благодаря этому простому и удобному языку с открытым кодом вам достаточно просто интересной идеи, чтобы создать нечто невероятное.

Разработчики уже пользуются
удивительными возможностями Swift.

Swift - это быстрый и эффективный язык программирования с откликом в реальном времени, который легко можно вставить в готовый код Objective-C. Теперь разработчики могут не только писать более надёжные и безопасные коды, но также экономить время и создавать приложения с расширенными возможностями.

Прекрасное приложение в Swift. Простота использования и отклик в реальном времени - вот почему VSCO выбрали Swift, чтобы создать новую версию своего фотоприложения для iOS.

Превосходные приложения,
разработанные на языке Swift.

Всё больше разработчиков встраивают код Swift в свои приложения. А некоторые даже создают в Swift совершенно новые приложения.

Duolingo Khan
Academy Clear Sky Guide

Procreate Kickstarter Eventbrite Hipmunk

Производительность выше. Приложения лучше.

Приложения Swift превосходят ожидания. Например, обычный алгоритм поиска выполняется в Swift гораздо быстрее.

До 2,6 раза быстрее, чем в Objective-C

До 8,4 раза быстрее, чем в Python 2.7

В графе с использованием алгоритма поиска в глубину найдено 10 000 целых чисел*

Язык Swift добавлен
в учебную программу.

Не только разработчики оценили потенциал языка Swift. Университеты и другие учебные заведения преподают Swift на занятиях по программированию и публикуют бесплатные курсы в iTunes U. А значит, даже новички смогут легко перейти от основ кодирования к программированию на профессиональном уровне.

Университеты, включившие язык Swift в учебную программу

  • Калифорнийский университет в Санта-Круз
  • Колледж Футхилл
  • Мельбурнский королевский технологический университет
  • Мюнхенский технический университет
  • Общественный колледж Лосон
  • Общественный колледж Манхэттена
  • Общественный колледж Месы
  • Общественный колледж Хьюстона
  • Общественный колледж Централ Пьемонт
  • Плимутский университет
  • Политехнический университет штата Калифорния
  • Стэнфордский университет
  • Технический колледж северо-западного Канзаса
  • Технологический институт Монтеррея
  • Университет Аберистуита
  • Университет Фулл Сейл
  • Школа Ingésup
  • Южный методистский университет

Swift повсюду.
И теперь открыт для всех.

Swift бесплатно доступен для использования разработчиками, преподавателями и студентами по лицензии на распространение ПО с открытым исходным кодом Apache 2.0. Мы предоставляем двоичные файлы для OS X и Linux, которые позволяют компилировать код для iOS, OS X, watchOS, tvOS и Linux. А чтобы ускорить развитие и превращение Swift в ещё более мощный язык, мы создали новое сообщество, где пользователи могут напрямую вносить свой вклад в исходный код Swift.

Познакомьтесь со Swift.

Главная книга

Загрузите учебник Язык программирования Swift из Apple Books Store бесплатно. Узнайте, как благодаря Swift процесс программирования становится более удобным, гибким и увлекательным.

Xcode

Xcode - это приложение для Mac, предназначенное для разработки других приложений для Mac и iOS. В Xcode есть все инструменты, необходимые для создания потрясающих приложений. Его можно загрузить бесплатно из Mac App Store.

Веб-сайт для разработчиков

Получите подробную техническую информацию и ознакомьтесь с полным обзором языка Swift. Посмотрите блог для разработчиков, чтобы быть в курсе последних новостей. У вас также есть бесплатный доступ к отличным ресурсам: руководствам, видео и примерам кода.

Не так давно всеми нами известная компания Apple представила новый язык программирования, под названием Swift. Новый язык для разработки программ на IOS и OS X, вобравший в себя лучшие качества от своих предков, а именно языка С и Objective-C, при этом отодвинув в сторону их главные недостатки.

Как сказали в Apple, язык создан практически с нуля и использует паттерны безопасного программирования, с использованием современных функций, что должно сделать процесс создания приложений более быстрым и простым[конечно, если вы понимаете как вообще эти приложения надо создавать].

К слову скажу, что язык появился 2-го июня 2014 года и уже многие IT-сайты[такие как ХАБР] уже успели обсудить все плюсы, минусы и так далее, этого языка. Вся оценка сошлась на том, что этот язык очень интересен и достоин того, чтобы его изучать.

Эта статья — это, своего рода, введение в язык Swift, потому что я планирую написать еще достаточно много уроков по нему, поэтому если вам он интересен и мы будем вместе с вами его изучать.

К сожалению, а может и к счастью, нормальных, русскоязычных источников, по которым можно выучить этот язык — нет. Потому что, как все знают, 90% информации выпускают на англоязычном рынке и пока она будет переведена на русский, она уже теряет актуальность, поэтому единственный способ идти в ногу со временем — это читать книги на английском языке.

Чем я, собственно, и планирую заняться. Не так давно добил огромную книгу по языку С и думал переваливаться на Objective-C, но понял, что скоро он потеряет актуальность[если не полностью, то некоторой своей частью], поэтому выбор пал на Swift.

Welcome to Swift

Как оказалось, Swift был в проектировании не один год и, возможно, был задуман еще при Джобсе. Основу для языка компания Apple заложила в процессе продвижения своего компилятора, дебагера и framework инфраструктуры. Была существенно упрощена система управления памятью, с помощью автоматического подсчета ссылок.

Благодаря Objective-C, который начал поддерживать блоки, литералы и модули, появилась возможность для создания современной языковой технологии. Благодаря этой основе, компания Apple смогла создать новый язык, который станет будущем всей разработки софта для яблока.

Тем людям(разработчикам), которые уже знакомы с Objective-C, Swift покажется весьма знакомым, так как он сочетает в себе хорошую читабельность параметров и силу динамической объектной модели своего предка. Для многих будет огромной радостью то, что Swift совместим с Objective-C и может встраиваться в его код. Построенный на общей основе, Swift дает много возможностей и унифицирует процедурные и объектно ориентированные аспекты языка.

К счастью для нас, людей которые хотят научиться программировать на Swift’e, язык достаточно дружелюбен и не требует IQ за 200 для освоения. Это, как говорят разработчики, первый язык, который обладает достаточной мощностью и при этом так же интересен и прост как скриптовый язык[или как его еще называют сценарный язык].

Имеется поддержка playground, что очень сложно адекватно перевести, но если объяснять простыми словами — это поддержка функции позволяющей видеть приложение(программу), которое вы создаете, без компиляции и запуска проекта.

Вобрал лучшее от всех языков программирования и всю культуру, опыт инженеров компании Apple. Компилятор XCode сочетает в себе качество и высокую производительность, а язык максимально оптимизирован под разработчика, без каких либо компромиссов.

Расчет идет на то, что написать свою первую программу(а именно «Hello, World»), должно быть так же просто как и целую операционную систему. Все это делает Swift будущим разработки для компании Apple и всего мира в целом.

Swift — это фантастический путь в написании приложения для iOS и OS X. Цель языка амбициозна, а мы очень хотим посмотреть, что вы сможете создать с помощью этого!

The swift programming language — Apple

Вот и все, я думаю для введения хватит. Я попытался адекватно перевести введение из англоязычной книги по этому языку, параллельно разбавляя фразами от себя, надеюсь получилось не плохо. Если вас заинтересовал этот язык, то подписывайтесь на обновления блога и вместе со мной начнете изучать этот язык — всем удачи.

Крис Латтнер потратил полтора года на создание нового языка программирования. В течение этого времени он не рассказывал о своей работе никому, даже в кругу близких друзей. Он начал работать летом 2010 года, посвящая этому делу ночи и выходные дни, и к концу следующего года он выработал основы будущего языка. Только после этого Крис открыл свою тайну внутри компании, топ-менеджеры которой были достаточно впечатлены, чтобы присоединить к проекту нескольких опытных инженеров. Еще через полтора года проект Латтнера попал в список главных направлений компании, а команда разработчиков существенно расширилась. Сегодня новый язык идет к тому, чтобы изменить мир компьютеров. Компания, в которой работает Крис Латтнер, называется Apple, а созданный им язык получил название Swift.

2 июня 2014 года на презентации WWDC язык Swift . Компания выпустила тестовую версию для сторонних разработчиков и программистов, позиционируя язык как более быстрый и эффективный способ создания программ для iPhone, iPad и Mac. Даже после того, как Крис Латтнер начал работу над Swift, информация об этом продукте шокировала всех, кроме ограниченного числа работников Apple. Даже люди, косвенно принимавшие участие в создании языка и помогавшие Крису, были сильно удивлены, узнав этим летом, над чем именно он работал.

Swift захватывает аудиторию

Обычно новому языку требуется несколько лет после появления, для того чтобы набрать какую-то аудиторию. Это правило действует даже для таких крупных компаний, как Apple. Хорошим примером является компания Google с языком Go, представленным еще в 2009 году. Над Go работали самые светлые умы мира разработки ПО, Кен Томпсон и Роб Пайк, однако и по сей день прикладываются немалые усилия, чтобы у языка появились последователи. Но Swift – это зверь другой породы. Ожидается, что после того, как язык будет официально выпущен осенью этого года, он наберет аудиторию с беспрецедентной скоростью и превзойдет по степени поглощения такие языки, как Java и C# в 1990 году и начале 2000-х.

Чем можно объяснить такие оптимистичные предположения? Фактически Swift создан для среднестатистического программиста. На языке можно писать даже самые простые приложения, а наделенный довольно умными инструментами, язык предлагает эффективный способ учиться написанию самостоятельно. Но главная причина будущей популярности языка кроется в другом. Сотни тысяч разработчиков сегодня создают приложения для устройств Apple, используя Objective-C. Устройства Apple пользуются большой популярностью, а значит эти разработчики продолжат создавать для них приложения, но уже на Swift, так как он значительно лучше и эффективнее Objective-C.

«Не было никакого реального стимула использовать Google Go» — говорит Пол Янсен, который отслеживал прогресс различных языков программирования в течение около пятнадцати лет. «Swift отличается наличием стимула».

Сегодня на GitHub, популярном хранилище разработок с открытым исходным кодом, более 2400 проектов используют Swift. Стоит при этом помнить, что на данный момент язык доступен лишь ограниченному числу программистов.

Преимущества перед Objective-C

Чтобы отказаться от языка, на котором уже написано несколько продуктов, и начать учить новый, программистам нужны действительно веские основания. Переобучение требует времени и усилий, и на сегодняшний день Крис Латтнер – единственный человек с четырехлетним опытом программирования на Swift. Однако эти самые веские основания уже представлены.

Не то чтобы Swift значительно привлекательнее других языков, таких как C#, Ruby или Python, Swift значительно привлекательнее Objective-C, который сложно назвать современным языком. Синтаксис Swift более привычный. Также язык содержит несколько инструментов защиты от ошибок и багов. Swift лучше понимает действия автора кода и делает его работу эффективнее, позволяя делать больше за меньшее количество времени. Но самым интересным аспектом языка считаются так называемые Игровые площадки.

Игровые площадки

Игровые площадки призваны сделать программирование более интерактивным и доступным. Смысл в том, что когда программист пишет код на одной половине экрана, на другой половине он видит результат. Таким образом, можно в реальном времени наблюдать за созданием программы. Когда программист вносит изменения в код, они также вносятся в запущенную версию программы, что избавляет от необходимости повторных компиляций и перезапуска.

Такой подход к написанию кода не только облегчит работу программисту, он изменит то, как мы воспринимаем программирование, возведя его на совершенно новый уровень понимания. Крис Латтнер также надеется, что сделав написание кода более понятным и веселым, он поможет пересмотреть метод преподавания информатики сегодня.

Больше чем язык

Крис Латтнер, создатель Swift, курирует все инструменты разработчиков Apple. Все, с помощью чего создаются программы для телефонов, планшетов и компьютеров Apple, как сторонними разработчиками, так и инженерами компании. Будучи аспирантом университета штата Иллинойс, он создал своего рода средства для разработчика под названием LLVM, которые сегодня лежат в основе Xcode.

Apple использовала LLVM для того, чтобы изменить способ использования Objective-C при создании приложений. Это случилось после того, как Латтнер присоединился к Apple в 2005 году, а спустя пять лет он использовал LLVM в качестве основы для Swift. Эти два продукта специально были созданы для работы в тандеме. Другими словами, Swift – это не просто язык, это язык, который тесно связан со всем, что требуется разработчику для работы. Сюда входит не только интегрированная среда разработки, но и многие другие инструменты, которые уже знакомы каждому разработчику Apple, например отладчик. Иными словами, есть причины, по которым десятки тысяч программистов уже должны писать приложения на Swift.

Скорость

Это именно то слово, которое лучше других характеризует разные качества нового языка Swift. Язык демонстрирует потрясающую скорость преобразования сырого кода в исполняемое приложение. Скорость работы этих приложений на телефонах и планшетах должна удивлять. Swift дружелюбен не только для человека, но и для компьютера. И третье качество, о котором мы уже говорили, это скорость распространения.

Apple не первая компания, которая выходит на этот ринг. На нем уже есть , Google и Mozilla. В некоторых смыслах языки этих компаний зашли гораздо дальше, так как уже используются для внутренней работы. Более того, большинство из них с открытым кодом, что делает их распространение проще среди других компаний. Apple известна своим жестким контролем над собственными продуктами, и на данный момент исходный код закрыт, что может, например, затруднять создание кросс-платформенных программ. Однако есть мнение, что в конце концов исходный код Swift будет открыт.

Независимо от того, будет ли исходный код Swift открытым или нет, ему прогнозируют небывалую популярность и скорость распространения. Уникальность языка, а также популярность продукции Apple, вне всяких сомнений, сделают свое дело.

По материалам Wired

Итак, продолжим знакомство с простым и интересным языком Swift. В прошлый раз мы перспективного языка программирования. А теперь сделаем своё первое приложение !

Как создать приложение для iOS

Сегодня мы сделаем простое приложение для расчета индекса массы тела и необходимого количества калорий для поддержания веса. Для этого будем использовать формулы Гарисса Бенедикта и индекса массы тела .

1. Для начала давайте создадим проект: запустите Xcode и нажмите комбинацию клавиш CMD+Shift+N или выберите в меню File->New->Project

2. Теперь выберите Tabbed Application и нажмите Next .

3. На этом этапе надо придумать имя для приложения (Product Name), нажать Next и выбрать папку для сохранения. Параметры Organization Name и Organization Identifier можете не менять.

Главное, чтобы значение в поле Language было равно Swift .

4. После того, как вы сохраните проект, перед вами появится рабочее пространство Xcode.

Слева у вас будет панель Navigator, а справа - Utilities. В каждой из этих панелей есть свои вкладки, которые позволяют получить доступ к различным функциям.

Например, первая влкадка в панеле Navigator показывает список файлов проекта, третья позволяет производить поиск по проекту и так далее.

5. Найдите в списке файлов проектов файл с именем Main.storyboard и нажмите на него.

Файл Main.storyboad определяет, какие экраны (контроллеры) есть в приложении. Вы можете добавлять элементы на экраны, задавать связи между экранами и так далее.

Если вы выберите какой-нибудь контроллер, он подсветится синей рамкой:

После того, как контроллер выбран, его свойства начнут отображаться в панели Utilities . Например, контроллеру можно поменять размер, выбрав другое значение в поле Size .

6. Запустим наше шаблонное приложение и посмотрим, как оно выглядит в симуляторе. Для этого надо в верхнем левом углу выбрать тип симулируемого устройства и нажать комбинацию клавиш CMD+R или кнопку с икокой Play .

Как видите, у нас есть приложение с двумя экранами, преключение между которым осуществляется при помощи таб-бара.

7. Нужно переименовать название табов. Для того, чтобы это сделать, надо выбрать таб, кликнув на него или выбрав его в иерархии элементов управления.


После того как таб будет выбран, он подсветится зеленым цветом.

8. Теперь в панели Utilities выбирайте Attributes Inspector и меняйте значение в поле Title на BMR/BMI для первого таба и Килокалории для второго.

Сейчас на первом контролере размещены всякие надписи. Их надо удалить. Для этого выделите их и нажмите Delete .

9. Теперь добавим свои элементы управления. Внизу панели Utilities есть Object Library , в которой можно выбрать объекты и добавить их к сцене. Найдите объект Label и перетащите его на контроллер BMR/BMI. Перед этим не забудьте два раза тапнуть на сцене, чтобы масштаб стал стандартным.

Должно получиться примерно так.

В панели Utilities можно поменять текст, размер шрифта и так далее.

10. Перетащите еще несколько лейблов и поставьте им такой же текст, как и на картинке. Для последнего лейбла нужно поставить Lines в 2 , чтобы текст переносился на другую строку.

11. Теперь добавьте 3 текстовых поля (Text Field ).

И разместите их, как на картинке.

У текстовых полей поставьте параметр keyboard type в Number Pad .

И установите текст по умолчанию.

12. Теперь добавим элементы управления для выбора пола и кол-ва тренировок в неделю. В Object Library ищете Segmented Control и добавляйте на экран.

У Segmented Control можно менять количество сегментов и текст для каждого сегмента.

Сделайте так, чтобы сегменты выглядели, как на скриншоте.

13. Теперь добавьте кнопку (button ).

И установите ей заголовок.



После этого добавьте еще один label с lines равным 4 .

14 . Выберите контроллер BMI/BMR, нажмите два пересекающихся кольца в правом верхнем углу и откроется Assistant Editor . Он показывает код, ассоцированный с этим контроллером.

15. Протащим элементы управления.

Для этого выберите первый text field (в нашем случае это будет возраст), нажмите Ctrl, кликните на него еще раз и, не отпуская кнопки, перетащите внутрь класса. Если все сделано правильно, то вы увидите посказку “Insert Outlet, Action, …” .

Теперь отпустите курсор, и вы увидете окошко для создания связи. В качестве имени введите ageTextField и нажмите Connect .

16. У вас появится переменная ageTextField .

Проделайте эту процедуру для оставшихся text field, segmented controls и label с текстовым результатом. У вас должно получиться так:

Теперь протащите кнопку, но тип соединения укажите не Outlet, а Action . И в качестве имени используйте calculateTapped .

17. Теперь скопируйте следующий в метод calculateTapped .

Этот код выполняет расчет и выводит результат на экран.

18. Пришло время подвести итог. Давайте запустим и проверим:

Ваша первая программа готова! Молодцы!

Задавайте вопросы

Если что-то не получается по ходу дела, пишите в комментарии. Специально для этого мы пронумеровали каждый пункт. На все вопросы ответят разработчики-профессионалы из команды, так что не стесняйтесь.

Над текстом трудился Руслан Гуменный - ведущий разработчик e-Legion . Компания является лидером на рынке заказной мобильной разработки в Европе, входит в состав холдинга DZ Systems . За 9 лет существования были созданы приложения для РайффайзенБанка , Яндекса , BMW , Банка Москвы , Первого Канала , Aviasales , Sports.ru , ВГТРК , Mail.Ru Group и многих других компаний.

Если вы шарите в теме и вам есть, что добавить, не стесняйтесь – пишите в редакцию со своими статьями на тему разработки приложений. В следующем выпуске подробнее рассмотрим, что было сделано и доработаем приложение, подготовив его к публикации. Так что подготовьтесь заранее, сделав домашнее задание:)

(Нет голосов)

сайт Итак, продолжим знакомство с простым и интересным языком Swift. В прошлый раз мы познали базовые команды и функции перспективного языка программирования. А теперь сделаем своё первое приложение! Как создать приложение для iOS Сегодня мы сделаем простое приложение для расчета индекса массы тела и необходимого количества калорий для поддержания веса. Для этого будем использовать формулы Гарисса...

Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: