Начало xcode

Начало Xcode

Появлением на свет этой среды разработки Apple ответила на тысячекратно заданный ей вопрос, нужны ли ей вообще сторонние разработчики программного обеспечения. Ответ можно было сформулировать и словами: нужны.

В конце 90-х, представители Metrowerks, производителя самого популярного и всеми любимого CodeWarrior, попытались договориться с Apple о взаимопомощи и поддержке. В течение многих лет Apple сама использовала в разработке программного обеспечения, и даже операционных систем, инструменты со стороны.

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

Переговоры с Джобсом закончились приобретением Metrowerks микропроцессорным отделением Motorola.

CodeWarrior был лучше чем Project Builder, хотя сравнивать сложные объекты на лучше-хуже настолько же некорректно, как сравнивать координаты точек на плоскости по величине, в этом конкретном случае, увы, такое сравнение имело смысл.

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

Но…Стив так решил…

Независимость Apple от сторонних средств разработки

Ещё во времена NeXT, Стив пришёл к выводу что у серьезной компании, разрабатывающей оригинальную (в смысле, ни на какую другую систему не похожую) платформу, должны быть свои собственные средства разработки.

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

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

В любом случае, Стив твёрдо решил превратить Project Builder в официальную и самую важную среду разработки для Mac’ов и честно предупредил об этом Metrowerks. Никто не станет мешать продавать CodeWarrior Carbon-разработчикам, но ни о каких соглашениях не может быть речи. Apple нужна собственная адекватная среда разработки, и она у неё будет.

Были только два параметра, по которым Project Builder превосходил CodeWarrior: это цена и разработка Cocoa-приложений. Project Builder был бесплатным, CodeWarrior стоил несколько сотен долларов.

И, несмотря на талант и усилия инженеров Metrowerks, их продукт так и не смог даже сравниться с Project Builder в Cocoa, а переходная эпоха, когда почти все программное обеспечение для Mac OS X писалось в Carbon, подходила к своему концу.

Перемены

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

Старые баги, про которые было досконально известно как их обходить, и как вообще не сталкиваться с ними. Вместо них появились новые, незнакомые. Их было намного меньше, но о них я узнал на форуме. Я с ними сталкивался, но принял за особенности поведения.

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

Xcode 1.0

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

Хотя Xcode был, пока дело не доходило до каких-то запредельных манипуляций с кодом, абсолютно предсказуем и понятен, несмотря на множество нарушений правил «гуманного» интерфейса. Но это нисколько не мешало. Может, не все правила… нужны?

Своих собственных новшеств в первой версии Xcode было предостаточно. Например, такая утилита как Fix&Continue. Запустив код на исполнение, в некоторых случаях в него можно было внести исправления без остановки исполнения и повторной компиляции.

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

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

А вот операционные системы и сам Xcode строили с её помощью, и сборкой систем занималась целая ферма из сотен Mac’ов. Утилита для этого называлась distcc.

В комплекте с Xcode поставлялись средства для разработки Cocoa-приложений с помощью Java, и полный комплект WebObjects, библиотеки которой тоже теперь были на Java. По моему, переход на Java окончательно добил WebObjects, и это не только моё личное мнение.

А из проблем могу вспомнить только две: проблемы с отладчиком (иногда) и плохую работу системы автоматического дописывания известных среде разработки ключевых слов. Вот это было серьёзно: идентификаторы и в Cocoa, и в Carbon, очень длинные. Имена функций, констант и тому подобное.

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

Например (и это ещё далеко не самые длинные «ключевые слова»):

NSGetUncaughtException;
NSOutlineViewDataSource.

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

Тем более, как утверждала документация Apple, в Xcode встроена первоклассная утилита, дописывающая эти длинные слова автоматически.

В Xcode 1.0 эта утилита была практически бесполезна. В Xcode 1.5 её почти решили. В наши дни её нет.

Источник: http://e-gf.ru/apple/nachalo-xcode/

Lada XCODE: дата выхода на мировом и российском рынках

Август 2016-го стал для российского автомобилестроения в некотором смысле знаковым, ведь именно в это время на Московском международном автосалоне была представлена концептуальная модель нового кроссовера, разработанного АвтоВАЗом.

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

Сегодня же автолюбителей интересует запланированная для сделавшей настоящий фурор новинки Lada Xcode дата выхода в продажу.

Lada XCODE: что показала первая презентация

Представляя модель, производители отметили, что главная цель презентации нового кроссовера на выставке – показать потребителю выбранное направление компании, т.е. концепт моделей Лада в недалёком будущем.

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

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

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

Интересно! Разработчики ожидают особенную заинтересованность к дате выхода Lada XCODE именно со стороны молодых людей, с этой целью позиционировали данный кроссовер в виде «современного гаджета для молодёжи».

Когда ждать выхода нового кроссовера, и запланирован ли он вообще

Ещё больший интерес автолюбителей вызвал тот факт, что все СМИ, которые сообщали о представленном АвтоВАЗом кроссовере, после выставки давали неоднозначную информацию: одни – что модель представляет собой просто концепт моделей будущего и в продажу не поступит, другие – сообщали разные даты выхода Lada XCODE.

Сегодня всех, кого заинтересовала новая разработка тольяттинцев, радует более конкретная информация о том, что предварительно запуск в производство новинки запланирован на 2018 год.

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

в автосалонах будет представлен вышедший с конвейера уже усовершенствованный кроссовер.

Более точная дата выхода Лада ХCODE пока ещё не названа, но в общем – период запланирован.

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

Чем выделяется визуально и привлекает новинка от АвтоВАЗ

Все, чьё внимание привлекла новинка от АвтоВАЗ, хотят получить о ней максимум информации уже сейчас, а не в момент поступления в продажу. Чем же она привлекательна?

В модельном ряду производителя новенький кроссовер займёт место среди Vesta и XRay, став, по мнению экспертов, самым достойным конкурентом популярному сегодня «корейцу» Hyundai Creta. До того момента, когда выйдет Лада ХCODE, единственной конкурирующей моделью будет Веста Кросс, массовое производство которой запланировано на 2017 год.

Лада ХCODE привлекает изысканным и динамичным дизайном, современными пропорциями и при этом компактными свесами. Выразительность экстерьеру придают:

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

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

Лада XCODE – пятидверная конструкция, а не трёхдверная, как кажется на первый взгляд. Внешний вид кроссовера и его динамичность подчеркивает крутой наклон стекла пятой двери, над которым расположился спойлер.

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

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

Какие основные цветовые решения будут предложены после запуска серийного производства, пока не сообщается.

Как и характерно для кроссоверов, у Лады ХCODE увеличен дорожный просвет и размер колёс, что позволит эксплуатировать автомобиль в разных условиях, не боясь грунтовых покрытий или перекрёстных дорог.

Что известно о технических особенностях

Такая ожидаемая многими Лада ХCODE выпущена на смешенной платформе Калина-Веста, т.е. каркас с двигателем позаимствованы у Калины, а подвеска – у Весты.

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

Представленная на Московском международном автосалоне концептуальная модель была переднеприводной (другого варианта у Калины, «поделившейся» движком, не предусмотрено).

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

В любом случае, уточнить момент с поставленным приводом, так же, как и с окончательными характеристиками и комплектациями, можно будет уже ближе к дате выхода Лады Хкод в продажу.

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

  • турбированным двигателем;
  • передним приводом;
  • автоматической коробкой передач;
  • прочной подвеской.

Что касается подвески, то «позаимствованный» у Весты вариант передней подвески располагается на подрамнике для увеличения жёсткости и обеспечения лучшей управляемости. Этот прочный и независимый элемент способствует максимальному снижению шумов и вибраций. Задняя подвеска – полунезависимая.

Индивидуальные опции, отличающие Lada XCODE

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

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

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

Концепция нового авто предусматривает применение ряда перспективных решений для комфортного управления. Одно из них – телематическая платформа LADA Connect, применённая в рассматриваемой новинке.

Уникальность этого решения в том, что у водителя появляется возможность управлять некоторыми системами в кроссовере с помощью специального приложения на смартфоне.

Читайте также:  Apple раскрыла дальнейшие планы по развитию apple watch

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

В интерфейсе Лады XCODE продуманно и удобно объединены цифровые приборы, для вывода данных предусмотрен десятидюймовый экран мультимедийной системы «нового поколения». Кроме того, новая модель интегрирована с облачными сервисами Lada Cloud.

Несмотря на то, что основной перечень опций, которыми будет комплектоваться модель, станет известен ближе к дате выхода Lada XCODE в продажу, уже известны некоторые запланированные электронные помощники:

  • функция «Круиз-контроль», которая также рассчитана на соблюдение установленной дистанции между кроссовером и находящимся впереди него авто;
  • система экстренного торможения в случае появления препятствия;
  • автоматическая парковка (причём в двух вариантах – при параллельной постановке авто и при перпендикулярной).

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

Представленная на выставке Lada XCODE вызвала неподдельный интерес у всех автолюбителей. Стильная и красивая, рельефная и гармоничная, мощная и изысканная – так можно описать новинку от АвтоВАЗ, обещающую приятно удивить и порадовать своего владельца.

Источник: http://lada-obzor.ru/lada-xcode-data-vyhoda.html

Первое приложение под OS X

Для начала, если у Вас еще не установлено приложение Xcode, то Вам следует его установить из App Store. На момент написания данного раздела актуальной версией Xcode была 5.0, версией OS X — 10.9.

Если Xcode установлено, то начнем с его запуска.

Выберите в меню Xcode: File > New > Project…

В появившемся диалоге выберите OS X Application, Cocoa Application и нажмите Next.

Далее введите наименование Вашего первого приложения, пусть оно будет First app, и, что очень полезно, введите префикс для Ваших классов, который будет автоматически генерироваться при создании новых классов системой Xcode. Префикс должен быть уникальным, чтобы избежать конфликта пространства имен. Большинство классов Cocoa имеют префикс NS, пусть в нашем первом приложении будет префикс mb.

Далее выведится диалог, в котором необходимо выбрать место для сохранения проекта на диске.

Итак, Xcode создало начальный макет нашего первого OS X Cocoa приложения, в инспекторе файлов проекта мы увидим следующее дерево файлов:

  • mbAppDelegate.h — заголовочный файл делегата приложения.
  • mbAppDelegate.m — файл реализации делегата приложения.
  • MainMenu.xib — файл ресурсов приложения, который содержит форму главного меню и окна приложения, при компиляции компилируется в компактный nib файл.

Нажмем кнопку Run, или Cmd+R, или в меню выберем Product > Run, чтобы собрать и запустить проект.

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

Закроем окно приложения, при этом само приложение будет продолжать работать и висеть в доке. Чтобы прекратить его работу необходимо выйти через меню приложения, (в нашем случае) First app > Quit First app, или комбинацией Cmd+Q.

Чтобы изменить это поведение реализуем один из методов делегата приложения, чтобы приложение завершало свою работу после закрытия последнего окна. Для этого откроем файл mbAppDelegate.m и добавим следующий метод:

— (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
{ return YES;
}

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

Реализация вышеприведенного метода по умолчанию возвращает NO.

Теперь добавим в окно приложения элементы пользовательского интерфейса.

Выберем в инспекторе файлов проекта MainMenu.xib, в инспекторе объектов выделяем объект Window, в редакторе отобразится форма нашего главного окна приложения.

В инспекторе элементов управления находим и перетаскиваем на форму окна два элемента ввода Text Field, один элемент Wrapping Label, и одну кнопку Push Button:

Расставим элементы на форме окна следующим образом:

Дальше, чтобы добавить интерактивность в приложение и сделать его хоть малость функциональным, необходимо получить возможность получать и предоставлять данные из и в поля ввода и отображения текста. Для этого в заголовочном файле mbAppDelegate.h пишем следующие объявления заключенные в фигурные скобки:

{ IBOutlet NSTextField* tfWords1; IBOutlet NSTextField* tfWords2; IBOutlet NSTextField* tfWordsResult;
}

IBOutlet — компиляторная опция Xcode, сообщающая, что переменная является указателем на объект в связанном nib файле.

Собственно после добавления вышеприведенных объявлений соединим их с элементами на форме. Для этого опять выделим MainMenu.xib и переведем редактор в режим Assistant editor.

В альтернативном окне редактора выберем для отображения файл mbAppDelegate.h

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

Таким образом соединяем все три указателя с соответствующим текстовым полем в окне.

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

Отпустим правую кнопку мыши и в появившемся диалоге выберем создание Action, а также введем имя обработчика события, например clickSumm. Нажимаем Connect, и наш метод обработки события нажатия кнопки создан.

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

Далее перейдем в режим редактора Standart Editor, выберем файл mbAppDelegate.m, и отредактируем вновь созданный метод:

— (IBAction)clickSumm:(id)sender { NSString* s = [NSString stringWithFormat:@»%@ %@»,tfWords1.stringValue, tfWords2.stringValue]; tfWordsResult.stringValue = s;
}

Данный метод объединяет две введенные, в поля ввода, строки в одну через пробел, с помощью метода форматирования строк, и полученную новую строку присваивает свойству stringValue элемента NSTextField.

Запустим приложение, введем текст в поля ввода и нажмем кнопку. Результат: объединенные через пробел строки в поле Wrapping Label.

Добавим еще две кнопки в главное окно и аналогично создадим для каждой обработчик clickUp и clickDown соответственно.

Отредактируем созданные обработчики событий нажатия кнопок в файле mbAppDelegate.m.

— (IBAction)clickUp:(id)sender { tfWordsResult.stringValue = [tfWordsResult.stringValue uppercaseString];
} — (IBAction)clickDown:(id)sender { tfWordsResult.stringValue = [tfWordsResult.stringValue lowercaseString];
}

Первый метод приводит содержимое элемента Wrapping Label к верхнему регистру, второй к нижнему.

Запустим приложение и проверим, что все работает.

Источник: http://macbug.ru/macosxsample/first

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

Этот пост является вольным переводом статьи Xcode: A Better Way to Deal with Storyboards by Stan Ostrovskiy

Некоторые примеры кода в оригинальной статье устарели (ввиду выхода Swift 3) и в переводе были изменены.

Советы и рекомендации по работе с Interface Builder.

Apple серьезно улучшили Interface Builder в новом Xcode 8. Использование size classes стало более интуитивным, возможность масштабирования сториборда — очень удобной, а полное превью прям в Interface Builder — просто великолепным. Для тех у кого были сомнения насчет использования Interface Builder, это может стать хорошими плюсами.

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

В этой статье я поделюсь некоторыми из лучших практик для работы со сторибордами в вашем проекте. Вы уже пользуетесь Interface Builder, или только делаете первые шаги в этом направлении? — в любом случае, эти советы будут полезны для вас.

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

В вашем проекте есть один файл main.storyboard, который выглядит вот так?

Но для разработчика это несет множество проблем:

  • Контроль версий: конфликты слияния сторибордов очень трудно решать, так что работа в отдельных сторибордах сделает жизнь вашей команды проще.
  • Файл сториборда становится объемным и в нем сложно ориентироваться. Как часто вы случайно меняли constraint кликом мышки не в том вью-контроллере?
  • Вам необходимо присваивать каждому вью-контроллеру свой storyboard ID и это может привести к ошибкам: вам нужно «хардкодить» этот ID каждый раз когда хотите использовать этот вью-контроллер в коде.

Как же связать различные сториборды в вашем проекте? Есть два способа.

  1. Используйте ссылки на сториборды (storyboard referencing), которые появились в Xcode 7.

  2. Связывайте сториборды непосредственно в коде.

О первом способе вы можете почитать детальнее здесь.

Я расскажу о втором способе, так как он широко используется для сложных проектов.

2. Используйте одни и те же имена для файла со сторибордом и для связанного класса контроллера (наследника UIViewController).

Это упростит правила именования, а также даст некоторые «плюшки» о которых поговорим в пункте 3.

3. Инициализируйте сториборд непосредственно в классе контроллера.

Когда дело доходит до инициализации вью-контроллера через сториборд, я часто вижу следующий код:

let storyboard = UIStoryboard(name: “Main”, bundle: nil)
let homeViewController = storyboard.instantiateViewController(withIdentifier: “HomeViewController”)

Немного «грязновато»: вам нужно назвать сториборд, вам нужен storyboard ID вью-контроллера, и вам необходимо использовать этот паттерн каждый раз, когда вы создаете HomeViewController.

Лучше перенести этот код в сам класс контроллера и использовать статический метод, чтоб инициализировать контроллер с помощью сториборда:

class HomeViewController: UIViewController { static func storyboardInstance() -> HomeViewController? { let storyboard = UIStoryboard(name: “HomeViewController”, bundle: nil) return storyboard.instantiateInitialViewController() as? HomeViewController }
}

Если вы последуете предыдущему совету (одинаковые имена файлов), то можете избежать «харкода» имени сториборда и воспользоваться String(describing:):

let storyboard = UIStoryboard(name: String(describing: self), bundle: nil)

Это делает ваш код более читаемым и отказоустойчивым:

class HomeViewController: UIViewController { static func storyboardInstance() -> HomeViewController? { let storyboard = UIStoryboard(name: String(describing: self), bundle: nil) return storyboard.instantiateInitialViewController() as? HomeViewController }
}

Теперь, инициализация такого вью-контроллера займет одну строку:

let homeViewController = HomeViewController.storyboardInstance()

Просто и понятно, не так ли?

Вы можете использовать этот же подход для инициализации вью из nib:

class LoginView: UIView { static func nibInstance() -> LoginView? { let nib = Bundle.main.loadNibNamed(String(describing: self), owner: nil, options: nil) return nib?.first as? LoginView }
}

4. Не перегружайте свой проект переходами на сториборде.

У вас не будет переходов, если вы последуете совету из пункта 1. Но даже если у вас есть несколько вью-контроллеров в одном сториборде, использование переходов (segues) для навигации между ними — не очень хорошая идея:

  • Вам нужно дать имя каждому переходу (segue), что само по себе может привести к ошибкам. «Хардкодить» строки с именами — плохая практика.
  • Метод prepareForSegue будет просто нечитаем, когда вы будете работать в нем с несколькими segue, используя операторы ветвления if/else или switch.

Какова альтернатива? Когда вы хотите перейти к следующему вью-контроллеру по нажатию на кнопку, просто добавьте IBAction для этой кнопки и инициализируйте вью-контроллер в коде: это ведь всего одна строка, как вы помните из пункта 3.

@IBAction func didTapHomeButton(_ sender: AnyObject) { if let nextViewController = NextViewController.storyboardInstance() { // initialize all your class properties // nextViewController.property1 = … // nextViewController.property2 = … // either push or present the nextViewController, // depending on your navigation structure // present(nextViewController, animated: true, completion: nil) // or push navigationController?.pushViewController(nextViewController, animated: true) }
}

5. Unwind segue? Не, не слышал.

Иногда навигация предполагает возврат пользователя к предыдущему экрану.

Начиная с iOS 7, Interface Builder дает вам возможность сделать «unwind» навигационного стэка.

Unwind segue позволяет вам указать возврат на предыдущий экран. Это звучит довольно просто, но на практике это требует некоторых дополнительных действий и только сбивает с толку разработчика:

  • Обычно, когда вы создаете действие для кнопки (action), Interface Builder создаст для вас код (IBAction). В этом же случае, ожидается, что код уже написан до того, как вы зажмете «Ctrl» и перетащите действие от вашей кнопки к «Exit».
  • Обычно когда вы создаете действие для кнопки, код этого действия создается в том же классе, которому и принадлежит кнопка. Для Unwind Segues, вам нужно писать код в классе того вью-контроллера, в который этот переход произойдет.
  • Метод prepareForUnwind будет иметь все те же недостатки, что и метод prepareForSegue (см. предыдущий пункт).

Каков же более простой способ?

Проще делать это в коде: вместо создания действия «unwind» для вашей кнопки, создайте обычный IBAction и используйте dismissViewController или popViewController (в зависимости от вашей навигации):

@IBAction func didTapBackButton(_ sender: AnyObject) { // if you use navigation controller, just pop ViewController: if let nvc = navigationController { nvc.popViewController(animated: true) } else { // otherwise, dismiss it dismiss(animated: true, completion: nil) }
}

На сегодня это все. Я надеюсь, вы найдете что-то полезное для себя.

От переводчика:

Благодаря методу описанному в этой статье, я очень сильно упростил работу со сторибордами в своем текущем проекте. Пока я работал над ним один — все было прекрасно, но как только появились другие разработчики — работа со сторибордом превратилась в настоящий ад. От отчаянья мы практически перешли к «банановому методу» (можно почитать здесь в разделе «Pass the banana»).

Конечно же, в идеале нужно будет рано или поздно прийти к VIPER. Но об этом будет уже другой пост.

Источник: https://habr.com/post/312766/

Концепт Lada XCode: фото, цена и характеристики

Безусловной «изюминкой» стенда АВТОВАЗа на Московском автосалоне 2016 года стал концепт кроссовера Lada Xcode (Лада Х код).

Впервые об автомобиле стало известно буквально за месяц до события, когда производитель опубликовал первые фото Лада Х код.

По заявлению нынешнего главы автогигата Николя Мора серийное производство новинки может быть запущено в 2019 году, вслед за Вестой универсал и вседорожной Вестой Кросс (их производство намечено на 2017 год).

По своему экстерьеру Lada XCode выглядит значительно привлекательнее Весты и ИксРэя, что обусловлено более компактными размерами (около 4-х метров), низкой крышей и высоким дорожным просветом.

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

Фото Lada XCode Concept. Серийная модель будет пятидверной

Ориентировочно старт продаж Лада Х код (Икс Код) намечен на 2019 год. Цена и технические характеристики Лада Икс Код пока не известны.

Цены и комплектации Lada XCode

Стоит признать, что своим первым проектом Рафаэль Линари, работавший ранее над дизайном хэтчбека Renault Twingo, а ныне возглавляющий столичную дизайн-студию ВАЗовцев, смог заинтересовать автопублику и, прежде всего, ее молодежную часть.

По-видимому, больший атлетизм, рельефность, компактность и, даже, эротизм Лада Икс Код являются продолжением тенденции ориентации тольяттинцев на новое поколение городской молодежи.

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

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

Фото салона концепта Lada XCode (Лада Икс Код)

Конечно преждевременно говорить о конкретике в вопросе цены Лада Х код (и комплектаций), но можно предположить что новый кроссовер будет дороже высокого хэтчбека Lada Xray. В любом случае какая-то информация появится ближе к старту продаж который намечен на 2019 год.

Технические характеристики Lada Xcode

Еще до премьеры концепта появилась информация что серийный XCode построят на объединенной платформе Веста-Калина, в частности подвеска будет взята от Весты, а вот каркас и двигатели от Калины. В итоге новый автомобиль будет находиться в классе компактных кроссоверов (колесная база заметно меньше Дастера и чуть больше Калины) и выпускаться только с передним приводом.

Оправдаются ли эти технические характеристики Лада Х код, покажет будущее, ведь, концепт-кар, находится на ранней стадии своей разработки.

Даже после премьеры, остается открытым и вопрос окончательного выбора для него платформы: журналисты сходятся во мнении что на АВТОВАЗе применят укороченную «тележку» Весты, либо платформа для Лада Х код станет своеобразной смесью из элементов различных платформ.

Хотя, такой исход маловероятен ввиду ориентации Николя Мора на унификацию узлов и сокращение платформ.

Lada XCode будет переднеприводным с собственными тольяттинскими силовыми агрегатами (двигатели Рено — Ниссан ныне АВТОВАЗу не по карману), что позволит снизить его себестоимость. О предполагаемой цене Лада Х код говорить пока рано, – если у производителя все получится, то это станет известно в 2019 году.

По характеристикам известно что XCode будет переднеприводным

Старт продаж Лада Х код

Очень расплывчатые сроки и начала продаж Лада Икс Код — вряд ли мы увидим серийный автомобиль ранее 2019 года, учитывая что нет даже фото и технических характеристик серийного Lada Xcode. На АВТОВАЗе хоть и озвучили ориентировочные сроки появления — 2019 год, но за два года может многое измениться.

Фото Лада Х код

Официальные фото Лада Х код (Икс Код) концепт. Известно что серийная модель точно будет пятидверной:

Фото Lada Xcode с презентации на Московском автосалоне-2016:

Пока есть только такие фото салона Лада Х код. В любом случае на серийном автомобиле интерьер будет уже другой и схож с Vesta и Xray:

Видео

Официальное презентационное видео концепта Lada XCode (Лада Икс Код).

Источник: http://www.lada-vesta2.ru/lada-xcode

UIKit 1 / 1.1. И снова разбираемся с Xcode

Видео и материалы Сюжет

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

Все так же куда−то беспорядочно летит, кружится, сталкивается, иногда взрывается, высвобождая энергию… Энергия. Без нее никуда. Из энергии появилось все и все становится ею, когда умирает.

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

Они кажутся смешными со своими рутинными жизнями и насущными проблемами, особенно за тысячи километров отсюда», − об этом размышлял командир экипажа космического корабля Слава, уставившись в иллюминатор.

− Эй, чего такой кислый? Саша похлопал Славу по плечу, − скоро Новый год!»

Саша – друг по ВУЗу, смешливый, вечно довольный и добрый. Душа компании. Почти полная противоположность Славы, молчаливого и иногда угрюмого. − Что−то мне не нравятся показатели. Надо бы проверить задний мотор. − да ладно тебе, ну и фиг с ними, у нас там елка, конфеты с шампанским, давай, ребята уже заждались.

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

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

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

Вроде спокойный тихий парень, а что−то не то во взгляде, как будто во всем хочет схитрить. − Ну что, 12,11,10,9,8,7,6,5,4,3,2,1….иииии С НОВЫМ ГОДОМ!!! Шампанское выплывает из бутылки наружу большими золотистыми пузырями, все наперебой ловят его ртами и смеются. – а вообще не очень−то и плохо, даже весело, − улыбается про себя Слава.

− с новым годом, Саша! – Оля подлетела и поцеловала его в щеку. Бедный Саша покраснел и хотел что−то ответить, как вдруг, корабль резко тряхнуло. Свет замерцал, и корабль затрясся сильнее.

В этом уроке

  • Мы научимся использовать Xcode для создания более сложных приложений
  • Разберёмся с основными элементами панели управления Xcode

Особенности работы с iOS

Как правило, в iOS приложения работают только с одним окном, которое занимает весь экран. Здорово? Безусловно. Дизайнеру придётся разработать один вид этого окна, а не думать о многочисленных вариантах размеров. Исключением из правила выступает использование разделённого экрана Split Screen или режима Slide Over — наложение маленького варианта одного приложения поверх другого.

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

Apple требует от приложений мгновенной реакции на всевозможные действия: приложение должно максимально быстро отвечать на запросы пользователя. На самом деле это требование ставится перед Вами и бизнесом — если приложение работает медленно, то речь идёт о плохом пользовательском опыте UX или User Experience, а Вам придётся за это расплачиваться потерей прибыли.

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

Кроме того к таким устройствам подключаются и клавиатуры — удобство клавиатуры для iPad Pro превращает последний в полноценный компьютер для повседневных и специфических задач.

Кроме того с недавних пор присутствует возможность использовать специальное графическое перо Apple на iPad Pro.

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

Что такое интегрированная среда разработки?

Удивительно, что Вы можете писать приложения и в блокноте, и в Word, а если прошли наш курс по терминалу в Unix, то и в страшном редакторе Vim.

Главное правило разработки гласит — время эквивалентно деньгам. Так и в этом вопросе нельзя экономить на удобстве и скорости работы.

Интегрированная среда разработки (или IDE — Integrated Development Environment) это больше, чем текстовый редактор: это набор инструментов, которые охватывает весь процесс разработки — от написания кода, тестирования, развертывания и до командной работы.

Не переживайте, что придётся потратить время, чтобы освоить Xcode в совершенстве — любой инструмент требует времени на изучение.

Если раньше Вы использовали игровые площадки или онлайн-песочницы, то для этой части придётся перейти на полнофункциональный Xcode.

Создание нового проекта

Чтобы начать изучение Xcode, давайте создадим новый проект. Запустите Xcode и выберите Create a new Xcode project

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

  • iOS
  • watchOS
  • tvOS
  • macOS
  • cross-platform (или кросс-платформа, или мультиплатформа)

Выберите iOS > Single View Application и нажмите Next.

  1. Задайте название приложения (Product Name)
  2. Выберите команду разработки — если это Ваш первый запуск Xcode и Вы ранее никогда не работали в инфраструктуре Apple, то там будет кнопка Add Account — введите данные своего Apple ID и Вы получите бесплатный аккаунт разработчика. Данного аккаунта Вам хватит вплоть до публикации Вашего первого приложения в App Store.
  3. Введите имя организации в Organization Name — если Вы птица вольного полёта, то придумайте себе название-бренд.
  4. Введите идентификатор организации (Organization Identifier) — как правило, задается домен организации в обратном порядке — то есть swiftworld.ru станет ru.swiftworld. Это связано с внутренней структурой размещения пакетов в Unix, поэтому не парьтесь особо по этому поводу.
  5. Bundle Identifier (идентификатор пакета) — Вы не сможете изменить это поле. Оно формируется из имени продукта и идентификатора фирмы.
  6. Language — здесь Вы можете выбрать язык написания программы. Для приложений под iOS доступно два языка Swift и Objective-C. Нас интересует лишь первый. В конечных приложениях возможно смешивать эти два языка и C, C++.
  7. Снимите галочки, если они присутствуют, с трёх следующих пунктов. Мы расскажем о каждом из них подробнее в дальнейшем.
  8. Нажмите Next

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

Не пугайтесь большому количеству окон на экране. Мы рассмотрим их подробнее.

  1. Проект и цели — то, что Вы открываете в Xcode является проектом (Project) — набором различных целей и элементов.
  2. Цель (Target) — часть проекта, которую можно собрать отдельно, в этом случае у нас одна цель — приложение под iOS.
  3. Информация о развёртывании (Deployment Info) — в этом поле размещена информация о развёртывании или распространении приложения. Здесь Вы можете выбрать:
    1. Цель (Deployment Target) — тут указывается минимально поддерживаемая приложением версия iOS. При обучении выбирайте последнюю версию iOS, чтобы испытывать как можно меньше проблем с актуальностью кода.
    2. Устройства (Devices) — здесь можете выбрать поддерживаемое устройство: Universal — iPad & iPhone или только отдельно iPad, iPhone. iPod Touch относится к семейству iPhone, так как мало отличается от него.
    3. Далее можете выбрать доступные ориентации устройства для приложения в разделе Device Orientation.
    4. Теперь можно выбрать стиль статус-бара (верхняя панель iOS-устройства, где отображается информация о батарее, сети и прочем): по-умолчанию или лёгкий (Status Bar Style)
    5. Чтобы скрыть статус-бар, поставьте галочку у Hide Status Bar.
    6. Чтобы потребовать использования полного экрана, отметьте галочкой пункт Requires Full Screen.

О типах файлов в xcode

Рассмотрим здесь типы файлов Xcode, с которыми придётся столкнутся в ближайшем будущем. Для их изучения рассмотрим панель или область навигатора в Xcode (номер 3 на рисунке выше).

Верхний файл с типом .xcodeproj- файл проекта Xcode, чтобы перейти в его настройки (в которых мы и так находимся), выберите его.

.swift- содержит код на языке Swift, транслируемый при сборке программы в язык, понимаемый целевым устройством.

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

Основной принцип Swift и Apple — «Write less, do more» («Пиши меньше, делай больше»): Вам не придётся тратить много времени на написание самого кода — большую часть времени Вы будете разрабатывать модель и бизнес-логику приложения.

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

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

.plist — propertylist — список свойств — специальные файлы для настройки приложений или хранений ассоциативной информации. Если Вы работали на Windows с настройками программ, то часто попадались файлы типа .ini- аналоги списков свойств, однако списки свойств более структурированы и эффективны. Info.plist содержит настройки приложения, которые Вы задаёте через графическое меню.

Клавиатурные сокращения

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

Пока что запишите себе следующие сокращения и используйте их, как только представится шанс:

  • Cmd + B — собрать проект
  • Cmd + R — выполнить проект, проект также будет собран, как и в первой команде, но он будет отправлен на выполнение на текущую цель
  • Cmd + [ — смещает текущую строку кода влево. За единицу смещения принимается стандартный размер отступа (один таб в 4 пробела)
  • Cmd + ] — смещение текста вправо

Базовые настройки Xcode

Зайдите в Xcode -> Preferences. Здесь Вы можете изменить множество настроек системы, чтобы сделать Вашу работу более эффективной.

Сперва проверьте, чтобы на панели General (Общие настройки) стояла галочка у Show live Issues, это позволит отображаться ошибкам в реальном времени без запроса на сборку.

В разделе Text Editing -> Editing проверьте галочку у Line numbers: её наличие будет отображать номера строк, что крайне удобно при разработке.

Напоследок можете выбрать тему для редактора в Font & Colors. Со временем Вы определитесь, какие размер текста, шрифт и прочие параметры Вам подходят.

Наиболее часто используют тему по-умолчанию Default или Civic — тёмную тему оформления. Она очень удобна в ночное время суток, и если Вы любите программировать ночью (прямо как мы).

Распространено мнение, что ночной режим даёт более сильную нагрузку на глаза. Не переживайте, со временем они Вам больше не понадобятся!

Источник: https://swiftworld.ru/courses/6/begin

Руководство по разработке приложений в Xcode 8.2

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

В этой статье вы узнаете:

  • о пяти главных составляющих среды разработки Xcode,
  • и как тестировать приложение с помощью iOS-эмулятора.

По прочтении руководства вы получите четкое представление о том, как создавать проекты в Xcode.

1) Где скачать Xcode?

Проще всего найти Xcode в Mac App Store. Или по ссылке Apple Developer page for Xcode.

2) Интерфейс Xcode

Вы также можете почитать официальную документацию Apple Documentation for XCode.

Обратите внимание на это изображение. Если ваш интерфейс отличается, убедитесь, что установлена именно Xcode 8, а не более ранняя версия.

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

4 основных раздела: Navigator (навигатор), Editor (редактор), Debug Area (область отладки) и Utility Area (утилиты).

Вы можете менять размер этих окон (достаточно навести курсор на границы области), или по необходимости скрывать различные области в правом верхнем углу:

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

В этой панели присутствует несколько навигаторов, вы можете переключаться между ними с помощью Navigator selector bar (см. изображение). Три часто используемых навигатора: проект (Project), поиск (Search), проблема(Issue).

Навигатор проекта (Project Navigator)

Здесь вы увидите все файлы проекта.

В рамках навигатора проекта можно создавать группы файлов: кликнуть правой кнопкой и выбрать Create Group. Группа существует только в проекте Xcode — в файловой системе папка не создается, т.е. на жестком диске файлов не будет. Есть мнение, что лучше использовать фактические директории на жестком диске, организовывать файлы, а затем переместить их обратно в проект Xcode.

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

Затем появится диалоговое окно с вопросом: как вы хотите добавить файлы? Если кликнуть на файл в навигаторе проекта, высветится содержимое области редактора (Editor).

Двойной клик по файлу откроет новое окно (так удобнее, если вы используете два монитора).

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

Навигатор поиска (Search Navigator)

Во вкладке навигатор поиска удобно просматривать отдельные части текста в вашем проекте.

К этой опции прибегают довольно часто, когда необходимо найти определенное свойство, метод или переменную.

Навигатор проблем (Issue Navigator)

Данный навигатор покажет все имеющиеся у приложения проблемы.

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

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

4) Область редактора (Editor)  

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

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

Навигация в области редактора

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

Еще один способ быстро перейти к искомому файлу — функция Jump Bar (см. изображение). С помощью Jump Bar вы можете быстро просмотреть группы и найти нужный файл.

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

Если кликнуть по хвостовому сегменту Jump Bar, откроется меню с методами в файле. Это не только позволит перейти в другой раздел файла, но и покажет, какие методы доступны в этом файле.

Три вида окна редактора

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

Кнопка слева — для работы в режиме одного лишь редактора, что больше подходит для лэптопов с маленькими экранами, когда нет внешнего монитора.

Средняя кнопка — опция помощник редактора (Assistant Editor), показывает дополнительный файл текущего файла в формате разделенного экрана. К примеру, если слева файл ViewController.swift, в окне справа будет файл соответствующего класса для ViewController. В каждой панели есть опция быстрого перехода (jump bar). С ее помощью можно изменить то, что показывается в каждом файле.

Правая кнопка — редактор версии (Version Editor), в котором можно сравнить два разных файла; больше информации об этой функции в Apple Documentation.

Окно конструктора интерфейса

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

Поиск и замена в файле

Нажмите Command-F, чтобы вызвать поисковое окно в верхнем правом углу, которое будет искать то, что вы вписываете в текущем файле. Это также хороший способ перейти к различным областям вашего файла или что-либо изменить в нем.

Переход к определениям

Если вы видите название определенного класса и хотите перейти к его определению, зажмите Command и кликните название класса, чтобы быстро перейти к файлу.

Контрольные точки

Здесь (см. изображение) вы можете установить контрольные точки/точки останова в определенных линиях кода. Устанавливая эти точки, вы заметите индикатор синего цвета. Чтобы отменить контрольную точку, кликните по синему индикатору — он станет темнее.

Если кликнуть и перетащить синий индикатор, контрольная точка полностью удалится.

Просмотреть список всех контрольных точек проекта можно с помощью вкладки навигатор контрольных точек в области навигатора.

5) Область утилит

Область утилит Xcode состоит из двух панелей: панель-инспектор и библиотека.

Панель-инспектор расскажет подробности о файле, который выделен в навигаторе проекта. Однако если вы рассматриваете файл XIB/StoryBoard, панель-инспектор покажет разные атрибуты, которые можно изменить для избранного элемента.

Когда используется конструктор интерфейса (Interface Builder), вы можете перемещать элементы интерфейса из панели-библиотеки в область или раздел редактора, чтобы добавить этот элемент в своей интерфейс.

Есть мнение, что при редактировании кодовых файлов целесообразнее скрывать всю область утилит (Utility Area), дабы предоставить редактору больше пространства. Ведь панель-инспектор или панель-библиотека не требуются.

6) Область отладки

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

Это часто используется при поиске просчетов и ошибок.

7) Панель инструментов

Слева расположена кнопка запуска (Run). Она создает и запускает приложение, а также запускает приложение в iOS-эмуляторе. Соседняя кнопка останавливает приложение и возвращает вас к Xcode.

Если нажать и зажать кнопку Run, появится больше опций для работы с приложением:

Test запускает модульное тестирование, если это предусмотрено в проекте.

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

Analyze дает возможность анализировать код и выявлять потенциальные ошибки.

Больше информации об этом вы найдете в Apple iOS Documentation.

В выпадающем списке возле кнопки Stop содержатся названия устройств, на которых будет работать приложение (это может быть и Apple Watch). Вы также можете выбрать эмуляторы iPhone или iPad (или другие версии, если они установлены). Раздел iOS device запускает приложения на электронном устройстве, если оно подключено и должным образом настроено.

И, наконец, в правой верхней части панели инструментов есть редакторские кнопки, кнопки переключения между несколькими панелями Xcode и кнопка Organizer.

8) Органайзер

Располагается в пункте меню: Window -> Organizer. Данная опция появляется в отдельном окне. Органайзер нужен для нескольких задач.

Устройства

В окнах устройств вам доступно множество действий (шорткат ⌘ ⇧). Но главное — это управление профилями (Provisioning profile) в системе и на различных устройствах. Профили позволяют размещать приложения на iOS-устройствах.

Ошибки

Вы можете посмотреть отчет об ошибках на нескольких подключенных устройствах.

Репозитории

В Xcode 8 можно находить различные хранилища данных: Source Control >> Check Out. Во соответствующей вкладке вы сможете управлять и удалять репозитории (GitHub и др.).

Проекты

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

Архивы

Во вкладке архивы можно управлять архивами разных проектов. Приложения архивируются, например, когда их отправляют в магазин приложений.

Документация

В Xcode 8 документация и API доступны в справочном меню Help.

9) iOS-эмулятор

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

В частности, эмулятор позволяет:

  • Менять расположения экрана (ландшафтный/портретный режимы)
  • Моделировать различные GPS-координаты
  • Моделировать сценарии с низким объемом памяти

(С выходом версии Xcode 6.3 появился эмулятор Apple Watch для тестирования приложений под эту ОС).

Подведем итоги

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

  • навигатор, редактор, утилита, отладка, панели инструментов;
  • функция редактирования кода;
  • органайзер Xcode;
  • и iOS-эмулятор.

Источник: http://wnfx.ru/rukovodstvo-po-razrabotke-prilozheniy-v-xcode-8-2/

Ссылка на основную публикацию