Реальное собеседование Android уровня Middle. Даниил Черняев / Мобильный разработчик

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

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

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

    00:00:00 - 00:01:10

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

    00:00:37 - 00:01:47

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

    00:01:11 - 00:02:23

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

    00:01:46 - 00:02:56

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

    00:02:23 - 00:03:33

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

    00:02:58 - 00:04:19

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

    00:03:36 - 00:04:50

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

    00:04:15 - 00:05:23

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

    00:04:47 - 00:06:01

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

    00:05:26 - 00:06:39

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

    00:06:02 - 00:07:24

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

    00:06:44 - 00:08:13

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

    00:07:32 - 00:09:13

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

    00:08:22 - 00:09:38

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

    00:08:59 - 00:10:13

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

    00:09:38 - 00:11:01

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

    00:10:19 - 00:11:44

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

    00:11:01 - 00:12:26

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

    00:11:48 - 00:13:08

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

    00:12:31 - 00:13:54

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

    00:13:13 - 00:14:13

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

    00:13:43 - 00:14:53

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

    00:14:18 - 00:15:25

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

    00:14:52 - 00:15:59

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

    00:15:25 - 00:16:58

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

    00:16:09 - 00:17:26

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

    00:16:51 - 00:17:57

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

    00:17:23 - 00:18:30

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

    00:17:58 - 00:18:53

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

    00:18:25 - 00:19:44

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

    00:19:04 - 00:20:30

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

    00:19:49 - 00:21:04

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

    00:20:26 - 00:21:35

  • там и 10 надо еще нужно action показать not вопрос допустим тебе надо по результатам отобразить не ну ну тост до тост или snack bar и так далее да как бы это сделано вот с этим с этим вопросом я очень как в последнее время ну не то чтобы на нее время может знаю известно за одну в общем этим простым очень интересовался причем с точки зрения как это сделать потому что сделать это можно двумя способами но какой из них тут более правильно с точки зрения архитектуры в целом в поисках этот и этот вопрос есть

    00:21:01 - 00:22:11

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

    00:21:36 - 00:22:44

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

    00:22:10 - 00:23:23

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

    00:22:45 - 00:23:59

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

    00:23:23 - 00:24:26

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

    00:23:54 - 00:25:10

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

    00:24:33 - 00:25:43

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

    00:25:07 - 00:26:13

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

    00:25:40 - 00:27:06

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

    00:26:26 - 00:27:40

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

    00:27:05 - 00:28:08

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

    00:27:37 - 00:28:35

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

    00:28:05 - 00:29:09

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

    00:28:38 - 00:29:53

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

    00:29:14 - 00:30:42

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

    00:30:01 - 00:31:06

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

    00:30:34 - 00:31:49

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

    00:31:11 - 00:32:31

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

    00:31:51 - 00:32:53

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

    00:32:22 - 00:33:38

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

    00:33:01 - 00:34:05

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

    00:33:33 - 00:34:45

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

    00:34:08 - 00:35:21

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

    00:34:45 - 00:35:53

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

    00:35:19 - 00:36:29

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

    00:35:54 - 00:37:08

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

    00:36:30 - 00:37:46

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

    00:37:09 - 00:38:22

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

    00:37:45 - 00:38:55

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

    00:38:20 - 00:39:32

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

    00:38:57 - 00:40:17

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

    00:39:35 - 00:40:58

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

    00:40:17 - 00:41:47

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

    00:41:01 - 00:42:20

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

    00:41:41 - 00:42:54

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

    00:42:18 - 00:43:39

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

    00:42:59 - 00:44:11

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

    00:43:32 - 00:44:41

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

    00:44:09 - 00:45:30

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

    00:44:49 - 00:45:52

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

    00:45:21 - 00:46:51

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

    00:46:06 - 00:47:16

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

    00:46:41 - 00:48:08

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

    00:47:21 - 00:48:42

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

    00:48:04 - 00:49:16

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

    00:48:40 - 00:49:54

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

    00:49:17 - 00:50:40

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

    00:49:59 - 00:51:01

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

    00:50:29 - 00:51:48

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

    00:51:08 - 00:52:39

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

    00:51:56 - 00:53:06

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

    00:52:31 - 00:53:55

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

    00:53:13 - 00:54:19

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

    00:53:46 - 00:54:52

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

    00:54:20 - 00:55:29

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

    00:54:54 - 00:55:59

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

    00:55:28 - 00:56:57

  • целом мне очень понравилось то как раз-таки тот момент что мы можем просто взять люксовый какие-то встречи поменять их на flow и у нас все будет работать все здорово только сзади критично рисовые именно при рисовые операторы of low есть всех но я просто на самом деле сколько мы с полгода назад может быть час уже по добавляли картина сейчас активно тоже добавляются да не менее режиме до тоже вот недавно обновился до 14 водки на там всякие плюшки гризли вопрос но успела ли на самом деле поработать float а то есть такое просто

    00:56:13 - 00:57:36

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

    00:56:57 - 00:58:07

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

    00:57:30 - 00:58:44

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

    00:58:10 - 00:59:30

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

    00:58:50 - 01:00:04

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

    00:59:26 - 01:00:37

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

    01:00:02 - 01:01:31

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

    01:00:48 - 01:02:13

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

    01:01:30 - 01:02:36

  • понятный ответ уж пока на 5 projecta хотя у нас есть если вы leroy merlin там 1 1 формочка нужно to compose сделаны вот смотри на самом деле к ты говорил про то что он у тебя есть два варианта как им весь дело данный сингл live-action типа ну там через action отдельные либо через внутри стоит а вот я хотел сказать что джетпаком паузу сродство больше имеет вот как раз твой под ног этот поход который ты выбрал нужно это что в одном стоять и находится потому что там по-другому президенте чего то еще но фактически невозможно ты

    01:02:04 - 01:03:06

  • должен отталкиваться от отстоит и никого которые у тебя вот это дерево потом строят ok пробовал ли ты multi-platform не multi-platform не пробовал и ближайшее время пока что не планирую ну все-таки чисто больше как android-разработчик планирует дальше развиваться мы чуть-чуть слышал некоторые моменты что там например тот же это fit не используется использовать пример uk top насколько давнюю кейтор используется до накида видел примерно что все-таки у тебя больше заточенность если используют сильно платили multi-platform то

    01:02:34 - 01:03:41

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

    01:03:08 - 01:04:39

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

    01:03:53 - 01:05:19

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

    01:04:38 - 01:05:50

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

    01:05:14 - 01:06:33

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

    01:05:53 - 01:07:13

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

    01:06:32 - 01:07:40

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

    01:07:09 - 01:08:25

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

    01:07:47 - 01:09:00

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

    01:08:23 - 01:09:55

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

    01:09:10 - 01:10:41

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

    01:09:58 - 01:11:04

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

    01:10:32 - 01:12:05

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

    01:11:31 - 01:12:43

  • думаю вполне себе теоретически наверно да ну да если у нас используется оттуда на андроиде как раз дала века сейчас уже lt про garbage collector у нас есть такая история как же тюремным ремонт и она стандарт который описывает поведение памяти то есть или многопоточность среды и как ставить учетом его отработать чего-то сделает garbage collector garbage collector on the miz 400 их реализация сейчас это этого нужно целью горлач коллекторных значит для того чтобы у нас так у нас джаве все объекты представлены ссылками горбач коллектор

    01:12:07 - 01:13:37

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

    01:12:52 - 01:14:19

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

    01:13:35 - 01:15:23

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

    01:14:29 - 01:15:45

  • пока пусть убирается да как это предел сейчас работает в современном у тройки я думаю возможно сейчас данные поменялись потому что у нас как в android пустым развивается и отеки как веркер последних версиях она используйте я наверное скажу голов концептуально у нас garbage collector может использовать два типа определения является ли объект мусора 1 это когда у нас i had a handstand короче подсчет ссылок на объекты когда объект не ссылается больше ничего вообще-то как бы все он считается мусором но там как бы опять вот эти

    01:15:07 - 01:16:40

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

    01:15:54 - 01:16:57

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

    01:16:25 - 01:17:43

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

    01:17:05 - 01:18:19

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

    01:17:41 - 01:19:14

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

    01:18:28 - 01:19:43

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

    01:19:08 - 01:20:25

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

    01:19:46 - 01:21:02

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

    01:20:25 - 01:21:26