Android meetup в Нижнем Новгороде: инфраструктура дизайн-системы, MotionLayout и CI/CD

continuous development, continuous integration, motion layout, андроид разработка, android разработка, android development, avitotech on tour, ci cd

Похожие видео

Описание

Приглашаем на митап для андроид-разработчиков в Нижнем Новгороде, который мы проводим с сообществом GDG Nizhny Novgorod. • Организация и инфраструктура дизайн-системы Авито — Андрей Данилов, Авито. Анимации, как у сына маминой подруги — Андрей Тумаринсон, MERA. • Мы вынесли инфраструктуру для Android в open source — Сергей Боиштян, Авито. • Почему Kotlin Coroutine — лучшее, что подходит Android — Кирилл Розов, Android Broadcast. Уже четыре года мы поддерживаем IT-комьюнити в России. Мы провели кучу митапов в московском офисе Авито, а потом подумали, что отсутствие офиса в городе — не повод не проводить там митап. Мы хотим, чтобы независимые сообщества разработчиков развивались по всей стране и больше друг с другом взаимодействовали. Это может звучать напыщенно, но талантливые и интересные люди есть везде, а общий опыт и знания помогают нам развиваться и быстрее решать задачи. Так родилась идея провести свои региональные мероприятия, чтобы поближе со всеми познакомиться. Мы назвали её AvitoTech On Tour. Подпишитесь на наш канал, соцсети и блоги, чтобы узнавать больше о технологиях Авито 👇🏻.

Текстовая версия

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

Мы решили а почему бы нам не поехать в небольшой?

Тур по городам россии мы выбрали в качестве первых мест казань нижний новгород и спасибо сообщества джиджи. Нижний новгород что поддержали нас и выступили нашими партнерами. В организации этого мероприятия мысин привезли 4 touch не привезли 3 классных докладчиков двое и завита и у нас специальный.

Гость из минска есть сегодня мы их попозже всех!

Обязательно представим один местный спикер есть который из мер и вот на сегодня 4 докладов программе. В перерыве будет у нас небольшой перекус. И можно будет пообщаться поиграть и так далее у нас сегодня трансляция живая поэтому если вы захотите задать вопрос подождите.

Пожалуйста до конца доклада поднимите руку мы подойдем? К вам с микрофоном чтобы в трансляции люди тоже услышали вопрос люди в трансляции пожалуйста тоже пишите свои вопросы. В чат мы будем их озвучивать спикером и отвечать на них на этом собственно особая тянуть больше времени буду и передам им english.

И микрофон всем привет очень рад вас видеть на нашем. Первом совместном мероприятию нижним новгородом авито и диджей вот хочу только тебя анонсировать что у нас будет 19 апреля офигенные событие для девушек?

Войти international бендис в кремле в арсенале.

Так что записывайтесь билеты пока еще есть еще раз рад всех приветствовать и начинаем. Давайте поприветствуем до 1 докладчика сергей боишься ну а ли там нормально слышно всем привет я чувствую что моя.

Голова как сжаты арбуз сейчас уже эта штука.

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

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

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

Решений я расскажу кто мы в какой команде я нахожусь и что мы делаем почему. Мы перенесли все в open source и как этот open. Source можно использовать вот команда наша на самом деле не из 3 человека из 4 4 человек недавно.

Подлетел вот как в анимация примерно и во вид отрицать android-разработчиков которые пишут продуктовый код и вот четыре из них сейчас. Они вообще не занимаются ничем продуктовом то есть мы сидим целыми.

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

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

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

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

Там ком мы называем это компоненты то 4 которые мне первые в голову пришли это тестовый runner там test framework тест impact анализ и delivery но тут сейчас! Будет поподробней поэтому пока не напрягайтесь вот что такое тестовый runner мы делаем такую штуку которая берет тесты берет какие-то.

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

В момент исполнения этого теста кто вообще пишет тесты у себя в компании вам на android приложение. Вот все кто пишут тесты понимают что с пресса плаху с пресса не очень вот и мы это тоже поняли довольно давно:

И вот наверно индикатором этого всякие фреймворке. Типа какао касс пресса бариста капучино могочи на то есть все что там надо стресса и вот у нас тоже.

Есть такая обертка написано очень давно и даже в какой-то в какой-то там в буду ее перес! Пользуют просто потому что человек и завита перешел в баду и такой о надо переиспользовать:

Вот и плюс мы пишем всякие g-unit роллы если кто то не знает что такое ролл для же юнит не заморачивайтесь. Но короче просто мы пишем какие-то штуки которые помогают наши тесты удобно настраивать и запускать и удобно писать вот есть более сложная. Штука которая называется тест impact анализ кто слышал этот термин хоть раз вот что это вообще такое когда у тебя растет?

Кодовая база и растет количество тестов их становится очень много.

И ты не можешь их все прогнать за 1 ну либо можешь но это очень долго у нас. Во вид а сейчас где-то 2000 android тестов которые на эмуляторе гоняются и где-то 10000:

Unit тестов и если на паре квесте все эти тесты запускать наверно мы будем очень долго ждать. Обратную связь и есть типа техники которые помогают уменьшить количество тестов которые надо прогнать вот impact анализ вот тут принципиальная: Схема ты сделал по request поменял 3 файлика эти три файлика находятся в каких-то модулях то есть мы можем посмотреть какие реально.

Модули изменились есть какие-то тесты эти тесты связанные с какими-то модулями.

То есть они лежат там в конкретные директорию или ну или как-то с ними связаны. И вот мы делаем то что мы понимаем вот эти три файла. Измененных за деле эти допустим 100 тестов и только.

Их надо запустить и но тем самым мы можем запустить меньше тестов они там две тысячи десять тысяч unit тестов и доставка.

Под доставкой можно понимать чисто доставку в play market когда ты собрал приложение. Тебе нужно пользователям выпустить релиз и ты там можешь руками загрузить можешь какой то скрип написать:

Можешь fast lane куница использовать либо gradle плагин плюс мы еще реализовали там доставку нашим тестировщиком у нас там тестировщик хочет зайти на какое-то внутренние ресурсы скачать актуальную.

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

Рассказа есть вот такая ссылка вот по этой ссылке вот вы можете уже типов телефон начинать ее вбивать по этой ссылке будет находиться сейчас невероятный: Опрос очень полезны и для вас и для нас в котором мы вынесли список всего? С чем вы работаем и вы можете проголосовать если для вас это актуально и мы чувствуем:

Планируем сделать мы хотим вот понять что актуально для сообщества и сделать это удобным для них чтобы вы могли решать! Но если у вас реально есть такие же проблемы как у нас чтобы вы могли взять.

Нашу библиотеку использовать у себя вот и плюс через эту форму можно еще.

Задать вопросы в свободной форме если у вас нет каких-то.

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

Да вот это примерно выглядит так вот уже голосуют люди здесь вы периоде по ссылке вот там будет такие вопросы: Вот за них можно в реал тайме голосовать и в конце я открою и раскажу!

Чё то про это и плюс у нас вот а есть отдельная секция. Вы можете подойти и к нам но вообще камней:

Всех кого увидели на фотографии и просто.

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

Это на самом деле шучу я убью убил. Всех если кто-то будет говорить почему вы перенесли.

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

Совсем сбоку не связанное с продуктом но как-то пытаемся помогать и наши разработчики очень лояльные они с нами сидят. В одном здании любят нас мы постоянно общаемся и для них главное чтоб все просто! Работала и они не могут просто сказать но вы делаете какую-то фигню или там все плохо работает но не по есть некоторые смелые.

Вот но их немного и поэтому когда ты делаешь. Что-то в open source там очень много токсичных людей.

Которые могут те унизить прийти там чет написать есть много умных людей которые гораздо умнее чем ты которые могут прийти и сказать ребята вы сделали: Откровенную фигню и написать нам и мы ее переделаем например ну или как-то улучшим! И вот open source он как раз позволяет получить и ту и другую обратную!

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

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

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

Мы делаем они тоже перри используют если появится!

4 конь приложение мы не хотим с нуля все объяснять мы хотим чтобы они просто: Это подключили это работало на все так хотят вот следующая штука это увеличиваем весов комьюнити.

Тут не про то что мы хотим чтобы вы думали. Что мы боги программирования хотя это так и есть но я хочу в это верить и моя мама в общем мы хотим чтобы когда.

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

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

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

Второй момент это есть другие open source библиотеки которые.

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

За использовать допустим нашу и нам что-то написать его мы такие общаемся и это эта гипотеза. Но мне кажется должно помогать потому что мы смотрим на чуваков.

Который сидят где-то там в долине и там какой-нибудь google uber это мкад они там между друг другом перри используют.

Знают про какие-то внутренности и могут что-то хорошее сделать в общем и вот так же хотим вот это наверное. Самая важная штука она вчера родилась в два часа ночи в моем номере когда я делал прогон это то что почему в общем: Этим занимаемся на типа вот допустим представьте если!

Avitotech

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

Писали этот как бы бесполезный код хочется! Что появился какой-то стандарт сука эта библиотека.

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

Ты понимаешь что ты аутист то есть тебе нужно общаться с людьми. Писать им какие то сообщения чтобы они тебя понимали.

Не думали что ты дурак то есть ты должен понимать в общем людей и они все должны понимать это такой навык. И 2 очень сильно не хватает мне лично особенно в письменном виде написать какое-то простое! Сообщение которое все поняли очень сложно и вот мы когда начали писать документацию поняли блина было бы прикольно научиться писать простые понятные.

Тексты чтоб ты скинул кому-то он прочитал и все понял вот и это ну и как бы для разработчиков с которыми мы работаем. Будет полезно чтобы они не писали тебе в swag не ходили к тебе ногами постоянно просто:

Почитали штуку и все было понятно вот еще важная. Вещь это технический pr наверное ни для кого ни секрет хотя это был щит на я фраза ну типа ни для кого не секрет. Что оболочка имеет значение и если бы мы там не провели.

Этот метод не сделали что-то в open source вы бы не имели представление. Что делают во вид и какие там есть разработчики какие задачи?

Они делают и вероятность того что вам было бы интересно что-то связанное с авито было. Бы меньше и хочется чтобы все понимали. Что нуво vita хорошо потому что мы не там хорошо чтобы все это знали чтобы если кто-то устал.

На текущей работе у него была в голове мысль о может быть прийти во vita или если у кого-то какая-то. Сложная задача он кретова можно типа в авито репозитории подсмотреть или спросить?

У ребят типа хочется что так было это и личная.

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

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

И вот благодаря open source сообщению возможно я узнаю себе что-то новое и что я реально что-то делаю. Полезное вот теперь поставок мы поняли что вроде.

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

По звездочкам и совью кто кстати когда то вот у него есть гид хоп аккаунт есть звёздочки. Он когда-то просматривать все свои звездочки думаю о ни фига мне тут звездочка.

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

И у меня теперь они просто звездочки а есть типа android и тест и там типа все звездочки которые связаны с android! Тестами это очень удобно позволяет быстрее звездочки просматривать решают текущие!

Задачи но часто реально бывает супер полезно open source который нужен всем и почему-то google его не сделал допустим какая то обертка! На 3 so clear view опять тем же по-любому никто не из-под ну ладно может кто-то использует.

Голые риса веков и он сейчас очень много? Крутых библиотек они помогают очень хорошо решать продуктовые задачи.

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

Вот есть такие штуки в конкурсе и есть что-то для общего: Развития как ты понимаешь блин это что-то интересное у меня есть свободное! Время я почитаю и возможно это мне как то пригодится то есть какой-то инженерный интерес вот и теперь давайте посмотрим чё вообще.

У нас сейчас в репозитории какие из этих пунктов можно закрыть вот наш проект он такой и сложенное простой одновременно. Но я попытаюсь сделать чтобы он был простым вот не знаю может быть он на самом деле сложно вот тут ссылочка и если посмотреть верхние уровни: Вот есть там папка sap project есть три основные.

Папки по ним видно чем мы занимаемся каждый день есть папка androidtest очевидно что там все что связано. С androidtest им есть папка griddle это там все что кит оградил плагины все что нужно там для сборки что-то такое и папка! Coleman это просто папка в которой лежат какие-то.

Общие вещи и вы можете если вас какая так в верхнем время темы интересует? Просто зайти в репозитории и посмотреть что там лежит дальше!

Мы начали писать документацию она чтобы никого не обидеть возможно не очень вот но я типа не уверен. В своих навыках написание документации но если быть. Откровенным я тут максимум одну страницу написал это в основном мои коллеги по команде!

Потому что ей ну я их в первую очередь не хочу обижать что там пока так себе но документация есть и вот. На нее ссылка тоже есть и вы можете прям заходить читать чё там есть тут можно? Даже контакт as нажать вот но это пока не самая замечательная самое замечательное что есть публичный.

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

Из нас еще очень важная вещь это вот как раз когда говорил что новый источник. Для принятия решений многим мне лично когда я был в команде один то есть был момент когда я работал один надо дробь.

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

Делаем что мы отвечаем на сколько мы токсичные мужчины белые вот все это там есть и реально если у вас какой то есть сомнения в какой-то из связанных задач вы. Можете найти там для себя что то новое вот как то есть есть четыре. Основных источника и как это использовать вот в реальных проектах сейчас вот вы поняли что вот реально я пишу android с ты мне что-то.

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

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

Может не заработать потому что там что-то. Не так вот потому что может быть завязка на авито или еще что-то если вы с таким столкнетесь вы тоже можете? Написать и мы это исправим в крайнем случае можно for гнуть и ну там скопировать код и просто начать свою ветку почему.

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

А потом мы сделаем общий чат ну хорошо появилось?

2 chat а потом в 3 команде понадобился чат они такие приходят. Посмотрите есть чат номер один там такой функционал есть чат номер два там другой функционал.

Но вы в принципе можете какой-то из них за использовать так появился третий! Чат вот потом четвертая команда захотела чат она пришла такая блин что то мнение первый. Ни второй не 3 не нравится напишу 4 с нуля так появился 4 чат и в какой-то.

Момент ход такой блендер на 4 chateau это уже достаточно давайте! Сделаем общий и вы делась отдельная команда и начала писать 5 чат но который. Должен быть универсальный вот и потом я уже ушел я не знаю там теперь 14 до сих пор из 5-ти больше:

Но вот это про то что for кати копировать вы можете но наверное. Нет смысла поддерживать один и тот же код мы реально хотим сделать хорошо хотим отзывчивыми быть там помогать делать реально.

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

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

Начать и у тебя вот есть конкретная проблема утечки: Это нестабильный тесты ты просто заходишь к нам в канала. Пишешь блины как в работе с нестабильными тестами вот кто-то может посмотреть в наш репозитории.

Такой блин ничего не понял что это что то вообще решает просто заходишь это за бесполезная штука я вообще.

Ничего не понимаю что вы с этим делаете вообще и мы тоже расскажем потому что мы как бы как я вам говорил в начале. Еще сами не осознаем насколько мы полезны и доказывая!

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

Там библиотеку захотели ее все подключить но не поняли и вот вы можете спросить а как эту библиотеку. Переиспользовать потому что мне не получается и мы тоже поможем в общем на самом деле просто можете написать! Все что угодно можете написать куку там всем привет.

В этом чате там все что угодно мы максимально без комплексные вот это непонятный слайд я не знаю почему он здесь:

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

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

Будем их обсуждать и все будет хорошо пока к сереже.

Счету у нас доклад на не закончится во время но вот ребята будут стоять там в холле где кофе-брейк а там есть. Доска на которой написан android архитектор ребята. Будет там можно будет задавать им вопросы течение всего дня проблемы своей файл но сейчас все будет хорошо об ты главное.

Знаешь как твоя фамилия на латинице моя.

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

Прям задавать у нас печать все вопросы про градов мы максимально уже много с ним работаем очень много! Много всего знаем и готовы это рассказывать можем даже в документацию это вынести наверное! Если это актуально прям вообще на изи долго собирается проект во вид а сейчас где-то 300 модулей?

Вот в нашей инфраструктуры где-то 60 модулей был этот слайд но почему-то его не стала. Его удалил вот и у нас вот есть женя.

Кривобоков сегодня он там со сборкой разбирался. И в хвост и гриву там в общем я не знаю там все вещи которые с ней можно оптимизировал и вот он может рассказать?

Очень много поэтому тоже кого беспокоит сборка мы тоже можем помочь блин:

Это очевидный ответ и даю сложно писать тесты мы научим вас писать. Тесты вы хочете автоматизировать released мы дадим вам это ну в общем вы поняли да что-то не очень получается.

Информативно подходить да просто просто подходите да сейчас. Я посмотрю может там есть свободный в форме queen дает.

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

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

Ci cd

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

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

На сборку вот наверное это основные до сценария звездочки в git хоп решают ну наверное что-то!

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

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

Связано с крылом и разработку связаны с андроидом мне больше нравится делать плагины чем activity и фрагменты. Я бы так назвал что этот мир он как бы больной но вот это вот activity oncreate тоже надоедает верхней вопрос пересказы.

Как ты такой же как ты пришел к успеху конкретном: Если это успех то конкретно моя история такая.

Что моя история я много работал наверное. У меня болит спина зрение упало поэтому.

Я бы задумался на вашем есть так и там внизу. И кстати тебе надо будет из этого выбрать лучший вопрос да это правда что лучше всего использовать?

Одно активности все стали фрагмент я не знаю ну и типа я и так и так делал мне нравится наверное работать.

С одной activity но это вводит ограничение я знаю я знаете против попыток вывести. Какое-то правило и пользоваться им не думая. Потому что это скучно то есть вы такие для себя открыли что вот подход.

Какой-то ну где 1 1 activity и много фрагментов он работает он классный и вот надо так все делать итак. Все будет хорошо но так просто скучно вот иногда просто хочется!

Подумать блин а вот что если по-другому сделать и поэтому я всегда наверно. За то чтобы в разных проектах пробовать разные всегда переосмысливать свои опыты и тогда наверное у вас появится какое-то.

Свое мнение и вы может захотите вы поймете что не то не то неудобно и напишите? Свою библиотеку и выложите open source вот объект рик блин насколько я понимаю это немного про разное но мы используем раб электрика тесты. Я не помню используем ли мы power мог ну наверно тоже используем в общем раньше раба:

Лек track еще года два-три назад был очень неудобным постоянно ломался. Сейчас я насколько знаю его google поддерживает.

И у нас с ним вроде никаких проблем. Нет поэтому рыба лек так это хорошо powermac это скорее индикатор того что у вас что то не так в коде и вы делаете.

Что-то не так или поэтому если вам что-то надо протестировать и без power мог никак то можно его использовать а если подумать зачем: Тут вообще power мог то лучше но это переписать так чтоб он не понадобился вот я думаю теперь надо выбрать. Там и там еще вопрос вот почему форк и принимаете ли вы ниже!

Почему форк вот кстати да что у нас со стороны мемберами у нас сейчас это тоже! В процессе решения у нас большой проект и мы его собираем сейчас на нашем себя и внутри авито и поэтому.

Если кто-то создаст п р то он может внести какой-то код который запустится внутри vito и он будет можете что-то. Там не secu на сделать поэтому пока мы не принимаем пол request: И и думаем как сделать так ну типа в общем купить себе свой сервер который будет не внутри:

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

Это никого не оттолкнёт но если кого-то отталкивает тоже пишите мы ускорим этот.

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

Давайте два вопроса вот эти просто уже обсудим там не затягивать. Я не буду ничего выбирать вот тут лайки есть лайки все сказали?

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

Следующий докладчик подходите к сергею издавайте другим докладчику можно будет задать. Вопрос все всем спасибо мы буквально нам надо 5 минут. Чтобы переключить на следующего докладчика далеко не уходите скоро продолжим да и давайте еще а ну сервис этап и собственно.

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

Мы с вами будем говорить о motion way out о том как он может вам облегчить жизнь при разработке. Анимации интерфейсов будет много анимаций но прежде чем начнем давайте небольшой опрос:

Кто здесь вообще знает что такое моушен way out меньше. Но и на а кто уже пробовал его в каких-то примерах. Использовать там хотя бы в тестовых как-то потрогали в реальных приложениях вот он энтузиаст.

И который не боится альфа и бета версии отлично ну в целом мой доклад как раз больше.

Будет полезен тем кто что-то знает о муж но я вот что-то уже пробовал но не знает или не пробовал как но не никогда.

Не делал реальные интерфейсы какие-то и может быть даже не понимает как его полезно.

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

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

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

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

Out google его анонсировал впервые в 2017 году но до сих пор он еще находится в бета-версии в целом можно сказать что. Основные функции у него уже стабильные ну конечно это еще не релизный вариант что вообще google хотел добиться. Создавая этот новый инструмент неужели нам мало было инструментов android из анимации кто делал анимации представляет какой там зоопарк иногда даже сложно выбрать:

Первое что он решил это вынести все это настройка. Анимации skoda в конфигурационные файлы но это не только?

Чтобы вам просто поменьше кода писать это еще потому что они хотели прекратить motion & decker туда весь графический редактор который должен работать конфигурациями второй момент что. Действительно инструментов куча некоторые из них выполняют одни и те же задачи не совсем понятно даже какой применить поэтому они хотели. Создать некий такой современный инструмент объединяющий множество функционала?

До заменить layout transition транзишен менеджер частично координатор layout в чем-то покрыть ну и обычной property анимации: Объект анимации вот это все тоже покрыть этим инструментом это все хорошо кроме того.

Что заменить старое они конечно решили надо добавить.

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

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

Релизный android студии недоступен но в канале был девы уже можете пощупать кое-как. Его в принципе базовый функционал работает то есть какие-то state и вы там можете создать!

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

И верим google нас порадует поэтому пока работаем по старинке в классическом варианте с xml никами самый ушлый. А вот это не что иное как просто ли я вот наследник constraint а и в нем никакой анимации но не с точки.

Зрения вот xml и не происходит вы просто располагаете там view также как располагали их constraintlayout сюда важно чтобы в росту view. Были указаны орешнике насчет привязок и расположение это на самом деле по на ваш выбор вы можете?

Как в самому ялте это делать так и в motion сцене а вот motion.

Сцена это такая важная часть это по сути непосредственной спутник motion layout а где происходит вся магия.

Вся настройка анимации именно там вы будете описывать состоянии свои переходы привязывать жесты то есть вот анимация именно там именно?

С этим файлом мы в основном сегодня мы будем работать то есть точки зрения кода мощного. Я вот мало чем отличается да просто указываете? Ссылайтесь на свой машин сцен касательно motion сцен в принципе есть два основных?

Варианта на данный момент вот без редактора: Как с ними работать первый классический им но он потом впоследствии будет задействован мощная.

Гитаре в чем тут суть по сути вы создаете переход где указываете хочу из одного состояния? Перейти в другое эти состояния вы прописываете прямо в этом же motion сцене с помощью constraint сетов constraints эта это некие такие наборы свойств. Line их для ваших фивах где расположена какие размеры куда привязана после!

Такой слепок с вашего йавата ну немножко в измененном виде то есть набор свой сделаете для начала. Набор свойств для конечной позиции и ваш транзишен сам прочитает как надо их перенести если сможет конечно что здесь на что надо обратить.

Внимание вот именно в этом способе помимо обычных свойств и злая а то вы можете еще добавлять кастомные атрибуты? Подробно них я расскажу позже но на текущий:

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

Таким образом если вы допустим motion выявить уже разметили всю вашу сцену и разрисовали потом просто для этого в.ю. решили один параметр здесь изменить. Перетрется все что вы написали для этого в you в motion выявить это надо учитывать.

Когда вы это делаете и чтобы этого частично избежать google предлагает вот такие группы тегов где вы можете менять не все свойства: Перетирать а перетирать только группу например хотите изменить только виде билете указывайте только группу визе без properties этом указываете визе бал также полезно может. Быть свойства дерев constraint вам где вы указываете!

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

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

Что вас какой-то сложный layout и вы его чисто в коде вот эти constraints все привязки. Делаете и сложно будет такую красивую какую то анимацию таким образом написать потому что пока не от редактора! Чтобы этого избежать можно использовать второй вариант пока выглядит все так же но только в constraint сетах вы используете непосредственно.

Layout и не амиду ну да стартовых конечных! Все так вы используете не constraints этого я у то пишите их обычным способом с графическим редактором!

Все удобно накидываете минус больше файлов но как минимум один. Можно заменить поскольку а можешь ну я вот это constraint. Уже чуть лучше стало главный плюс конечно наглядность вы делаете это состояние так как вы делали до этого все свои разметки основной минус?

Avitotech on tour

Отсутствие возможности кастом атрибута подложить но это решается и мы в следующих примерах с вами.

Увидим как транзисторов есть и другие свойства но документацию сейчас мы не будем перечитывать наша основная задача на сегодня это ключевые кадры и работа. С жестами на этим мы и будем заниматься сейчас основной части когда будем разрабатывать интерфейсы давайте начнем с первого? Примера это такой типичный вариант с лопающегося ту борода на какого-нибудь profile screen а вот по сути.

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

Нужно понять что происходит на экране здесь. Схема в общем то стандартная мы должны определить начальное положение конечная каким образом он осуществляется все изменения.

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

Тайтл все это начинает нас схлопывается вверх уходить исчезать а сверху в это время проявляется постепенно тулбар вместе с новым тайтлом: Также еще можно заметить что меняет цвет кнопка бэк но и все это провоцируется с кровом листа давайте начнем эти крайние.

Состояния мы рисуем здесь вот основная задача корректно от рисовать вот эти вы я вот и чтобы transition автоматически! Правильно все про анимировала соответственно если вы знаете что ваша вы знаете что ваша шапка должна уползать.

Вверх то вы ее вверх суда и перри привязываете. Вот если знаете что элементы должны сейчас но делайте.

Их невидимыми в конечном состоянии менять меняться цвет меня эти цвет и так далее то есть все это прочитали продумали и пробуем привязать транзишен. Посмотрим что получится из коробки транзишен написали сказали хочу чтобы это работало.

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

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

Аргумент touch pen крайне как вы сейчас!

Увидите анимацию вас поменялось все стало работать практически как вы ожидаете в чем суть стать н крайне. Согласно документации этот параметр меняет вашу анимацию и скорости выполнения: Таким образом как будто бы вытянули бы за один из краев указанного view то есть в touching рейде вы указывайте usa которые.

Типа вы тянете таченко сайт его сторону здесь сторона не указано потому что топ здесь сработал. По умолчанию касательно вот это view это не значит. Что ваш touch будет выглядеть так как будто вы вот прям действительно коснулись там верхней стороны листа и начали тянуть вас работает.

Любом месте но именно по расчету анимации по скорости. И заполнения относительно вашего движения вот этот параметр будет меняться но здесь: Он использован большей части чтобы просто починить вот этот!

Косяк со со сколом теперь ничего никуда не пропадает и все скроется по жесту как и планировалось давайте проанализируем: Что ж у нас сработала из коробки вы помните. Что мы просто накидали начальный конечный vaio утки 0 itransition 0 не писали видно что позиции.

Элементов сработают по умолчанию constrain привязки изменится размер элементов тоже будут. Меняться прозрачность и вези билете если вы хотите чтобы объект просто фрейдом и сейчас используйте invisible если чтобы схлопнулся: По скиллу ее сейчас в своей дам то голову.

Это то что получилось сама давайте посмотрим что не сработало самого видно что кнопка: Бег не перекрашивается хотя мы tint накидывали а еще видно вот здесь такой сумбур из объектов. Сразу два тайтла у нас там аватарка?

Просвечивает то как-то стрёмно и все выглядит мы хотим лучше так как у сына маминой подруги чтобы было попробуем: Добиться этого начнем с простого покрасим кнопку здесь как раз и понадобится те самые кастомные атрибуты про которые я сказал.

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

Иконки справа вы увидите какие еще аргументы можно использовать какие типы значения можно здесь использовать помимо этого вы можете покрасить например background или текст.

Кавер вот текст коварном пригодится в следующих примерах обратите на это внимание?

Что произойдет а также так давайте посмотрим внимательнее что здесь не так не так здесь то что мы с вами это все написано для constrain.

Сетов а мы выбрали с вами другой способ создания motion сцен без constrain сетов он просто лейаута! Рисуем и аргументы атрибуты кастомно использовать ним нельзя но нам могут помочь ключевые кадры изначально. Они как бы сделаны чтобы менять какие-то промежуточные состояния анимации но никто не мешает вам использовать их на начальном.

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

Кнопками то есть все сработает из коробки но вот эту часть мы как бы еще с вами не поправили: То здесь видно что анимация не синхронизировано все происходит равномерно одновременно и накладывается друг на друга мы хотим сделать круто. Чтобы сначала скрылась одно потом постепенно проявилась другое как был изначально примере и тут тоже пригодятся ключевые кадры если простыми:

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

Кадре прозрачность тоже поменять вас мог возникнуть. Вопрос а почему здесь какие появились альфа или скейлы и до этого я говорил что visibility просто меняете на invisible вагоны все это сработает из коробки но google.

Почему то решил что вот в ключевых кадрах не будет.

Работать везде белить ее надо для этого применять! Альфу и скейлы и тогда все получится то что вы ожидаете.

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

Уже схлопнулась до появления тулбара текст тоже туда зашел под тулбар ничего не уложилось в принципе можно лучше но не сегодня сегодня. У нас на это нет времени касательно этого примера еще один интересный. Аргумент поведение интервал из be he wears скардино торгуя у то наверное многие из вас знают что такое ну вдруг для тех кто не слышал!

Или не видел это когда у вас есть slope вычистил. Бар вы пролистали вверх но при скроле вниз вас шапка вылезает сразу. По первому жесту они дожидается возврата к 0 этому что здесь важно то что этот аргумент в принципе в каком-то.

Виде появился мощного я у тебя значит google все-таки. Намерен частично заменять координатор layout этими анимациями раз он его сюда добавил подытожим в первую часть мы увидели что муж но я вот умеет анимировать. Из коробки сам как привязать жесты как использовать кастом атрибуты в частности для работы с цветом зачем.

Ключевые кадры и вот центр rose by heather тоже посмотрели пример давайте: Глянем второй пример он специально мало чем отличается от первого чтобы сфокусировать ваше внимание вот на этой части с тайтлом то что. Это тоже очень часто кейс для многих интерфейсов где нужно переместить.

Тайтл изменить его размер и цвет на вот этим мы сейчас и займёмся пробуем нарисовать наше состояние? Видно что мы просто перед привязали тайтовым!

Изменили его размер и текст и попробуем запустить поглядеть что из коробки выполняться видно что текст за ними. Рвался на плане позиция до позиция сани мира валось но цвет и размер не поменялись касательно цвета:

Я говорил то же самое с кастом атрибутами просто их используем и все у вас отлично перекраситься. А вот с размером сейчас разберемся подробнее в чем тут суть текст says the same и 1 мысль что вам может прийти:

В голову также использовать кастом атрибуты чтобы поменять. Текст айс но если вы это сделаете что вы увидите на этот задержка будет заметно или нет но на реальном приложении. Отлично видно что анимация выполняется с такими рывками says итеративно.

Выставляется и это выглядеть не очень красиво анимация или органа более того прямо на том же билде просто перри открыв activity вы можете получить! Вот такую фигню у вас просто текст будет пропадать обрезаться.

Это связано с чем при изменении размера контейнер тексты. Не меняется и google android при рендеринге просто может решить. В определенный момент увеличив текст об я не упираюсь в этот контейнер я переносится перенесу на новую строчку.

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

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

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

Работает как бы так как мы и хотели знаю может здесь кто то знает какой то еще способ как размер именно текста за анимировать но я очень тоже. Не знаю что найдете скажется давайте еще немножко углубимся в такое война и задротство персики. Pixel perfect слева вы видите то как у нас действует анимации.

Сейчас да она на самом деле она равномерно. Выполняется линейно но хотим мы так как справа чтобы она чуть быстрее заползал автоломбарда пока это думает если с точки зрения! Анимации говорит что здесь мы хотим получить чтобы наш объект какой-то завершил:

Свою анимацию чуть быстрее 100 кадра чуть быстрее конца анимации на этим мы будем заниматься: На чтобы это сделать надо понимать что можешь в ялте вы можете менять координаты объектов! Не только в абсолютных величинах но и в относительных.

Для этого используются такие координатные системы координат всех у всех у них оси измеряются от нуля до единицы грн против.

Привязано к вашему муж но я вот у как к базовому view дельта располагается в диапазоне от начального положения вашего. Объекта до конечного и посвятив почти как дельта: Только у него усик соединяет начальное и конечное положение вот как бы понимаю как они располагаются!

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

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

Из примера два мы поняли каким образом можно анимировать текст размер?

Текста как изменить относительное положение объектов и для чего вообще нужны вот эти системы. Координат как их применить давайте посмотрим на наш следующий пример это что-то вроде интерфейса youtube и а где есть scroll листы и такой виджет: Который будет раскрываться сейчас на весь экран по нашим удача на картинка в картинке.

Также анализируем что здесь должно происходить нижняя.

Панель должна скрыться вверх а вот этот виджет просто растягивается на весь экран и почти все так просто. Только тут есть еще один нюанс мы хотим добиться того что вот этот во первых чтобы все строилось и сзади до независимое.

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

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

Между ними и просто сказали давай по свайпу его двигай чтобы у нас сзади scroll все наши элементы:

Работали независимо нам надо ограничить регион в котором действует на штат для анимации для этого используется? Используется touch 3g найди параметр и мы указываем только. Вот этот топовый контейнер с имиджем да чтоб только там работал так это и дает.

Нужный эффект также вы можете заметить ну покрайней мере в реальном приложении. Вы бы это заметили что когда вы отпустите сдачу. Вас так вязкое медленно завершается анимация этого дефолта vaio скорость в машину ялте если вдруг хотите ускорить сделать более динамично:

Уменьшаете параметр макс что тогда все будет речи просто тут на проекторе с задержкой на самом деле все гораздо быстрее. Это то что у нас получилось слева.

То что у нас получилось сейчас справа то что мы хотим получить здесь как раз показана разница между равномерным раскрытием картинки по всем параметрам. И раскрытием сначала в ширину потом высоту если разложить на свойства объектов то видно здесь. Что что нам нас сделать каком-то там двадцатому кадру ширину почти до максимума растянуть объекта.

Android development

Попробуем создать такой ключевой кадр где на двадцатом. Кадре мы ширину в процентах делаем 85 что из этого выходит ширина действительно? Увеличивается вот только центр как двигался равномерно из левой точке в центральную верхнюю так и двигается.

И соответственно шимича просто вылезает из контейнера это не то что мы хотим чтобы это исправить надо подвинуть центр имиджа вместе: С расширением ширины добавляем сдвиг по иксу здесь в дельта координатах. Это работает кстати и получим ожидаемый эффект сейчас получил получили посмотрели как завершить о и изменить.

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

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

Да там смысл тот же раскрывается какой-то контейнер а внутри! На самом деле лежит фрагмент покажется фрагмент 2 видно что вместе с вашим движением.

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

К любому сайту но вот нам прогресс. Важнее здесь это так для общей информации можно задать listener где все стоит и будут.

Слушаться и так же есть вариант с триггером.

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

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

На ваш вкус можете там через интерфейс посетить можете через какой de guitare взять.

Его не важно по сути здесь основная задача именно то что в тот нуж но я вот посадить прогресс из нашего motion way out тоже. Самое можно сделать не обязательно для разных фрагментов это может быть просто.

Какая-то более глубокая иерархия вашим одном вилл потому? Что можешь ну я вот он действует только на прямых чертов? С плоской иерархия если вы вдруг по каким-то причинам сделали вложенную.

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

Функцию views в чем здесь соль в.ю. эта функция вызывается когда при проходят анимация вот этот ключевой: Кадр ульев эти функции должны быть прописаны в самом классе и более того. Они еще должны быть без аргументов на самом деле во всех примерах.

В интернете пока только скрывает floating action bottom с помощью этого этой вещи и честно говоря салюту. Даже и не знаю для чего еще это может быть полезно вот именно в таком виде даже если там extension напишите для везде билете.

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

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

Как триггеры будут использованы у нас у нас в лице мире есть кал бег на триггер мы можем посмотреть. Прямо его айдишник то есть понять какой триггер сработал увидеть в какую сторону:

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

Ведь выдвигается панель она может зафиксироваться в промежуточном состоянии стоит 2 и дальше пройти в третье: Состояние полностью раскрыта и это делается вот через два таких транзишен а с одним и тем же жестом просто плавные.

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

Где они свои поля карточки не доводят свои понты состояния? Два и после этого просто вас карточка автоматической. Анимации улетает за экран но они презентации будет пошарь иной.

Вы сможете подробнее это посмотреть там будут еще примеры того по 4 части смотрели как поработать из кода для чего нужны ли scenery:

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

Вариации та же картинка в картинке какие-то collapse toolbar и различные причем вот здесь. Отмечу вот эта анимация в шапке не знаешь притормаживает она реализована тоже муж но я у там это не приготовленная от дизайнера анимация. А просто вот так же из двух сцен анимированные объекты с представьте если бы вам раньше.

Дизайнер сказал я вот те не буду готовить такую анимацию.

Ты и сам нарисую выбивала далеко не? Послали а с машину java там в принципе не так и смертельно. Это то есть если только с выдержки у вас есть то пойдет сделаете бага drop.

That уже обрати внимание бак дроп это новый ей паттерн от материал материал дизайне для него нет еще компонента готового. От google но муж ну я у там спокойно.

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

Сцену анимировать никто не мешает ой там в листе вам тоже сделать с помощью. Motion ул я вот и какие там свайп ту что-то реализовать.

Давайте концу двигаться какие же положительные стороны у этого инструмента но лично я по крайней: Мере вижу на мой взгляд этот инструмент довольно прост на старте то с него легко пойти его концепция понятно будущем?

Когда будет editor у него ещё и огромная визуальная отдача будет принципе она и сейчас есть если делать вот таким способом. С не надо что-то там с цифрами какими-то. Работать куда-то перенаправлять какие-то параметры и не дай бог у вас анимации будет нелинейная вы взбесить.

Из тут смысл ясен кода меньше да это тоже хорошо качестве наш код от лишних настроек все в xml то что отлично работает ну не ответь.

Но достаточно хорошо работает автоматическая анимация между двумя сценами просто. По транзиту много чего из коробки делается сразу это шикарно.

Более того но вы можете сказать что в transition менеджера что же была сцена были но здесь это делается лучше например? Анимация цвета у вас работает без дополнительных его литров а размер текста ну хоть и не идеально но анимируется без написания собственного transition? В транзишен манджари пришлось бы руками это все писать еще из таких как бы уникальных преимуществ работы:

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

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

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

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

Экранов применить а теперь где применить по сути как с любым инструментом.

Не надо впадать форматов фанатизм какой то типа.

Google сказал это круто и модно давайте его пик нём везде где только можно лично.

Я бы например не стал его использовать если вы просто хотите у одного объекта какую-то одну property. Про анимировать какой-то вот мега простую анимацию такую сделать.

Либо изменив там везде белить у вас должен пройти какой-то транзишен по исчезновению! Элементов то что проще сделать через layout транзишен это который. Понимает анимейт твоя очень же своя ведь если помните или транзишен фреймворк здесь имеется!

Ввиду бегин делает транзишен где вы просто меняет свойства: Объекта он сам транзишен делает то есть где вот это проще конечно.

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

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

Крутую анимацию накрутить и не сильно запариться везде где нужны свои паи scroll и тоже. Есть потенциал этого инструмента в скобках видите ей паттерна и которые связанного с этими жестами!

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

Делать не надо стандартный элемент используем стандартно но если. Вы видите он что он кастомизированный и какой-нибудь вот collapse toolbar чтобы или кастомизировать сложную анимацию нелинейную движением с кучей объектов. Представьте сколько времени и сил вы потратите прокидывая все вот эти вот изменения а если соответственно можно выявить вы сделаете гораздо быстрее слива.

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

Мой такой итоговый список куда стоит куда не стоит здесь вы можете? Посмотреть какие полезные ссылки с другими примерами сверху мой сэмпл где есть текущие примеры некоторые адаптированные из вот этих и еще кое что если интересно?

Презентацию по шарит можно быть кликнуть контакты на этом все спасибо за внимание спасибо андрей мы будем мы будем принимать.

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

Не следил но по визуальной производительности я каких-то лагов не замечал вот в этих примерах где она свайп:

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

Не было замечено но тестов в специальных я не проводил спасибо там был пример с youtube лэйк? Приложения можно на него можно да конечно да вот что это за цифры магические откуда их взять от процента! Или еще справа я вижу картинку уходит за пределы боялся сначала сейчас когда анимируется давать посмотрю он не хочет нам показать вот она вышла как его глаза.

Шилась я здесь просто немножко до поленился на самом деле вот в первом примере этого нет не думаю что: Кто заметит вот здесь этого нет я здесь лучше подогнал скажем так вот цифры на самом деле.

Подбирал на глаз то есть я просто здесь.

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

Twice это как бы его процентная ширина от начального состояния довод его финального. То есть он финально будет вот так растянут по всей ширине и я его типа. На 80 процентов растягивая от урс яндекс.

Android разработка

Это ну как я показывал до этого. Как я показывал до этого перемещения по оси x в нужной системе координат здесь используется по умолчанию дельта. Система координат поэтому просто по иксу как бы до его финальной точки то есть дельта но у нас от начальной:

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

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

И сложно мы делать не будем и пытаемся донести что сейчас вроде уже можно можно давайте придумываете но поскольку open source. Я думаю все кто работал понимает что до анимации там время доху и деньги. Доходят дай бог там где то в конце то здесь такие нюансы друзья:

Да если уже дискуссия давайте euch широкие во время значит брейка сейчас следующий вопрос нас отсюда! Привет спасибо за доклад вопрос такой у тебя тоже использовали мы ушел я вот но столкнулись с такой.

Интересной штукой что когда используешь больше трех к атрибутов он иногда падает хорошей ни разу вообще не видел: За все время работы но я работал с беты-3 из бета 4 с более ранними я не работал? Но есть возможно в каком-то особом кейси но у меня натыкались на коне делали нет нет не был the cookies именно несколько?

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

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

Этого динамическое изменение размеров контейнера то все будет о'кей вопрос больше мне кажется ну я в интернете видел точно: Примеры где у людей видео воспроизводилось а в похожих анимациях да да да но там не совсем youtube кейс был но смысл тот же картинка в картинке. Раскрывалась я уж не знаю не помню они там их за использовали или что другое вот там то есть вопросы.

Спасибо за доклад вопрос такой поддерживается бенч и жесты пин жест нет сейчас не поддерживать из коробки. Там только клик и свайп однонаправленный жест ещё такой вопрос вот наскок вообще нормальная практика.

Привязываться к фрейм позицию то есть ну там с одинаковой скорости: Будет такой анимации проигрываться на разных девайса еще раз к композицию flame позиция. Есть там на двадцатом кадровика ширину там поменять на 20 ну как сказать это же вот ваша анимация на фиксирована от 0 до 100.

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

Вот там же палец двигалась разной скоростью вашего анимацию и все скрывалась? Одновременно например одевайся уже 120 держится у них там и 60 кадров в секунду 120 секунды и у них там оператор можно фреймрейтом как бы самого крана. Не связано то есть это какое-то внутреннее грузы до этого просто?

Внутренняя такая относительная шкала воспроизведение вашей анимации от начала. До конца в этом она по силам работает везде ещё вопросы есть у кого есть. Я знаю кто метит он уже вопрос интер поля tor можно подключить какой-нибудь другой?

А сейчас хороший вопрос там есть из коробки. Разные интер поля тары типа такое esit оу да вот это все это точно есть по моему был способ подключить свой честно я? Сейчас подзабыл с нтв вы просто в этом докладе интер:

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

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

Что варю я видел как это делается в xml вы прямо там пишите условно чуть ли не математическую? Функцию который описывается ваша но сама интерполяция где какой кадр должен куда сместиться:

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

Перерыв можно перекусить пообщаться ребятами из платформы нашей в в той зоне сюда возвращаемся в 4:30 продолжаем.

Доклады далеко не уходите люди в трансляции также не отключайтесь мы скоро вернемся друзья.

Продолжаем наш митап и собственно докладчик тоже и завита андрей. Данилов и кстати как и сергей хотя он работает с ним в разных командах андрей также не занимается продуктом совершенно поэтому он собственно сегодня: Расскажет нам про дизайн систему андрей давайте всем привет меня зовут андрей данилов работаю компания vitra и занимаюсь.

Дизайн системой собственно сегодня ней пойдет речь я расскажу. Чем это вообще делаем какие технологии используем схеме проблемы сталкиваемся и зачем.

Зачем это все вообще нужно но перед тем как начнем у меня вопрос! К вам как по вашему мнению чем занимается команда дизайн системы.

Или чем должна заниматься что первый поход голову дизайном картинки компоненты окей да на самом деле я просил. Целую кучу знакомых коллег и все они считают что мы либо красим? Кнопки ли бы мы вообще ничего не делаем.

Что очень далеко от истины потому что ну никто бы не стал выделять бабла на отдельную команду без каких-то.

Внятных целей а у нас эти цели есть их 2 это консистентной и управляемость что имеется ввиду консистентной этапа?

Единообразия в первую очередь система единообразие а я то есть внешнего вида иначе говоря. Всякие цвета размеры шрифты компоненты по приложению должен выглядеть одинаково и то же самое касается и x а то есть поведение.

Также должно быть одинаковым на всех сторонах приложения ну наверно не стоит объяснять зачем это вообще. Нужно но может возникнуть вопрос ну типа я нормально.

Адекватные разработчики я все делаю по макетам откуда вообще возьму возьмется ни консистентной? А на самом деле каждый раз когда вы пилите новые краны или там. Редизайн какой-то делаете она вас просто накапливается и происходит примерно то же самое что и сатир долгом только:

Если стив долгом вы все понимаете что здесь делал фигура а там вообще говно! Код и нужно повесить тут ушки нужно потом все это дело как-то исправить то сколько?

Системность и такого нет и она просто копится: С годами и все то есть если вы посмотрите. На те экрана которые выпилили там скажем два года назад и сравнить с тем экраном которые вы сделали вчера вы заметите.

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

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

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

Логично что когда дело касается android то управляемость у нас есть всегда ну или практически всегда. Так что с управляемостью нас как скульптуры не бывают. Отсутствие культуры бывает либо низкое либо высокая так из управляемость она может быть либо хреновый когда мы вынуждены.

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

Скажем для android ios сразу короче говоря чем меньше действий нужно сделать.

Для смены параметров во всем приложения тем выше управляемость. Может возникнуть вопрос ну типа зачем это надо а не делала в чем проблема сильно коррелирует. С консистентную то есть если у нас есть хорошая управляемость мы можем нивелировать consist.

Не консистентной сразу поменять все на многих храмах и развязать руки своему. Дизайнеру который не хочет делать не консистентной ему приходится поддерживать уже тот и месте дизайн те сотни кранов которые уже есть и поэтому делаю сейчас:

Не так хорошо как мог бы с управляемостью. Можно сразу все поменять и сразу будет приложение модом красивость и такое собственно в этом.

В этих целях одно из таких основных отличий команду и дизайн стрима других то есть ну знаете есть продуктовый команда. Который что-то делает для пользователя платформенной которые дело что-то для разработчика и есть команда?

Дизайн системы которая делает и для разработчиков и для дизайнеров то есть мы как-то должны. Балансировать между интересами разработчиков и дизайнеров и выглядит выглядит это примерно вот так ok чё нам вообще помогает в нашем нелегком: Деле ну в первую очередь эта библиотека компонентов я думаю библиотека.

Компонентов есть у каждого из вас приложение в каком-то виде в общем случае это выглядит примерно так разработчика нужно напилить какой-нибудь экран и надо. Сделать kin two юхи и он смотрит ну типа будут этим you happy использоваться если нет оставляет фичи модели а если можно то кладет библиотеку компонентов.

Ну кажется что все ок но на самом деле эти компоненты бесконечно копятся и в итоге?

Вас папка с билете компонентов крайне жирная плюс добавляются очевидные.

Проблемы ну то есть не контролируем изменит компонента.

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

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

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

И тем же ваша библиотека компонентов просто умирает то есть конечном итоге вы понимаете что там настолько. Уже помойка что проще ее забыть как страшный сон сделался заново хорошо в итоге компонента не прекратится объявляется новый. Модуль в котором все должно быть хорошо но хорошо там не будет вы все тоже самое только:

Позже как вы думаете сколько итераций google это компонентов было волита кто думает: Что 2 о никто не думает а кто думает что три кто думает что 4 а кто думает что.

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

Должно быть черным по белому написано что компонент умеет делать. Он не умеет делать он должен делать где он может использоваться где он воспользоваться не может убили дико компонентов обязательно: Должен быть года умер если за библиотека.

Компонентов никто не следит туда как раз будут пытается не контролируем изменения неконтролируемой форки так далее так что ну и плюс человек точно будет знать какие. Компоненты вообще есть он подсветят это вам на пол request их скажу зачем вы 11 кнопку напилили. Уже есть готовый и вот спорить и и короче:

Говоря если у вас нет куда вы не то библиотеки компонентов найдите ответственно ну или хотя бы крайне библиотеку компонентов к если эта часть. Дизайн систему должен пушек дизайнер иначе чуда не произойдет потому что дизайнера порой?

Трудно объяснить что не нужно из этого остов в 10 дбм лепить новый компонент давайте уже смиримся с тем что есть и используем имеющихся но другой. Дизайнер может прояснить что все в голове другого дизайнера так что если у вас есть команда. Не системы ваш дизайнер должен быть проактивным он должен бегать и промывать мозги всем остальным дизайнером как делает?

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

Репе и суть того что это просто приложение. В котором есть все вообще в юхи которые есть? Приложение перри использован с реальными примерами использования.

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

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

Приложении несколько тем это удобно и компоненты могут очень сильно отличаться по внешнему виду поэтому это у кого оправдан.

Андроид разработка

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

Надо рассказать о масштабах от того с чем мы имеем дело ну во первых у нас моно репе. Реально 3 приложения ни одно это не только вид это еще домофон то фототека во вторых у нас 313 продуктовых модулей. И 69 модули в гитхабе в git commit а то о чем сергей мышцам рассказывал.

На первом докладе а там в основном мы на рейке почти. 900 тысяч строк кода и около 60000 гитхабе плюс почти? 1902 был ресурсов и почти 1600 a way out ресурсов.

Но вы наверное поняли каково делать рефакторинг lavita на самом деле чтобы хоть как-то облегчить себе жизнь у нас есть довольно. Хитрая схема она выглядит примерно так то есть нас есть какие-то платформы?

Независимые спецификации которые вынесены в джейсон там как раз сети цвета размера и прочее мы это джейсон кормим отдельной! Проги которые у нас написано на джесс.

И она свою очередь получаемых генерирует уже что-то платформа зависимое для ios и android соответственно для ios. Xml отдается свифт файлы ну естественно дизайн таким вот эта программа. Она все генерит не только для разных:

Платформ мной и в пределах одной платформ для разных тем как это выглядит вообще!

Ну например есть coin стиль типа праймари лардж мы указываем что там высота. Должна быть такой the background должен быть там таким-то в нормальном состоянии в подсвеченном состоянием. Сзади сцепленном состоянии какой должен быть цвет реплей так далее а скармливаем получаем?

Уже платформа зависимый класс который вполне себе можно сразу вставлять использовать ну кажется все просто какие плюсы. Такого решения но во первых идеальную управляемость мы меняем только taken и а дальше все сама генерится простоит надо вставить и все короче говоря: У нас изменение по сути в одном месте весь be better place генерируется.

Бойлер plateau там просто дофига вот представьте себе есть стиль кнопки у стиле?

Кнопки есть там три размера это уже перемножается есть еще целый куча тем иначе говоря там реально сотник сомелье плюс еще цвета там генерируются:

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

Моделью как-то все делать локально но когда надо выносить какие-то! Изменения на уровень всего проекта то приходит к нам и говорят но типов помогите позязя то он сделает все это тут мы становимся каким-то. Бутылочным горлышком но в принципе такие задачи возникают не часто.

Поэтому в принципе с этим можно жить но и требует серьезной доработки для автоматизации процесса потому. Что сейчас это сделано далеко не идеально по факту нас есть три репозитория а мы что то пусть. Он сначала дизайн taken и потом запускаем это локально получаем xml свифт файлы и потом мы вынуждены еще пол request.

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

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

Но и для темная тема а также нужно! Будет что то дорабатывать потому что не всегда можно обойтись одними атрибутами кстати вы используете атрибут а в проекте кто использует так ну не так много.

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

Вы можете подменить реализацию все у вас будет. Хорошо но всем наплевать все любят караколе цвета а потом это дело.

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

Перри определяете ну вот здесь например просто переопределены серые цвета работать в принципе сначала. Непривычно придется написать какими такие аппараты и методы но в конечном итоге работа будет не сложнее чем с обычными цветами то есть особой! Разницы написать контекстом red color и указать идентификатор цвета не сложнее чем написать концерт гадко робота например указатель нотификатор атрибута зато это все будет!

Зависить от темы перекрашиваться когда надо и так далее с xml им еще удобнее работать просто ? к и атрибут подтянется!

То есть и тут написано black но блин в светлый. Цвет в темной теме например этот блок может быть в этом легко в этом довольно удобно.

Какие минусы ну во-первых многим попросту не привычно просто надо взять и привыкнуть уже наконец а если не за ложится. На атрибуты в начале рефакторинг долго в шов вы понимали вави то я уже показывал. Там типа 1100 play all the в тысяча девятьсот дрогнул ресурсов.

Чтобы это дело а три факта риц и не потратить. На это всю свою жизнь мне пришлось обложить в питоновские скриптами!

Здоровенными и где то за неделю еле-еле это удалось но опять же мы самого начала. Стреляли себе в ногу используя хардкорные цвета не работает до 24 пил вектор драббл. Атрибут а если там есть fill type или хоть один градиент это на самом деле большая проблема потому что во первых android!

Студии не идеально когда вы кормите свою бляшку перегоняется.

Вектор драббл она вам этот fill type подсунет часто там где он не нужен и можно и но при этом:

У вас атрибута там в vectra дров был работать не будут даже ссылочные цвета не будут и там реально превосходит а иногда!

Этот скилл так можно убрать иногда визуального редактора вам покажут:

Что выбрали fill type у вас все поломалась самый тупой что иногда он этого не сделает. А будет показывать что все хорошо вы скомпилить и а ваша vector2 угол превратился в тыкву это очень грустно.

С градиентами вообще ничего до 2 4 пи не работает он только хардкоре и никак иначе причем hard ходит. Если нужно например для поддержки тёмной темы приходится.

Использовали firelit и весь хардкот копировать в папку скажем double. Night в принципе жить с этим можно.

Но если еще несколько тем для нескольких тем придется делать то же самое но с другой стороны тут особых проблем нет переключением! Все равно займется сам android и как бы об в принципе общем все что нужно знать про тёмной темы то квалифаер. Might и данная тема все я не знаю чем там иногда целыми.

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

Наверно фирм есть кое-то текучка новые люди приходят старуху это так далее и новые людям! Не очень-то понимают как принято работать почему.

Есть те или иные решения не просто работа так как привыкли и никакие он вардинге тут не помогут потому что человек. После он вардинга забываются сразу собственно от поломок логичнее всего использовать unit тесты и ой тесты ну наверное их и так плюс минус:

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

Цветов xml то есть всякие цвета android color white или там решеточка ф-ф-ф-ф-ф-ф:

Не прокатит такую они сразу просто поваляться на этапе туре квеста. И запрет hard кодов 1 типа color white! Или collapse там парс colors ким the hard кодом ну понятно зачем это делается хардкор от каждого.

Цвета не будут перекашиваться никогда и это в принципе сама.

По себе проблему также есть проблема в том что если вы используете всякие цитате по которые начинаются собак android то стоит? Помнить что некоторые венгры их весело переделывают например на comin samsung. S4 можно увидеть что android color white будет не ф-ф-ф-ф-ф-ф-ф 5 5 5 то есть внезапно?

Вы смотрите на одном девайсе у вас и серая они бела как должно. Было быть ходят легенды также что на каких-то хуев ских планшетах android.

Color транспорт зачем-то сделали тупо белым короче эта боль и хардкорный свято вообще никогда не стоит никому использовать а сам по себе ленты. Довольно простое занятие то есть по факту все в логик и вот в одном методе в котором! Мы получаем нужную ноту и поставка работаем с ней как строку за строкой проверяем что-то вообще есть если вы нашли?

Предмет того что вы искали сразу выкидываете какие ошибки и так далее какие плюсы это дешево в разработке если вы будете писать. Кастомный линд вряд ли вы потратите больше.

Денька 2 даже слегка до этим не занимались инструмент гибкий.

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

Можно сделать самому это удобно и ну и линд работает как локально так и на сей всегда можно. Если что и локального запустить особенно если проект небольшой но есть минусы на большом проекте проходит link нереально долго! И сильно жрать ресурса чтоб вы понимали в авито сборка холодная минут 15 идет ollin.

Проходит еще дольше а часто у меня лин просто подвисает?

И можно ждать часик можно ждать 2 и как-то при ждал не помогло в общем на маленьких проектах это еще прям хорошо.

Заходит на больших это только вот на этапе pull request родят она сияет но он проводится там. Все хорошо на локально никак практически невозможно прогонять только!

Конкретный лин то есть линд написали думаете.

Что все хорошо сейчас буду прогонять только его а нет конкретно лин прогонять нельзя приходится прогрессии android ленты вообще. Это долго а чтобы было быстро можно использовать standalone линд но он работает. Только с конкретными файлами а на уровне проекта вы там нифига не запустить!

И потому что как только standalone винт увидят что это graduate проект он сразу выкини вскипает ограду проект давайте. Запускаете gradle линд а меня оставь в покое это тоже как бы не очень удобно а еще одна вещь которую.

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

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

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

Что вы что-то поломали короче говоря любуется на поддержку! Тратить значительно больше времени чем могло бы быть скриншота сами. По себе pixel perfect ну типа миллиона запустили миллион раз такой же результат.

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

Сейчас по сути только одна такая известная валите-ка для скриншот ных тестов это библиотека от facebook! Который так и называется скриншот с android на самом деле она не плохая у нее есть удобный синтаксис?

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

Это можно использовать так что если нужен reporting придется еще в речку харуми вставлять в которых разработал со скриншотами тестовых. Обычными но умеет делать хорошие reporto coins пример тесту можно посмотреть.

Тут вообще никакой магии нет получаем контекст и с контексте своим контексте wrapper чтобы просунуть туда текущую тему создаем кнопку прокидываем. Атрибутом тот стиль который должен быть применен указываем layout-параметры с этим какой-нибудь текст ну все потому я этим и записываем в итоге.

Получаем просто скриншот кнопки все как бы мог а у нас на самом деле гораздо больше. Всего тестируется очень много всяких состояний я пытался все сюда. Ставить устал так что общем это все что мне было не лень запилить и выравнивать как это вообще!

Все работает запускается тоска градова коннектор androidtest она в свой черёд прогоняет сами тесты в результате самих тестов все скриншотов скидываются в один zip-архив? Как только все завершено это zip-архив улица к вам знаком распаковывается и сравнивается. Если нужно получить эталону то все происходит тоже самое только сравнение.

Нет и скриншота летят сразу в папку с эталонами скриншотами!

Требует библиотека питон 27 я честно не очень понимаю зачем использовать питон 272 к 20 уже вроде как он древне как что-то от мамонта. Но в общем страны решения еще использовать! Белека пилу ну самим питоном ну как бог в принципе она работает поэтому чего жалуюсь с девайсами естественно используется android debug bridge.

И он требует явного серийник идентификации девайса а в чем проблема. У нас на себя и крутится там скажем 50 эмуляторов и они все одинаково не ходи на. Косе реал и так далее мы допустим на 50 муля тори прогнали:

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

Оказывается что он обращаться не к 50 аккумулятора а к первому а там нифига нету там этого zip-архива нету брать: Нечего тест упал проблемы пришлось все это? Переделывать я переделал следующим образом то есть эталон и теперь лежат в папке.

Android с таз с то есть мы не перегоняем их на комп а наоборот закатываем вместе.

С тестом на девайс и когда но отрабатывай сам тест то есть скриншот и появляются. Уже на самом девайсе эталону тоже уже есть на девайсе а потом не просто:

Сравнивается ну с пудингом тоже все просто забираем скриншот из девайса и все в папку css сравнивать скриншот вообще дико полста достаточно: Png воткнуть bitmap и в принципе все дальше можно. Написать обычный сердце и использовать дефолтный метод бит на cms он в принципе идеально работает прямо как швейцарские?

Часы там начал чтобы придумывать не надо короче мы это втащили и что получили а любые изменения внешнего вида компонентов сразу? Видны на пол request то есть ли было spool request поваляться либо вы увидите!

Что скриншот перри генерале и увидеть рай без этим скриншоты механизм. Пока работает в режиме минимуму produce но требует значительных доработок то есть сейчас нам приходится делать. Локальный эмулятор например который точная копия эмулятор на себя и в противном случае теста.

Проходить не будут нет внятного reporting и потому что тот который был от фейсбука но она так.

Не очень полезное да еще вдобавок с питонов связываться совсем не хочется! И по сути то что было в и звучной либби на питоне выпилено полностью ну и есть проблемы: Сейчас git lfs кто не знает о to be the large file system кратко суть такова.

Если вы будете тяжелые файлы кидать в итоге тут станет плохо для этого есть отдельно гитлер факту large file system который умеет работа. С тяжелыми файлами и все там вроде. Хорошо она есть нюанс на сервер сойди сложно сделать хук который.

Будет смотреть что общем все правильно это тяжелый файл и не нужно его.

Класть как обычный в детей а локально это сделать можно но трудно удостовериться? Что все разработчики взяли и поставили себе git lfs локально то есть если кто то где то про вафли вы не сделал этого:

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

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

Из доклада если у вас даже нет дизайн системы?

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

Имеет смысл использовать только на себя и ну и скриншот но из тесты могут сильно упростить!

Жизнь но вряд ли вы возьмете и легко и затащите то есть некоторые.

Фирмы а знаете перри валюта они используют эту самых и обычным вылетят.

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

Доклад и собственно начнем вопросы разные библиотеки для яблочников и android: Чиков коробки разные по идее должны быть по внешним видом смысле библиотеки. Ну вот яблочники допустим привыкли к своим яблочным менюшка не имеем у нас одев идея идея в том что мы стараемся.

Стандартизировать по максимуму дизайн между андроидом и а я сам а тогда получится шоу человеку. На своем телефоне у него все программы однообразные а ваша витовская программа она будет свой стиль ну скажем сейчас в целом концепция. Дизайна на android айос она почти одинаково уже то есть да у нас есть.

Платформа независимости но их не так много и ну как можно них не фармить особенно!

Что не стоит так часто играть трудно сказать я думаю?

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

Всякие сравнения там явно и за скотом? И еще crying фигня то есть экранов реально?

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

Экранов нет там банально выложить какой-нибудь объявление! Например на авито через приложения там там там еще и какой-нибудь сервер!

Driver you a и много чего другого.

Слушая на тестах вот этих снимков экрана да тут автоматически прогнал для одного: Телефона а вдруг вот картинка на одном телефоне нормально.

А с другими разрешением экрана там все уехала ну а что мешает. Использовать на но там в текущем решение тоже можно использовать несколько разных эмуляторов. С разными решениями тебя и так далее то есть это вообще не проблема.

Но на самом деле чаще всего ломаются цвета поэтому не знаю насколько полезно использовать экран удобно.

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

Это и на самом деле скриншот на тесто нас уже не. Раз спасали то есть иногда не знаю отель factory coins.

Дополнительные материалы

Хештеги:
Поделиться или сохранить к себе:
Моя Мотивация