Разбор вопросов по iOS Разработке

Подготовка к собеседованию на iOS Developer

Транскрипция видео:

  • поэтому неформат исследование а просто вопросы-ответы начну первый вопрос я хочу вас спросить конкретно про solid принципы а именно про принцип можете объяснить что это это за принцип такой он говорит о том что функции использующие базовый тип должны использовать его подтипы не зная об этом то есть какая-то функция на кумар принимает какой-то там какой пример привести 6 например есть какая-то функция там которая принимает грубо говоря какое-то абстрактное то ли протокол доли класс карт например автомобиль и

    00:00:00 - 00:01:51

  • у нас есть какой-то список под классово этого кара эта функция должна отработать хорошо даже если мы этот список дополним то есть с этим протоколом или классом корма должна работать вне зависимости там какой опыт класс вот о чем говорит этот пресс хорошо допустим если взять принципала потрать синглтон какой принцип он нарушает из ирпень ну можно объяснить как месси конкретно занимается не только тем что написано в своем классе а еще тем сколько вообще но коли свои рано шататься крутить колесо наезжает что-то

    00:01:08 - 00:02:55

  • такое насчет синглтона давайте может быть обсудим получше какой принципу нарушает principal до любые сущности должны быть открыты расширение но закрыты для изменений вообще все понимают что значит этот принцип один клозет я поняла что то значит нам не понимал как он его на ручном если синглтон позволяет наследование то и он открыт для extension of the он больше не может быть cemil доном если если он дает наследование надо если он на след и если он открыт для стенда то есть получается он закрыт для

    00:02:12 - 00:03:53

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

    00:03:13 - 00:04:38

  • того что выполнять свои непосредственные обязанности занимается еще и контролированием количества с их экземпляров нужно я скажу обычной для сигал тоном и ведь указано что она файлов обстоит чуть не можем наследуем [музыка] за с зади стать еще ряд был здесь еще написано в этой же статье что он нарушает принцип инверсия зависимости поскольку потребители всегда будет напрямую зависеть от конкретного класса чтобы получить экземпляр то время как дети представляет использование абстракции тоже это да кстати короче он практически все

    00:03:59 - 00:05:19

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

    00:04:39 - 00:06:03

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

    00:05:24 - 00:06:47

  • используется и что такое вообще полиморфизм полиморфизм от слова поле может типа означает что до имеющие много форм вас общие это реализовано в первую очередь с помощью протоколов напосим мы можем написать в протоколе какой-то метод скажем так мы экономим и если допустим и подписываемся под разные классы например там долг and каждый за эти класс его будет по-разному реализовывать данный метод что является полиморфизмом про давайте вот есть классы свифти есть структуры чем они отличаются через множество отличий на первое самое

    00:06:08 - 00:08:06

  • главное лишь это то что клипсы памяти в куче и передаются по ссылке структуры стеки с этой сама копируется это первый отлично потом такие вот мелочи типа то что нельзя наследовать структуры то что вы структурным автоматически создается инициализатор и вот он у структур другая диспансеризация то есть статической обеспечили зация и соответственно структуры как будет быстрее работы из-за этого есть методы стукнул у [музыка] нас ту каретку хватит ты сказал что структура не наследуется на ней есть есть какая-нибудь vt похоже

    00:07:16 - 00:09:08

  • реализация наследованию структур может кличке пример ну может как бы реализован чуть протоколы вот это вот это как бы что-то наподобие множественного наследования сид есть протоколы о протоколы как реализуют коду нас реализация такого же не бывает у протоколу бывают реализация по умолчанию можно делать через extensa так ты сказал что вопрос выбора ему то есть классы это куча структура это стык вот конкретно правитель структура данных вот степ что он из себя представляет ну что и представляете себе

    00:08:15 - 00:10:01

  • такую структуру [музыка] лифа по моему ласты ну а вот типа работают по такому принципу но у яси сравнить с какими-то до реальными примерами можно подумать стопки книг последние которое ну короче стопка книг это скажем так пример структуры в реальной жизни стай готовишься есть есть методы у него как я помню поп и уж плода которая добавляет элемент и и удаляет последний элемент еще есть метод которые с помощью которого можно посмотреть последний элемент что он у себя представляет стеки общее например используется не

    00:09:14 - 00:11:07

  • только в памяти но еще камеру в navi гейша контроль или это же используются стеки и ходим тексты как хранятся все и наши бью контроллеры который содержится в данном конкретном новейшим контроллер ну давайте про структуры данных какие есть там какие где использовать структуры данных масел и сет dictionary сыр фета дальний которого должна должны реализовывать протокол hashiba не неупорядоченные гостей работает чем acer как массив это естественно упорядоченным тип дома что еще сказать dictionary паратус значения ключ должен

    00:10:13 - 00:12:07

  • быть копируем то есть реализовать протокол ошибок тоже не упорядочены просто включу значению извлекается и все в принципе все какие-то дополнительные вопросы ислам задает вопрос чем отличается say that dictionary все три dictionary отличается тем что у сета вообще цель он выглядит как dictionary у которого нету значения у которого есть только ключи вот чему 3 часть то есть это просто какие-то значения которые реализовывают это колхи шагов а когда ты будешь использовать сет когда массивы когда дети

    00:11:18 - 00:12:56

  • примем сформулировал придумать какую-то задачу и сказать обосновать использование ну например если мне нужно какие-то какой-то тип домов связать с каким-то другим типом вам например с треугольниками лучше использовать дик шинели мы можем антеро внесла возможно это же все же добавлю в частности на совершенно тоже спрашивают про это разница между 1000 и 1 эт но первое что то не то что с эти значения хранятся только уникальные то есть там не можешь при дубликаты то есть примеры есть какая-то задача

    00:12:13 - 00:13:37

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

    00:12:57 - 00:14:25

  • можно узнать уникальное значение у будет или дня можно сравнивать вот так вообще есть бы отвечая на вопросы sunday к что из себя представляет хэш-таблица вот как под капотом например dictionary возьмем которые киддом должен быть подписан под этот протокол hashiba вообще это если просто взять это какой-то массив у каждого например у обычных стандартных типов пояс string and w так далее у них есть хоть значение которые на же мы можем посмотреть через точечный синтаксис хэш моё и как я помню короче она отрицательно

    00:13:40 - 00:15:30

  • такое длинное а числовое значение в общем это числовое значение а делится на примере see the string на количество директором и за счет этого определяется индекс конкретно динамит и поэтому индексу в этот рэй кладется значение которые мы передаём в этот декана вы короче по одному yandex могут храниться несколько элементов как мы можем использовать землю а если мы используем ассоциативное значение в домах ну например самый простой пример что приходит на ум у нас есть какой-то и нам которым реализованы там различные

    00:14:36 - 00:16:19

  • ошибки скажем так сети и там допустим есть какой-то кейс то какая то ошибка и мы конкретно с этим я не давая перебью я не досказал там примерно сессия на 10 стена значение + + и нам и делясь типом string примерно где мы хотим взять 2 илью где есть кейсы со всеми назначением плюс и нам является подписаться по моему у меня было был подобный опыт вы колеями когда я делал таблицу у меня помоему были кейсы различные которые описывали секции и бы был короче было ролью которая у меня являлась он был a string

    00:15:27 - 00:17:17

  • значения и я его использовал качестве тайтла для секции и к видел нет видим вопрос неправильно понял просто нельзя когда она со и нами является пописа пасынка использовать ацетилена значение там нам приходится самим сделать и не подписывать которого презентовал по-моему так называется поправки по заброшкам расписать да да именно такое 1 типа и ты создаешь свойства description и уже через свич типа прикидываешь к для конкретного кейса конкретный string ну я не знал что ты нельзя и такое злой как ты говори и я просто не только

    00:16:25 - 00:18:06

  • разобрался с этим поэтому решил спросить сам тоже юнус 6 твои ручки mbc mbd вообще отличается тем что у нас есть у модель то есть мы получается разделяем если смотреть и если и сэм би си мы например будем переходить в мы верим мы возьмем всю логику которая не относится непосредственно купил и перенесенные в рф модель то есть у модели он у нас будет посредником между как как общая следует из названия между моделью и view но и вела в овервью по 2 имеется ввиду еще rebuild контроллер естественному

    00:17:16 - 00:19:05

  • как то так так словами тупо особо много не расскажешь [музыка] то есть view model у нас берет данные сбил где передает его контроллеру вот такой вот у меня рост объема mvp чем отличается презентер по сути ту жилой выполняет любимого президента ри у президента ра может быть ссылка на на контроллер наш аул моделям не может быть проказница насколько я знаю вроде других другой разница вроде нет и вот именно поэтому говорят что лучше и легче всего орган видим реализовывать через рэкс потому что в модель должна не напрямую обращаться к

    00:18:24 - 00:20:12

  • убил а должна оповещать юху о своих изменения и соответственно реальных четверка реализовываться через реактив чему то есть получается любви работает по принципу что и у и презентер связаны между собой типа двойная связь view media не только одна связь направлена у принтера есть ссылка на ю а ю есть ссылка на принтер и из-за этого там о направленность винтами только у view есть ссылка на в моду поэтому мы должны барабанить привязывать какие дела или мест и к объективным свойством пусть вы выбрали какую-то архитектуру

    00:19:30 - 00:21:27

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

    00:20:37 - 00:22:33

  • сейчас какой архитектура ты работаешь и почему ты выбрал именно ее то есть у тебя условного ну пусти ты знаешь там где папе и em d am я сейчас данный момент остановился на рвп потому что просто потому что не хочу подключать алекс цвет так в принципе я бы сказал что между архитектурами если их правильно реализовывать между ними разницы нет м веке можно реализовывать нормально нормально построить приложения с соблюдением соль от принципа если всякие сервисы все как бы окон голос соблюдать там сингл responsibility все

    00:21:39 - 00:23:17

  • можно соблюдать если как бы правильно выстроить архитектура также с пространственными ты не получается так что у тебя приза это просто выполняют роль view и ты просто сделал презентер перенес все изобью и у тебя не masterviewcontroller презент месте презентер но смотреть там же можно всякие при зайка как бы на всякие хелперы а всякие там сервис и все такое разделять чтобы не перегружать центр что же можно сделать и если ошибаюсь это уже называется top сервис-ориентированной архитектура ну да это как бы чисто wi-fi

    00:22:28 - 00:24:02

  • и чтобы там все было в призрак или да ты тогда не получится то есть смотри нужно да да да да да например там навигации в координатор вести этот network service вывести катом еще в исламе еще что-то я помню когда может быть в это время мной сейчас скорее всего у меня опыт и было мало и получалось так и у меня получалось так что когда я хотел разделить то получал дублируем то есть у меня в принтере есть там какой-то метод я его долго дергать в контроллере и потом это там еще где-то если мне нужно было дергать то там

    00:23:17 - 00:24:52

  • получалось большая цепочка смотри ты как представь что ты земли и сам хорош и вопрос но при перефразируя свой вопрос а ты начинаешь снова проект и ты должен выбрать orchid архитектуру почему ты просто чисто чтобы не использовать rex ты выберешь api и там по каким-то еще причинам это мне вопрос да ibrahim оперу ты выберешь лепи в пользу им видим потому что ты к примеру хочешь этим отказаться от алекс и или комбайн скажем так тем самым уменьшить уменьшить брок входа в свой проект научись и там смотреть какую

    00:24:11 - 00:25:56

  • архитектуру выбрать того это уже нужно в первую очередь исходить из того факта что это за проект какие вообще есть целью бизнеса и так далее ну первое что приходит на ум это уменьшить барак ухода за счет того что ты не используешь как вершину ну и если это rx то не стоит беспокоиться об одной дополнительной зависимости но вам не кажется что уже сегодня rx или reactive это некий стандарт средний разработчику же должен знать и если он не знает то это как бы большой пробел знаниях сейчас давай лучше наверное венгу потому

    00:25:02 - 00:26:55

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

    00:25:58 - 00:27:33

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

    00:26:51 - 00:28:24

  • это передача через кожи еще есть всего сие есть если через да да да если через storyboard через и поэтому он забыл приступ спрошу для новичка вых по этого решил есть такая подчеркнуть вот так вот вот это вот все обычно лучше всего куда-то выносить конечно не напрямую там контролем с контроллером а там через какой-нибудь роутер или через координатор все точно лететь я я могу дополнить можно еще просто читаем простые там в контроле то что что-то и равняется передающему как предназначение но это есть лив андерсен джордж я просто как

    00:27:40 - 00:29:20

  • этими говорю да как-то инициализации свойств контроллера но если ты не через анализатор передает что ты можешь какой-нибудь общину забыть передать и у тебя программ упадет инициализатор и сделать то ты тебе компилятор не даст забыть ну да есть такое так и перси расскажу и как он работает какие типы ссылок есть и где их использовать вообще версии игры фрaнс counting это система которые почитают ссылки у вас например у нас есть два типа объектов и the reference типы в youtube а для reference типа чтобы отслеживать их жизненный цикл

    00:28:38 - 00:30:42

  • есть оси которая считает ссылки если да у объекта например счетчик ссылок обнуляется то он удаляется из памяти какие вообще есть типы ссылок это строк но он выкинут не увеличивает счетчик ссылок вопрос из чата какие особенности сверху можете назвать типа b и все его бросили если я считаю например в black delfi долгое время была и такая система и mercy меню reference counting которая предполагала что для reference типов программист ну разработчик должен сам расставлять методы ритой не или и релиз ритейл

    00:29:44 - 00:31:42

  • подразумевал под собой что счетчик будет увеличена единицу родились подразумевал то что он будет уменьшен на единицу и таким образом нужно было скажем так к самому руками отслеживать жизненный цикл reference вектор хотя в объекте всею все объекты являются реальности был среди мер среды отличается тем что и мерсии мы и сами эти все и и день делись подставляем версии все это делает за нас какие способы в ялта представлении семью вам знакомы какие плюсы-минусы можете назвать в каждом найти вставлять ел с помощью

    00:30:49 - 00:32:33

  • понесла ялта straight то есть с помощью constant of us с помощью фреймом можно сразу установить еще 3 был очень популярного уже этот авто актрисой ли морском он практически не используется этим плюсы минусы и плюсы минусы так фреймы мы быстрые ментальный фреймов быстрее единственная она [музыка] чуть посложнее получается вот этот ндфл constraint это там уже больше гибкости то можно задавать всякие приоритеты можно как бы не строго восстанавливаться так чтобы вешать где-то расширялась лига сужалась больше равно году все

    00:31:40 - 00:33:31

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

    00:32:49 - 00:34:19

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

    00:33:38 - 00:35:04

  • открыл тулбаре посмотри честно я не сразу понял что потому что уже вектор буквально две недели хотел спросить фреймы отыскала и можно наверстать по flame bound сумма чем они отличаются фрейм от bouncy фреймах bouncy отличается тем что фрейм это как бы этому координат superview задается about это собственная система пройдено если понятно то есть фрейд lancer чаще всего они не отличаются но бывают и случаи на примере ты там можешь повернуть верху там грубо говоря на 45 градусов и баланса фрейма будет отличаться

    00:34:25 - 00:36:11

  • потому что баланс это собственная система координат еще раза фрейм это система то есть его размер и расположение относительно его superview еще вот вот вопрос про все силы что-то про него может особенность отвечает как бы за отображения так сказать грубо сказать муха это является оберткой на cmr которая дополнительно можно обрабатывать шесть clr это все про то что как и ухо отображается то есть все они все рисование и воображение это все связано с севера есть еще небольшое дополнение что силы или отвечает еще и занимать а

    00:35:23 - 00:37:25

  • естественно а вот в чем отличие анимацию я вижу тоже есть анимации чем отличием ли animation player короче и разница в том что и все анимации которые происходят ну типа все анимации отрисовка view это все происходит на g по у которого там 60 кадров в секунду ну что ну типа да производительность выше анимации и один алиби у или анимации сила или происходят на г ю а ю . не моет это уже через себя весь за счет и да ну происходит более быстрая плавная анимация и там 60 г кунду помои евро ген ее нос можешь на сегодня будет

    00:36:35 - 00:38:30

  • достаточно вопроса уже покладая , заканчивай

    00:37:35 - 00:37:44