Swift Interview - Вопросы для собеседований. Mobile митапы и конференции.
161 subscribers
9 photos
28 links
При интервью кандидаты часто сталкиваются с вопросами, которые не встречали или разбирали поверхностно. Это касается как и сложных, так и простых тем. На канале вопросы будут систематизироваться по сложности и темам
Download Telegram
Вопросы будут распределены по хештегам #SwiftInterviewUIKit, #SwiftInterviewRxSwift, #SwiftInterviewArchitecture, #SwiftInterviewGeneral, #SwiftInterviewNotification,
#SwiftInterviewMultithreading,
#SwiftInterviewMemory,
#SwiftInterviewTasks (по мере заполнения количество тем будет увеличиваться). И по сложности #SwiftInterviewBeginner, #SwiftInterviewMedium, #SwiftInterviewAdvanced. В начале большинство вопросов будут для начального уровня, затем будут разбираться более сложные темы.

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

Вопросы для разбора, предложения можно присылать @dmitryZazulin
Начальный уровень. UIKit.

Что такое SafeArea, для чего нужна?

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

#SwiftInterviewBeginner #SwiftInterviewUIKit

https://medium.com/rosberryapps/ios-safe-area-ca10e919526f
👍7
Средний уровень. 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
👍3
Начальный уровень. UIKit.

Жизненный цикл UIViewController.

Опять же фундаментальная тема, вопросы по которой задают очень часто. Возможно вы получите какие-то косвенные вопросы, на которые обязательно нужно знать ответы, например, в какой момент времени view знает свои размеры, в какой момент создаётся view, скоро раз вызывается метод viewDidLoad, один или может несколько и т.д. 

Сам жизненный цикл состоит из следующих методов:

Создание

• init
• initWithNibName

Создание view

• isViewLoaded
• loadView
• viewDidLoad
initWithFrame
initWithCoder

Обработка изменения состояния view

viewDidLoad
viewWillAppear
viewDidAppear
viewWillDisappear
viewDidDisappear
viewDidUnload

Обработка memory warning

didReceiveMemoryWarning

Уничтожение

• viewDidUnload (deprecated уже давно)
deinit

Если вы не смогли ответить на вопросы, что-то не понимаете или увидели незнакомые методы, то ознакомьтесь с исчерпывающей статьей на хабре по ссылке ниже 👇👇👇 (Она хоть и старая, но до сих пор актуальная, только viewDidUnload уже нет)

#SwiftInterviewBeginner
#SwiftInterviewUIKit

https://habr.com/ru/post/129557/
👍8