Android Interview Preparation #2 - Platform questions

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

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

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

    00:00:00 - 00:01:33

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

    00:00:46 - 00:02:12

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

    00:01:29 - 00:02:37

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

    00:02:04 - 00:03:16

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

    00:02:40 - 00:04:07

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

    00:03:28 - 00:04:44

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

    00:04:05 - 00:05:29

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

    00:04:47 - 00:06:14

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

    00:05:31 - 00:06:56

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

    00:06:16 - 00:07:52

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

    00:07:07 - 00:08:47

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

    00:08:11 - 00:09:35

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

    00:09:03 - 00:10:53

  • что и как он попадает в activity интересный вопрос [музыка] ну чего мы используем intent для чего мы использовать контент и и так далее но в intent используя того чтобы шарик это наши намерения до между некоторыми сущность некоторых экранами до некоторыми даже экранами скорее какими-то компонентами android вереск activity или используется intenso тыс надо об этом отправить об а ты не думал а почему именно используется интента не какой-нибудь там прямой reference возьми и frenzied контент-провайдере передаем

    00:10:09 - 00:11:32

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

    00:10:56 - 00:12:23

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

    00:11:53 - 00:13:12

  • будут получать это как наше приложение так и любое другое на сервис он работает конкретно в каком то одном приложении в рамках а как передается допустимости работы с балдеть сервис как я получаю данные сервисов внутри activity [музыка] вот допустим нас есть connection callback да у нас есть типа disconnect этот сервис коннектор он сервис мы можем получить сам incense нашего сервиса прально я могу напрямую как бы если есть какие-то public метод внутри сервиса могу и как бы их запас или поднялся на

    00:12:37 - 00:13:53

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

    00:13:27 - 00:15:03

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

    00:14:18 - 00:15:43

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

    00:15:07 - 00:16:36

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

    00:15:58 - 00:17:19

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

    00:16:39 - 00:18:01

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

    00:17:22 - 00:18:34

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

    00:17:59 - 00:19:27

  • бомб над подписчика и мы собственно можем что-то делать а из того что же принцип как бы key и value все достаточно очень просто да мы будем оплачивать за сигнализация сигнализация но у нас не будет это вот вписывания подписывание так далее дополнительно максик вот ну и последний вариант это используя сколько ночь sculpt дагеровский создать компоненту который будет зачем-то между сервиса между самым фрагментом и соответственно в сервис будет publish it with a component of our mind будет обзор ведь все что происходит

    00:18:47 - 00:20:02

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

    00:19:26 - 00:20:57

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

    00:20:14 - 00:21:40

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

    00:20:57 - 00:22:07

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

    00:21:32 - 00:22:42

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

    00:22:07 - 00:23:26

  • картины использована на член резон то есть у меня будет каватина запускаться когда activity будет как минимум в режим стоит умирать когда мы перейдем в он по устоит и я могу взять мой flow который живет внутри сервиса и подписаться на него через кулек и что-то делать описывает их числа таким образом ничего не лягается и автоматически всего мира it's a test is life сайт нашего activity того кто делает обзор вот вопросы предложения что не объяснил у меня вопрос что будет когда приложение это зависит от имитации сервис если the

    00:22:47 - 00:24:15

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

    00:23:34 - 00:24:44

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

    00:24:09 - 00:25:37

  • среди недостатка подхода справка с ресивера в каком потоки в каком именно образом сервис случае использования работает серию случае с использования короче я понял темы насчет потоков service of locations of и 9 обработку от этих всего преходящего а иблис ли все lifecycle и в практике происходит на ней прийти с этим ничего не поделать все что касается подкаст ресиверов он все вы склонны xin так далее тоже происходит на не эндерби поэтому а нужно как можно быстрее а вот ладить работу на использовать яны используя экзекуторы 3d

    00:24:59 - 00:26:36

  • java очки то что любит но по дефолту все калмыки android происходят нами in 3d и лежит написано по-другому в документации и нам нужно охладить эту работу на другие потоки и использование locations обычно как сделать его песен то есть допустим this for gold ценность да просто как обертка что вот с чего то что происходит ним на богом протяжении времени поэтому я когда за подписываюсь на локейшн то подписываемся через какие-нибудь сторонние пиа либо google play services там у них есть гугл плеи пиаре что такое

    00:25:49 - 00:27:04

  • либо же через гил kolding либо же через не помню [музыка] в общем любая подписка она происходит уже как бы будет подходить сама подписка на может происходить на бэккантри де-нол ok вы получите нам не entry система и нужно и это сидел переводить на be granted постоянно то есть по дефолту мы работаем на мейн 2 курс касается android фильмом к и любую работу которую мы делаем мы перевозим это на бегом пред вот это такой самый лучший seafood который нужно всегда помнить бежать голове вот надеюсь что третьем

    00:26:29 - 00:27:56

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

    00:27:15 - 00:29:09

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

    00:28:16 - 00:30:18

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

    00:29:35 - 00:31:37

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

    00:30:58 - 00:32:59

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

    00:32:13 - 00:33:53

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

    00:33:08 - 00:35:01

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

    00:34:23 - 00:35:36

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

    00:35:03 - 00:36:38

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

    00:36:02 - 00:37:18

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

    00:36:39 - 00:38:36

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

    00:37:50 - 00:39:47

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

    00:39:12 - 00:40:39

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

    00:39:59 - 00:41:39

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

    00:41:17 - 00:42:41

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

    00:42:14 - 00:44:05

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

    00:43:23 - 00:44:44

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

    00:44:04 - 00:45:23

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

    00:44:43 - 00:46:00

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

    00:45:21 - 00:46:41

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

    00:46:04 - 00:47:09

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

    00:46:36 - 00:48:07

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

    00:47:25 - 00:48:53

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

    00:48:09 - 00:49:27

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

    00:48:48 - 00:50:04

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

    00:49:30 - 00:50:41

  • activity сохранились новую модель сохранился будет тот же самый инцесты модель когда моего запросит где модель провайдер и мы можем днем в нашем подходе мы использовали live data life даты с cash flow is кеш соответственно когда у нас activity recreate and so i мы сделаем заново подписку на лайв да там мы получим то что у него было в кэше и нам не нужно будет делать заново запросто базу и это очень много куда вот пойдем дальше нас не остался так поговорим не серега и готов все готово и ярмоленко i'm alive моменты

    00:50:05 - 00:51:23

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

    00:50:47 - 00:52:29

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

    00:51:38 - 00:52:46

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

    00:52:13 - 00:53:31

  • может произойти это что-то в майн 3d то есть либо просто мы видим что-то там какие-то сетевые запросы запроса базы данных все что угодно вот либо же какие-то неочевидные вещи например чего мы запускаем локэйшн менеджер очевидному отличный менеджер тоже работает в интриги когти пока все android android этим классом смотришь то что просто локейшн менеджера по фактам тоже гасят main thread все тормозит все глючит дальше мы посмотрели activity in great дальше проваливаемся в какие-то и компоненты такси with

    00:52:57 - 00:54:14

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

    00:53:36 - 00:54:54

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

    00:54:15 - 00:55:43

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

    00:54:58 - 00:56:33

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

    00:55:49 - 00:57:28

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

    00:56:38 - 00:58:03

  • each mydean star time у них внутри есть без добавления каких то метров у них уже есть об старт который дает со скидкой по верх приложение версии приложения версии android девайса и нетворкинга страны и так далее вам показывает что происходило как происходило добавил что такое насчет юзера с каким-то в 1844 у которого star time был 2.3 секунды когда у нас у всех остальных там 400-500 сразу понятно что наверно проблемами не не у нас а проблемой в одевайся не вижу никакой быть может быть из детей очень

    00:57:20 - 00:58:51

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

    00:58:06 - 00:59:29

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

    00:58:48 - 01:00:08

  • google с левой а внутри в нем на самом деле то что шло и to inject обком полин и то же самое в нашем activity этого выполнял main main activity oncreate и в нем тоже очень большое количество времени ушло на джиг dagger и срастается понятно что в кого винить и куда дальше копать штук наверное инициализации нашего номера нашего графа берёт ваше время это то что пофиксил сможет улучшить положение дел вот а помимо этого как если бы совершенно правильно сказал есть локализации всяких классных вещей на cold start первое что

    00:59:28 - 01:00:44

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

    01:00:06 - 01:01:14

  • происходит ну и собственно нас есть наша activity который стартует и у него есть наши такие вот тонкие to start анализом и нужно смотреть что там происходит помимо этого нужно смотреть не попали библиотека этого на ставку вместе с предложением что они делают ну и дальше все что касается ли я очень часто нас это вот setcontentview в нашем ant raid может инициализировать встретить какой-нибудь очень трудоемкую верху в которой есть сто пятьсот вещей куча вложенности и это тоже может ответить наш star time

    01:00:40 - 01:01:45

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

    01:01:11 - 01:02:32

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

    01:01:52 - 01:03:17

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

    01:02:34 - 01:03:48

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

    01:03:18 - 01:04:52

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

    01:04:10 - 01:05:36

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

    01:05:02 - 01:06:14

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

    01:05:48 - 01:07:02

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

    01:06:26 - 01:07:44

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

    01:07:10 - 01:08:20

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

    01:07:47 - 01:09:09

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

    01:08:27 - 01:09:39

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

    01:09:05 - 01:10:24

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

    01:09:44 - 01:11:02

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

    01:10:26 - 01:11:36

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

    01:11:02 - 01:12:22

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

    01:11:43 - 01:13:00

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

    01:12:21 - 01:13:35

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

    01:13:02 - 01:14:32

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

    01:13:49 - 01:15:02

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

    01:14:25 - 01:15:40

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

    01:15:03 - 01:16:19

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

    01:15:41 - 01:17:04

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

    01:16:22 - 01:17:48

  • notification на него есть несколько кейз может быть месяц непосредственно то что мы показываем user у него может быть дата и можно послать просто push только с датой особенно это даты например может быть ки который скажет какой данный какой айпи нужно для того чтобы его обновить например и соответственно мы можем получить стартанет тогда автоматически наш пусть пусть messaging service и этот путь я сейчас push push comes the things i wish может за скейт жалеть уокер того чтобы он сделал пресечь этих данных и используя подход

    01:17:05 - 01:18:15

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

    01:17:41 - 01:19:04

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

    01:18:23 - 01:20:02

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

    01:19:17 - 01:20:32

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

    01:19:54 - 01:21:11

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

    01:20:33 - 01:21:41

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

    01:21:11 - 01:22:33

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

    01:21:51 - 01:23:15

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

    01:22:32 - 01:24:07

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

    01:23:21 - 01:24:59

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

    01:24:25 - 01:26:06

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

    01:25:31 - 01:26:50

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

    01:26:14 - 01:27:29

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

    01:26:57 - 01:28:27

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

    01:27:48 - 01:29:11

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

    01:28:38 - 01:30:01

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

    01:29:22 - 01:30:38

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

    01:30:01 - 01:31:26

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

    01:30:51 - 01:32:10

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

    01:31:37 - 01:32:54

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

    01:32:15 - 01:33:39

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

    01:33:01 - 01:34:42

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

    01:33:59 - 01:35:36

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

    01:34:47 - 01:36:11

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

    01:35:29 - 01:36:47

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

    01:36:08 - 01:37:36

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

    01:36:54 - 01:37:44

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    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

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru