Ios development — Знание Objective C при поиске работы


Содержание

Свежие вакансии

Менеджер по работе с клиентами удаленно

&nbsp Требуются активные сотрудники(можно без опыта) Бери и иди к цели! Требования: -Наличие компьютера, ноутбука.

25000 — 35000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:58

Кассир

&nbsp График работы—по совместительству Образование—не имеет значения Опыт работы—без опыта работы Требования возраст.

13 нобяря 2020 г. 11:55

Санитар/санитарка

&nbsp смену — 1 Примечание З/П 3000 РУБ. ГРАФИК 6/1, (НЕ ПОЛНЫЙ ДЕНЬ), МОЖНО БЕЗ ОПЫТА МЕСТО РАБОТЫ Г.БАЙМАК НА 2 ЧАСА.

13 нобяря 2020 г. 11:52

Формовщик колбасных изделий

20000 — 30000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:50

Сборщик/Упаковщик грибов

&nbsp . Активность. Дополнительно: График работы: Вахтовый метод Опыт работы: Без опыта.

13 нобяря 2020 г. 11:47

Тайный покупатель

&nbsp Опыт работы: Без опыта Образование: Среднее.

13 нобяря 2020 г. 11:47

Администратор в офис

&nbsp Дополнительно: График работы: Полный рабочий день Опыт работы: Без опыта Образование: Среднее специальное.

13 нобяря 2020 г. 11:46

Работник подготовки и открытия «Макдоналдс»

&nbsp территории. Мытье окон и наружной рекламы. Требования к квалификации:Рассматриваются кандидаты без опыта работы, образование. Сфера деятельности: Начало карьеры, мало опыта / Рестораны, общественное питание Обязанности:Работник ночной смены.

25000 — 27000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:45

Административная подработка (Утро/вечер)

&nbsp дикция Позитивность Дополнительно: График работы: Сменный график Опыт работы: Без опыта.

13 нобяря 2020 г. 11:44

Фасовщик печатных бланков на дому, свободный график

&nbsp Требования: Фасовка бланков на дому. Требуется фасовщик печатных бланков на дому. Без опыта работы. Работа. бланки по инструкции. Условия: работа сидячая, без подъема тяжестей. График работы гибкий/свободный. Работа на дому.

50000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:42

Менеджер по удаленному подбору персонала

&nbsp В крупную компанию требуются менеджеры по удаленному подбору персонала.Рассмотрим кандидатуру без опыта работы.

28000 — 38000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:42

Сотрудник по сборке ручек удалённо

&nbsp по возрасту, без опыта работы. Оплата сдельная. Подойдут соискатели из любых регионов. Пишите на email [email protected]

13 нобяря 2020 г. 11:38

Санитар/санитарка

&nbsp смену — 1 Примечание З/П 3000 РУБ. ГРАФИК 6/1 (НЕ ПОЛНЫЙ РАБ ДЕНЬ), МОЖНО БЕЗ ОПЫТА МЕСТО РАБОТЫ Г.СИБАЙ НА 2 ЧАСА.

13 нобяря 2020 г. 11:34

Мойщик

&nbsp О вакансии: Сфера деятельности: Работа без опыта, начало карьеры Место работы: Благовещенск График работы: полный.

13 нобяря 2020 г. 11:34

Подработка для студентов пешим курьером

&nbsp в один из мессенджеров. Дополнительно: График работы: Гибкий график Опыт работы: Без опыта.

13 нобяря 2020 г. 11:31

Комплектовщики-упаковщики/проживание(от 30-45 смен,питание)

&nbsp : Аккуратность,внимательность,энергичность Дополнительно: График работы: Вахтовый метод Опыт работы: Без опыта.

13 нобяря 2020 г. 11:30

Оператор-кассир г. Подольск

&nbsp профессионального роста и развития. -Рассматриваем кандидатов без конкретного опыта, готовых обучаться и работать на результат. профессионалов. -Стабильная заработная плата без задержек, 2 раза в месяц + ежемесячные и квартальные бонусы по результатам.

22000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:28

Менеджер онлайн

30000 — 40000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:28

Формовщик-упаковщик (Телевизорная 1/9)

&nbsp ! Можно без опыта! Место работы: ул. Телевизорная 1/9, Октябрьский район. Обязанности: — формовка и упаковка хлебных.

15000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:20

Менеджер-агент в агентство недвижимости

&nbsp основные требования к соискателям: — можно БЕЗ ОПЫТА работы, бесплатное обучение, — грамотная устная и письменная речь.

85000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:18

мастер по подключению интернета (можно без опыта)

&nbsp Работа по готовым техн.заявкам! Можно без опыта работы. Обязанности сотрудника: Установка, подключение и настройка.

60000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:18

Фасовщик печатных бланков на дому, свободный график

&nbsp Требования: Фасовка бланков на дому. Требуется фасовщик печатных бланков на дому. Без опыта работы. Работа. бланки по инструкции. Условия: работа сидячая, без подъема тяжестей. График работы гибкий/свободный. Работа на дому.

50000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:16

Представитель банка в городе


&nbsp Опыт работы: Без опыта.

13 нобяря 2020 г. 11:16

Помощник повара день/ночь

&nbsp ТРЕБУЕТСЯ ПОМОЩНИК ПОВАРА В ИЗВЕСТНУЮ СЕТЬ РЕСТОРАНОВ БЫСТРОГО ПИТАНИЯ! РАССМОТРИМ КАНДИДАТОВ БЕЗ ОПЫТА РАБОТЫ! МЫ.

13 нобяря 2020 г. 11:07

Менеджер по работе с клиентами удаленно

&nbsp Требуются активные сотрудники(можно без опыта) Бери и иди к цели! Требования: -Наличие компьютера, ноутбука.

25000 — 35000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:05

Маркетолог

&nbsp Интернет маркетолог с разным уровнем опыта. Обязанности: — настройка контекстной рекламы Google, Яндекс; — анализ. достижения в работе; — отпуск по ТК РФ; — дружелюбный коллектив ; — заработная плата без задержек, 2 раза в месяц по ТК РФ.

25000 — 35000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 11:04

Рекрутер-фрилансер

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

13 нобяря 2020 г. 11:01

Кассир-уборщик на автовокзал

&nbsp : Рассматриваем кандидатов без опыта работы на постоянной основе Исполнительность, внимательность, вежливость Обязанности: Прием. указанному номеру телефона Дополнительно: График работы: Сменный график Опыт работы: Без опыта.

13 нобяря 2020 г. 10:55

Менеджер по туризму

&nbsp туризму, для работы с клиенткой базой постоянных клиентов, опыт работы обязателен(!). Либо рассмотрим кандидата без опыта.

35000 — 60000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 10:52

КУРЬЕР РЕГИСТРАТОР (ПОДРАБОТКА)

&nbsp кандидату: Образование: Среднее Опыт работы: без опыта работы Наличие СНИЛС и ИНН обязательно; Исполнительность. пунктуальность, внимательность, ответственность, порядочность. Рассматриваем кандидатов без опыта работы; Рассматриваем кандидатов.

80000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 10:51

Грузчик

&nbsp График работы—полная занятость Образование—среднее Опыт работы—без опыта работы Требования Работать и. Проводится обучение в процессе работы З/п выплачивается стабильно без задержек + оплачиваемые подработки Трудоустройство и.

1320 per day&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 10:51

Менеджер по оформлению документов

&nbsp : Полная Требования Можно без опыта, исполнительность, ответственность, коммуникабельность, активность Должностные.

25000 — 30000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 10:48

Надомный специалист по сборке ручек — удалённый сотрудник

&nbsp работа), без опыта. Оплата сдельная. Обращайтесь на электронную почту [email protected]

13 нобяря 2020 г. 10:47

Помощница по дому, сопровождающая няня, в Подмосковье, предоставляется жильё

&nbsp Москвы, северо-запад). Без вредных привычек‚ с правильным русским языком, не курящая, желательный возраст от 18 до 27 лет. внимательная, ответственная, порядочная, атеистка или православная, не вегетарианка, не замужем, без детей. К Никите регулярно.

39000 — 64000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 10:43

Консультант информационной службы

&nbsp работы в call-центре желателен, но также рассматриваем кандидатов без опыта. Условия работы График работы: 5/2 (пн-пт.

27000 — 30000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 10:41

Фасовщик печатных бланков на дому, свободный график

&nbsp Требования: Фасовка бланков на дому. Требуется фасовщик печатных бланков на дому. Без опыта работы. Работа. бланки по инструкции. Условия: работа сидячая, без подъема тяжестей. График работы гибкий/свободный. Работа на дому.

50000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 10:41

Помощница по дому, сопровождающая няня, в Подмосковье, предоставляется жильё

&nbsp Москвы, северо-запад). Без вредных привычек‚ с правильным русским языком, не курящая, желательный возраст от 18 до 27 лет. внимательная, ответственная, порядочная, атеистка или православная, не вегетарианка, не замужем, без детей. К Никите регулярно.

39000 — 64000 в месяц&nbsp&nbsp&nbsp&nbsp&nbsp 13 нобяря 2020 г. 10:36

Что нужно знать и уметь, чтобы работать iOS-разработчиком

Операционные системы для iPhone выходят одна за другой, и пока ничто не говорит о том, что в обозримом будущем этот процесс остановится. Сообщество iOS-разработчиков всегда нуждается в свежей крови, но проблема в одном: учиться придётся самостоятельно. Часы — главный ресурс разработчика, и мне пришлось потратить очень много часов на поиск и чтение правильных статей и книг. Чтобы вы не шли моей сложной дорогой, я собрал здесь всё самое важное, что может понадобиться при разработке под iOS для начинающих: требования, публикации и бесперебойные источники актуальной информации и полезных знаний.

Что нужно знать и чем уметь пользоваться

  • Английский язык на уровне чтения
  • Принципы ООП. Как пример
  • Паттерны программирования на примере iOS. Мы часто используем: MVC , Singleton, Делегирование, Категории и другие. Подробнее
  • Objective-C или Swift язык программирования
  • Xcode в качестве основной IDE и её компоненты (iOS Simulator, Interface Builder, Source Control). Как альтернатива AppCode
  • Быстрые клавиши Xcode
  • Git — система контроля версий
  • Разбираться в архитектуре MVC и иметь представление о других архитектурах, таких как MVVM , MVP , VIPER . Подробнее — здесь и здесь
  • Жизненный цикл iOS-приложения
  • Жизненный цикл UIViewController
  • Иметь представление о всевозможных элементах верстки iOS
  • Уметь верстать экраны с помощью Interface Builder в Storyboard, XIB .
  • Уметь верстать экраны только кодом без Interface Builder.
  • Инструменты списков: UITableView и UICollectionView. Подробнее — здесь и здесь
  • Autolayout. Подробнее — здесь и здесь
  • Работа с API в Objective-C
  • CoreData в Objective-C. Подробнее — здесь и здесь
  • Кэширование картинок в Objective-C

  • Атрибуты в Objective-C
  • Категории в Objective-C
  • Многопоточность в Objective-C
  • Работа с API в Swift
  • CoreData в Swift. Подробнее — здесь и здесь
  • Удобная работа с CoreData в Swift
  • Локализация строк
  • Уметь комментировать свой код правильно
  • Добавлять библиотеки в проект через Pods
  • Добавлять библиотеки в проект через Carthage
  • Unit-тестирование. Подробнее — здесь и здесь
  • Генератор ссылок на ресурсы в проекте Xcode в Swift
  • Платные программы разработки от Apple:
  1. iOS Developer Program
  2. iOS Enterprise Developer Program

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

  • Знание Swift (если вы разрабатываете на Objective-C) и Objective-C (если вы знаете Swift)
  • Знание UNIT -тестирования и его использования
  • Знание Continuous Integration и его использования в iOS-разработке
  • Знание основ SOLID

С чего начать разработку iOS-приложений

Чтобы начать, вам понадобятся:

  • Mac или Хакинтош
  • Устройство iPhone/iPad или iPod с iOS не ниже iOS 7
  • Xcode не ниже версии 6.1 (установить на свой Mac с App Store, он бесплатный)
  • зарегистрированный аккаунт на основе вашего Apple ID . Подробнее можно прочитать на портале разработчиков в разделе Apple Developer Program

Objective-C или Swift?

Рекомендую изучать сразу Swift. В большинстве IT -компаний существуют множество Objective-C проектов, которые необходимо поддерживать, а в интернете есть тонны документации, уже написанной под этот язык. Полностью от него отказаться не получится. Знать Objective-C нужно, но начать лучше со Swift. Впрочем, поймите лично для себя, хотите ли вы стать олдскульным империалистом и начать изучать C-подобный язык, разработанный ещё в начале 80-х (!), или стартовать со Swift, одного из самых современных инструментов разработки на сегодняшний день.

Материал для старта на английском

После прочтения стартового курса от Apple и просмотра Стэнфордских курсов нужно закрепить полученные знания:

  1. мобильные приложения призваны решать человеческие проблемы и задачи. Найдите себе такую. Она должна быть небанальной, но реальной и решаемой, поэтому не ударьтесь в фантазии;
  2. теперь пустите всё, что вы узнали к этому моменту про iOS-разработку, на поиски решения. Если вы пишете что-то сложнее калькулятора (а вы пишете — задача, повторюсь, не должна быть совсем заезженной), решение вряд ли придёт к вам сразу же. Упрощайте работу, разбивайте задачу на подзадачи и не бойтесь просить совета опытных разработчиков.
  3. ищите ответы в Интернете — почти не осталось таких проблем, которые не были бы описаны в книгах, статьях или видеоуроках;

Когда ваша задача решена, и вы уже считаете себя крутым iOS-разработчиком, советую прочитать какую-нибудь хорошую книгу по улучшению полученных навыков, к примеру «Swift. Основы разработки приложений под iOS и OS X» Василия Усова или «Swift. Разработка приложений в среде Xcode для iPhone и iPad с использованием iOS SDK ». Дэвида Марка, Джека Наттинга и других.

Стоит яростно следить за

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

Как найти и нанять iOS-разработчика: статистика и советы программистов

Еще в 2015 году в мире было продано больше 231 миллиона айфонов , поэтому неудивительно, что спрос на разработчиков iOS-приложений постоянно растет. Для создания софта под iOS используются два основных языка программирования — Objective-C и Swift от Apple. Специалисты, которые знакомы с этими технологиями, стали наиболее востребованными на рынке труда. Чем популярней становится iOS, тем выше конкуренция между компаниями, желающими нанять талантливых разработчиков, которые могут разработать качественный продукт.

Подразделение Talent ресурса Stack Overflow опубликовало материал с советами, которые помогут опередить конкурентов в гонке за iOS-программистами.

Важно знать, где разработчики проводят свободное время

Поскольку iOS-программисты очень востребованы, найти большое количество специалистов в поиске работы, будет трудно. Однако это не значит, что не стоит попытать счастья на тематических форумах. Один из них, iPhoneDevSDK — это крупное сообщество разработчиков и маркетологов iOS. Мобильных разработчиков можно встретить и на форуме издания MacRumors , а также площадках cocos2d for iPhone и iOS Developer Forums . Пользователи этих ресурсов активно общаются, чтобы научиться чему-то новому и поделиться идеями с единомышленниками. Помимо перечисленных сайтов, тег iOS — одим из самых популярных на Stack Overflow.

Может показаться, что раз есть целый ряд популярных тематических ресурсов, где можно найти iOS-разработчиков, то и нанять их будет несложно. Однако, согласно специальному исследованию Stack Overflow , для 65% опрошенных программистов поиск работы не является единственной мотивацией для посещения подобных сайтов.

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

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

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

  • Обеспечение высокого качества работы даже на маленьком экране. Вице-президент Blackberry Global Alliances Тайлер Лессар на страницах InfoWorld отмечает , что создание софта для работы на устройствах с маленьким экраном — всегда непростая задача для разработчиков. «Из-за малых размеров экрана особое значение приобретает каждый пиксель».

Обеспечение безопасной аутентификации. Руководитель по работе с разработчиками сервиса Apperi Макс Кац написал в колонке на DZone , что аутентификация является наиболее уязвимым местом в любом мобильном приложении, поскольку создание, а также ввод логина и пароля — это задача пользователя. «Очень сложно внедрить безопасную систему аутентификации с нуля в условиях ограниченного времени на разработку», добавляет он.

  • Понимание того, как пройти модерацию App Store. Для тех, кто не углубляется в детали, получение одобрения приложения от App Store может показаться совсем несложной задачей. Тем не менее, iOS-разработчикам часто приходится вести долгие переговоры с Apple о соответствии той или иной функции приложения правилам App Store .
  • Стоит понять, что вдохновляет разработчиков

    Базовое знание iOS может помочь рекрутерам привлечь новых соискателей. Более того, понимание ожиданий и требований кандидатов к работе поможет нанять «правильного» разработчика. Бен Шайв, iOS-разработчик с шестилетним опытом работы, и Алекс Стралгер, младший iOS-разработчик в TWG , дали свои комментарии о том, что хотели бы видеть в новом потенциальном месте работы.

    • Сформированная команда мобильное разработки. «У многих компаний есть только несколько разработчиков мобильных приложений», — отмечает Алекс Стралгер. «Одна из основных вещей, на которые я ищу в компании, это наличие сформированной iOS-команды, у членов которой можно будет научиться чему-то новому».
    • Возможность программирования на Swift. Бен Шайв сказал, что несмотря на то, что он понимает необходимость кросс-платформенных решений в отдельных случаях, особенное удовольствие получает от создания нативных приложений. «Переход к программированию на Swift был волнительным», — добавляет он. «Раньше мне нравилось программировать на Objective-C, однако Swift быстро стал моим любимым языком для разработки новых проектов и усовершенствования старых из-за своих новых функций».
    • Гибкость в стратегии и проектировании приложений. Разработка мобильных приложений для iOS не стоит на месте: появляются новые подходы, инструменты, технологии и сервисы. В связи с этим Алекс Cтралгер сказала, что команды, открытые для новых решений и подходов к проектированию, кажутся ей привлекательными. Она также отметила важность регулярных командных встреч для обсуждения технологических новинок, которые можно было бы внедрить в разработку проектов.
    Цукерберг рекомендует:  Web дизайн - кто заканчивал курсы UXUI ,как дела с трудоустройством

    Как найти работу Junior iOS developer без опыта работы, но с простыми приложениями в app store?

    Очень активно сейчас изучаю ios-разработку, знаний уже достаточно на какое-нибудь простое приложение
    Через неделю, скорее всего, уже подам заявку на выдачу его в app store (что его пропустят — почти не сомневаюсь)

    Но я тут посидел, погуглил вакансии Junior ios developer и ничего путного не нашёл — везде просят опыт работы год минимум, да и на полную занятость, а я ещё учусь в университете

    Собственно, суть — как найти вакансию Джуна на полставки или удалённо?

    Или же
    Можно ли при наличии большого рвения стабильно зарабатывать фрилансом от 30 тысяч?


    • Вопрос задан более двух лет назад
    • 1955 просмотров

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

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

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

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

    Собеседование разработчика: 50 вопросов и ответов для iOS #1

    iOS-разработчик Дурул Далканат собрал распространенные вопросы с собеседования iOS-разработчиков и, конечно, дал ответы на них.

    Собеседование разработчика – сложное интервью, в котором надо продемонстрировать все навыки. Какие специфические знания могут понадобиться iOS-разработчику? Первая часть статьи с 25 темами!

    1. Как настроить Live Rendering?

    Атрибут @IBDesignable позволяет Interface Builder обновлять конкретные элементы.

    2. Чем отличаются синхронная и асинхронная задача?

    Синхронная: ждет, пока задача завершится. Асинхронная: завершает задачу в фоновом режиме и уведомляет вас о завершении.

    3. Что такое b-деревья?

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

    4. Что такое объект NSError?

    Существует три части объекта NSError: домен, код ошибки и словарь с пользовательской информацией. Домен — это строка, которая идентифицирует, к какой категории относится эта ошибка.

    5. Что такое Enum?

    Enum – это тип, который в основном содержит группу связанных значений.

    6. Что такое ограничивающий параллелепипед?

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

    7. Почему мы не используем strong для enum в Objective-C?

    Поскольку enum не являются объектами, мы не указываем здесь strong или weak.

    8. Что такое @synthesize в Objective-C?

    Synthesize генерирует методы getter и setter для вашего свойства.

    9. Что такое @dynamic в Objective-C?

    Мы используем dynamic для подклассов NSManagedObject. @dynamic сообщает компилятору, что геттер и сеттеры реализованы где-то в другом месте.

    10. Почему мы используем synchronized?

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

    11. В чем разница strong, weak, read only и copy?

    Собеседование разработчика может быть посвящено и таким вопросам.

    Атрибуты свойства strong, weak, assign определяют, как будет управляться память для этого свойства.

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

    Weak означает, что мы указываем на объект, но не увеличиваем счетчик ссылок. Он часто используется при создании родительских-дочерних отношений. Родитель имеет сильную ссылку на ребенка, но ребенок имеет только слабую ссылку на родителя.

    Read only — мы можем установить свойство изначально, но затем его нельзя будет изменить.

    Copy означает, что мы копируем значение объекта при его создании. Также предотвращает изменение его значения.

    Больше подробностей вы можете узнать здесь.

    12. Что такое Dynamic Dispatch?

    Dynamic Dispatch — это процесс выбора реализации полиморфной операции, которая является методом или функцией для вызова во время выполнения. Это происходит, когда мы хотим вызывать наши методы как метод объекта. Swift по умолчанию не выполняет Dynamic Dispatch.

    13. Что такое покрытие кода?

    Покрытие кода — это метрика, которая помогает нам измерять ценность наших юнит-тестов.

    14. Что такое обработчик завершения?

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

    Обработчик завершения принимает код с тремя аргументами: (NSData?, NSURLResponse?, NSError?), который ничего не возвращает: void. Это означает завершение.

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

    15. Как определить место юзабилити в дизайне?

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

    Для этого нужно разбить процесс дизайна на четыре шага:

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

    16. В чем разница между рамкой и границами ( frame и bound)?

    Границы в UIView — это прямоугольник, имеющий местоположение (x, y) и размер (ширина, высота) относительно собственной системы координат (0,0).

    Рамка в UIView это прямоугольник, имеющий местоположение (x, y) и размер (высота, ширина) относительно элемента, в котором он содержится.

    17. Что такое Responder Chain?

    Responder Chain — это иерархия объектов, которые могут ответить на полученные события.

    18. Что такое регулярные выражения?

    Регулярные выражения — это специальные строки-шаблоны, которые описывают, как искать в строке.

    19. Что такое перегрузка операторов?

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

    20. Что такое TVMLKit?

    TVMLKit — это связь между TVML, JavaScript и нативным tvOS-приложением.

    21. Какие ограничения существуют у платформы tvOS?

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

    Во-вторых, приложения tvOS не могут явно использовать локальное хранилище. При запуске продукта устройства поставляются с жестким диском либо на 32 ГБ, либо на 64 ГБ, но приложениям не разрешается напрямую сохранять файлы на устройство.


    Бандл tvOS-приложения не может превышать 4 ГБ.

    22. Что такое функции?

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

    Совет: хорошие функции принимают входные данные и возвращают выходные. Плохие функции устанавливают общие переменные и полагаются в работе на другие функции.

    23. Что такое ABI?

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

    24. Почему шаблон проектирования очень важен?

    Шаблоны проектирования — это повторно используемые решения для распространенных проблем в создании приложений. Эти шаблоны созданы, чтобы помочь вам писать простой код, который можно будет использовать снова и снова. Самые распространенные шаблоны проектирования Cocoa:

    • порождающий — одиночка (Singleton);
    • структурные — декоратор (Decorator), адаптер (Adapter), фасад (Facade);
    • поведенческие — наблюдатель (Observer) и хранитель (Memento).

    25. Что такое одиночка (Singleton)?

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

    Продолжение про собеседование разработчика читайте в следующей статье!

    stoicist / ios-questions-interview.md

    Вопросы на собеседование iOS разработчика (дополненное издание):

    Что такое полиморфизм ?

    Что такое *инкапсуляция? Что такое *нарушение инкапсуляции?

    Чем абстрактный класс отличается от интерфейса ?

    Расскажите о паттерне MVC . Чем отличается пассивная модель от активной ?

    Реализация синглтона (Singleton) в ARC и в non-ARC ?

    Какие еще паттерны знаете?

    Паттерны порождающие, создания объектов (Creational): Singleton, Abstarct Factory ?

    Паттерны структурные (Structural): MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite ?

    Патерны поведения и взаимодействия объектов (Behavioral): Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism) ?

    Что такое responder chain ?

    Как работают push нотификации ?

    • Опишите основные понятия ОО программирования в терминах Objective-C ( интерфейс, реализация, свойства, протоколы, и т.д)
    • Что такое назначеный инициализатор (designated initializer ), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду if (self = [super . ]) )?
    • Суть рантайма (Runtime), отправление сообщения ;
    • Объявление свойств (property) (retain, assign, nonatomic, readonly, copy) . С подвохом: вопрос о несуществующем параметре atomic , что он означает? Как правильно реализовать сетер для свойства с параметром retain? Вопрос о циклах в графах владения, и почему свойства delegate (предоставляющие доступ к делегату) обычно задаются как assign ?
    • В чем разница между точечной нотацией и использованием квадратных скобок? Что происходит когода мы пытаемся вызвать метод у nil указателя? Разница между nil и Nil?
    • Что такое селектор (selector) ? Как его вызвать? как отложить вызов селектора? Что делать если селектор имеет много параметров? (NSInvocation) Как запустить селектор во второстепенном (фоновом) потоке ?
    • Как запустить поток ? Что первым нужно сделать при запуске потока ? (NSAutoreleasePool) Что такое runLoop , кодга он используется? (timers, nsurlconnection . )
    • Что такое делегат (delegate) ? как его создать и использовать?
    • Как представлены структуры C (CGRect, CGSize, CGPoint) в Objective-C?
    • Чем объект Objective-c отличается от структуры С, что такое структура в С.
    • Какие существуют root классы в iOS? Для чего нужны root классы ? Корневые классы: NSObject, NSProxy? Как работает proxy? Как эмитировать множественное наследование?
    • Тип id . Что случится во время компиляции если мы посылаем сообщение объекту типа id ? Что случится во время выполнения если этот метод существует? Что произойдет здесь (компиляция + время выполнения): NSString *s = [NSNumber numberWithInt:3]; int i = [s intValue];
    • Что такое указатель isa ? Для чего он нужен?
    • Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали? Цепочка ответсвенности, что происходит с методом после того как он не нашелся в объекте класса, которому его вызвали (в сторону forwardInvocation:)?
    • Чем категория отличается от расширения (extension, наименованная категория)? категория vs extension ?
    • Можно ли добавить ivar в категорию?
    • Когда лучше использовать категорию , а когда наследование ? категория vs наследование ?
    • Что такое notifications (уведомления) ? как мы должны их использовать?
    • Какая разница м/у использование делегатов (delegation) и нотификейшенов (notification) ?
    • В чем разница между NSArray и NSMutableArray ?
    • Чем отличается NSSet от NSArray ? Какие операции происходят быстро в NSSet и какие в NSArray ?
    • Формальный и неформальный (informal) протокол? Протоколы (protocols): основные отличия между c#/java интерфейсами и Objective-C протоколами. Что делать в случае если класс не реализует какой-то метод из протокола?
    • Есть ли приватные и защищенные методы в Objective-C?
    • Что такое быстрое перечисление (fast enumeration) ?
    • Как имитировать множественное наследование ?
    • Что такое KVO ? Когда его нужно использовать? Методы для обозревания объектов? Работает ли KVO с instance переменными (полями) объекта?
    • Что такое KVC ? Когда его нужно использовать?
    • Что такое designated initializer ?
    • Как удалить объект в ходе итерации по циклу?
    • Что такое Run Loop ?
    • Как лучше всего загрузить UIImage c диска(с кеша) ?
    • Какой контент лучше хранить в Documents , а какой в Cache ?
    • Как связаны NSRunLoop и NSAutoreleasePool на пальцах?
    • Почему нам не следует вызывать instance методы в методе initialize ,?
    • NSCoding, archiving
    • Протокол NSCopying , почему мы не можем просто использовать любой собственный объект в качестве ключа в словарях (NSDictionary) , что нужно сделать чтобы решить эту проблему? (разница между глубоким и поверхностным копированием)

    • Как происходит ручное управление памятью — MRC в iOS?
    • autorelease vs release ?
    • Что означает ARC ?
    • Что делать, если проект написан с использованием ARC, а нужно использовать классы сторонней библиотеки написанной без ARC?
    • Weak vs assign , strong vs copy ?
    • Atomic vs nonatomic . Чем отличаются? Как вручную переопределить atomic/nonatomic сеттер в не ARC коде?
    • Зачем все свойства ссылающиеся на делегаты strong/retain . :)))
    • Что такое autorelease pool ?
    • Как можно заимплементировать autorelease pool на с++ ?
    • Если я вызову performSelector:withObject:afterDelay: — объекту пошлется сообщение retain?
    • Как происходит обработка memory warning (предупреждение о малом количестве памяти)? Зависит ли обработка от версии iOS, как мы должны их обрабатывать?
    • Напишите простую реализацию NSAutoreleasePoll на Objective-C
    • Когда нужно использовать метод retainCount (никогда, почему?) Объясните что такое подсчет ссылок (retain count )?
    • Темы управления памятью, такие как владение retain/release/autorelease .
    • Что случится если вы добавите только что созданный объект в Mutable Array , и пошлете ему сообщение release ? Что случится если послать сообщение release массиву? Что случится если вы удалите объект из массива и попытаетесь его использовать?
    • С подвохом: сборщик мусора для iPhone.
    • Нужно ли ретейнить (посылать сообщение retain) делегаты ?
    • Для чего используется класс NSCoder ?
    • Опишите правильный способ управленя памятью выделяемой под Outlet’ы ?
    • Реализуйте следующие методы: retain, release, autorelease ?
    • Преимущества и недостатки синхронного и асинхронного соединения?
    • Что означает http, tcp ?
    • Какие различия между HEAD, GET, POST, PUT ?
    • Как загрузить что-то из интернета? В чем разница между синхронными и асинхронными запросами ? Небольшое задание. Опишите как загрузить изображение из интернета и отобразить его в ImageView — все это должно происходить после нажатия кнопки.
    • Что такое deadlock ?
    • Что такое livelock ?
    • Что такое семафор (semafor) ?
    • Что такое мьютекс (mutex) ?
    • Асинхронность vs многопоточность . Чем отличаются?
    • Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
    • Как запустить поток? Что первым нужно сделать при запуске потока? (NSAutoreleasePool — пул автоосвобождения) Что такое runLoop, кодга он используется? (timers, nsurlconnection …)
    • Чем отличается dispatch_async от dispatch_sync ?
    • Для чего при разработке под iOS использовать POSIX-потоки ? pthread_create(&thread, NULL, startTimer, (void *)t);
    • А чем реально POSIX-потоки лучше чем GCD или NSOperationQueue вместе с NSOperation ? Приходилось ри реально использовать POSIX и как в этом были прюсы? Реально, просто интересно… Use POSIX calls if cross-platform portability is required. If you are writing networking code that runs exclusively in OS X and iOS, you should generally avoid POSIX networking calls, because they are harder to work with than higher-level APIs. However, if you are writing networking code that must be shared with other platforms, you can use the POSIX networking APIs so that you can use the same code everywhere.
    • Разница между свойствами bounds и frame объекта UIView? Понимание системы координат?
    • Какие бывают состояния у приложения?
    • Цикл жизни UIViewController ?
    • Что такое View (представление) и что такое window ?
    • Какого разрешение экранов iphon’ов, и в чем разница между points (точками) и пикселями (pixels) ?
    • Что такое responder chain (цепочка обязанностей, паттерн chain of responsibility , на примере UI компонентов iOS ), becomeFirstResponder .
    • Что означают IBOutlet и IBAction , для чего они нужны, и что значат для препроцессора?
    • Как работает UITableView ?
    • Как многопоточность работает с UIKit ?
    • Что можно сделать если клавиатура при появлении скрывает важную часть интерфейса?
    • Почему мы должны релизить IBOutlet’ты во viewDidUnload?
    • Что такое awakeFromNeeb , в чем разница между xib и nib файлами?
    • Иерархия наследования UIButton.

    Базы данных, CoreData:

    Составить SQL запрос на выборку всех проектов на которых сидит девелопер с >Developers:id,name; Projects:id,name; Developers&Projects:project_id,developer_id )?

    Зачем нужно делать двустороннии связи в таблицах?

    Что такое Core Data ?

    В каких случаях лучше использовать SQLite , а в каких Core Data ?

    Что такое контекст (Managed object context) ? Как происходят изменения в NSManagedObjectContext ?

    Что такое Persistent store coordinator ? Зачем нужен NSPersistentStoreCoordinator ?

    Какие есть нюансы при использовании Core Data в разных потоках ? Как синхронизировать данные между потоками (Как синхронизировать контекст)? Синхронизация разных типов NSManagedObjectContext (получение и изменение данных в child контекстах)?

    Использовали ли NSFetchedResultsController ? Почему?

    Что такое Fault и зачем он нужен?

    Что таке Fetched Property и особенности работы с ним по сравнению с обычной связью?

    Как использовать СoreData совместно с многопоточностью ?


    Что такое NSManagedObjectId ? Можем ли мы сохранить его на потом если приложение закроется?

    Какие типы хранилищ поддерживает CoreData?

    Что такое ленивая загрузка (lazy loading) ? Что ее связывает с CoreData? Опишите ситуация когда она может быть полезной?

    iOS-разработка для начинающих: учимся создавать приложения для iOS с нуля

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

    Цукерберг рекомендует:  Bootstrap - Bootstrap кратинка внутри div'a

    В сегменте мобильных технологий, без сомнения, лидирует Apple со своим смартфоном iPhone. На прошедшей в сентябре презентации компания из Купертино продемонстрировала уже 7-ю версию мобильного девайса. Вместе с ней Apple представила новую версию мобильной операционной системы iOS 10. Теперь это самая значимая операционка в мире, как и ее предшественницы. Из этого следует, что изучение разработки для iOS — самое выгодное вложение времени и средств.

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

    Сегодня мы займемся разработкой простого мобильного приложения для iOS. Конечно, лучше всего для этого подходит родной Mac. Но если ты сторонник Windows или у тебя просто нет Мака, можно установить операционную систему macOS под виртуальную машину в Windows. На просторах Сети тебе не составит большого труда найти специально заточенную под PC версию macOS, в народе называемую Хакинтош. Смело ставь ее на виртуалку VMware, VirtualBox — на твой выбор. Сразу предупрежу, что на PC-клавиатуре нет части клавиш, которые есть на Mac-клаве, и многие их сочетания нажать в Хакинтоше невозможно. Это изрядно портит настроение. В остальном все описанные ниже операции можно успешно выполнить на Хакинтоше.

    Необходимые знания

    Чтобы программировать вообще и для iOS в частности, надо довольно много знать. Математика и логика, может, и не понадобятся вначале, но будут востребованы потом. Современные технологии избавили программиста от необходимости досконально знать архитектуру компьютера, однако понимать базовые механизмы, такие как системы счисления, их преобразование, скорость работы подпрограмм или эффективность алгоритмов (большое O), необходимо.

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

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

    Инструменты для разработки

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

    В систему включены эмуляторы всех устройств, новые версии которых можно докачать. В дополнение Xcode содержит графические инструменты для анализа производительности приложения, включая средства диагностирования загруженности CPU, использования накопителя (HDD, SDD и другие), нагрузки на графический адаптер (со стороны OpenGL).

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

    Если у тебя старая версия Xcode, то рекомендуем обновить, поскольку мы будем использовать последнюю версию. Скачать ее можно из App Store:

    Xcode 8 в Mac App Store

    Xakep #246. Учиться, учиться, учиться!

    На Xcode 8 можно разрабатывать приложения для macOS Sierra, iOS 10, watchOS 3 и tvOS 10. Имеются все SDK. Новые версии операционок стали последовательно появляться аккурат после презентации Apple, состоявшейся в начале сентября.

    Язык Objective-C

    Кратко вспомним основные сведения о языке. Objective-C — компилируемый объектно ориентированный язык программирования, используемый для написания приложений под «яблочные» системы. Представляет собой надмножество или, другими словами, надстройку над C, унаследовав от последнего синтаксис, типы данных, способы контроля за ходом выполнения программы и добавив к нему возможности объектно ориентированного программирования — описание классов и методов.

    Как в C++, в Objective-C центральную роль играют объекты, с которыми связаны четыре парадигмы: абстракция, инкапсуляция, наследование, полиморфизм. Язык C++ является строго типизированным, тогда как Objective-C — слабо типизированный или обладает динамической системой типов данных. Подобно Smalltalk, в Objective-C объектам посылаются сообщения. Это исключительная возможность динамических языков, так как тип объектов проверяется во время исполнения программы, а не во время компиляции.

    Описание языка Objective-C занимает не один объемистый томик. Поэтому, чтобы получить объективные знания, удобно пройти курс «Mobile-разработчик». Целый раздел курса посвящен этому языку.

    Разработка приложения для iOS

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

    Запусти Xcode, в появившемся окне выбери Create new project или в главном меню File -> New -> Project. В следующем окне будет предложено выбрать целевую платформу и тип приложения.

    Мастер создания приложений

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

    Типы приложений

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

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

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

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

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

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

    Теперь выбери компонент Button, измени его свойство Text на желаемую метку — Switch. Отцентрировать можешь так же, как описано выше.

    Создаем связь между графическими элементами и кодом

    В Visual Studio (или Delphi) объект в коде создается автоматически в тот момент, когда кладешь визуальный компонент на форму. В Xcode этого не происходит, но это не создает проблем.

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

    Появится окно создания Outlet’а.

    Это свойство объекта, которое ссылается на другой объект (в данном случае визуальный компонент). Тебе надо ввести имя объекта Outlet, по нему ты будешь обращаться к визуальному компоненту, пускай будет lab. Далее выбирается тип объекта, он выбран правильно: UILabel.

    Еще ниже в списке Storage выбирается тип ссылки на объект: weak или strong. Если выбрать strong, то объект, на который указывает свойство, будет существовать до тех пор, пока свойство указывает на него, в таком случае он не сможет автоматически удалиться, когда перестанет использоваться. С другой стороны, когда действует слабая ссылка (weak), объект может самоуничтожиться. Итак, выбираем тип ссылки weak и жмем кнопку Connect. В итоге в код добавится такая строка:

    Убеждаемся, что Outlet — это свойство.

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

    В результате имеем два указателя на визуальные компоненты: lab и but — соответственно, надпись и кнопку. Теперь, используя указатели, мы можем манипулировать компонентами в коде.

    Затем надо создать обработчик события нажатия кнопки. Для этого в отдельном окне открой файл реализации ViewController.m. Точно таким же образом, как ты перетаскивал линию в заголовочный файл для создания аутлета, от кнопки перетащи линию в файл реализации и отпусти до закрывающей командной скобки — @end. Появится окно для создания события, подобное окну создания аутлета. Видишь разницу: в заголовочном файле создается ссылка на объект, в файле реализации — метод.

    Создание обработчика события

    Заполни поле Name, его значение представляет имя свойства — метода. Пусть будет onClick. Значение поля Type оставь по умолчанию — id. В языке Objective-C данный тип является предком для всех остальных. В ниспадающем списке Event выбрано по умолчанию событие Touch Up Inside, которое происходит в момент отпускания указателя (мыши, пальца. ) над кнопкой, то есть заключительная стадия нажатия кнопки. Это то, что нам нужно. В списке Arguments оставим значение по умолчанию: Sender — это объект, отправивший данный сигнал, в нашем случае им всегда будет кнопка. Жмем кнопку Connect. В итоге будет добавлен следующий код:

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

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

    В этой строчке кода мы инвертируем значение свойства hidden. Оно имеет тип BOOL, который располагает двумя значениями: YES — истина и NO — ложь (несколько непривычно Windows-программерам, где true и false).

    Обрати внимание на символ подчеркивания, стоящий перед именем объекта — надписи (_lab). Без него компиляция завершится с ошибкой. Символ подчеркивания добавляется автоматически для объектов, содержащихся в других объектах; то есть в данном случае объект lab содержится в объекте ViewController. Раньше это было условное правило, используемое для различия объектов, объявленных в качестве членов класса, и локальных объектов. А теперь это строгое правило, реализованное в компиляторе языка.

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

    После компиляции приложения, запуска симулятора и загрузки нашего приложения на экране симулятора отобразится его интерфейс: надпись «Hello, World» и кнопка Switch. Если нажать последнюю, надпись исчезнет, при повторном нажатии она появится вновь.

    Мы сделали очень простое приложение для понимания сути разработки под iOS. Более подробные сведения о создании приложений для iOS на языке Objective-C ты можешь узнать из курса наших друзей из GeekBrains «Мобильный разработчик». В курсе два месяца отдается на изучение этого языка. Во время первого месяца — вводные темы, а на втором — реальный кодинг профессиональных приложений.

    Язык Swift

    В 2014 году Apple представила новый язык программирования — Swift. Он быстро стал самым обсуждаемым и наиболее динамично развивающимся языком в мире. Это надежный, безопасный, интуитивно понятный язык для разработки приложений под операционные системы macOS, iOS, tvOS и watchOS для всего парка устройств от Apple. Swift — эффективный язык программирования. Его легче изучать, чем его предшественника — Objective-C, в то же время Swift позаимствовал из него самые удачные идеи. Вместе с тем разработчики сделали языки совместимыми, то есть в одной программе может быть код как на Swift, так и на Objective-C. В мире имеются миллиарды строк кода и сотни тысяч унаследованных программ, написанные на Objective-C, поэтому от его поддержки точно не будут отказываться.


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

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

    Благодаря своему экспоненциальному развитию, 3 декабря 2015 года язык Swift был передан в сообщество открытых исходников. При этом Apple строго следит за его развитием, организовав комитет для его разработки. Теперь Swift доступен не только в системах Apple, но также в Linux. Все дополнительные инструменты для работы с языком, включая отладчик, стандартную библиотеку, менеджер пакет, тоже свободные и открытые.

    За этим языком будущее. Более подробные сведения о нем ты сможешь узнать из упомянутого курса от GeekBrains «Мобильный разработчик», в нем целый месяц отведен на изучение данного языка программирования.

    App Store

    Попросту говоря, App Store — это магазин контента для всего спектра Apple-девайсов. Здесь можно купить игры и приложения как от больших компаний, так и от независимых разработчиков. Каждый разработчик, в какой бы стране он ни жил, может продавать или распространять бесплатно свои программы на этой площадке цифровой дистрибуции. Чтобы начать это делать, надо зарегистрироваться как разработчик и купить лицензию для продажи своих приложений. Это плата за предоставляемый сервис и развитие магазина App Store.

    Итоги

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

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

    Это достойный курс: пройдя его, ты точно не потратишь время зря. Он начинается с двух подробных курсов по языку Java, затем следует изучение базового программирования под мобильную операционную систему Android. Далее курс по базам данных в общем и языку SQL в частности. Затем углубленный курс по разработке профессиональных приложений для Android. После этого вектор изучения перейдет в сторону Apple-систем: два подробных курса по языку Objective-C и полезный курс по Swift.

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

    Цукерберг рекомендует:  Вакансии Инфобот

    Специальный проект с компанией GeekBrains

    Ios development — Знание Objective C при поиске работы

    Для создания приложений важно понимать жизненный цикл мобильной разработки. Разработчики iOS также отвечают за внедрение новых технологий, чтобы увеличить производительность приложений. Разработчик iOS несет ответственность за вклад в разработку, создает и поддерживает приложения. Реализация мобильных продуктов происходит путем сотрудничества с другими инженерами и разработчиками. Важна вовлеченность, желание непрерывно учиться, так как Apple ежегодно обновляет свою ОС.

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

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

    Каким опытом должен обладать iOS-разработчик:

    1. Важно умение разбираться в чужом коде, даже если разработка идет на Swift, а старый код на Objective-C.
    2. Шаблоны проектирования, iOS SDK, архитектура (MVC, MVP, MVVM, VIPER).
    3. Опыт с Core Data.

    Собеседования iOS-разработчиков мало чем отличаются от собеседований для других направлений. Само интервью можно разделить на поведенческую и техническую части. И если первая зависит от интервьюера и является скорее индивидуальной, то вторая более-менее стандартная с разделением по сложности, в зависимости от требуемого уровня кандидата для заданной позиции. Градация для оценки обычно используется стандартная — Junior/Middle/Senior, но уровень требуемых навыков и знаний для этих уровней может отличаться в зависимости от компании. Вопросы лучше задавать с учетом опыта кандидата, начиная от простого к сложному. Для более эффективного собеседования необходимо корректировать будущие вопросы и структуру интервью, в зависимости от ответов на вопросы текущего уровня.

    Вопросы на интервью можно разделить на основные (по языку программирования и основным фреймворкам), и специфичные для конкретного проекта (например, по используемому стеку технологий или предметной области проекта). Также можно выделить отдельный тип интервью, с вопросами уклоном на computer science. Особенно он эффективен при необходимости собрать команду с нуля при отсутствии первоначальной экспертизы в iOS-разработке. После интервью из результатов поведенческой и технической части формируется окончательное мнение о кандидате — уровень его навыков, мотивации и т.д.

    Сергей Марчуков, iOS TeamLead в SuperJob

    • Сколько у вас готовых коммерческих проектов?
    • Писали ли вы их в одиночку или в команде? Если команда – расскажите сколько человек работает над одним продуктом и как распределялись задачи?
    • Какая роль была у вас в этом проекте?
    • Имеете ли вы опыт работы с Objective-C?
    • Какую задачу в своем опыте вы можете назвать наиболее интересной, увлекательной? Почему так? Как удалось её решить?
    • Какой опыт был наиболее полезен для вас в профессиональном плане?
    • Над каким продуктом вам хотелось бы поработать и почему?
    • Есть ли опыт с RxSwift? Как относитесь к реактивному программированию? (если это необходимо для позиции)

    Objective — C 2.0 для Mac OS X/iOS. Уровень 1. Быстрый старт

    Программирование и СУБД

    Этот курс в нашем Центре
    успешно закончили
    139 человек!

    Objective-C 2.0 for Mac OS X / iOS. Level 1. Quick Start

    Уважаемые слушатели! Приглашаем вас пройти обучение на курсах Swift – востребованного и мощного языка программирования под iOS, который разработан Apple на смену Objective-C.

    Вы купили Mac или MacBook и желаете научиться программировать на этой платформе? Вы хотите разрабатывать приложения и игры для iPhone и iPad? Вам просто необходимо изучить язык Objective-C!

    Вы познакомитесь с ключевыми особенностями языка Objective-C 2.0 и узнаете, какие возможности предоставляет разработчику среда Cocoa Framework и инструментарий разработки Xcode.

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

    Курс рекомендован начинающим программистам и разработчикам на других платформах, желающим быстро познакомиться с возможностями разработки на платформе Mac OS X / iOS.

    Программа курса соответствует требованиям профессионального стандарта «Программист».

    По окончании курса Вы будете уметь:

    • Характеризовать отличительные особенности языка Objective-C 2.0 и его место среди других объектно-ориентированных языков;
    • Понимать и использовать объектно-ориентированный подход к постановке и решению задач;
    • Описывать роль и базовые средства Cocoa Framework в разработке приложений на Objective-C 2.0;
    • Использовать средства инструментария Xcode для:
      • написания и отладки простых консольных приложений на Objective-C 2.0;
      • проектирования и реализации несложного графического интерфейса пользователя (GUI) для своих приложений;
    • Характеризовать сходство и различия в разработке приложений для Mac OS X и iOS.

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

    Продолжительность курса — 24 ак. ч.

    Отзывы о курсе

    Cлушатель: Всеволодов Евгений Сергеевич

    Cлушатель: Ермолаев Спартак Геннадьевич

    Предварительная подготовка

    Требуемая подготовка: Успешное окончание курса Программирование на языке C (Си) или эквивалентная подготовка.

    Требуемая подготовка: Успешное окончание курса macOS: Работа с Mac для пользователей или эквивалентная подготовка.

    Рекомендуемая подготовка (необязательная): Английский язык для IT специалистов (elementary)

    Получить консультацию о необходимой предварительной подготовке по курсу Вы можете у наших менеджеров: +7 (495) 232-32-16.

    Наличие предварительной подготовки является залогом Вашего успешного обучения. Предварительная подготовка указывается в виде названия других курсов Центра (Обязательная предварительная подготовка). Вам следует прочитать программу указанного курса и самостоятельно оценить, есть ли у Вас знания и опыт, эквивалентные данной программе. Если Вы обладаете знаниями менее 85-90% рекомендуемого курса, то Вы обязательно должны получить предварительную подготовку. Только после этого Вы сможете качественно обучиться на выбранном курсе.

    Программа курса

    Тема Ак. часов
    Модуль 1. История и ключевые особенности языка Objective-C
    • C-подмножество Objective-C
    • Объектная модель Objective-C
      • Динамические особенности Objective-C
      • Сообщения в Objective-C
    • Роль и место Cocoa и других фреймворков в программировании на Objective-C
    • Наша первая программа “Hello, world”
      • Создание проекта консольного приложения в Xcode
      • Компиляция и выполнение кода
    • Наша вторая программа “Hello, world” с GUI интерфейсом
      • Создание проекта Cocoa приложения в Xcode
      • Визуальное проектирование в Interface Builder
      • Компиляция и выполнение кода
    • Индивидуальные задания и групповые упражнения
    4 Модуль 2. Концепции объектно-ориентированного программирования и их реализация в Objective-C
    • Что такое ООП и его роль в разработке программ
      • Класс
      • Объекты
      • Методы и свойства
      • Конструкторы и деструкторы
      • Наследование
      • Полиморфизм
    • Классы в Objective-C
      • Размещение описания класса в .h и .m файлах и директива #import
      • Соглашения о наименованиях
    • Объявление класса
      • Директива @interface
      • Переменные экземпляра
      • Свойства
      • Методы экземпляра и методы класса
      • Синтаксис объявления методов
      • Роль методов init и dealloc
    • Реализация класса
      • Директива @implementation
      • Синтаксис реализации методов
      • Ключевые слова self и super
      • Синтезирование Getter/Setter методов
    • Создание и использование объектов
      • Выделение памяти и инициализация
      • Отправка сообщений
      • Оператор “точка”
      • Уничтожение объектов
      • Понятие об “утечках памяти” и моделях управления памятью в Objective-C
    • Практикум: Разработка объектно-ориентированной версии программы “Hello, world”
    • Индивидуальные задания и групповые упражнения
    4 Модуль 3. Наследование и полиморфизм в Objective-C
    • Подклассы и суперклассы
      • Роль класса NSObject
      • Еще раз о self и super
      • Наследование переменных экземпляра и свойств
      • Наследование методов
      • Переопределение методов
    • Понятие и роль категорий в Objective-C
    • Особенности реализации полиморфизма в Objective-C
      • Понятие о динамическом связывании сообщений с методами
      • Понятие о перенаправлении (делегировании) сообщений
    • Протоколы
    • Исключения и их обработка в Objective-C
    • Практикум: Разработка программ “Калькулятор валют” и “Калькулятор выражений”
    • Индивидуальные задания и групповые упражнения
    4 Модуль 4. Поддержка разработки на Objective-C в среде Cocoa
    • Еще раз о роли и месте Cocoa
    • Строки
    • Основные контейнеры и коллекции
      • Массивы
      • Словари
      • Множества
    • Другие возможности
      • Работа с файлами
      • Работа с URL
      • Архивирование объектов
      • Управление памятью
      • И др.
    • Практикум: Разработка программы “Справочник по языку Objective-C ”
    • Индивидуальные задания и групповые упражнения
    4 Модуль 5. Поддержка в Cocoa разработки графического интерфейса пользователя (GUI)
    • Принципы и особенности разработки графического интерфейса и подход Apple
    • Модель MVC (Model – View – Controller)
    • Обзор элементов GUI и их типичных применений
    • Практикум: Разработка GUI для ранее написанных программ
    • Индивидуальные задания и групповые упражнения
    4 Модуль 6. Выполнение итоговой работы
    • Практикум: разработка и реализация проекта на Objective-C
    4 Аудиторная нагрузка в классе с преподавателем 24 +12 По окончании обучения на курсе проводится итоговая аттестация. Аттестация проводится в виде теста на последнем занятии или на основании оценок практических работ, выполняемых во время обучения на курсе.

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

    Расписание

    Звоните по тел. +7 (495) 232-32-16

    Стоимость обучения (рублей)*

    Курс может быть заказан согласно ФЗ-44, ФЗ-223 (закупка/аукцион/запрос котировок/конкурсные процедуры)
    с 10:00 до 17:00 Вечер или Выходные
    Стандартная цена
    Онлайн Индивидуальное обучение Записаться
    Частные лица 13 990 13 990 13 990 50 400 **
    Организации 17 990 17 990 17 990

    Документы об окончании

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

    Cертификат международного образца

    * Для получения удостоверения вам необходимо предоставить копию диплома о высшем или среднем профессиональном образовании.

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

    Работа: ios developer в России, 13 690 вакансий

    Java Developer (Чехия, Брно)

    Вам предстоит работать в новом центре системной интеграции в Брно на платформе интеграции SAP PI — Platform Integration. Платформа позволяет связывать облачные приложения с другими приложениями SAP и non-SAP. Java используется для настройки и разработки рабочих процессов интерфейса.

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

    • 13 ноября 2020 — msk.mjobs.ru

    SAP Integration Developer (Чехия, Брно)

    Вам предстоит реализовать интеграцию между спутниковыми системами и ядром SAP, в том числе HANA на платформе SAP CPI (Cloud Platform Integration). Вы станете работать в команде, создающей инновационные интеграционные решения и отвечающей за проектирование, разработку, тестирование и поддержку сервисов интеграции.Одно из крупнейших подразделений британской розничной компании в Брно, предоставляющего комплексные услуги по разработке, поддержке и тестированию во всех ИТ-отделах компании.

    • 13 ноября 2020 — novosibirsk.mjobs.ru

    Java/Kotlin Developer (Германия, Гамбург)

    Вы будете частью команды, создающей эффективные решения для клиентов в Германии, Австрии и Швейцарии.Компания, предоставляющая услуги IT-консалтинга, разработки и внедрения программных решений, ищет Java-разработчика со знанием Kotlin.

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

    • 13 ноября 2020 — spb.mjobs.ru

    IOS Developer

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

    Вам предстоит разрабатывать мобильные приложения под iOS, которыми пользуются миллионы человек, а заказчиками являются государственные учреждения, крупные корпорации и амбициозные стартапы на рынках США, Европы и России.

    Стек технологий — Swift, Reactive

    • 13 ноября 2020 — kazan.hh.ru

    IOS developer (FinTeсh)

    Мы делаем МТС цифровой компанией и активно развиваем направление Финансовых технологий.

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

    — созданием совместно с МТС Банком цифровой экосистемы банковского обслуживания;

    — разработкой собственной системы брокериджа для продукта «МТС Инвестиции»;

    — развитием электронного кошелька «МТС Деньги».

    • 13 ноября 2020 — hh.ru

    Программист (iOS-developer)

    • Разработка и поддержка мобильного приложения Здравсити для платформы iOS
    • Участвовать в обсуждении новых задач и составлении планов по разработке
    • Рефакторинг старого кода, перевод на новую архитектуру
    • Разработка unit-тестов
    • Опыт разработки мобильных приложений для iOS и публикации в Apple Store
    • Уверенное знание Objective-C, большим плюсом будет знание Swift
    • Опыт работы с iOS SDK
    • Понимание принципов ООП и шаблонов проектирования
    • 13 ноября 2020 — nn.hh.ru

    IOS-developer

    Привет, я Диана, технический директор в Improve Digital, и я ищу iOS-разработчика уровня middle (ну или почти middle)

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

    • 13 ноября 2020 — novosibirsk.hh.ru

    Middle/senior ios-developer

    Leningrad Media — крупная компания в сфере спортивного маркетинга. В Санкт-Петербурге мы занимаемся разработкой и поддержкой спортивных сайтов и приложений, ежемесячная аудитория которых составляет уже более 1 000 000 человек.

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

    • 13 ноября 2020 — spb.hh.ru

    IOS-developer

    В нашу команду на полный день требуется отличный iOS разработчик. Мы занимаемся разработкой уникального кэшбэк-сервиса “Маслина”. У нас уже есть приложение для Android и ведется работа над приложением для iOS, но нам не хватает мощностей. Нам нужен сильный разработчик на долгосрочное сотрудничество

    Базовые знания в концепциях дизайна, включая MaterialDesign и Human Interface Guidelines

    Диплом о окончании

    • 13 ноября 2020 — hh.ru

    IOS Developer (Swift)

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

    ·​ ​ ​ ​ ​ ​ ​Уверенное знание Swift;

    ·​ ​ ​ ​ ​ ​ ​Опыт разработки iOS от 2-х лет;

    ·​ ​ ​ ​ ​ ​ ​Хорошее знание платформы iOS, инструментов разработки, работы UI;

    • 13 ноября 2020 — hh.ru

    Team Lead / Senior iOS developer

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

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

    • 13 ноября 2020 — hh.ru

    Middle iOS Developer

    InDriver — это международный сервис пассажирских и грузовых перевозок со штаб-квартирой в Маунтин-Вью, Калифорния. Компания была основана в 2013 году. inDriver входит в топ-10 крупнейших райдхейлинговых приложений в мире. Сервисом пользуются более 35 млн человек более чем в 300 городах в 28 странах. В нашей команде трудится более 400 сотрудников. Подробнее о сервисе: indriver.com

    • Разработка нового функционала приложения
    • Поддержка
    • 13 ноября 2020 — hh.ru

    Senior iOS Developer

    Компания: Smart DevelopmentВакансия: Senior iOS DeveloperМесторасположение: МоскваОпыт работы: от 2 летЗанятость: полный рабочий деньОписание компании: Мы — молодая, креативная и динамично развивающаяся компания, которая занимается разработкой высоконагруженных проектов с использованием современных технологий.Мы ставим действительно интересные и амбициозные задачи, с нами у вас будет возможность поработать над новым продуктом в сфере стриминга за достойную оплату,

    • 13 ноября 2020 — hh.ru

    Программист (iOS-developer)

    • Разработка и поддержка мобильного приложения Здравсити для платформы iOS
    • Участвовать в обсуждении новых задач и составлении планов по разработке
    • Рефакторинг старого кода, перевод на новую архитектуру
    • Разработка unit-тестов
    • Опыт разработки мобильных приложений для iOS и публикации в Apple Store
    • Уверенное знание Objective-C, большим плюсом будет знание Swift
    • Опыт работы с iOS SDK
    • Понимание принципов ООП и шаблонов проектирования
    • 13 ноября 2020 — hh.ru

    IOS developer

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

    Вы увлечены своим

    • 13 ноября 2020 — spb.hh.ru

    Senior iOS Developer

    • разработка новых и поддержка существующих корпоративных приложений под iOS (Swift);
    • интеграция мобильных приложений с информационными системами компании;
    • взаимодействие с разработчиками, аналитиками, дизайнерами и тестировщиками;
    • аудит и рефакторинг программного кода;
    • проведение декомпозиции и оценки поставленных задач;
    • поиск лучшего решения задачи;
    • участие в планировании релизов;
    • высшее техническое образование;
    • хорошие знания Swift, Xcode;
    • опыт разработки приложений под iOS от 3 лет;
    • 13 ноября 2020 — hh.ru

    Senior iOS Developer

    Dostavista основана в 2012 году. Аналог Uber в курьерской доставке. Курьеры работают через приложения для iOS и Android, доставляют десятки тысяч отправлений ежедневно. Достависта — крупнейшая в Европе служба доставки «день в день». Работаем в 10 странах (Россия, Южная Корея, Индия, Турция, Бразилия, Мексика, Индонезия, Вьетнам, Филиппины, Таиланд) под собственными локальными брендами.

    HQ в центре Москвы.

    • Разработка продуктовых фич
    • 13 ноября 2020 — hh.ru

    Middle/Senior iOS Developer

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

    • Разработка и развитие приложения для iOS-платформы;
    • Рефакторинг;
    • Исправление багов;
    • Работа с Agile.
    • Участие в 2 и более проектах по разработке и внедрению высоконагруженных (100 000 и более активных пользователей) мобильных приложений для платформы
    • 13 ноября 2020 — spb.hh.ru

    Senior Python Developer (Москва)

    Компания Sunlight ищет сотрудника на позицию Senior Python Developer, в офисе. • Возможность частично удаленной работы из дома • Зарплату выше рынка • Корпоративный MacBook Pro 15″ или мощный компьютер • Разнообразные задачи и профессиональное развитие • Dream-team (около 30 человек). С нами работают лучшие • Возможность выезжать в Сочи и работать удаленно за счет компании • Чай/печеньки/няшки • Работа.

    • 26 октября 2020 — www.adzuna.ru

    Senior C++ Developer (Германия, Берлин)

    Мы предлагаем вам возможность работать плечом к плечу с этой командой и создавать вместе с ней востребованный продукт европейского качества.Германия, Берлин Крупная продуктовая компания в Германии, которая более 10 лет занимается разработкой приложений под Windows, ищет опытного C++-разработчика в свой офис в Берлине.

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

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