Язык программирования swift на русском. Разработка Как программировать под Swift. Делаем первое приложение. Самый секретный проект

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

Я начал изучать Swift ровно 30 дней назад. Три дня назад моё приложение было утверждено Apple для бета-тестирования. Понятно, что бета ещё далеко не идеал, но для меня это было большим достижением.

У меня нет ни степени в области компьютерных наук, ни опыта работы разработчиком, но последние 5 лет я был продакт-менеджером в команде разработки ПО и писал Ruby on Rails приложения ради забавы. Мне хотелось быть более близким к тем вещам, с которыми я работаю, поэтому я начал кодить.

Почему я выбрал iOS и Swift?

Постоянный рост популярности мобильных приложений

Я хотел работать над тем, что нужно людям, и мне всегда нравилась близость со смартфонами у пользователей. Наши устройства знают о нас всё: когда мы просыпаемся и когда ложимся спать, где мы и как мы туда попали, наше расписание, наше отношение к друзьям и семье и многое другое, о чём не знает даже сам пользователь. Мне это нравится. А ещё, я уже давно являюсь поклонником Apple, так что это было естественно начать именно с iOS. Некоторое время я разбирался с Objective-C, мне не понравилось, и я решил изучать Swift.

Ограничения играют на пользу

Разработка приложений в рамках, заданных Apple, вполне доступна новичку и не сильно ограничивает возможности. Зато у меня не было соблазна отвлекаться на что-либо другое и вынуждало меня больше думать о UX.

Swift - быстроразвивающийся язык.

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

Ресурсы для начинающих

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

Я потратил кучу времени в поиске хороших ресурсов, инструкций и онлайн-курсов. Я нашёл много крутых вещей для начинающих, для тех, кто не видел ни строчки кода, и решил, что это будет слишком медленно. В то же время технические статьи и справочные материалы (в том числе от Apple) оказались рассчитаны на более опытных разработчиков.

В конце концов я нашёл золотую середину, ниже приведены материалы, которые я счёл наиболее полезными:

1. Стэнфордский курс Пола Хегарти «Разработка Swift приложений для iOS 8» .

Доступно бесплатно в iTunes U (в том числе на Windows). На просмотр первых пяти лекций и выполнение домашнего задания у меня ушло около недели. В процессе обучения я столкнулся с трудностями, и мне пришлось перейти к другим ресурсам. Тем не менее скоро я планирую продолжить обучение. А этот сайт поможет вам разобраться с тем, что вы не понимаете.

2. Курс от ВШЭ «Разработка iOS-приложений на языке Swift» .

Курс основан на книге «Swift: Programming Language» . Для обучения потребуется опыт разработки на любом языке программирования (хотя бы на уровне основ). В целом курс даёт хорошую подготовку для начала работы над своими приложениями.

3. RayWenderlich.com

Нет, это не чей-то персональный сайт. Это лучшее, что я когда-либо находил. Если вы только начинаете, советую подписаться на рассылку и воспользоваться учебником, размещённым на сайте. Благодаря ему я впервые узнал о странных вещах и нашёл, как с ними справляться. После прочтения приступайте к поиску идей. Если не получается - погуглите.

Мой тайм-план

Неделя 1. Я погрузился в лекции и задания Стэнфордского курса, параллельно читая книгу , на основе которой был создан курс ВШЭ, и изучая ресурсы RayWenderlich.com . В конце первой недели я решил, что готов к старту работы над приложением.

Недели 2 и 3. В это время я отправился в небольшое путешествие, в пути у меня не было доступа к интернету, и я заранее загрузил более 40 вкладок. Это дало мне возможность работать над приложением, не отвлекаясь. Каждой день я думал о том, как сделать его лучше.

Неделя 4. Я продолжал зачистку ненужного кода, рисовал логотип в Sketch и готовил приложение к отправке Apple на рассмотрение. Я получил ответ меньше, чем через сутки.

Я провел 15 часов, работая в Xcode, 3 часа в iOS эмуляторе, больше 4 часов ушло на чтение учебников и около часа на поиск ответов на Stack Overflow. Ещё кучу времени я был занят изучением материалов с помощью смартфона (это время я не считал).

Как уже было неоднократно отмечено, в том числе и , конференция была великолепной, пусть даже на ней и не представили никакого «железа». С головой хватило одних только программных продуктов. О том, насколько общественности понравилась конференция, говорит хотя бы тот факт, что после неё не произошло традиционного для таких случаев заметного .

И в то время как большая часть из представленного была вполне ожидаема общественностью, язык программирования оказался настоящим сюрпризом. Ведь никто даже не подозревал, что Apple работает в данном направлении. Впрочем, язык программирования - это не iPad, разработки такого типа мало интересны широкой публике. А значит, соблюдать секретность было не в пример легче.

Самый секретный проект

На самом же деле работы над Swift начались ещё в 2010 году, после презентации iPad. В компании хотели создать простой, удобный и функциональный инструмент, который мог бы максимально упростить жизнь разработчикам.

Работы велись в строжайшем секрете. Более того, довольно долго над проектом трудился только один человек - Крис Латтнер (Chris Lattner), директор отдела Developer Tools. Конечно же, впоследствии штат пришлось расширить. Но всё равно, число этих людей никогда не было достаточно велико. О разработке нового языка мало кто знал даже в стенах самой Apple, хотя к 2013 году он и числился самым важным проектом Developer Tools. Важно отметить, что в компании хотели представить сразу готовый продукт, избегая всевозможных бета-версий. Поэтому работы и растянулись до 2014 года.

Тут уместно будет рассказать немного о самом Латтнере. В Apple он пришёл в 2005 году, до этого трудился на благо проекта LLVM в Университете Иллинойса, входя в число ведущих разработчиков.

LLVM (Low Level Virtual Machine) - низкоуровневая виртуальная машина, универсальная система трансформации, оптимизации и анализа программ. Проект начинался как самостоятельный, но впоследствии получил значительную поддержку со стороны. В том числе и от самой Apple, которая затем активно использовала LLVM и в собственных проектах, включая OS X и iOS. Тот же Metal разрабатывался с применением данной системы.

Не обошлось без LLVM и в случае со Swift. При помощи данной системы язык компилируется в машинный код, оптимизированный таким образом, чтобы получить максимальную отдачу, при использовании приложения на технике Apple.

В своё время переход Криса Латтнера в Apple был более чем логичным шагом. Не менее логичным было и решение доверить разработку нового языка именно ему. Пока ещё рано выносить окончательный вердикт, но, похоже, что с поставленной задачей он справился великолепно.

Особенности Swift

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

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

На самом деле, не так то легко найти ту грань, когда код будет достаточно простым для набора, но при этом достаточно читабельным для того, чтобы сторонний разработчик мог без комментариев разобраться в кусках чужой программы. Например, в программе, написанной на Pascal легко разобраться, но код получается слишком длинным. PERL позволяет записать всё в несколько строк, но отличается крайней нечитабельностью кода.

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

Как сразу же становится ясно из названия нового языка («swift» - англ. «быстрый, стремительный» ), основной упор при его создании делался на скорость. В частности заявлено, что программа на Swift будет выполняться в 1,3 раза быстрее, по сравнению с аналогичной, но написанной на Objective-C.

Также при разработке Swift учитывались такие важные параметры, как простота, безопасность и гибкость. Этот язык исключает целые классы небезопасного кода и способен автоматически управлять памятью. Swift исключает саму возможность допущения целого ряда ошибок, столь распространённых в среде начинающих программистов. Что же касается простоты, то её хорошо подтверждает тот факт, что в течение 24 часов с момента , на нём уже .

Создатели приложили немало усилий к тому, чтобы сделать код Swift более выразительным и простым для понимания. Разработчик может сразу же отслеживать результаты своего творчества, просматривая отдельные части кода в т. н. «интерактивных игровых площадках» (Interactive Playgrounds). Если же для выполнения кода требуется довольно много времени, то за процессом можно следить на специально появляющейся для этого строке обратного отчёта. После того как код был усовершенствован, а алгоритм доведён до ума, разработчик просто перемещает его в свой проект. «Игровые площадки» могут быть полезны не только с точки зрения упрощения процедуры разработки, но и для оттачивания навыков использования Swift.

Традиционное приложение «Hello, World» выглядит в Swift следующим образом:

println("Hello, world")

А вот и ещё один пример несложного кода:

let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit."

Критика Swift

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

Поступает критика действий Apple, которой «лучше было бы заняться развитием таких языков, как Python или Ruby, вместо того, чтобы создавать ещё один». Такие слова подкрепляются мнением, что эти инструменты уже активно используются разработчиками со всего мира. Также мне довелось найти мнение, согласно которому Apple напрасно делает основную ставку на скорость. Мол, при современных уровнях развития железа это не так уж и важно.

Но больше всего раздражения вызывает тот факт (впрочем, как и всегда в подобных случаях), что Apple создала нечто только для себя, по своим стандартам и на своих основах. Причём заявляется, что хотя Swift и не слишком-то отличается от множества других языков, компания вновь заявляет о создании принципиально нового продукта.

Вместо послесловия

Можно критиковать Apple за чрезмерную закрытость и самонадеянность. Можно восхищаться простотой Swift и чистотой его кода. Но факт остаётся фактом - будущее нового языка программирования пока неясно. И возможны два сценария развития.

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

Сценарий второй. Подходы, применённые в Swift, становятся нормой в мире программирования. Apple снова удаётся повлиять на весь мир, изменив общепринятые среди разработчиков нормы. Идея «игровых площадок», вкупе с прозрачностью кода нового языка вполне могут совершить настоящий переворот в деле изучения программирования. А это позволит полностью пересмотреть весь процесс образования и спровоцировать появление программистов нового поколения.

Кстати, я не буду удивлён, если через несколько лет, тщательно «отполировав» Swift, доведя его до совершенства, Apple заявит, что вообще намерена отказаться от Objective-C и сделать ставку на новый язык.

Пользуюсь техникой Apple еще с «классической эры», с 1995 года. За этот период застал не одну внезапную и значительную (а порой и откровенно шокирующую) «революцию» в развитии компании. Которая, несмотря ни на что не утрачивала своего очарования. Верю, что так оно будет и впредь.

Последнее обновление: 25.12.2017

Устройства компании Apple являются признанным лидером в сфере информационных технологий. По последним данным доля iOS среди других мобильных операционных систем колеблется в районе 15-20%, а доля Mac OSX среди настольных систем составляет по разным данным 15-20%. Подобное широкое распространение устройств от компании Apple рождает потребность в программном обеспечении для этих устройств.

Традиционно основным языком программирования под iOS и MacOS был Objective-C, однако 2 июня 2014 года на конференции разработчиков Apple WWDC 2014 был представлен новый и более удобный язык программирования - Swift. По сравнению с Objective-C Swift обладает следующими особенностями:

    Swift является чистым объектно-ориентированным языком программирования

    Простота, ясный и четкий синтаксис

    Строгая типизированность. Каждая переменная имеет определенный тип

    Автоматическое управление памятью

Однако при этом Swift полностью совместим с ранее написанными прикладными интерфейсами Cocoa API, для которых использовались C и Objective-C.

При этом Swift продолжает развиваться. 19 сентября 2017 года вышла версия 4.0, которая добавила новые возможности для разработки под iOS и Mac OS. В принципе каждый год выходят новые версии.

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

Что нужно для разработки для iOS?

В первую очередь необходима соответствующая операционная система Mac OS 10.12 Yosemite или выше. Без Mac OS практически невозможно скомпилировать программу. Данное обстоятельство сильно ограничивает возможности разработки, учитывая тот факт, что Mac OS может гарантированно работать лишь на компьютерах самой компании Apple (iMac, MacBook, MacBook Air, MacBook Pro), а также учитывая высокую стоимость этих самых компьютеров. Однако на обычном PC под управлением ОС Windows или ОС на базе Linux создавать приложения под iOS и Mac OS практически невозможно.

Существуют также варианты с виртуальными машинами, на которые установлена Mac OS, либо использование Хакинтош, однако работоспособность подобных вариантов не гарантирована.

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

Непосредственно для самой разработки нам потребуются инструменты языка Swift, текстовый редактор для написания кода, симуляторы iPhone и iPad для отладки приложения. Для всех этих и многих других функций разработки Apple предоставляет бесплатную среду разработки XCode.

Нужны ли реальные устройства iPhone или iPad для тестирования разрабатываемых приложений? По большому счету нет, так как XCode предоставляет симуляторы для тестирования, однако в некоторых отдельных случаях предпочтительнее тестировать на реальном смартфоне.

Регистрация разработчика

И также непосредственно перед тем, как приступить к созданию приложений, необходимо зарегистрироваться в центре Apple для разработчиков. Для этого надо пройти по ссылке https://developer.apple.com/register/ :

Для регистрации надо будет войти на сайт с помощью своего идентификатора Apple ID и пароля. Если вдруг такого идентификатора у вас нет, то можно создать новую учетную запись, перейдя по ссылке Create Apple ID . После регистрации сайт перенаправит на страницу , где можно найти различные материалы по разработке для самых разных аспектов.

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

Что такое Swift?

Это новый язык программирования, разработанный Apple для создания приложений для iOS и OS X. Он построен на основе C и Objective-C, но более простой и гибкий. Кроме того, создатели Swift позаимствовали лучшие элементы языков программирования Javascript и Python.

Чем он лучше других языков программирования?


Разработчики Apple постарались создать максимально современный язык: Swift быстр (скорость реализации некоторых алгоритмов в 3,9 раза больше, чем на Python) и лаконичен (разработчики избавились от многословности Objective-C). Ещё одно важное нововведение - это возможность писать код и видеть результаты в режиме реального времени. До этого на протяжении долгого времени процесс создания продукта и сам продукт были разделены, и из-за этого программисты должны были тратить много времени на проверку и оптимизацию кода. В Swift они могут вносить поправки и сразу видеть результат. Это значит, что разработчики смогут быстрее проверять в деле свои концепты и в целом быстрее создавать приложения.

Как научиться программировать на этом языке?


Одновременно с релизом Swift Apple выпустила книгу о нём , которую можно бесплатно скачать в iTunes Store. Судя по реакции специалистов, многие из которых прочитали её в первые часы после презентации языка на WWDC, в ближайшие недели стоит ждать сотни видеотуториалов и обсуждений - первые паблики уже появились.

Зачем это Apple?

Во-первых, Swift - это ответ Apple на появление языка программирования , который разработала конкурирующая компания Google. С момента появления OS X Apple использовала только Objective-C, и появление Swift - это большой шаг в будущее. Во-вторых, создавая простой и современный язык, Apple надеется привлечь на свою сторону не только опытных разработчиков, которые уже умеют работать с Objective-C и C, но и новичков, которые наверняка используют данную им возможность и начнут изучать Swift. Рынок приложений снова вырастет, а значит, влияние Apple увеличится.

Flappy Bird уже воссоздали на языке Swift и выложили на GitHub

Что говорят эксперты?

Антон Домашнев

iOS-разработчик Look At Media

«О таком языке мечтали многие из программистов под iOS и OS X, потому что он удобнее Objective-C, но я не могу сказать, что Objective-C - плохой язык и сильно нуждался в замене. Однако мне определённо нравится то, что Swift намного более читаем, и код, написанный на Swift, будет в разы короче аналогичного кода на Objective-C, что увеличит скорость разработки. Судя по тому, что я увидел на WWDC, нам стоит ожидать бума на игры для iOS, так как Apple представила очень интересную утилиту Interactive Playgrounds, которая поспособствует увеличению интереса к разработке игр для девайсов Apple. Сегодня я начну читать учебник по этому языку - судя по тому, что было показано на презентации, переход на Swift не будет сложным, так как много конструкций похожи на те, которые мы используем сейчас в разработке на Objective-C. Новые свои проекты я собираюсь писать на Swift».

Владимир Бобров

Технический директор Look At Media

«Безусловно, релиз Swift - это крутой шаг как для компании Apple, так и для сообщества разработчиков. Новый язык позволит привлечь большее количество разработчиков за счёт снижения порога входа в экосистему разработки Apple, который был довольно высоким из-за языка Objective-C. Кроме этого, предложенный набор инструментов (Interactive Playgrounds, REPL) позволит быстрее отлаживать свои программы и игры. Полагаю, что свойства языка Swift и огромная поддержка со стороны Apple позволят ему добиться большой популярности в среде разработчиков ПО, ориентированных на массового пользователя».

Что ещё?

В Swift можно использовать эмодзи.


Если думаете, какой язык программирование изучить, советуем обратить внимание на Swift, и вот почему.

1. Что представляет собой Swift и почему он был так назван?

Swift – мощный и интуитивно понятный язык программирования для macOS, iOS, watchOS и tvOS, но отличается от Objective-C более широким набором возможностей, которые ограничивались связью с C. Кроме того, Swift можно назвать безопасным, поскольку язык имеет строгую типизацию: в любой момент времени вы точно знаете, с объектом какого типа вы работаете. Главным его преимуществом является скорость: как в работе над проектом, так и при запуске готового приложения. Именно за это преимущество перед другими языками (по заверениям создателей, он вобрал в себя всё лучшее от других языков программирования) его и назвали Swift (в переводе - быстрый).

2. Что стоит учить, Objective-C или Swift?

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

3. Почему Swift быстрее других языков? Может это неправда?

Apple хвастается тем, что Swift до 2.6 раз быстрее, чем Objective-C, и на 8,4 раза быстрее, чем Python 2.7. Думаем, что вопроса почему нужно заботиться о быстром выполнении кода не возникает - и так должно быть понятно, что более быстрый код работает более эффективно и плавно, что позволяет пользователю получилось удовольствие от взаимодействия с устройством.

4. Я слышал, что учить Swift очень просто. Так ли это?

Можно сказать, что это так. Swift был разработан, чтобы новички в программировании могли легко начать создавать собственные приложения, поэтому научиться программировать невероятно легко. В Apple сравнивают своё детище с языком сценариев, а программисты с BASIC.

5. То есть я могу просто написать приложение и почти сразу загрузить его в App Store?

6. Раз всё так просто, как быстро я стану профессионалом?

Вообще говоря, это спорный вопрос. Swift постоянно совершенствуется, поэтому истинными экспертами являются лишь его создатели. Даже если вы сами создали несколько отличных приложений и освоили ряд продвинутых курсов и учебных пособий, вы всё равно не будете одним из лучших, а потому на собеседованиях говорят, что постоянно совершенствуются, а не достигли совершенства уже к этому моменту).

Во всяком случае, когда вы поиграетесь со Swift и прощупаете его, поймёте, нравится вам это или нет и приступите к работе над реальными проектами, тогда можно будет сказать, что вы по крайней мере стремитесь стать профессионалом. А вообще, всё зависит от вас.

7. А всё-таки, зачем было создавать новый язык, если старый был рабочим?

Когда-то, Objective-C был основным языком программирования Apple для написания приложений, ещё со времён OS X. Но за это время языки и практика программирования сильно изменились, особенно в области мобильной разработки. Вместо того, чтобы дорабатывать старое, Apple решила пойти другим путём и изменить сам подход разработчиков к работе, сделав процесс более интерактивным.

8. А как же то, что Swift ещё не доработан до конца?

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

9. Я когда-то изучал языки программирования. На что похож этот язык?

Вероятнее всего, на Ruby или Python. Хотя здесь можно узнать и синтаксис из C.

10. Слышал что-то про какао. Можно подробнее?

Cocoa и Cocoa Touch — это фреймворки, которые работают на OS X и iOS соответственно. Оба они в основном реализованы с Objective-C и интегрированы с Xcode (если вы ещё не в курсе, то это среда разработки). Они состоят из библиотек, API-интерфейсов и рантаймов. Поскольку Swift - это язык для разработки под iOS, он также работает с Cocoa и Cocoa Touch. Если интересно,

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то