Channel name was changed to «SwiftInterview»
Channel name was changed to «Swift Interview - Вопросы для собеседований. Mobile митапы и конференции.»
Вопросы будут распределены по хештегам #SwiftInterviewUIKit, #SwiftInterviewRxSwift, #SwiftInterviewArchitecture, #SwiftInterviewGeneral, #SwiftInterviewNotification,
#SwiftInterviewMultithreading,
#SwiftInterviewMemory,
#SwiftInterviewTasks (по мере заполнения количество тем будет увеличиваться). И по сложности #SwiftInterviewBeginner, #SwiftInterviewMedium, #SwiftInterviewAdvanced. В начале большинство вопросов будут для начального уровня, затем будут разбираться более сложные темы.
Так же будут ссылки на мобильные конференции и митапы, на которых можно узнать что-то новое и повысить свой уровень. Надеюсь, канал найдут полезным как начинающие, так и продвинутые разрабочики
Вопросы для разбора, предложения можно присылать @dmitryZazulin
#SwiftInterviewMultithreading,
#SwiftInterviewMemory,
#SwiftInterviewTasks (по мере заполнения количество тем будет увеличиваться). И по сложности #SwiftInterviewBeginner, #SwiftInterviewMedium, #SwiftInterviewAdvanced. В начале большинство вопросов будут для начального уровня, затем будут разбираться более сложные темы.
Так же будут ссылки на мобильные конференции и митапы, на которых можно узнать что-то новое и повысить свой уровень. Надеюсь, канал найдут полезным как начинающие, так и продвинутые разрабочики
Вопросы для разбора, предложения можно присылать @dmitryZazulin
Swift Interview - Вопросы для собеседований. Mobile митапы и конференции. pinned «Вопросы будут распределены по хештегам #SwiftInterviewUIKit, #SwiftInterviewRxSwift, #SwiftInterviewArchitecture, #SwiftInterviewGeneral, #SwiftInterviewNotification, #SwiftInterviewMultithreading, #SwiftInterviewMemory, #SwiftInterviewTasks (по мере заполнения…»
Начальный уровнь. Общие вопросы.
Что такое ООП? Для чего нужен ООП?
На первый взгляд легкий вопрос, но некоторые начинают путаться уже на нем. В интернете можете найти множество статей.
Так же попробуйте ответить на вопрос:
Можете ли вы объяснить высказывание “наследование нарушает инкапсуляцию”?
#SwiftInterviewBeginner #SwiftInterviewGeneral
https://blog.skillfactory.ru/glossary/oop-obektno-orientirovannoe-programmirovanie/
Что такое ООП? Для чего нужен ООП?
На первый взгляд легкий вопрос, но некоторые начинают путаться уже на нем. В интернете можете найти множество статей.
Так же попробуйте ответить на вопрос:
Можете ли вы объяснить высказывание “наследование нарушает инкапсуляцию”?
#SwiftInterviewBeginner #SwiftInterviewGeneral
https://blog.skillfactory.ru/glossary/oop-obektno-orientirovannoe-programmirovanie/
Skillfactory media
ООП (объектно-ориентированное программирование) - что это простыми словами: принципы и суть
Что такое ООП (объектно-ориентированное программирование) простыми словами, основы. Реализация и разработка ООП. Основные понятия, принципы, методы и компоненты.
👍3🔥1
Начальный уровень. Архитектура приложения.
Что значит аббревиатура М в архитектурных паттернах MVC, MVP, MVVM?
На первый взгляд простой вопрос, но многие джуны путают Model с некой Entity. Статей в интернете много, но нужно внимательно ознакомиться, что значит каждая аббревиатура, как движутся данные.
#SwiftInterviewBeginner #SwiftInterviewArchitecture
https://ru.wikipedia.org/wiki/Model-View-Controller
Что значит аббревиатура М в архитектурных паттернах MVC, MVP, MVVM?
На первый взгляд простой вопрос, но многие джуны путают Model с некой Entity. Статей в интернете много, но нужно внимательно ознакомиться, что значит каждая аббревиатура, как движутся данные.
#SwiftInterviewBeginner #SwiftInterviewArchitecture
https://ru.wikipedia.org/wiki/Model-View-Controller
Wikipedia
Model-View-Controller
метод проектирования программного обеспечения
👍7
Начальный уровень. UIKit.
Что такое SafeArea, для чего нужна?
Снова начальный уровень, но опять же у неопытных разработчиков возникают проблемы с четким ответом. Подробный разбор будет в статье.
#SwiftInterviewBeginner #SwiftInterviewUIKit
https://medium.com/rosberryapps/ios-safe-area-ca10e919526f
Что такое SafeArea, для чего нужна?
Снова начальный уровень, но опять же у неопытных разработчиков возникают проблемы с четким ответом. Подробный разбор будет в статье.
#SwiftInterviewBeginner #SwiftInterviewUIKit
https://medium.com/rosberryapps/ios-safe-area-ca10e919526f
Medium
iOS Safe Area
By Evgeny M., iOS Developer at Rosberry
👍7
Weekend Offer для мобильных разработчиков от VK уже в эти выходные
🗓️ 3-4 сентября будет проводиться Weekend Offer для мобильных разработчиков в команду Почты и Облака Mail.ru. Это серия экспресс-собеседований, по результатам которых можно получить приглашение в команду.
Узнать все подробности о событии и заполнить анкету можно на сайте: team.vk.company/pochtaoffer.
3 сентября пройдёт знакомство с командой и будут проводиться индивидуальные технические собеседования, 4-го пройдут финальные собеседования, и уже вечером можно получить оффер.
3 сентября познакомим с командой и проведём индивидуальные технические собеседования, 4-го пройдут финальные собеседования, и уже вечером отправим офферы.
Отклики ждут до 2 сентября. Присоединяйтесь! 💙
🗓️ 3-4 сентября будет проводиться Weekend Offer для мобильных разработчиков в команду Почты и Облака Mail.ru. Это серия экспресс-собеседований, по результатам которых можно получить приглашение в команду.
Узнать все подробности о событии и заполнить анкету можно на сайте: team.vk.company/pochtaoffer.
3 сентября пройдёт знакомство с командой и будут проводиться индивидуальные технические собеседования, 4-го пройдут финальные собеседования, и уже вечером можно получить оффер.
3 сентября познакомим с командой и проведём индивидуальные технические собеседования, 4-го пройдут финальные собеседования, и уже вечером отправим офферы.
Отклики ждут до 2 сентября. Присоединяйтесь! 💙
🔥4
Средний уровень. Notification.
Расскажите что такое Push Notifications, каким образом «пуши» приходят на устройство?
Вопрос не сложный, но требует чтобы человек разобрался в нем. Для джуна знать как приходят и обрабатываются пуши, пожалуй, не обязательно, но миддл же должен разбираться в этом вопросе.
#SwiftInterviewMedium #SwiftInterviewNotification
https://medium.com/ios-os-x-development/learn-master-%EF%B8%8F-ios-remote-push-notifications-in-2018-in-under-10-minutes-825ca6bee092
Расскажите что такое Push Notifications, каким образом «пуши» приходят на устройство?
Вопрос не сложный, но требует чтобы человек разобрался в нем. Для джуна знать как приходят и обрабатываются пуши, пожалуй, не обязательно, но миддл же должен разбираться в этом вопросе.
#SwiftInterviewMedium #SwiftInterviewNotification
https://medium.com/ios-os-x-development/learn-master-%EF%B8%8F-ios-remote-push-notifications-in-2018-in-under-10-minutes-825ca6bee092
Medium
Learn & Master ⚔️ iOS Remote Push Notifications in 10 Minutes
Remote Push notifications enable developers to present information to their users outside the app and to redirect them to the app if…
👍6
Продвинутый уровень. Swift.
Диспетчеризация. Типы диспетчеризации.
В данном случае нужно просто знать и понимать тему, если вы претендуете на хорошую зарплату. Можете найти статьи в том числе и на хабре, но более понятно, пожалуй, разобран этот вопрос в видео на ютубе, ссылка ниже. 👇👇👇
#SwiftInterviewAdvanced #SwiftInterviewSwift
https://youtu.be/0YlN4W6VOH0
Диспетчеризация. Типы диспетчеризации.
В данном случае нужно просто знать и понимать тему, если вы претендуете на хорошую зарплату. Можете найти статьи в том числе и на хабре, но более понятно, пожалуй, разобран этот вопрос в видео на ютубе, ссылка ниже. 👇👇👇
#SwiftInterviewAdvanced #SwiftInterviewSwift
https://youtu.be/0YlN4W6VOH0
YouTube
Method Dispatch - Диспетчеризация методов в Swift
Занятие на тему "Диспетчеризация методов"
👍4
Неделя мобильной разработки на Хабр Карьера 🔥🔥🔥
С 5 по 11 сентября будет проходить неделя мобильно разработки на Хабр Карьере. Компании расскажут о себе в формате коротких видеопитчей. Участвуйте — смотрите, голосуйте, откликайтесь на горячие вакансии. Не пропустите!!!
Все подробности по ссылке ниже 👇👇👇
https://pitch.habr.com/?utm_source=mob22_feature
С 5 по 11 сентября будет проходить неделя мобильно разработки на Хабр Карьере. Компании расскажут о себе в формате коротких видеопитчей. Участвуйте — смотрите, голосуйте, откликайтесь на горячие вакансии. Не пропустите!!!
Все подробности по ссылке ниже 👇👇👇
https://pitch.habr.com/?utm_source=mob22_feature
Habr
Неделя бэкенда на Хабр Карьере
Компании расскажут о себе в формате коротких питчей — смотрите, голосуйте и откликайтесь на горячие вакансии
🔥3
Начальный уровень. Swift.
Чем отличается структура от класса?
Один из основных вопросов, чтобы отсеять кандидата. Если соискатель четко не может ответить, то дальнейший разговор становится формальностью. Так же нужно знать и понимать в каких случаях, что использовать. В качестве бонуса советую ознакомиться с постом про диспетчеризацию, это позволит узнать ещё одно отличие и в дальнейшем перевести собеседование в тему, которая вам знакома😁
#SwiftInterviewBeginner #SwiftInterviewSwift
https://swiftbook.ru/content/languageguide/classes-and-structures/
Чем отличается структура от класса?
Один из основных вопросов, чтобы отсеять кандидата. Если соискатель четко не может ответить, то дальнейший разговор становится формальностью. Так же нужно знать и понимать в каких случаях, что использовать. В качестве бонуса советую ознакомиться с постом про диспетчеризацию, это позволит узнать ещё одно отличие и в дальнейшем перевести собеседование в тему, которая вам знакома😁
#SwiftInterviewBeginner #SwiftInterviewSwift
https://swiftbook.ru/content/languageguide/classes-and-structures/
👍3🔥1
Средний уровень. Архитектура приложения.
Как вы понимаете понятие «Чистая архитектура»?
При ответе многие начинают путать понятия «чистая архитектура» и «чистый код», хотя понимание этих принципов очень важно для того чтобы стать качественным программистом. Само понятие «чистая архитектура» появилось в одноименной статье Роберта Мартина, так же уже есть его книга на данную тему. По ссылке ниже вы сможете ознакомиться с основными принципами данной концепции. 👇👇👇
Возможно вы не сразу поймёте для чего нужно разделение приложения на слои, поэтому приведу пример. Условно вы используете архитектуру Viper (можно и MVVM, не столь важно), для хранения данных - CoreData. По этой концепции о CoreData и ее моделях будет знать только сервис, который непосредственно отвечает за работу с БД, и который будет внутри себя перерабатывать «кордатовские» модели в другие сущности для передачи в другой слой. И если появится задача перевести хранение данных на Realm, то вся ваша работа должна свестись к переработке только одного сервиса, потому что ни interactor, ни тем более другие компоненты архитектуры не используют «кордатовие модели» и не знают о текущей БД, соответсвенно вам не придётся менять «пол» приложения. Это очень удобно и практично. 😉
#SwiftInterviewMedium #SwiftInterviewArchitecture
https://apptractor.ru/develop/chistaya-arhitektura-na-android-i-ios.html/amp
Как вы понимаете понятие «Чистая архитектура»?
При ответе многие начинают путать понятия «чистая архитектура» и «чистый код», хотя понимание этих принципов очень важно для того чтобы стать качественным программистом. Само понятие «чистая архитектура» появилось в одноименной статье Роберта Мартина, так же уже есть его книга на данную тему. По ссылке ниже вы сможете ознакомиться с основными принципами данной концепции. 👇👇👇
Возможно вы не сразу поймёте для чего нужно разделение приложения на слои, поэтому приведу пример. Условно вы используете архитектуру Viper (можно и MVVM, не столь важно), для хранения данных - CoreData. По этой концепции о CoreData и ее моделях будет знать только сервис, который непосредственно отвечает за работу с БД, и который будет внутри себя перерабатывать «кордатовские» модели в другие сущности для передачи в другой слой. И если появится задача перевести хранение данных на Realm, то вся ваша работа должна свестись к переработке только одного сервиса, потому что ни interactor, ни тем более другие компоненты архитектуры не используют «кордатовие модели» и не знают о текущей БД, соответсвенно вам не придётся менять «пол» приложения. Это очень удобно и практично. 😉
#SwiftInterviewMedium #SwiftInterviewArchitecture
https://apptractor.ru/develop/chistaya-arhitektura-na-android-i-ios.html/amp
AppTractor
Чистая архитектура на Android и iOS
Применение принципа чистой архитектуры в разработке для Android и iOS.
👍5
Начальный уровень. Общие вопросы.
Чем отличается массив от множества? Когда предпочтителен каждый тип коллекции?
На своей практике я пришел к выводу, что у многих джунов есть пробелы именно в фундаментальных знаниях. Данный вопрос как раз призван для того, чтобы проверить понимание типов коллекций. Не смотря на его несложность, некоторые кандидаты начинают давать нечеткие формулировки, что может вызвать дополнительные вопросы, либо выясняется, что при наличии опыта разработки продуктового приложения отсутствует практика работы с множествами.
Обычно от кандидатов ожидаются подобные ответы:
1) Массив - это упорядоченная коллекция, состоящая из элементов, которые могут быть не уникальными.
2) Множество - это неупорядоченная коллекция из уникальных элементов. Уникальность достигается имплементацией протокола Hashable (его мы разберём в одном из следующих постов).
Если вы дали ответ на первый заглавный вопрос подобный моему, то второй как правило отпадает.
Если при ответе я, например, не слышу про протокол Hashable, то задаю следующий вопрос: не могу ли я в множество добавить кастомный класс, если да, то почему и при каких условиях, если нет, то так же почему? Чтобы не возникали дополнительные вопросы, вы должны стараться иметь такой уровень знаний, который позволял бы давать четкие, краткие, исчерпывающие ответы.
Более подробное описание всех типов коллекций по ссылке снизу 👇👇👇
#SwiftInterviewBeginner #SwiftInterviewGeneral
https://swiftbook.ru/content/languageguide/collection-types/
Чем отличается массив от множества? Когда предпочтителен каждый тип коллекции?
На своей практике я пришел к выводу, что у многих джунов есть пробелы именно в фундаментальных знаниях. Данный вопрос как раз призван для того, чтобы проверить понимание типов коллекций. Не смотря на его несложность, некоторые кандидаты начинают давать нечеткие формулировки, что может вызвать дополнительные вопросы, либо выясняется, что при наличии опыта разработки продуктового приложения отсутствует практика работы с множествами.
Обычно от кандидатов ожидаются подобные ответы:
1) Массив - это упорядоченная коллекция, состоящая из элементов, которые могут быть не уникальными.
2) Множество - это неупорядоченная коллекция из уникальных элементов. Уникальность достигается имплементацией протокола Hashable (его мы разберём в одном из следующих постов).
Если вы дали ответ на первый заглавный вопрос подобный моему, то второй как правило отпадает.
Если при ответе я, например, не слышу про протокол Hashable, то задаю следующий вопрос: не могу ли я в множество добавить кастомный класс, если да, то почему и при каких условиях, если нет, то так же почему? Чтобы не возникали дополнительные вопросы, вы должны стараться иметь такой уровень знаний, который позволял бы давать четкие, краткие, исчерпывающие ответы.
Более подробное описание всех типов коллекций по ссылке снизу 👇👇👇
#SwiftInterviewBeginner #SwiftInterviewGeneral
https://swiftbook.ru/content/languageguide/collection-types/
👍4
8 сентября в 19:00 состоится совместный митап Rambler&Co и Okko в смешанном формате: в онлайне на YouTube-канале Rambler&Co и в офлайне в Москве по адресу: Варшавское шоссе, д. 9, стр 1, Даниловская мануфактура, корпус «Ряды Солдатенкова», 5 подъезд).
На обсуждении будут интересные темы про мобильную разработку: как сохранить непрерывность процессов, когда не знаешь, что случится завтра; реально ли запустить приложение за 3 дня; можно ли подружиться с техподдержкой Apple TV и и.д..
Регистрируйся прямо сейчас, количество мест ограниченно🔥🔥🔥.
На обсуждении будут интересные темы про мобильную разработку: как сохранить непрерывность процессов, когда не знаешь, что случится завтра; реально ли запустить приложение за 3 дня; можно ли подружиться с техподдержкой Apple TV и и.д..
Регистрируйся прямо сейчас, количество мест ограниченно🔥🔥🔥.
👍3🔥2
Начальный уровень. Архитектура приложения.
Чем отличается активная и пассивная модель в MVC?
В «боевых» приложениях сейчас сложно встретить использование данного архитектурного паттерна, но этот вопрос, что называется «в глубину», и в собеседованиях иногда попадается, поэтому лучше знать. В ссылке-ответе статья не для языка swift, но вас это не должно пугать, потому что паттерны универсальны для всех языков.
#SwiftInterviewBeginner
#SwiftInterviewArchitecture
http://rsdn.org/article/patterns/ModelViewPresenter.xml
Чем отличается активная и пассивная модель в MVC?
В «боевых» приложениях сейчас сложно встретить использование данного архитектурного паттерна, но этот вопрос, что называется «в глубину», и в собеседованиях иногда попадается, поэтому лучше знать. В ссылке-ответе статья не для языка swift, но вас это не должно пугать, потому что паттерны универсальны для всех языков.
#SwiftInterviewBeginner
#SwiftInterviewArchitecture
http://rsdn.org/article/patterns/ModelViewPresenter.xml
rsdn.org
Model-View-Controller в .Net
В наше время сложно найти разработчика, который не слышал бы о паттерне под названием Model-View-Controller или сокращенно MVC, что вообщем не удивительно, с задачей отделения данных от их представления сталкиваешься практически на каждом проекте. Однако…
👍3
Средний уровень. UIKit.
Расскажите про метод layoutSubviews. Можно ли его вызывать напрямую?
LayoutSubviews — это метод UIView, который обрабатывает перемещение и изменение размеров view и всех его subviews, что даёт view и каждому subview месторасположение и размер. Этот метод очень затратный, потому что действует на все subview данного view и вызывает их соответсвующие layoutSubviews тоже. Поэтому его не нужно называть напрямую. Вместо него, если вы хотите принудительно обновить и перерисовать view и его subview, используете метод setNeedLayout. Надо учесть, что при вызове этого метода перерисовка произойдёт не мгновенно, а при следующем цикле обновления run loop (подробнее о нём в одном из следующих постов). Если вы же хотите вызвать перерисовку незамедлительно, нужно вызвать layoutIfNeeded.
Так же надо понимать, что setNeedLayout - вызывается асинхронно, layoutIfNeeded - синхронно.
Более подробно по ссылке снизу 👇👇👇
#SwiftInterviewBeginner
#SwiftInterviewUIKit
https://abhimuralidharan.medium.com/ios-swift-setneedslayout-vs-layoutifneeded-vs-layoutsubviews-5a2b486da31c
Расскажите про метод layoutSubviews. Можно ли его вызывать напрямую?
LayoutSubviews — это метод UIView, который обрабатывает перемещение и изменение размеров view и всех его subviews, что даёт view и каждому subview месторасположение и размер. Этот метод очень затратный, потому что действует на все subview данного view и вызывает их соответсвующие layoutSubviews тоже. Поэтому его не нужно называть напрямую. Вместо него, если вы хотите принудительно обновить и перерисовать view и его subview, используете метод setNeedLayout. Надо учесть, что при вызове этого метода перерисовка произойдёт не мгновенно, а при следующем цикле обновления run loop (подробнее о нём в одном из следующих постов). Если вы же хотите вызвать перерисовку незамедлительно, нужно вызвать layoutIfNeeded.
Так же надо понимать, что setNeedLayout - вызывается асинхронно, layoutIfNeeded - синхронно.
Более подробно по ссылке снизу 👇👇👇
#SwiftInterviewBeginner
#SwiftInterviewUIKit
https://abhimuralidharan.medium.com/ios-swift-setneedslayout-vs-layoutifneeded-vs-layoutsubviews-5a2b486da31c
Medium
iOS swift — setNeedsLayout vs layoutIfNeeded vs layoutSubviews()
I always wondered about these methods while coding in iOS. I tried to read more and this is what I understood.
👍3
Начальный уровень. Общие вопросы.
Логические задачи. Задача про два шнура (фитиля).
В конце собеседования иногда хотят проверить умение кандидата логически мыслить и рассуждать, что является очень важным для программиста в любом направлении. Мне и моим коллегам в частности попадалась задача почему-то именно по шнуры, попробуйте решить сами 😀:
У Вас есть два шнура (фитиля). Каждый шнур, подожженный с конца, полностью сгорает дотла ровно за один час, но при этом горит с неравномерной скоростью. Как при помощи этих шнуров и зажигалки отмерить время в 45 минут?
Необходимо поджечь первый шнур одновременно с обоих … Ответ читайте ниже 👇👇👇
Больше логических задач по ссылке ниже 👇👇👇
https://tproger.ru/articles/10-logicheskih-zadach-s-sobesedovanij-kotorye-zastavjat-zastrelitsja/
#SwiftInterviewBeginner
#SwiftInterviewGeneral
Логические задачи. Задача про два шнура (фитиля).
В конце собеседования иногда хотят проверить умение кандидата логически мыслить и рассуждать, что является очень важным для программиста в любом направлении. Мне и моим коллегам в частности попадалась задача почему-то именно по шнуры, попробуйте решить сами 😀:
У Вас есть два шнура (фитиля). Каждый шнур, подожженный с конца, полностью сгорает дотла ровно за один час, но при этом горит с неравномерной скоростью. Как при помощи этих шнуров и зажигалки отмерить время в 45 минут?
Необходимо поджечь первый шнур одновременно с обоих … Ответ читайте ниже 👇👇👇
Больше логических задач по ссылке ниже 👇👇👇
https://tproger.ru/articles/10-logicheskih-zadach-s-sobesedovanij-kotorye-zastavjat-zastrelitsja/
#SwiftInterviewBeginner
#SwiftInterviewGeneral
Tproger
Логические задачи с собеседований - Решение задач на логику - Tproger
Подборка логических задач, которые могут попасться на собеседовании. Показываем решение и ответы. Рассматриваем способы мышления для решения задач на логику ✔ Tproger
👍2❤1
Forwarded from Mobile Events - митапы, конференции, хакатоны и другие интересные мероприятия по мобильной разработке
Продолжается набор талантливых iOS разработчиков на стажировку в Яндекс🚀
Сейчас открыты вакансии в трёх командах, в том числе, в SuperApp — самую крупную команду мобильных разработчиков, которая делает Браузер и Яндекс с Алисой.
Стажировка оплачивается и длится от 3 до 6 месяцев. Выбирайте удобную дату выхода и график работы: занятость 20, 30 или 40 часов, старт — каждую неделю. Иногородним стажёрам оплачивается проезд и проживание, а тех, кто хорошо себя проявит, будут рады видеть в штате. Стажёры должны хорошо знать базовые алгоритмы и структуры данных, а также уметь писать код на Swift.
Узнать все подробности и подать заявку: https://clck.ru/yXmu2
Сейчас открыты вакансии в трёх командах, в том числе, в SuperApp — самую крупную команду мобильных разработчиков, которая делает Браузер и Яндекс с Алисой.
Стажировка оплачивается и длится от 3 до 6 месяцев. Выбирайте удобную дату выхода и график работы: занятость 20, 30 или 40 часов, старт — каждую неделю. Иногородним стажёрам оплачивается проезд и проживание, а тех, кто хорошо себя проявит, будут рады видеть в штате. Стажёры должны хорошо знать базовые алгоритмы и структуры данных, а также уметь писать код на Swift.
Узнать все подробности и подать заявку: https://clck.ru/yXmu2
🔥4
Средний уровень. Многопоточность.
GCD. Как вы понимаете последовательные и параллельные очереди. Синхронное и асинхронное выполнение заданий.
Многопоточность достаточная сложная тема для понимания для многих новичков, но вопросы на собеседованиях на данную тему задают часто, поэтому постараемся разобраться с ней. Но если говорить в общем, если вы хотите стать хорошим качественным программистом, то без понимания этой темы вам просто не обойтись.
Особенностью работы iOS является то, что большое внимание система уделяет отрисовке именно UI, которая происходит только на главном потоке main thread, соответсвенно его нужно стараться разгружать от тяжелых задач, которые могут привести к фризам, что сильно раздражает конечных пользователь. Пожалуй, разгрузка главного потока - это самая частая задача, которую вам придётся делать.
Возьмём самый очевидный пример, вы листаете ленту, где много картинок, в этом момент вся загрузка информации должна происходить
на бекграунд потоке, а вся отрисовка изображений на главном.
Но помимо этого с помощью многопоточности можно решать ряд других задач таких как, выполнение параллельных вычислений, ограничение доступа к ресурсам по приоритетам и т.д.
Самый популярный инструмент для работы с многопоточностью - это Grand Central Dispatch или сокращённо GCD, поэтому мы с него и начали. Поставленный вопрос является тоже начальным.
Вкратце ответ приблизительно должен быть таким: в GCD мы работаем с потоками не напрямую, а через очереди, очереди бывают последовательные serial (в этом случае задачи выполняются последовательно друг за другом на одном потоке, и одновременно выполняется только одна задача) и параллельные concurrent (в этом случае задачи выполняются последовательно друг за другом на нескольких доступных потоках, и соответсвенно одновременно может выполняться несколько задач). Задачи берутся из очереди по принципу FIFO (first in first out). Задачу можно добавить как синхронно sync (в этом случае блокируется поток, на котором она добавлена, пока задача не выполниться), так и асинхронно async (в этом случае задача не блокирует поток, а сразу отпускает его после добавления в очередь).
Более подробно по ссылке снизу👇👇👇
https://habr.com/ru/post/320152/
#SwiftInterviewMedium
#SwiftInterviewMultithreading
GCD. Как вы понимаете последовательные и параллельные очереди. Синхронное и асинхронное выполнение заданий.
Многопоточность достаточная сложная тема для понимания для многих новичков, но вопросы на собеседованиях на данную тему задают часто, поэтому постараемся разобраться с ней. Но если говорить в общем, если вы хотите стать хорошим качественным программистом, то без понимания этой темы вам просто не обойтись.
Особенностью работы iOS является то, что большое внимание система уделяет отрисовке именно UI, которая происходит только на главном потоке main thread, соответсвенно его нужно стараться разгружать от тяжелых задач, которые могут привести к фризам, что сильно раздражает конечных пользователь. Пожалуй, разгрузка главного потока - это самая частая задача, которую вам придётся делать.
Возьмём самый очевидный пример, вы листаете ленту, где много картинок, в этом момент вся загрузка информации должна происходить
на бекграунд потоке, а вся отрисовка изображений на главном.
Но помимо этого с помощью многопоточности можно решать ряд других задач таких как, выполнение параллельных вычислений, ограничение доступа к ресурсам по приоритетам и т.д.
Самый популярный инструмент для работы с многопоточностью - это Grand Central Dispatch или сокращённо GCD, поэтому мы с него и начали. Поставленный вопрос является тоже начальным.
Вкратце ответ приблизительно должен быть таким: в GCD мы работаем с потоками не напрямую, а через очереди, очереди бывают последовательные serial (в этом случае задачи выполняются последовательно друг за другом на одном потоке, и одновременно выполняется только одна задача) и параллельные concurrent (в этом случае задачи выполняются последовательно друг за другом на нескольких доступных потоках, и соответсвенно одновременно может выполняться несколько задач). Задачи берутся из очереди по принципу FIFO (first in first out). Задачу можно добавить как синхронно sync (в этом случае блокируется поток, на котором она добавлена, пока задача не выполниться), так и асинхронно async (в этом случае задача не блокирует поток, а сразу отпускает его после добавления в очередь).
Более подробно по ссылке снизу👇👇👇
https://habr.com/ru/post/320152/
#SwiftInterviewMedium
#SwiftInterviewMultithreading
Хабр
Многопоточность (concurrency) в Swift 3. GCD и Dispatch Queues
Надо сказать, что многопоточность (сoncurrency) в iOS всегда входит в вопросы, задаваемые на интервью разработчикам iOS приложений, а также в число топ ошибок, к...
👍5🔥3
Forwarded from Mobile Events - митапы, конференции, хакатоны и другие интересные мероприятия по мобильной разработке
🤘 Врывайся на масштабный онлайн-хакатон Skolkovo Hack 2022
Отложи все дела и участвуй в онлайн-хакатоне с 23 по 25 сентября. Найдётся место для всех айтишников: разработчиков (frontend, backend, мобильных, blockchain), графических и UX/UI-дизайнеров, дата-инженеров и дата-сайентистов, product и project-менеджеров, аналитиков, QA- и DevOps-специалистов.
Уровень подготовки — не имеет значения. Приглашаются и профессионалы, и студенты, чтобы классно провести время и научиться чему-то новому. Найти и создать команду ты сможешь прямо на платформе хакатона Codenrock.
Ты получишь:
✔️ Крутые треки, которые прокачают твои скиллы
✔️ Нетворкинг с участниками и экспертами
✔️ Ценные призы: Apple TV, Яндекс.Станция, грант на развитие проекта в сфере Web3, лимитированный мерч и гранты на развитие блокчейн проектов
✔️ Деловая программа с воршкопами, митапами и экспертными сессиями с владельцами треков
Регистрация до 18 сентября! Узнать все подробности и подать заявку по ссылке: https://cnrlink.com/skhcdrvk
Отложи все дела и участвуй в онлайн-хакатоне с 23 по 25 сентября. Найдётся место для всех айтишников: разработчиков (frontend, backend, мобильных, blockchain), графических и UX/UI-дизайнеров, дата-инженеров и дата-сайентистов, product и project-менеджеров, аналитиков, QA- и DevOps-специалистов.
Уровень подготовки — не имеет значения. Приглашаются и профессионалы, и студенты, чтобы классно провести время и научиться чему-то новому. Найти и создать команду ты сможешь прямо на платформе хакатона Codenrock.
Ты получишь:
✔️ Крутые треки, которые прокачают твои скиллы
✔️ Нетворкинг с участниками и экспертами
✔️ Ценные призы: Apple TV, Яндекс.Станция, грант на развитие проекта в сфере Web3, лимитированный мерч и гранты на развитие блокчейн проектов
✔️ Деловая программа с воршкопами, митапами и экспертными сессиями с владельцами треков
Регистрация до 18 сентября! Узнать все подробности и подать заявку по ссылке: https://cnrlink.com/skhcdrvk
👍3🔥1