Подготовка к собеседованию на Flutter Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
не знаю не знаю не знаю не знаю да блин где вот такие вопросы берете нет ну нафиг я пошел сюда [музыка] всем привет меня зовут влад я работаю в компании отзыв от r и сегодня у нас пилотный выпуск в этот интервью втб интервью это формат в которую мы приглашаем вклады разработчиков различного уровня от junior до сеньор пройти онлайн собеседования мы задаем им простые и не очень вопросы по хутору и проверяем действительно ли они соответствуют заявленному уровню начнём мы с того что познакомимся с нашим сегодняшним гостем его зовут саша
00:00:01 - 00:01:35
давайте представимся друг другу саша я сразу предлагаю перейти на ты так как и прочих да не прочь привет всем отлично меня зовут влад я работаю чар директором в компании в отзыв later сегодня я буду проверять насколько ты хорошо знаешь флаттер за два тебе стандартные и не очень стандартные вопросы по флотар технические вопросы по фата и конечно определим твой уровень 2 и начнем с небольшого знакомства можешь пожалуйста рассказать немного о себе как о разработчике еще раз всем привет меня зовут саша я фото разработчик работают
00:00:55 - 00:02:16
компании отзыв от отлично как на какой уровень себя оцениваешь то есть какие вопросы тебе сегодня задалась до какого уровня пойдем на лично я себя оценивая уровень junior plus что-то между нилом и джуном хотел бы попробовать на уровень и за отлично сегодня значит будем подтверждать свой уровень мидла теперь я немножко расскажу по формату нашего интервью интервью будет состоять из двух модулей первый модуль это язык программирования дарт мы обсудим все что касается дартом будут вопросы только подарки и второй модуль конечно же вклад
00:01:36 - 00:02:57
а ну что ты готов до k мест отлично тогда погнали первый вопрос звучит так что ты знаешь вообще в целом о языке программирования дарт как и можешь охарактеризовать насколько он не понравится вот и все в таком духе так на стоит начать с того это что дарт довольно молодой язык еще одиннадцатом году он только плюс-минус вышел разрабатывается компании google и позиционируется самой компании как альтернатива java-script так как как сказал один разработчик то что у доски то есть фундаментальные изъяны которые исправить это нельзя и
00:02:17 - 00:03:49
лучше обязательно язык для меня лично дарт преимущество в том что он простой в изучении довольно легко с ним работать а также еще много различных вещей как такие как производительность и прочие факторы которые позволяют сати быстро и быстро крутить положения на дартс ok хорошо спасибо давай пойдем дальше ты наверное знаешь что в дарте есть два вида компиляции это джастин time i had of time можешь что-нибудь подробнее рассказать пояснить что это за два типа компиляция зачем они нужны и чем отличаются друг от друга
00:03:06 - 00:04:34
да конечно как я уже сказал зайти по компиляции первый это all to compile который hour of time до запуска кода весь код получается анализируется компилируется и потом уже запускается вместе как общая готовая концепция синтон компилятор он время выполнение кода по частям получается идет прочь и спокойно как там и выполняется медь и когда вот фронтами то есть работает рандами благодаря досмотрим компилятору есть такие возможности как файлов по 300 который позволяет нам сказать процесс разработки окей хорошо поясни пожалуйста подробнее
00:03:52 - 00:05:21
про ahead of time компиляцию водка входе в комбинатор у нас есть код написанный на дарте что у нас будет на выходе на выходе мы получим машинный код что такой машины год это инструкции которые понятны компилятору понятный компьютеру а которые понятны и машине окей хорошо тогда следующий вопрос дар чем допустим нее задачу объявить строку you переменную я могу это сделать написал допустим spring равно и би си и могу написать war и равно и би си в чем будет разница может рассказать разница будет в том то что когда мы
00:04:37 - 00:06:23
объявляем war у нас тип определяя нас тип может меняться верно объявляем war и бесси потом то есть на этом моменте будет компилятор по нему здесь строка потом мы можем например какое-то другое значение указать уже будет другое когда мы укажем сроку мир string а равно и би си то у нас это уже будет прям в такой строкой а если мы напишем war iii равно и би си разрешит на длинном компилятор на следующей строчкой написать ее равно 5 поменять ip на следующей строчке вроде тут у тебя подправлю на самом деле
00:05:31 - 00:06:53
не разрешит если мы на прямо на строке в котором салливан и явно задали тип то это тип уже будет неизменным но если мы например прописали war эй поставили ; тип не не задали то данный тип интерпретируется как да и на миг и уже тогда мы сможем спокойно меня окей хорошо следующий вопрос в torchi у нас есть два типа констанц file icon ст можешь рассказать в чем разница между ними так разница в том что но давайте по констант конский файл кoнeц дoлжнo быть известно до компиляции то есть например нам нужно использовать
00:06:16 - 00:07:46
какой-то части числа пи мы можем записать как файл так как он то есть файл можно использовать вообще везде по сути а вот kong здесь пожить нельзя чем различия konce должно быть заранее известно напишем count и какое-то значение четко известных должен быть иди сюда компиляцией случай же файлов мы можем ограничение лишь в том то что должно быть инициализирован один раз то есть например мы можем сделать что-то типа файлов это переменной а равно и какой-то метод который например придет с базы данных то есть мы до выполнения
00:07:02 - 00:08:12
этого участка кода не знаем что кто-то придет и как бы вот в этом apeach а то есть мы не можем использовать konce для того же каком указываем то чего мы еще не знаю муки следующий вопрос в дальше у нас есть понятие анонимных пункт ты можешь пожалуйста рассказать что это такое и чем они отличаются от обычных функций на ними функция функцию которых нет имени мы их получается передаем как просто в качестве кода вот например нам не нужно выносить определен функция просто передаем это как часть частью кода как объект
00:07:37 - 00:09:01
хорошо следующий вопрос для чего с дарси нужны именованные параметры в функциях и конструкторов что такое именованные параметры именованные параметры то когда например нас есть конструктор в нем какое-то количество параметров мы указываем фигурные скобки и при передаче в этот конструктор значений мы бы должны прописывать именно вот по имени нас будет каждых это переменная там будет в конструкторе и би си если мы сделанных именованы это будет эй то есть по конкретному имени передаем и мы не передаем тёплый приём также именованные
00:08:19 - 00:09:40
параметры являются необязательными то есть мы можем передать два из них этими придать окей хорошо следующий вопрос звучит так какие существуют модификаторы доступа в дарте как мы можем ограничивать область видимости переменных методов и классов так в дарте нет такого широкого спектра модификатор доступа когда других языках какой пример джавы в дарте есть правят доступа который мы указываем без каких-либо ключевых слов вы просто нижнее подчеркивание ставим название функции либо переменной то есть перед
00:09:00 - 00:10:35
именем поставим нижнее подчёркивание и данная часть кода будет доступна какой-то определенной области где мы ее объявили где мы допустим у нас в одном файле лежит 2 класса и в первом клайда 8 класс и класс b в первом классе у нас есть локальная переменная то есть поле класса и это локальная переменная она называется с нижнего подчеркивания то есть является приватный вопрос если мы создадим экземпляр первого класса класса эй внутри класса by которые лежат в пределах одного файла будет ли доступ к
00:09:46 - 00:11:03
приводному полю с нижнего подчеркивания которое называется у класса б к классу и я думаю нет не будет у нас кейт тут я тебе поправлю почему потому что приватность перемена которые называются с нижнего подчеркивания в дартс она распространяется на уровне библиотеки минимальный минимальный конструктор библиотеки это файл соответственно приватность будет на уровне файла и 2 класса которые лежат пределах одного файла будут видеть приватные палят друг другом d'arte если мы хотим сделать так чтобы в классе прям все поля были
00:10:25 - 00:11:45
приватные виды только данному классу то мы просто помещаем данный класс в отдельный файл хорошо следующий вопрос в дарте есть ты такой такое интересное слово ключевой дайнэмикс можешь про него пожалуйста подробнее рассказать и вот чем дайнэмикс отличается отвар и от отжиг например так тайны миг это динамический тип то есть мы можем объявить коды переменной длины миг и там может быть что угодно чем отличается от обжиг ивара объект это в версии донал сесть и это был как основной класс которая все-все-все
00:11:08 - 00:12:39
наследуется вот и общее было и получается разница между данными к ворам и обжиг там вроде как в начальник значениях я не ошибаюсь давай поговорим про скажем способ применения допустим мы хотим поменять тип переменных переменной конкретным бран тайме что для этого нам нужно использовать обжиг бар и или дайнэмикс и что дарт позволит для такого такой задачи использовать годами нам нужно спать и динамик и дарт позволит использовать dining если нам нужно ли менять перемен муки я согласен здесь тогда добрались мы
00:12:00 - 00:13:47
уже практически ключевому отличию объекта отдай на миг если мы допустим объявляем переменную типа обжиг допустим отжиг и равно 5 мы же можем на следующей строке написать эй равно и би си . менять и новый тип на строковый тип и в тайными кино же самые сможем сделать когда вопрос а зачем вообще в дартс и придумали данными если есть объект [аплодисменты] хорошо опрос вероятно сейчас я вспомнил я помню читал по этому поводу [музыка] чем нам я не могу вспомнить пожалуйста окей я тогда расскажу получается да
00:12:57 - 00:14:32
действительно мы обжиг ссылку можем записать любой объект и в любой момент снять но проблема только в том что для того чтобы использовать этот объект по назначению . своему типу нам все равно придется делать явное приведение типа потому что он gert нам позволит вызывает только дефолтные методы которые хранятся в которой есть имеются в классе обжиг соответственно это не есть динамическая типизация а именно для динамической типизацией нас есть дай ними который не просто позволит менять в ран тайме тип
00:13:58 - 00:15:06
более того он во время компиляции вообще не проверяет имеются ли конкретные методы поля у любого класса вам также позволяет делать с одной стороны позволяет легко ошибиться но с другой стороны все таки динамические типы и именно так он должен работать хорошо следующий вопрос в дарте есть два таких интересных оператора первые это каскадные операторы elica space и второе to spread оператор можешь рассказать о краник что что-нибудь слышал что это за операторы для чего не нужны да конечно я использовал каскадные
00:14:32 - 00:15:52
операторы позволяют нам например у нас есть список мы хотим добавить в него каких-то значений нужно каждый раз вызывать функцию добавить а помощью каскадного оператора он выглядит как две точки подряд мы можем сделать просто список и с помощью с помощью канатов разделить функцию ли не каждый рассказывать лист это просто сделать лист и там и перечислить то что мы добавляем это по поводу каскадным оператора по вводу спрайт оператора спринт оператор позволяет нам скопировать например у нас есть список
00:15:15 - 00:16:37
понятней у нас есть список какой-то а мы создаем список б хотим чтобы в списке б мы скопировали все элементы списка и мы указываем получается там список b равно открываем квадратные скобки использует оператор в качестве тех точек и указываем без играем скобки получается то что у нас теперь этом списке находятся элемент скопированный списка бкк так пришел идем дальше на скажи пожалуйста существует ли в дар тут переопределение и перегрузка переопределение и перегрузка переопределение существует а
00:15:55 - 00:17:27
перегрузка перегрузка не существует против кей да все верно вместо перегрузки на даче есть возможность множество у нас есть множество типов параметров функции у нас есть именованные анимированные обязательные именованы обязательно не именованные вот такие это что касается переопределение перегрузки функции если нам нужно перегружать конструктор это у нас есть именованный конструктор еще дальше поэтому тут такая альтернатива было придумано разработчиками из google она хорошо но идем дальше следующий
00:16:44 - 00:18:03
вопрос несколько вопросов задам по сейфти войны чем-то к из такого общего вопроса слышал ли ты вообще что такое нал сейфти я имею ввиду не старый на алфавите который был раньше до дарта 20 а новый саунд мал sexy которую появился банка 0 что это вообще такое может двух словах рассказать о писать что это такое и зачем это нужно да я сталкивался с этим даже на практике приходилось проект переписывать поднимать версию донал септе что это такое это получается 0 безопасность если так можно выразиться
00:17:29 - 00:18:54
концепция в том то что раньше в данном сайте получается основным классам дарте от которых все наследовал ась является общих его являлся обжиг и получается у всех типов был дефолт начинал я не получаю забыли на lable то есть они могли иметь значение on all сейчас с появлением на лифте все по дефолту имеет значения но на лабу то есть это позволяет нам и чтобы сделать переменную на лабу нам нужно там указатель на что она будет иметь возможность быть налом это позволяет избегать множество ошибок таких как со стороны даже программиста
00:18:13 - 00:19:43
потому что та же ответственность наших плечах вот в принципе есть и вкратце это отчасти все хорошо такой вопрос вот на сайте в целом придуман этот механизм придуман для того чтобы максимально исключить возможность появления ошибок связанных с назначениями в переменной и отсюда следует вопрос правда ли что вот новом саундтреке который до 20 и больше вообще невозможно получить наука интер exception баран тайме нет к сожалению не правда потому что все равно есть например операторов состоятельного знака
00:18:59 - 00:20:30
когда у нас например переменная мы пытаемся к ней через точку там бункер объекта щеточку обратиться нам говорит анализатор то что нет вот нельзя так делать а мы говорим что здесь может быть нам о моем останемся от низа говорим нет тебя все будет о'кей мы уверены в этом и мы запускаем и наша падает ну вот один из примеров потому что то есть ошибки возможно руки ок сочи знаешь как называется вот этот оператор нас ! в своем каноническом виде как он на английском называется еще по-другому как он на английском называется по
00:19:44 - 00:21:02
другому нет не знаю а это так больший вопрос в сторону называется боинг оператор еще то есть можешь наверное нас мы собеседование тоже слышит том что такое бен копирайте или ну как работает банк копирайтер и чтоб ты понимал что это имеют ввиду ! который гнался и все прошел следующий вопрос это в каких случаях можно объявить не на лабу переменную то есть без попроще к и при этом не установить для нее дефолтное значение новом дарси знал сейфти так у нас получается есть и таких случая первый это чего ведь мы можем его указать и это
00:20:24 - 00:22:02
говорит о том то что переменная будет инициализирована позже то есть она вот у нас есть на но на лабу и мы ее проинициализируем позже и чтобы где-то один раз потом мы японии цитировали если прыгнете лидером второй раз будет уже плохо вот второй случай это когда мы в конструкторе можем явно указать то есть например нас есть какие-то поля класса конструкции можно написать там здесь поле равно 5 в таком случае все будет хорошо и мы можем инициализировать а также с помощью списка инициализатор of это после
00:21:16 - 00:22:39
конструктора через две точки можем указать также значение переменной ну и третий случай когда когда мы когда мы объявляем переменную внутри функции так как сам компьютер понимает что здесь функция и здесь допустимо что чтобы переменно инициализировать кей хорошо пасибо давай еще такой последний вопрос канал сейфти и пойдем дальше вопрос следующий почему он понял сейчас может поймешь для чего нет не такой вопрос можно ли объявить локальную файл переменную и не задать для нее значения дефолтная сразу же
00:21:58 - 00:23:36
локальную файл переменную и для нее не летать сразу же дефолтное значение да я вот почему спрашивают в старом дарси был такой один визит и кейс когда мы манги объявить файл переменную не сдать значение таких когда файл переменная передавалась в конструкторе так либо либо задавалась инициализатор и соответственно сейчас в бар 20 были ли какие-то сделанные изменения в этой части то есть можно ли сейчас локальным вещь объявить файл перемены не сдать до нее значению я думаю сейчас нельзя потому что если мы
00:22:53 - 00:24:17
объявим локальный файл переменной она будет сразу типа но на лбу и мы потом не сможем ее проинициализировать но только если мы добавим лэйт получается чисто теоретически я не очень уверен кей ну тут ответ такое на самом деле можно то есть по той же причине почему мы можем объявить о локально не анала бал переменную и при этом не задать для нее сразу значения то есть действия корреляция вот так как кого новым d'arte разработчики добавили возможность компилятору анализировать дерево до ветвей чтобы хотя во всех ветвях
00:23:35 - 00:25:05
дерева во всех условиях было задано значение для не наломал перемены то соответственно сюда же еще перекладывается возможность проверки также 2 файла перемены что файл переменная она будет задано в данной функции поэтому вот такое тоже такое есть нововведения так следующий вопрос по дарту есть такая важная область которую стоит затронуть это то как работает дар с точки зрения многопоточности асинхронности можешь рассказать вообще все что ты знаешь по этому поводу как в дар чем и там помощью чего удар позволяет осуществлять нам
00:24:21 - 00:25:44
асинхронные операции такие как походы в сеть запросы к базам данных и так далее так начну общество то что для чего нам асинхронность нужно в принципе когда мы выполняем код последовательно нас есть просто показать очередность специально выполнения на практике случаются моменты когда вы как предсказал нужно например что-то взять из сети понятно что эта операция будет мгновенно это будет занимать какое-то время и для этого чтобы весь остальной код который там дальше есть после вот этого вызова например кого-то
00:25:03 - 00:26:12
метода чтобы он дальше работал а вот это то что там будет она когда-то потом придет и мы сможем использовать чтобы приложение не в этот момент просто не зависала дам эту картинку пытаемся собрать сети или из базы в это время за ней лежит такого быть не должно поэтому мы можем спорить о синхрон асинхронность что это такое например вот на примере того же метр забора картинки мы можем указать ключевое слово sing в сигнатуре метода вот и с помощью ключевого слова когда мы вызываем что то момент например именно в
00:25:37 - 00:27:04
обращении самой базе мы можем указать на что вот этот на этой строчке кода происходит получается нужно здесь вот у нас есть вызов который мы должны подождать в верности какой-то метод который делает запрос и потом возвращает значение и мы получается говорим о том то что с помощью а синквейн мы это делаем асинхронным он его результат будет когда-то в будущем то есть в данным не прям мгновенно когда мы его вызвали с помощью away the когда результат придет когда мы уже будем получим значения мы получается
00:26:21 - 00:27:39
вернем эту картинку там уже приложение к ним нужно использовать еще такой плюсом то что вот там это делаем с помощью все остальное приложение на потребляется кликабельным то есть да у нас есть какая-то там загрузка это все запросу шел мы ждем его но нет такого то что во время положение вообще нет не отвечает то есть там денешь нажать все можете нажимать все можно просто этой картинке еще нет то есть мы ждем этом как в будущем очень хорошо расскажи пожалуйста что какой тип данных будет возвращать менту асинхронный то
00:27:00 - 00:28:23
есть тот который помечен асем ключевым словом да вот про это забыл сказать спасибо что напомнил будет возвращаться эти данных фьючер который как бы название понятно что он будет как бы как будущее что так что 500 нам потом хорошо раз уж затронули фьючер можешь сказать что такое фьючерс уже понятия из quattro включи builder позволяет нам я вот могу рассказать например для чего я его использовал у меня была необходимость обращаться к базе и я не знал какой момент придет ну что-то типа мне было что-то типа чатах и
00:27:41 - 00:29:04
когда приходит сообщение должен был что-то сделать с помощью фичи билдера он получается как позволяет нам зависимости от каких-то значений что-то потом сделать в значении придут и мы что-то сделаем как будущий строитель по названию понятно с чем он занимается в принципе позволяет нам какие-то вот действия производить с тем что основанные на ожидании чего хорошо скажи пожалуйста почему если у нас есть асинхронный метод он помечен а sing to в нем нельзя производить длительных вычислительных операций
00:28:23 - 00:29:38
длительных вычислительных операций почему нельзя в нем производить ну это это затронет производительность потому что ну да и то это очень плохо отразиться на производительность если мы так будем делать но точно сказать почему не могу сам не пробовал как бы это явно плохой подход кея тогда здесь вкратце расскажу тебе и в принципе нашим зрителям или слушателям подкаста то что если у нас есть какой-то асинхронный метод и он в любом случае при вызове мы его вызовем событий на то есть это будет является событием для нашего и вентру по
00:29:03 - 00:30:26
который собственно позволяет в дарте реализовывать асинхронность и вот это событие мы должны с вами вспомнить или сдать то что ивент куб он имеет такую особенность то что он выполняет только одно событие единовременно то есть пока события они выполнятся следующие события бы вы вантуз для выполнения попасть не может и соответственно так как соответствующий код данному событию будет долги не за счет того что он асинхронный его вызов можно отложить асинхронного кода а за счет того что просто длительно вычислительная операция
00:29:49 - 00:31:07
то пока его клубни и выполнить данную операцию у нас не будет возможности закинуть туда еще какие-то ивенты средства приложения зависнет и в таких случаях мы обычно используем новый айсэй для того чтобы обрабатывать все таки сложно и вычислительные операции окей наверное в щелку дарку можно было бы куда больше вопросов задать жаль что мы ограничены по времени целом я думаю мне удалось посмотреть базу подарку поэтому перейдём к вопросам паук лотара как обычный начнем с такого общего вопроса можешь рассказать в двух словах
00:30:28 - 00:31:53
что такое флотар и как он работает не супер подробно там в детали не нужно вдаваться просто вот что такое флотар как он работает и чем его работа отличается от других кроссплатформенных хай марков так зачем стала что факторы расположен фреймворка кто уже сказал развалится компании google довольно молодой то есть он там вроде стабильной версии в 2017 году если не ошибаюсь чем отличается отличается тем то что принципов его работы то есть он получается все что ему нужно от какой-то определенной платформы и только
00:31:14 - 00:32:39
возможность что-то на ней делать то есть ему нужно просто доступ потому то что компьютер холсту чтобы он что-то делал рисовал а всем остальным будет заниматься он сам то есть это как основная принципе концепция флотар а почему он отличается и почему он используется окей хорошо спасибо тогда следующий вопрос можешь сказать что такое вот два слова таких интерес активов лотрик купертино и материал часто слышим наверное можете сказать что этот ну купертино и материал это получается наборы виджетов которые относятся
00:31:57 - 00:33:25
купертино к ios платформе материал к android то есть это различные тут ментам в купертино свои иконки в android свое свои иконки в android свои гонки стрелочки и прочие различные отличия между этими платформами вот они представлены как огромный набор который позволяет разработчику выбрать использовать то что ему необходимо и то что ему нужно неограничен практически в ресурсах окей сказал такую фразу то что купертино это больше для ios материал чуть больше для android а можем ли мы разрабатывать
00:32:42 - 00:33:57
приложение подает используя материалы наоборот под android используя купертино да конечно можем здесь нет ничего плохого в этом то есть мы можем использовать для истинам больше нравится мы делаем ковать свое приложение которое мы хотим что выглядело так мы можем спокойно использовать для android виджет из купертино это кнопки или загрузку кейсы шум тогда следующий вопрос какие вообще операционные системы поддерживают на данный момент поттер на момент фатер поддерживает mac os linux windows веб android ios
00:33:20 - 00:34:53
вроде не вспомнишь каких версиях на каком уровне у поддержка то есть у всех ли сейчас travel поддержка или у чего-то есть ура ранний доступ к медиа бета альфа такое так такие моменты знаешь но если я не ошибаюсь то вроде linux и до места и был еще он недавно вроде вышел буквально но как именно какая-то там какие-то концепции вот гугла по поводу фактора в линуксе и в вебе не уверен на счет стабильной версии в вебе но пока что вебе он так работает местами местами хотелось бы лучше и может лучше я по поводу работы я согласен по поводу
00:34:06 - 00:35:38
версий мы с кириллом подробно рассказывали в каких каналов часто находятся в первом выпуске отошел так что если не смотрели обязательно посмотрите всем подписчикам говорю в общем работы так у нас и ос android веб это уже с дай бог 100 и был канал стабильная версия и to produce чем и все что даст опыта google это называет не помню как называется в общем по сути это бета вот поэтому десктопу все-все десктопы это бета данный момент уже можно писать в принципе да стоп приложение под фатер но еще будут достаточно много изменениям
00:34:52 - 00:36:14
носиться не все вещи работают стабильно не все библиотеки меньшинства библиотека стал адаптирована под desktop операционной системы которые ты пересчитал звуки хорошо следующий вопрос можешь рассказать о 23 есть виджеты что такое виджеты и какие виды виджетов бывают так по поводу что такое виджеты можно дать много разных определений то есть это как но если очень просто это как часть чего-то на экране вот нас есть какая-то например фото все является виджетом то есть все там кнопка списочек какой-то то есть все как
00:35:33 - 00:37:02
являются виджетами и даже сам экраны в общем является виджетом как концепции такого дерева где вот есть что-то одно общее и от него идет осветление вот по поводу видов виджетов есть два типа виджета встретилась и стать ставит вас виджеты они не имеют свое состояние то есть они вот мы их сделали этот виджет и он мы прямо на то что он не должен изменяться плюсом использования с виджетов где мы их можем использовать ведь то что что они работают быстрее то есть когда мы используем стоит вас его не нужно
00:36:21 - 00:37:36
перерисовывать он работ более высокая производительность чем если мы используем стейплз поэтому там где мы можем использовать стоит раз мы как бы эти должны его использовать воду стоит full они описываются двумя классами один является своим виджетам а другой является вас на состояние получается мы можем изменять состояние когда мы снимем состоянии ведет перерисовывается зависимости от того что мы там поменяли фактор нет ни явно в отслеживании состояний то есть нам нужно именно указать в помощью персик street что мое
00:36:59 - 00:38:10
состояние на меня не если вы просто изменим значение фактор сам не отследит это изучение поменять вот руки крышам есть такое такое понятие как in herre этот виджет вы flattery можешь здесь рассказать что это такое и где это применяет это виджет наследование мы получается если делаем их этот виджет в дереве то в каком то в какой части деревом где он все течет и виджеты которые ниже его по дереву будут иметь к нему доступ делается это для чего случаях может быть этому много но например приду пример в качестве смены
00:37:37 - 00:39:13
тем мы можем предоставить этот виджет всему дереву доносить приложение и когда мы изменяем тему этот визит будет отвечать за смену цветовой темы приложения и с помощью этого он все видят и будут иметь к нему доступ будет получать от него данные о текущей теме и выберите как они должны выглядеть данными батова флаттере есть такое понятие как ключи или кейс а можешь рассказать для чего еще такая сущность существует как это применяется на практике ключи существует общая ключей есть несколько типов там есть глобальные их вроде 4
00:38:24 - 00:39:44
всего все не помню используют для того чтобы мы могли явно идентифицировать виджет в дереве например то есть у нас есть ключ виджета и мы можем к нему прям обратиться просто бывает станция например у нас там есть одинаковые виджеты и нам необходимо использовать ключ чтобы уточнить именно какой какой мы хотим какой мы имеем ввиду ну что то типа того хорошо я понял так следующий вопрос какие жесты позволяет флаттер нам обрабатывать на какие жесты пользуюсь и я позволяют хвата реагировать жестов довольно много то есть
00:39:09 - 00:40:48
папы свайпы долгий нажатия но все что касается нажатий плюс есть увеличение когда мы растягиваем сложнее сказать какие жесты мы не можем обрабатывать все которые предусматривают современные устройства те которые как бы общеприняты флотар позволяет нам обрабатывать и и как-то с ним взаимодействие хорошо следующий вопрос вопрос будет про контроллера есть такое понятие во flat eric qwidget контроллера скажи пожалуйста доводилось ли тебя их использовать и расскажи для чего они вообще нужны да конечно доводилось самый простой
00:40:03 - 00:41:40
пример например когда у нас есть какое-то поле для ввода текста и мы используем контроллеры того чтобы отслеживать там что-то мы ввели не верить осям как контроллер получается отслеживает состояние виджета текущая позволяет нам с помощью этого состояния что там реагировать на любые возможные действия символ поменяли кнопку ввода на другой например в качестве вот еще один такой пример ну для чего можно использоваться вот видимый символ и том же телеграме мы хотим чтобы кнопка поменялось записи голоса на заправке
00:40:52 - 00:42:08
сообщение запись голоса или наоборот вот мы можем использовать как бы и таких случаев нападать которая позволяет нам отслеживать состояние which the key а теперь будет какой вопрос составной из нескольких виджетов то есть я тебе сейчас перечислю несколько виджетов и ты просто расскажешь про каждый вкратце где он применяется окей давай так первый это скофилд контейнер expanded ну и принципе и материалов так начнем по иерархии и чуть-чуть их перемещал видимо специально материал материал об это виджет который
00:41:30 - 00:43:09
в общем является нашим материал приложением то есть если мы указываем виджет материала мы говорим о том то что мы собираемся использовать материал материал как-то сказать концепцию в нашем положении вот то есть это как бы это первое дальше скофилд scofield у нас является как вот носить материал то что вообще приложение а сказал у нас как вот начальный уровень для того чтобы что то на нем на экране например добавляет искал это как общая концепция экрана в общем можно так сказать дальние что там приговорил к тайне до
00:42:21 - 00:43:38
правильным контейнер из пальца и того чтобы нам какую-то область выделить что-то например какую-то часть хотим хотим использовать 150 до 160 размером какой какой-то квадратик например вот это может польза контейнер как поместить что-то во что-то как и контейнер в реальной жизни ничего используете вот и далее expanded экспандер позволяет нам занимать всю доступную оставшуюся нам область то есть пример нас есть какой-то там один видит 2 виджет и вот третьем там мы не знаем мы этим указали размеры а там сколько
00:43:00 - 00:44:30
там осталось мы не знаем и мы хотим и если мы хотим занять всю область например экрана нижнюю часть мы пишем expanded и виджет будет как бы заполнять все оставшееся пространство которое позволит руки хорошо следующий вопрос есть такой классный виджет называется влиял на builder может рассказать для чего он применяется лайалл builder использует для того чтобы поменять нам разметку в зависимости от каких-то условий например у меня буквально недавно была ситуация когда нужно было сделать кое-какую адаптивность ее зависимости от
00:43:45 - 00:45:14
размера экрана так как приложение был одновременно там и на планшетах и на и в браузере в общем например такой случай то есть мы можем сделать лайалл builder и там в условии указать например то что если у нас доступное пространство там больше 700 ну а ширине сказать доступной ширину то мы возвращаем например такой это виджет так такую там разметку какую-то там колонку и прочь что что что мы хотим а если меньше то есть другом случае мы можем вернуть что то другое то есть то что то что мы хотим то есть зависимости от
00:44:29 - 00:45:54
условий мы можем изменять наша разношу разметку на экран окей хорошо теперь перейдем к такому блоку вопросов очень важному это вопрос об архитектуре начнем с общего вопроса это можешь рассказать какие виды архитектуры я имею ввиду архитектуры стоит менеджмент архитектур потому что флотар все архитектуру они так или иначе связаны на стоит менеджменте какие стоят менеджмент архитектуры ты знаешь какие доводилось применяют на практике какие нравятся какие не нравятся какие ты предпочитаешь так ну начну с самого распространенного
00:45:11 - 00:46:40
это фотоблог в частности любит это использовал больше всего больше всего в принципе нравится также есть принцип основан на блок сокращение от business logic компонент то что у нас разделяется получается отдельно то что относится к интерфейсу относится отдельно и часть которая отвечает за всякую взаимодействия 1 тыс с отдельно то чтобы получается то что относится к отару его виджеты должны заниматься там вычислениями прочим идет просто обмен то есть если например на примере кьюби то мы отправляем какую-то функцию в любит
00:45:56 - 00:47:38
нам возвращается какое-то новое состояние нам кипит нам получается возвращать состояние которое рисовать на экране вот дальше например последнее время посматриваю на gtx очень удобная структура тоже использовал 1 1 0 до конца потрогать не представилось возможным не был возможности вот концепция тоже построен на том что у нас есть какой-то контроль над именно для у нас есть виджет для него контроллер и в этом контроллере происходит какие то действия которые мы хотим то есть там очень грубо говоря похоже с контроллером
00:46:49 - 00:48:27
который мы пинали до этого на примере там экспорт филда здесь на контроллеру всего там гранатом виджета неважно и мы получается хочется которую он вступает в принципе можно сравнить с дебитом то есть по примеру взаимодействие тоже мы вызываем функцию и нас изменяется иметь состоянии вот в принципе что хочу сказать по поводу стоит менеджмента много различных существует вариантов и выбрать эти архитектуры нет никогда идеального решения всегда просто есть еще некоторые наиболее подходит какую-то конкретную
00:47:40 - 00:49:02
задачу вот я скажу приходилось применять такие более простые архитектуры текстурные решения такие как этот виджет или провайдер например да приходилось мои одной из первых приложений было нужно было делать минут темы я делал я с помощью held виджета мне тогда показалось неплохим решением принципе а новый так плюс-минус нормально вот использовал по поводу у провайдеров под у провайдеров честно не помню наверное использовал но вероятно не в ближайшее время и ближайшим прошлом окей понял хорошо давай поговорим про анимации во flat
00:48:23 - 00:50:07
eric говорят то что фату вообще очень богат на фреймворк анимаций что-то по этому поводу знаешь какие анимации тебе приходилось реализовывать его фактор может какую не самый сложный например вспомнишь анимацию и какие для этого валов аватар на данный момент существуют инструменты так по поводу анимаций флаттер действительно с анимациями очень дружит то есть все что касается пользовательском интерфейсе красоты любого там взаимодействия флотар в этом хорош действительно поэтому его часто используют то что говорят такая такое
00:49:20 - 00:50:33
сражение то что флаттер хорошо используется когда нужно быстро показать какой-то проект с минимальными вложениями быстро показать по примеру заказчику вот по поводу анимации анимации тоже очень много различных то есть также как и по поводу уже став сложнее сказать как каких нет много разработчика касается большой функционал то есть можно использовать слайды увеличения там мигания масштабировать и то есть все что угодно можно использовать вот что мне доводилось использовать я использовал красивые анимации переходов между
00:49:59 - 00:51:28
страницами потому что это где чаще всего пользователи уже немного страниц где он чаще все взаимодействует это делал плюс еще было такое то что я делал анимации анимации для кнопки чтобы тоже свою кастомную что меня захотелось именно такая все не хочу никакую другую хочу такую поэтому тоже вот этим занимался работать анимация фактор довольно просто и анимации фото работать довольно неплохо быстро и в принципе если хорошо все реализовать то все будет очень круто хорошо пасибо и еще давай поговорим про
00:50:45 - 00:51:59
то как мы делаем де баккер то флаттер приложений какие вообще кватиры есть для этого инструменты как мы не божим slater приложения может мне вообще там ставить бренды например или или что что-то видеть по сложнее для того чтобы отслеживать отслеживать во время разработки состояния приложения отслеживать то насколько хорошо она работает сколько багов экселя возникает какие запросы все эти отправляются так далее есть что-то какое-то решение о хвата для такой такой сдачи да конечно есть так как котором
00:51:24 - 00:52:45
пользовать еще больше больше людей в принципе как бы современная технология поэтому такие вещи такие вещи необходимы мы можем как ты уже сказала там ставить брик поинты 2 жить со свежим состоянии то есть мы там ставим можем поставить хоть миллион bric bric поинтов и отслеживать состояние нашего приложения в любой момент когда мы захотим плюс есть различные штуки вроде зашел по поводу недавно то что мы связаны с памятью стержень память можно отслеживать не просто объем оперативной памяти а вот как пример определять узкие места
00:52:06 - 00:53:28
приложений когда то есть так чисто визуально можем не заметить а когда мы это можем видеть именно вот уже по графикам когда мы видим сколько нас памяти понятно что а вот здесь и накосячил здесь написано не очень хорошо я должна переписать вот так что средств очень много также вот про х-трейловод restart значительно позволяет позволяет ускорить процесс папенькой разработки потому что действительно местам если бы этого не было я не представляю сколько бы дольше времени на разработку и отлично спасибо еще хочу задать тебе
00:52:47 - 00:54:10
такое организационные вопросы там какие твои задачу типовые на проекте то есть какого уровня решение инженерная ты можешь принимать в она позиция на которой ты час находишься это просто фиксы каких-то мелких банков или ты-то можешь брать . отвесной закрывает целиком пищу или даже брать ответственный за архитектура роутер скажи в этом плане какие задачи на данный момент она проектах на данный момент если говорить в общем о проектах которые уже были то в основном это fix pack of и внедрение fitch тоже
00:53:30 - 00:54:50
также могу на себя взять и также внедрение различных сервисов то есть для отслеживания для всего до сервиса в приложении по поводу архитектуры да мне приходилось заказывать архитектуру но я думаю это был более больше разовый случае чем на постоянке ну пришлось один раз было нужно заложить полность архитектурное приложение потому что было все довольно плачевным вот а если говорить о типовых задач а кто это первую очередь внедрение фич и фиксинг различных багов которых бывает иногда очень-очень много
00:54:11 - 00:55:24
муки хорошо спасибо я думаю на основной частью вопроса мы основная часть вопросов мы уже прошлись к сожалению формат данного данный формат slater интервью не позволяет нам выходить определенные временные рамки поэтому давай я постараюсь сейчас тебе дать фидбэк папа интервью и ты ты сможешь послушать то что я в принципе услышал и проанализировал а кто начнем с адар к подарку ты достаточно хорошо я считаю ответил на большинством вопрос да были какие-то пробелы я думаю не буду сейчас останавливаться
00:54:49 - 00:56:24
на вопросах если что потом сможешь пересмотреть это интервью посмотреть она к его просто не ответил и эти области чуть более глубоко паре черчилль повспоминать и устранить пробелы в целом в целом и дарт я думаю ты знаешь достаточно неплохо и все что касается базы все что касается асинхронности на большинство вопросов я получил ответы и ответы были уровня которые я я ожидаю услышать от видов понты разработчика что касается дартом дальше что касается фактора понятно база база у тебя отличная то есть ты на все вопросы касательно пик
00:55:38 - 00:57:13
примитивный вопрос касательно виджетов касательно того где что используется касательно косач на всей базе так скажем фактора того как это работает и более того классно достаточно рассказал про концепцию саму того как работает флотар как он применяется почему именно поттер мне это понравилось опять же но были какие-то пробелы я не могу сказать что ты ответил прямо все идеально да наверное сам это понимаешь не на все вопросы ты либо дал ответ либо дал такой полный ответ так скажем про архитектуру
00:56:26 - 00:57:42
например ты рассказала 22 таких ремарка по 20 которых решение про блок рассказала это понимаю потому что это такое самое распространенное на проектов которых ты уже успел поучаствовать решение рассказал немножко про битрикс что-то вспомнил про не верь этот виджет вот хотелось бы а если для для роста будущее чтобы ты более философский так подходил к этому вопросу он начинал там того что здесь базовые архитектуры во вкладке есть там провайдер carry that which is каких-то случаях мы их будем применять
00:57:03 - 00:58:12
вот такое приложение такая сложность я буду применять эту архитектуру вот в случае если в приложении такие требования я применял эту архитектуры и как это подкреплять немножко примерами более философский подходить это да для того чтобы для того чтобы отвечать на этот вопрос как отвечают ребята сеньор уровня которые уже бывало и так скажем в этом вопросе дальше что еще хочу сказать мне нравится то что то что ты отвечаешь что некоторые вопросы при виде приводя реальные кейсы реальные примеры из своего опыта должна
00:57:39 - 00:58:57
показывать то что ты ну точно не junior разработчик себя ценишь там junior plus медовый разработчик это точно уже такой медовый подход когда ты можно сказать у тебя есть какой-то опыт и ты вот отвечает я на проекте применял вот эту штуку могу рассказать я вот на вот этом проекте вот эта мне приходилось делать это вот кейсы как ты отвечал про анимации потерь этот виджет например то есть это это достаточно приятно случись это не просто там книжек начитался и пошел ti1 вопроса это это это реально реальный виден опыт
00:58:18 - 00:59:27
так скажем что касается ответа на вопрос а твои твои задачи тайсон ответственность это тоже понятно что команда тебя оценивает тоже уже далеко не на junior уровень но пока один осени уровень как я понял у тебя не было не было а кейсов чтобы ты полностью сам взгляд закладывать которые принимал кита глобальные решения но при этом ты уже далеко не просто там exige баги и там review шкот просто уже какие-то полноценной фича разрабатывались закрываю взаимодействуешь в команде что он также подтверждает твои медовый
00:58:52 - 00:59:59
уровень поэтому такая хорошие новости я считаю что ты свой уровень подтвердил до что касается еще такую важную ремарку сделаю что касается наших подписчиков или слушатели подкаста дамы не прошлись вообще о по всем аспектам флаттер можно было куда куда больше задать вопрос и право там сетевые взаимодействия и про real-time само действие при локальной базы данных и так далее только единство момент то что цели у нас такой не было ни было у нас общая прощупай цели не было цели прощупать все вообще с аспекты
00:59:26 - 01:00:43
спатаро была цель провести чтоб он каким-то основным вопросам есть разные области затронуть и посмотреть как разработчик на эти вопросы отвечают поэтому прошлись по тем областям которые которые успели обратить внимание следующий раз можно следующих интервью будут немножко другие области и так потихоньку потихоньку мы будем вообще покрывать вещь фата поэтому поэтому как то так в чем тогда наверное наверное будем тогда завершать наше интервью всем пока ребята подписывайтесь на наш канал ставьте лайки колокольчики я уже запомнил что
01:00:04 - 01:01:31
нужно говорить да выучил ставьте лайки колокольчики пишите комментарии пишите вопросы пахло туру der которые можно добавить следующее интервью пишите вопросы пишите претензий если вы чем-то не согласны относительно моих вопросов я не претендую на роль и лучшего факторы интерьера в мире поэтому будем рады конструктивной критики и до следующего раза в выпуске wotofo интервью или вот твое шоу пока всем пока [музыка] даже стоять их все мы не скажем если бы занимаемся для vista чтобы работать , [музыка]
01:00:48 - 01:02:26