Спецпроект Fcuk Rovio. Создай свою iOS вселенную с нуля

Информатор avatar | 76
FavoriteLoading В закладки
Fcuk Rovio. Создай свою iOS вселенную с нуля

У нас есть серьёзная тема для тех, кто хочет создать своё собственное приложение для iOS. Перед вами – первая статья в нашем справочном цикле, которая поможет научиться программированию под Swift, создать свою первую программу и разобраться в базовых вещах. Что самое главное, вам всегда готовы помочь в комментариях! Поехали.


Смело начинаем

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

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


Вступление и немного об истории Swift

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

По большому счету, от вас будет достаточно базовых знаний в области программирования. А ещё потребуется следующее техническое окружение:

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

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

В дальнейшем вам, возможно, потребуется заплатить 99 долларов за годовую подписку в Apple Developer Program. Сделав это, вы сможете:

  • запускать свои приложения на реальных устройствах
  • публиковать приложения в App Store
  • скачивать последние бета версии iOS и Xcode


Swift

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

Одним из главных источников дохода для Apple является магазин приложений App Store. И, следовательно, чем больше будет интересных приложений, тем выше будет прибыль Apple.

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

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

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

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

Давайте начинать!


Playground

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

Например, при помощи Playground вы можете решить следующие задачи:

  • освоить синтаксис Swift
  • поэкспериментировать с новыми API, чтобы улучшить навыки программирования
  • разработать новый алгоритм и понаблюдать за каждым шагом его выполнения
  • провести простые арифметические вычисления

1. Как говорится «лучше один раз увидеть, чем 100 раз услышать», поэтому давайте посмотрим на Playground сами. Чтобы это сделать нам потребуется запустить Xcode.

2. После запуска Xcode вы увидите окошко с предложением создать новый проект или запустить Playground. Собственно нам нужен Playground, поэтому смело выбирайте пункт «Get started with a playground».

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

4. После того, как вы нажмете кнопку «Save», вы увидите тот самый Playground.

5. Возможно, вы расстроились, что тут нет ничего интересного. Давайте это исправим, заменив текст в Playground на следующий:

var j = 2
for var i = 0; i < 5; ++i { j += j * i } j println("result: (j)")

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

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

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

8. Теперь в правой части Playground отображается панель Timeline. Еще ее можно открыть, выбрав в меню пункт View->Assistant Editor->Show Assistant Editor.

9. Timeline позволяет увидеть, как менялось значение выбранного выражение во времени. Чтобы это сделать, используйте слайдер внизу. Попробуйте поперетаскивать его.

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

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


Комментарии

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


Переменные

12. Переменной называют какое-либо значение, ассоциированное с символическим именем (идентификатором). И таким образом, когда говорят «переменная X хранит значение 3», имеют в виду, что значение 3 ассоцировано с символическим именем X.

Значения, хранящиеся в переменных, могут быть различных типов: строка, целое число, число с плавающей точкой, …

Еще есть такое понятие как тип переменной. Тип переменной определяет типы значений, которые она может хранить. Т.е строковая переменная может хранить только строки и не может хранить числа и т.д.

13. В Swift для определения переменных используются ключевые слова var и let. Разница между ними в том, что переменная, объявленная с использованием let, меняться не может.

14. Давайте объявим несколько переменных:

Как видите, присваивание значения переменной, объявленной с помощью let, приводит к ошибке. А также к ошибке приводит попытка использовать значение не подходящее для данной переменной.

15. Обратите внимание, что нигде явно не фигурирует тип переменной. Он определяется не явно из присваемого значения. Тем не менее, его можно задать явно после имени переменной.

16. Обратите внимание еще на один момент. Переменная, объявленная при помощи let, всегда должна быть инициализирована при объявлении, в то время как переменная, объявленная при помощи var, должна быть инициализирована только перед использованием.

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

String

17. Строка, для создания значения используются кавычки “”.

При создании строки вы можете использовать различные выражения на Swift, используя синтаксис «()», где какое-либо выражение. Но  есть ограничение, вы не можете в нем использовать символ кавычки («). Пример:

Int

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

Float/Double

19. Число с плавающей точкой. Double отличается от Float тем, что может хранить значения, которые в два раза больше. Если тип не указан, то по умолчанию используется Double.

Bool

20. Булев тип. Может принимать значения true (правда) или false (ложь).


Вывод в консоль

21. Консолью было принято называть совокупность устройств, которые обеспечивают взаимодействие человека с компьютером. Например, консолью вывода можно назвать монитор, а консолью ввода клавиатуру. Сейчас термин стал абстрактным и не связанным с реальным устройством (например, данные могут выводиться не на монитор, а записываться в файл) и на разных устройств консоль реализована по–разному.

Например, на каждом iOS устройстве есть диагностическая консоль, в которую выводятся системные сообщения и сообщения от приложений. Она доступна через Xcode и выглядит так:

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

22. Чтобы показать что-то в консоли, нужно использовать команды print и println.

Команда print отличается от команды println тем, что включает в себе символ первой строки (“n”).

23. Попробуйте выполните строки:

print("a")
print("b")
println("c")
println("d")
print("en")
print("f")

24. В результате вы увидите следующее:

25. Как вы помните, при создании строк можно использовать выражения. Таким образом конструирование выражения для вывода в консоль можно заметно упростить.


Функции

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

Для объявления функции используется ключевое слово func, после которого следует имя функции и круглые скобки. Если функция возвращает значение, то его тип должен быть указан после круглых скобок с использованием ключевого слова “->”. Если функция не возвращает значения, то тип можно не указывать или использовать тип Void, который означает «ничего» или пустое значение.

27. Значения, принимаемые функцией, указываются в круглых скобках. Объявление аргументов аналогично объявлению переменных, причем можно явно не указывать var/let. По умолчанию используется let.

Вызов функции осуществляется при помощи указания ее имени и значений для аргументов.

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

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

func kilocalories(#fats: Double, #proteins: Double, #carbohydrates:Double) -> Double {
return 4 * (carbohydrates + proteins) + 9 * fats
}

println("kilocalories == (kilocalories(fats: 20, proteins: 15, carbohydrates: 32))")


Что дальше

Поздравляю! Вы узнали немного о том, что такое Swift и Playground. Но это только начало. Впереди еще много интересного, с чем вам предстоит познакомиться.

Теперь вы можете продолжить двигаться дальше используя ресурсы от Apple или дождаться новых выпусков от iPhones.ru. Следите за новостями!

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

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

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (2 голосов, общий рейтинг: 4.50 из 5)
undefined
iPhones.ru
У нас есть серьёзная тема для тех, кто хочет создать своё собственное приложение для iOS. Перед вами – первая статья в нашем справочном цикле, которая поможет научиться программированию под Swift, создать свою первую программу и разобраться в базовых вещах. Что самое главное, вам всегда готовы помочь в комментариях! Поехали. Смело начинаем Эта инструкция предназначается для...
Прокомментировать

🙈 Комментарии 76

  1. Astraport avatar
    Astraport12 марта 2015
    9

    Спасибо огромное!
    Всё сделал по инструкции. Уже отправил на ревью. Жду ваших отзывов и покупок. Присматриваю яхту.

    ieatbooks avatar
    ieatbooks12 марта 2015
    1

    @Astraport, in-app забыл же! докрути быстро

    Astraport avatar
    Astraport13 марта 2015
    5

    @ieatbooks, не знаю, у меня все работает. Переустановите приложение.

    Rezon avatar
    Rezon12 марта 2015
    3

    @Astraport, Мне очень понравилось Ваше приложение! Специально завёл второй Apple ID, чтобы купить два раза. Регистрирую третий. Деньги тратятся слишком медленно. Пожалуйста, увеличьте цену. Спасибо.

    Astraport avatar
    Astraport13 марта 2015
    3

    @Rezon, в обновлении будет покупка consumable кристаллов по $1000. Все для клиента.

    tar.gz avatar
    tar.gz17 марта 2015
    0

    @Rezon,

    tar.gz avatar
    tar.gz17 марта 2015
    1

    @tar.gz, Убил :D

    Артур Малосиев avatar
    Артур Малосиев12 марта 2015
    1

    @Astraport, на iPhone 3G не запускается, развод! Че, не хватило денег сделать нормальную версию под iOS 6.1.6?! Сейчас поставлю вам жирный минус.

    Astraport avatar
    Astraport13 марта 2015
    4

    @Артур Малосиев, я тестировал на вашем устройстве. Все работает без проблем. Наберут китайского барахла, потом хорошие приложения из-за них из минусов не вылазят.
    Нет денег? Покупайте Андроид.

    Happy avatar
    Happy13 марта 2015
    0

    @Astraport, Ужас! iPhone 2G сгорел, требую возмещения убытков, подаю в суд.
    P.S. В качестве компенсации яхта сойдет.

    Astraport avatar
    Astraport13 марта 2015
    0

    @Happy, а вы название аппы читали перед установкой? Burning phone.

    Dexfir avatar
    Dexfir13 марта 2015
    0

    @Astraport, первый!!!!111!

    maxsokolov avatar
    maxsokolov13 марта 2015
    4

    @Astraport, ПИШУТ ЧТО 59 РУБЛЕЙ, СПЕСАЛИ 249, ВЕРНИТЕ ДЕНЬГИ ВОРЫ!

    Astraport avatar
    Astraport13 марта 2015
    5

    @maxsokolov, не нужно было на Андроид ставить. С вас сняли деньги Apple, Google, Amazon и Beeline. Все вопросы к ним.

  2. ruscrinn avatar
    ruscrinn12 марта 2015
    0

    Есть приложение Swifty в аппсторе, там тоже базовые вещи рассматриваются. Кому полезно будет ;)

  3. Jaster avatar
    Jaster12 марта 2015
    0

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

    Fleming avatar
    Fleming12 марта 2015
    0

    @Jaster, да, быстро освоите.

  4. feelgood66 avatar
    feelgood6612 марта 2015
    0

    “более строгую типизацию”? ага..

    Rezon avatar
    Rezon12 марта 2015
    0

    @feelgood66, а в чём проблема? Одни типизированные коллекции уже дорогого стоят)

  5. MrHubris avatar
    MrHubris12 марта 2015
    0

    iOS 8.3 beta 3 вышла

  6. MaIronCool avatar
    MaIronCool12 марта 2015
    0

    С осторожностью следует начинать работу на подобных вещах, по сути это как если бы перед вами стоял выбор, на чем писать, на VisualBasic или Vusial С++.

    По началу, все круто, просто и удобно, но как только появиться необходимость отойти в сторону (а она рано или поздно появиться), то выясниться, что сама платформа не поддерживает то то, то это, и придется либо выкручиваться, либо проект просто упрется в стену.

    Rezon avatar
    Rezon12 марта 2015
    0

    @MaIronCool, Swift по возможностям почти полностью аналогичен Objective-C (Swift чуть менее динамичен, но такая динамика довольно редко нужна). И совместим со всем (или с большинством, я пока что не изучал вопрос подробно) существующим Objective-C-кодом. Так что по этому поводу беспокоиться не стоит :)

    Innerspace avatar
    Innerspace17 мая 2015
    0

    @MaIronCool, интересно, а ты в двух словах сможешь объяснить, чего в VB не хватает по сравнению с плюсами? Прямого доступа к памяти что ли? В C++ например нет сборки мусора из коробки.
    Swift – тьюринг-полный язык общего назначения, для обычных приложений его хватит за глаза и за шиворот. Возможно, для игр и тяжелых приложений потребуется какая-то оптимизация.

  7. kbarabas avatar
    kbarabas12 марта 2015
    0

    Для ios: cs 193p – the best. Ну и Ray Wenderlich.

    А это? Ну можно рассматривать как рекламу, эээ, компании e-Legion.

    “Спасибо огромное!
    Всё сделал по инструкции. Уже отправил на ревью. Жду ваших отзывов и покупок. Присматриваю яхту.”

    +1000.

    James404 avatar
    James40412 марта 2015
    0

    @kbarabas, а как же wwdc video?))

    and7ey avatar
    and7ey12 марта 2015
    0

    @kbarabas, Cs193p великолепен. И подача материала отличная.

    Никогда не понимал смысла в стиле обучения как в этой статье (запустим playground и будем складывать числа).

  8. kbarabas avatar
    kbarabas12 марта 2015
    0

    Вот перечитал правила. И подумал: Интересно, а почему мое предыдущее сообщение не отображается?

    Под оскорбление не подходит, под “боян” тоже нет.

    Кстати, не в первый раз.

    SuperSega avatar
    SuperSega12 марта 2015
    0

    @kbarabas, наверно потому что там ссылка

    unknown uSer avatar
    unknown uSer12 марта 2015
    0

    @kbarabas, такая же история постоянно причем, не парься редакция работает))

  9. goodhoopoe avatar
    goodhoopoe12 марта 2015
    0

    пункт 17 вранье. экранирование никто не отменял.

    fanruten avatar
    fanruten13 марта 2015
    1

    @goodhoopoe, спасибо за замечание. Стоило написать абзац по другому.

    Экранирование не работает в \().
    Т.е вы не сможете сделать что-то вроде этого
    let dict = [“a”: “1”]
    let str = “\(dict[“a”])”

  10. goodhoopoe avatar
    goodhoopoe12 марта 2015
    0

    пункт 19 написан так, как его никто не поймет. float занимает 4 байта данных, а double 8 байт. разница между такими числа не 2, не 100 и не тысяча раз, а намного больше.

    Rezon avatar
    Rezon12 марта 2015
    0

    @goodhoopoe, насчёт 10 – согласен. Но “можно хранить значения намного больше” – это тоже неверно. Точнее, только отчасти верно. Главная суть, на мой взгляд, в точности. Double хранит больше значащих цифр.

    goodhoopoe avatar
    goodhoopoe12 марта 2015
    0

    @Rezon, согласен, не зря называется двойная точность, просто я какбы опровергал слова автора, что хранит числа в 2 раза больше. :)

    Rezon avatar
    Rezon12 марта 2015
    0

    @Rezon, Не 10, а 19, опечатался.

    fanruten avatar
    fanruten13 марта 2015
    0

    @goodhoopoe, Спасибо, поправим.
    Не вдаваясь в подробности стоило написать так: “Double отличается от Float тем, что может хранить значения, точность которых в два раза больше. Т.е. Float позволяет хранить числа с 6 знаками после запятой, а Double с 15.”

    arabesc avatar
    arabesc13 марта 2015
    0

    @fanruten, это так в спецификации языка указано?

  11. DrSpawn avatar
    DrSpawn12 марта 2015
    0

    Благодарю за статью. Очень жду когда дойдет до создания графического интерфейса.

  12. ruba123 avatar
    ruba12312 марта 2015
    0

    Интересно, Objective-C уже более 30 лет, но он не вызывал такого ажиотажа и фурора как представленный пол года назад Swift… Если уже даже на iPhones статьи о программировании на свифте…

    SuperSega avatar
    SuperSega12 марта 2015
    0

    @ruba123, столько раз я пытался начать изучение obj-c но эти скобочки, с собачками как китайская грамота. привыкший к javascript и actionscript сейчас с радостью изучаю swift.
    про яхту уже написали

    goodhoopoe avatar
    goodhoopoe12 марта 2015
    0

    @ruba123, на самом деле для сиобразных языков синтаксис очень понятный, если сразу вдолбить себе в голову, что вызывая метод объяекта нужно это делать “сообщением”, т.е. через пробел. а при присваивании свойства через точку. сам перешел с шарпа. первую неделю кровь из глаз текла, спустя пару недель чувствую себя в своей тарелке.

  13. burivuh avatar
    burivuh12 марта 2015
    0

    Вопрос, появившийся где-то на уровне пункта 4: а как включить отображение номеров строчек

    burivuh avatar
    burivuh12 марта 2015
    0

    @burivuh, вопросительный знак забыл

    Rezon avatar
    Rezon12 марта 2015
    0

    @burivuh, Xcode -> Preferences (можете нажать “Cmd + ,” ) -> Text Editing (вкладка наверху посередине в виде блокнота) -> поставить галочку “Show: Line numbers”.

    В русской версии, к сожалению, не знаю.

  14. maksr avatar
    maksr12 марта 2015
    0

    “Команда print отличается от команды println тем, что включает в себе символ первой строки (“\n”).”

    поправьте, пожалуйста. ‘\n’ – перевод на новую строку. но никак не “символ первой строки”. звучит совсем непонятно.

    kuskusik avatar
    kuskusik13 марта 2015
    0

    @maksr, в статье много непонятных моментов, пущай фиксят

    goodhoopoe avatar
    goodhoopoe13 марта 2015
    0

    @maksr, этц команду поймут люди изучавшие бейсик и паскаль. естественно в описании ошибка. перевод каретки на новую строку печатается после того, что находится в данной команде.
    из примера 23 видно, что после вывода println переменной “с” произошел перевод каретки на новую строку.
    такое чувство что это не статья от профессионала, коим в начале был описан данный туториал, а банальный кривой перевод.

    fanruten avatar
    fanruten13 марта 2015
    0

    @maksr, спасибо за замечание.
    Должно быть “символ перевода строки”.

  15. kuskusik avatar
    kuskusik13 марта 2015
    0

    С нетерпением жду продолжения, ибо в теме заинтересован.

  16. ALoginov avatar
    ALoginov13 марта 2015
    0

    Понравилось фото с книгой Кочана в мусорном ведре. Я свою, пожалуй, поберегу еще :)

    А для желающих изучить Swift рекомендую, все же, начинать не с Playground, а с простых приложений с интерфейсом с минимальным количеством кода, используя Interface Builder, Autolayout и Size Classes. Потом уже переходить к освоению структур и методов.

    Rezon avatar
    Rezon13 марта 2015
    0

    @ALoginov, А как Вы предлагаете написать это самое “минимальное количество кода”, не разбираясь, как этот код писать? :) Playground для этого как раз отлично подходит :)

  17. A1eksey avatar
    A1eksey13 марта 2015
    1

    Скажите, а в какой момент константы стали называть длинным определением “переменная, объявленная с использованием let, меняться не может”? Это к пункту 13, ежели что.

    iFrant avatar
    iFrant13 марта 2015
    0

    @A1eksey, согласен, тоже не понял этот момент

    fanruten avatar
    fanruten13 марта 2015
    0

    @A1eksey, задача была написать туториал для новичков.
    И поэтому все было максимально упрощено.

    A1eksey avatar
    A1eksey13 марта 2015
    0

    @fanruten, а как потом этому новичку привыкать к терминологии, принятой не только в программировании, но и в математике?
    Мне кажется, вы несколько перестарались с упрощением.

    Xok avatar
    Xok13 марта 2015
    0

    @fanruten, константу назвать переменной — это не упрощение, это новое слово в математике. На нобелевку тянет, не меньше. : D

  18. Boten avatar
    Boten13 марта 2015
    0

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

    AlexSutulman avatar
    AlexSutulman3 апреля 2015
    0

    @Boten, дело говоришь.

  19. Silmaril avatar
    Silmaril13 марта 2015
    0

    Не смотря на всю мою любовь к Swift хочется отметить, что он еще сыроват для освоения новичками. Так как в Xcode постоянно слетает подсветка и вообще он ведет себя не адекватно в проекте использующем Swift. Даже банальное po/print в консоли не работает при первой попытке, а иногда просто не работает да и за частую показывает не особо полезную информацию если сравнивать с Objective-C

  20. TOOP avatar
    TOOP14 марта 2015
    0

    Можно ли на PC поставить OS X Yosemite?

  21. shimansky avatar
    shimansky15 марта 2015
    0

    в текстовой переменной ставим кавычки так \”

  22. lokashur avatar
    lokashur19 марта 2015
    0

    А куда контрол-энтер дели? Как теперь на ошибки указывать (чисто для протокола: в этой статье они есть).

  23. SirKliv avatar
    SirKliv23 марта 2015
    0

    Для желающих поизучать свифт рекомендую группу в богомерзком вконтактике: http://vk.com/iosdevcourse
    Там найдёте свифт-марафон.

  24. kubik_13 avatar
    kubik_1323 марта 2015
    0

    по 29 пункту
    а разве обязательно при вызове функции писать названия переменных?
    нельзя вызвать так:
    println(“kilocalories == (kilocalories(20,15,32))”)

    xSphinx avatar
    xSphinx17 мая 2015
    0

    @kubik_13, ошибку выведет. Обязательно их указывать поскольку они могут быть с “!” и дефолтным значением. Что удобно.

  25. xSphinx avatar
    xSphinx17 мая 2015
    0

    Есть книга по свифту. Большая, подробная! Начинать надо с нее. Если не можете осилить не лезьте.

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

    Rezon avatar
    Rezon17 мая 2015
    1

    @xSphinx, У вас какая-то странная выборка “половины разрабов”. Ни один из разработчиков, что я знаю, на хакинтоше не работает. Некоторые, включая меня, с него начинали, но надолго не хватило)

    Innerspace avatar
    Innerspace17 мая 2015
    0

    @xSphinx, начинать надо с нормальных книг, например SICP. Свифт можно и методом тыка освоить.

    Шамиль Дзамихов avatar
    0

    @xSphinx, Хакинтош далеко не лучшее решение – каждое обновление системы проблема так как слетают все хакнутые кексты (а-ля драйвера) ? можно прожить и без обновлений но их со временем требует обновляющийся Xcode который при еще сыром Swift действительно лагает/ Сам я вложился в свой ноут докупил внешний вайфай(не работал внутренний), dvd-кедди и и HDD-диск, провозился кучу времени но поставил таки хак на ноут но вскоре отказался от этой идеи, помимо проблемных обновлений еще и есть проблема с раскладкой клавы на Dell-ах – не печатается символ “\” без которого никак, многочисленные тексты и раскладки в настройках осх не помогли – в итоге купил Air а Dell c Макинтошем оставил как резервный

    Шамиль Дзамихов avatar
    0

    извиняюсь много ошибок, долбанная автокоррекция
    *Dell c Хакинтошем

    iFilipis avatar
    iFilipis17 мая 2015
    0

    @Шамиль Дзамихов, удивительный баг. Как это возможно вообще? Я бы вот сделал какой-нибудь хоткей, чтобы этот символ печатать.

    Шамиль Дзамихов avatar
    0

    с хоккеем можно конечно что то придумать а-ля как на винде CoodClip но не серьезно это все,

  26. Innerspace avatar
    Innerspace17 мая 2015
    0

    Нужна именно Yosemite? Или можно предыдущие версии использовать?

    Шамиль Дзамихов avatar
    0

    @Innerspace, да

  27. iFilipis avatar
    iFilipis17 мая 2015
    0

    Ну и как вам Swift? С первого взгляда удобнее, а когда вникаешь – кошмар. Мне Obj-C гораздо легче использовать. На чем там Swift основан, кстати?
    Мои предпочтения к языкам:
    1. C#
    2. JavaScript
    3. PHP
    4. Objective-C
    5. C/C++
    7. Swift

    Шамиль Дзамихов avatar
    0

    @iFilipis, Swift основан на симбиозе современных языков Python C# JavaScript, точнее на их стиле синтаксиса, движок основан судя по всему на Обжс…Ему свойственна краткость конструкций блоков и синтаксический сахар, то есть много вариаций упрощений по коду, также быстрый компилятор и код на выходе

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь