Тест на знание языка swift + видео обзор

Содержание
  1. Test your Swift
  2. Check your Swift skills
  3. Whether you’re preparing for a job interview or just deciding where you need to focus your learning, our free Swift tests can help.
  4. Be the Compiler
  5. Spot the Error
  6. Rearrange the Lines
  7. Take our free skills assessment
  8. Interactive Review
  9. We have over 2000 test questions that will assess your knowledge across Swift and all of Apple’s core frameworks for iOS development – all available online, and all free.
  10. Review Swift
  11. Review iOS
  12. Track progress
  13. Need help with interview prep?
  14. About these tests
  15. Тесты Swift Analysis (Saville Consulting)
  16. Компания Saville: история и развитие
  17. Для кого применяют тесты Swift Analysis
  18. Разные варианты использования тестов Swift Analysis
  19. Рекомендации для подготовки к Swift Analysis
  20. Как проходит тестирование Swift Analysis
  21. Будьте Первыми! Готовьтесь к тестам вместе с Нами!
  22. Unit тестирование в архитектуре Clean Swift
  23. Теория
  24. Практика
  25. Заключение
  26. Собеседование: Swift. Вопросы и ответы
  27. Beginner
  28. Язык Swift: вопросы и ответы на собеседовании
  29. Письменные вопросы
  30. Начальный уровень
  31. Средний уровень
  32. Вопрос №1 – язык Swift 2.0 и далее
  33. Вопрос №2 – язык Swift 1.0 и далее
  34. Вопрос №3 – язык Swift 1.0 и далее
  35. Вопрос №4 – язык Swift 2.0 и далее
  36. Видео

Test your Swift

Check your Swift skills

Whether you’re preparing for a job interview or just deciding where you need to focus your learning, our free Swift tests can help.

Be the Compiler

Test your knowledge of Swift functionality by reading code and trying to predict the output.

Spot the Error

Read randomly generated Swift code and try to figure out which line contains an error.

Rearrange the Lines

Read through jumbled up Swift code then try to rearrange it so it actually works.

Take our free skills assessment

It’s hard to know what you don’t know, so how can you figure out what holes you have in your knowledge? Simple: take the final example from the 100 Days of Swift – it’s a 100-question test that covers a vast range of Swift and iOS, and will identify your weak spots in under an hour.

Interactive Review

We have over 2000 test questions that will assess your knowledge across Swift and all of Apple’s core frameworks for iOS development – all available online, and all free.

Review Swift

Work your way through 100 tests about individual Swift topics – variadic functions, class inheritance, protocol extensions, and more.

Review iOS

Try your hand at 30 tests that cover the first 30 Hacking with Swift projects, including UIKit, SpriteKit, Core Graphics, and much more.

Track progress

Your web browser automatically tracks which tests you’ve taken, so you can see how far you’ve come.

Need help with interview prep?

Once you’ve worked through the technical tests above, move on to our collection of over 100 questions that are commonly asked in iOS developer interviews.

About these tests

This page contains the largest collection of Swift and iOS tests in existence – thousands of questions in total, plus interview questions, skill assessments, and more. You might think that’s nice enough, but there’s a twist:

These questions are used by companies around the world in their own job interviews for iOS developers.

As the industry standard Swift tests, you can use these now to get ahead of the pack: in the run up to your next interview you can spend 10 minutes a day completing tests or answering questions here, and you can be sure the work will pay off.

All these tests are both free and anonymous, so there’s nothing standing between you and acing your next interview – good luck!

Источник

Тесты Swift Analysis (Saville Consulting)

Компания Saville Consulting, как и тест Saville, известна не особо большому кругу людей, если брать всех граждан нашей страны. Одна из самых известных батарей тестов компании Saville Consulting — это тесты Swift Analysis, включающие в себя числовые, абстрактные и вербальные тесты способностей.

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

Компания Saville: история и развитие

Разработчик самых современных тестов способностей – компания Saville не возникла ниоткуда, ее создал профессор Питер Савил – сооснователь гранда SHL. SHL была создана Савилом совместно с Холдсуортом, о чем недвусмысленно говорят первые буквы аббревиатуры. Как и многие другие успешные люди, Савил с Холдсуортом оставили свое первое детище, начав развивать новые проекты, и Saville Consulting – успешно реализованная задумка профессора Питер Савила.

Тест на знание языка swift

Saville Consulting тесты применяются многими компаниями топ-уровня, среди которых EY (Ernst & Young), NetworkRail, Deloitte, Pinewood, Prudential, NG Bailey, Virgin media, BP и др. Тесты Swift Analysis Aptitude (SAA) используются для отбора сотрудников, оценки действующих менеджеров и выпускников вузов. Есть и другие линейки тестов, используемые для торгового, офисного персонала и даже для проверки компетенций топ-менеджеров (SEA).

Для кого применяют тесты Swift Analysis

Самые распространённые тесты батареи Swift Analysis Aptitude:

Один из представителей Saville Consulting — ресурс Uplatforma. Тут есть все «батареи», от простейших до самых сложных, причем результаты каждого претендента можно сравнивать с результатами любой группы.

Любая компания может применить тесты Swift Analysis Verbal Numerical (SAVN) или другие «батареи» тестов для оценки как вновь поступающих, так и работающих сотрудников. Saville тест на работу гарантирует то, что выбранные способности будут оценены объективно и по современным информационным технологиям. Разные батареи, то есть наборы различных тестов помогают руководителям увидеть, насколько новые кандидаты лучше действующего персонала.

Разные группы сотрудников оцениваются в своих категориях, среди которых:

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

Тест на знание языка swift

Разные варианты использования тестов Swift Analysis

Пройти тест Swift Analysis Aptitude может понадобиться буквально каждому выпускнику вуза, если он претендует на работу в современной компании. Необязательно это будет зарубежная корпорация, хотя там тестирование – обязательная процедура, но многие отечественные компании также применяют Saville тесты для оценки персонала и отбора новых сотрудников.

Тест Saville удобен для работодателей тем, что позволяет оценивать даже технических специалистов (инженеров, проектировщиков и др.), для чего используются примеры тестов Swift Technical Aptitude. Отдельно есть линейки тестов для высококвалифицированных специалистов, топ-менеджеров, офисных сотрудников. Другими словами, Saville Assessment тесты пройти может потребоваться в любой момент: для трудоустройства, повышения, для перехода в другой отдел и пр. Конечно, тестирование способно остановить успешный карьерный рост, но если практиковаться, сохранять приобретенный навык, сложностей не возникнет.

Рекомендации для подготовки к Swift Analysis

Смотрите видео:

Как получить доступ к тренировочным тестам Swift Analysis?

Как проходит тестирование Swift Analysis

Почти все компании дают возможность пройти тест Swift Analysis Aptitude онлайн. Так удобно всем – работодатель сберегает время «эйчаров», а соискатели или работники не теснятся в кабинетах, решая задачи в любых удобных местах. Время на решение немного различается: технический, промышленный и торговый персонал проходит более простые линейки тестов за 10 минут, менеджеры, соискатели, выпускники решают тесты за 18 минут. Пройти тест Swift Analysis Aptitude можно онлайн и полностью бесплатно, а ссылку для прохождения дает представитель работодателя.

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

Будьте Первыми! Готовьтесь к тестам вместе с Нами!

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

Источник

Unit тестирование в архитектуре Clean Swift

Не секрет, что тестирование является неотъемлемой частью любой разработки. В предыдущих статьях мы разобрали основную структуру архитектуры Clean Swift и теперь пора научиться покрывать ее Unit тестами. За основу мы возьмем проект из статьи о Worker’ах и разберем основные моменты.

Тест на знание языка swift

Теория

Благодаря инжектированию зависимостей и протоколо-ориентированности, все компоненты сцены в Clean Swift независимы друг от друга и могут тестироваться отдельно. Как пример, Interactor зависим от Presenter’а и Worker’а, но эти зависимости опциональны и основаны на протоколах. Таким образом, Interactor может выполнять свою работу (хоть и неполноценную) без Presenter’a и Worker’a, а так же мы можем подменить их на другие объекты, подписанные под их протоколы.

Так как мы хотим тестировать каждый компонент отдельно, нам нужно заменить зависимости на псевдо-компоненты. В этом нам помогут шпионы (Spy). Spy — это объекты тестирования, реализующие протоколы, которые мы хотим инжектировать, и отслеживающие вызовы методов в них. Другими словами, мы создаем Spy для Presenter’a и Worker’a, а затем инжектируем их в Interactor для отслеживания вызова методов.

Тест на знание языка swift

Справедливости ради, дополню, что так же есть объекты тестирования (Test Doubles) Dummy, Fake, Stub и Mock. Но в рамках этой статьи, мы не будем их затрагивать. Подробнее можно почитать здесь — TestDoubles

Практика

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

Для каждого компонента сцены мы создаем файл с тестами и тестовые двойники для зависимостей компонента (Test Doubles).

Пример такой структуры:

Тест на знание языка swift

Структура каждого файла с тестами (для компонентов) выглядит одинаково и придерживается, примерно, такой последовательности написания:

Как мы разбирали в теории, каждый компонент сцены может тестироваться отдельно. Мы можем инжектировать в его зависимости тестовые дубли (Spy) и тем самым отслеживать работу методов нашего SUT. Рассмотрим детально процесс написания тестов на примере Interactor’a сцены Home.

HomeInteractor зависим от двух объектов — Presenter и Worker. Обе переменные, в классе, имеют тип протоколов. Это значит, что мы можем создать тестовые дубли, подписанные под протоколы HomePresentationLogic и HomeWorkingLogic, а затем инжектировать их в HomeInteractor.

Тестировать мы будем два метода:

Для начала написания тестов Interactor’a, мы должны создать шпионов, которые будут отслеживать вызов методов в HomePresentationLogic и HomeWorkingLogic. Для этого создаем класс HomePresentationLogicSpy в директории ‘CleanSwiftTestsTests/Stores/Home/TestDoubles/Spies’, подписываем под протокол HomePresentationLogic и реализуем метод этого протокола.

Здесь все предельно прозрачно. Если метод presentFetchedUsers (протокола HomePresentationLogic) был вызван, мы устанавливаем значение переменной isCalledPresentFetchedUsers на true. Тем самым, мы можем отследить был ли вызван данный метод в ходе тестирования Interactor’a.

По такому же принципу создаем HomeWorkingLogicSpy. Одно отличие, мы вызываем completion, т.к. часть кода в Interactor’е будет обернута в замыкание этого метода. Методы HomeWorkingLogic занимаются сетевыми запросами. Нам необходимо избежать реальных запросов в сеть во время тестирования. Для этого мы и заменяем его тестовым дублем, который отслеживает вызов методов и возвращает шаблонные данные, но при этом не совершает запросов в сеть.

Далее создаем класс HomeInteractorTests, которым будем тестировать HomeInteractor.

Мы указываем три основные переменные — sut, worker и presenter.

В setUp() инициализируем необходимые объекты, инжектируем зависимости в Interactor и присваиваем объекты в переменные класса.
В tearDown() мы очищаем переменные классы для чистоты эксперимента.

Метод setUp() вызывается перед стартом метода тестирования, например testFetchUsers(), а tearDown(), когда работа этого метода была завершена. Тем самым, мы пересоздаем объект тестирования (sut) перед каждым запуском тестового метода.

Далее идут сами методы тестирования. Структура делится на 3 основных логических блока — создание необходимых объектов, запуск трестируемого метода в SUT и проверка результатов. В примере ниже, мы создаем request (в нашем случае он без параметров), запускаем метод fetchUsers(:) Interactor’a, а затем проверяем, были ли вызваны необходимые методы в HomeWorkingLogicSpy и HomePresentationLogicSpy. Так же проверяем, сохранил ли Interactor тестовые данные, полученные от Worker’a, в свой DataStore.

Выбор пользователя будем тестировать по похожей структуре. Мы объявляем переменные expectationId и expectationName, по которым мы будем сравнивать результат выбора пользователя. Переменная users хранит тестовый список пользователей, который мы присвоим в Interactor. Т.к. методы тестирования вызываются независимо друг от друга, а в tearDown() мы обнуляем данные, то список пользователей Interactor’a пуст и нам нужно его чем-то заполнить. А далее мы проверяем, был ли присвоен пользователь в DataStore Interactor’a, после вызова sut.selectUser(:), и нужный ли это пользователь.

Тестирование Presenter’a и ViewController’a происходит по такому же принципу, с минимальными отличиями. Одно из отличий в том, что для тестирования ViewController’a потребуется создать UIWindow и получить контроллер со Storyboard’a в setUp(), а так же делать Spy объекты на таблицы и коллекции. Но эти нюансы варьируются от потребностей.

Для полноты картины, рекомендую ознакомиться с проектом по ссылке в конце статьи.

Заключение

Мы разобрали основные принципы тестирования приложений на архитектуре Clean Swift. Она не имеем принципиально сильных отличий от тестирования проектов на других архитектурах, все такие же тестовые дубли, инжектирование и протоколы. Главное не забывать, что у каждого VIP цикла должна быть одна (и только одна!) ответственность. Это сделает код чище, а тесты — очевидней.

Ссылка на проект: CleanSwiftTests
Помощь в написании статьи: Bastien

Источник

Собеседование: Swift. Вопросы и ответы

Языку программирования Swift всего четыре года, но он уже становится основным языком разработки для iOS. Развиваясь до версии 5.0, Swift превратился в сложный и мощный язык, отвечающий как объектно-ориентированной, так и функциональной парадигме. И с каждым новым релизом в нем добавляется еще больше возможностей.

Но насколько хорошо вы на самом деле знаете Swift? В этой статье вы найдете примеры вопросов для собеседования по Swift.

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

Вопросы разделены на три группы:

Beginner

Рассмотрим следующий код:

Чему равны значения tutorial1.difficulty и tutorial2.difficulty? Была бы какая-то разница, если бы Tutorial был классом? Почему?

tutorial1.difficulty равен 1, а tutorial2.difficulty равен 2.

В Swift структуры — типы-значения (value type). Они копируются, а не ссылаются. Следующая строка копирует tutorial1 и присваивает её tutorial2:

Изменения в tutorial2 не отражаются на tutorial1.

Если бы Tutorial был бы классом, tutorial1.difficulty и tutorial2.difficulty равнялись бы 2. Классы в Swift — ссылочные типы (reference type). Когда вы меняете свойство tutorial1, вы увидите такое же изменение у tutorial2 — и наоборот.

Вы объявили view1 при помощи var, а view2 — при помощи let. В чём разница и скомпилируется ли последняя строка?

Да, последняя строка скомпилируется. view1 — это переменная, и вы можете назначить её значение новым экземпляром UIView. Используя let, вы можете присвоить значение лишь однажды, так что следующий код не скомпилируется:

Однако, UIView — это класс со ссылочной семантикой, так что вы можете изменять свойства view2 — что означает, что код скомпилируется.

Этот код сортирует массив по алфавиту. Максимально упростите замыкание.

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

Вы можете заменить имена параметров использованием нотации $i:

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

Наконец, так как Swift знает, что элементы массива соответствуют протоколу Equatable, вы можете просто написать:

Upd: hummingbirddj упростил ещё больше:

В данном случае можно еще короче: – сортирует по возрастанию, работает для типов, реализующих Comparable.

Этот код создаёт два класса: Address и Person. Также создаются два экземпляра класса Person (Ray и Brian).

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

Это компилируется и выполняется без ошибок. Но, если вы проверите теперь адрес Ray, то вы увидите, что он тоже «переехал».

Что здесь произошло и как мы можем исправить это?

Что такое optional и какие проблемы они решают?

Коротко перечислите основные отличия между structure и class.

Что такое generics и для чего они нужны?

В Swift вы можете использовать generics в классах, структурах и перечислениях.

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

Например, в этом коде вторая функция — это «клон» первой, за исключением того, что у неё параметры string, а не integer.

Применяя generics, вы совмещаете две функции в одной и одновременно обеспечиваете безопасность типов:

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

В некоторых случаях не получится избежать неявного разворачивания (implicitly unwrapped) optionals. Когда и почему?

Наиболее частые причины для использования implicitly unwrapped optionals:

Какими способами можно развернуть optional? Оцените их в смысле безопасности.

Принудительное развёртывание (forced unwrapping) — небезопасно.

Неявное развертывание при объявлении переменной — небезопасно.

Optional binding — безопасно.

Optional chaining — безопасно.

Nil coalescing operator — безопасно.

Оператор Guard — безопасно.

Optional pattern — безопасно.

Источник

Язык Swift: вопросы и ответы на собеседовании

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

Хотя Свифту всего три года, за это время он успел стать одним из самых популярных языков. Его синтаксис до безобразия простой – настолько, что с выходом Swift разработчики одного из самых простых языков JavaScript почувствовали себя немного ущемленными.

Тест на знание языка swift

В действительности Swift – сложный язык. Он охватывает как объектно-ориентированные (ООП), так и функциональные подходы, и продолжает совершенствоваться с каждым новым выпуском.

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

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

Вопросы разделены на две основные категории:

Кроме того, каждая из этих категорий разделена на три уровня:

Если вы хотите по-настоящему себя испытать, постарайтесь не раскрывать спойлеры с ответами сразу. Все решения были протестированы с помощью Xcode 7.0 beta 6.

Письменные вопросы

Начальный уровень

Каков наиболее оптимальный способ написать этот цикл for с диапазонами?

Решение внутри

Swift реализует два оператора диапазона: замкнутый оператор и полуоткрытый оператор. Первый включает все значения в диапазоне. Например, следующее включает в себя все целые числа от 0 до 4:

Полуоткрытый оператор не включает последний элемент. Ниже приводятся те же результаты от 0 до 4:

Рассмотрим следующий пример:

Что из себя представляют tutorial1.difficulty и tutorial2.difficulty? Было бы все иначе, если бы Tutorial был классом? Почему?

Решение внутри

tutorial1.difficulty = 1, тогда как tutorial2.difficulty = 2.

Структуры в Swift – это типы значений, и значения копируются, а не передаются по ссылке. Следующая строка создает копию tutorial1 и присваивает ее tutorial2:

Исходя из этой строки, можем сделать вывод, что любые изменения в tutorial2 не отражены в tutorial1.

Если бы Tutorial был классом, то и tutorial1.difficulty, и tutorial2.difficulty были бы равны 2. Классы в языке программирования Swift являются ссылочными типами. Любое изменение свойства tutorial1 будет отражено в tutorial2 и наоборот.

view1 объявляется с var, а view2 объявляется с let. В чем разница, и будет ли последняя строка компилироваться?

Решение внутри

view1 является переменной и может быть переназначена в новый экземпляр UIView. С let вы можете назначить только один раз, поэтому следующий код не будет компилироваться:

Однако UIView – это класс со ссылочной семантикой, поэтому свойства view2 поддаются модификации (значит, последняя строка будет скомпилирована):

Этот код сортирует массив имен по алфавиту и выглядит сложным. Упростите его:

Решение внутри

Первое упрощение связано с параметрами:

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

Обозначение $i может заменить имена параметров:

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

Это уже проще, но идем дальше. Для строк существует функция сравнения, определяемая следующим образом:

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

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

Этот код создает два класса – Address и Person, а также два экземпляра для представления – Ray и Brian:

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

Что произошло? Что не так?

Тест на знание языка swift

Решение внутри

Рэй тоже переехал в новое здание! Address – это класс, который характеризуется ссылочной семантикой, поэтому штаб-квартира (headquarters) является одним и тем же экземпляром, независимо от того, обращаетесь ли вы к нему через ray или brian. Изменение адреса штаб-квартиры изменит его для обоих. Можете ли вы представить, что произойдет, если Брайан получит почту Рэя или наоборот?

Решение состоит в том, чтобы создать новый Address для назначения Брайану. А еще можно объявить Address как структуру вместо класса.

Средний уровень

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

Вопрос №1 – язык Swift 2.0 и далее

В чем разница между nil и .None? Чем отличаются переменные optional1 и optional2?

Решение внутри

Нет никакой разницы. Optional.None (.None как сокращение) – это правильный способ инициализации необязательной переменной, не имеющей значения, тогда как nil – это просто «синтаксический сахар» для .None.

Фактически, это утверждение выводит true:

Помните, что перечисление является необязательным:

Вопрос №2 – язык Swift 1.0 и далее

Вот модель термометра как класса и структуры:

Этот код не компилируется. Почему? Где ошибка?

Решение внутри

Компилятор будет жаловаться на последнюю строку. ThermometerStruct правильно объявлен с помощью модифицирующей функции, чтобы изменить внутреннюю переменную temperature, но компилятор жалуется, потому что registerTemperature вызывается в экземпляре, созданном через let, поэтому он является неизменным.

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

Вопрос №3 – язык Swift 1.0 и далее

Что выводит этот код и почему?

Решение внутри

Этот код выводит I love cars. Список захвата создает копию thing, когда объявляется закрытие, поэтому зафиксированное значение не изменяется, даже если вы назначаете новое значение для thing.

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

Вопрос №4 – язык Swift 2.0 и далее

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

Источник

Видео

Swift. Как писать unit тестыСкачать

Swift. Как писать unit тесты

Занятие 15: Unit/UI тесты Swift.Скачать

Занятие 15: Unit/UI тесты Swift.

Решение задач на языке Swift. Полный курсСкачать

Решение задач на языке Swift. Полный курс

Swift. Как его учить?Скачать

Swift. Как его учить?

Стоит ли выбирать SWIFT и разработку под IOS/MACOSСкачать

Стоит ли выбирать SWIFT и разработку под IOS/MACOS

SWIFT Уроки: Junior Test Task (part 1) / Тестовое задание IOS Junior (часть 1)Скачать

SWIFT Уроки: Junior Test Task (part 1) / Тестовое задание IOS Junior (часть 1)

Как определить свой уровень английского языка? | Тест на уровень английскогоСкачать

Как определить свой уровень английского языка? | Тест на уровень английского

Unit- тестирование для iOS-разработчика в Xcode — Mad Brains ТехноСкачать

Unit- тестирование для iOS-разработчика в Xcode — Mad Brains Техно

Язык программирования Swift | SpecialСкачать

Язык программирования Swift | Special

Изучение Swift в одном видео уроке за час!Скачать

Изучение Swift в одном видео уроке за час!
Поделиться или сохранить к себе:
Добавить комментарий

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