Kolesa Android Meetup

2 июля прошел Kolesa Андройд Meetup в формате стрим-конференции. Доклады:
• Аманжол Тулепбаев, «Расширяем границы Developer options»
• Олег Чернов, «Сервис обмена сообщениями как модуль.

Kolesa Android Meetup

Люди и блоги

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

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

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

Daewoo sens который активируется из настроек если потыкать нужную строчку в настройках и всем наверное пользуемся такими полезными фичами дает шанс такими. Как показывание границ элементов скорость рендеринга дон keep activities ип так далее мы в наших приложениях сделали свои костяные develop or absence. С новыми фичами в дополнение к стандартным возьмем на примере приложения колес здесь у нас при дебаг сборки настройках появляется новый.

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

Как сделать так чтобы в общем с показывались только не банк сборки так для начала нужно в белграде указать build. Up это дебаг и релиз в каждом избил type of создадим build конфиг поля с типом string названием. Например open and point и различными значениями для для.

Дебаг это например колеса api тест для prado это колеса апиб рад таким образом. У нас генерируется класс build конфиг с автоматически сгенерированным полем. Дебаг у которого тип пули то есть если у нас дебаг сборка то значение будет.

Труп если released the falls здесь появится то поле которое. Мы добавили через gradle to open and plain со своим значением то есть здесь сейчас собралась дебаг сборка.

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

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

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

Очень много времени и так как все мы знаем насколько прожорлива. Наши android studio вот поэтому мы запилили такой функционал по нажатию на эту кнопочку хасты открывается экран.

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

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

Как же это все работает да так у нас приложения в качестве.

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

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

На метод get properties он как видно возвращает мапу string они и как мы уже знаем использует проверку и в конфиг. Дебаг то есть если это дебаг сборка то берем.

Типа qdpro parties если proud to ride properties в properties мы по ключу а pinpoint. Рот кладем значения open plan to is built конфига а вот в дебаг properties мы достаем. Значение sharedpreferences подключая pinpoint рапорте и с дефолтным значениям из того же build конфига так там ниже у нас есть для такие кнопочки.

Сохранить и сбросить сохранить сохраняет значение из i did текста которые мы вели. Жертв preferences по ключу api and property рецепт убирает его оттуда. Чтобы следующий раз когда мы брали дефолтное значение сбил конфига и последнее когда.

Мы уже в модуле scoin модуля прописываем. Наш метр менеджер в качестве in plant передаем значение гид property по ключу open end property или например при создании объекта retrofit.

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

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

Мы берем значение из жертв фрэнсис если там ничего нет берем мисс пил конфига то есть это все можно и без коина сделать.

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

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

Кадры со всеми нашими запросами набег вот для этого был запилен.

Такой экран где можно добавить новых ядер ввести любые. Ключи и значения и сохранить чтобы это сделать нам нужно реализовать. Интерфейс и request interceptor это если мы используем retrofit и при переопределить метод intercept так сами fedora у нас допустим лежат.

В репозитории куда мы будем записывать при сохранении и считывать.

Вот тут interceptor и хедер и получили и теперь.

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

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

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

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

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

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

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

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

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

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

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

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

Записывать новый ивент а потом на том экране.

И всех показывать следующая фича это идентификатор.

И вот идентификатор на и нас подразумеваю подразумеваются.

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

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

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

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

Запросов вот tear код на саму библиотеку теперь как это выглядит когда приложение отправляет запрос нам прилетает push где написаны запросы. Которые мы отправили вот если кликнем по пушу откроется экран со списком.

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

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

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

Очень легко просто подключаем зависимости и пробрасываем чакир npc thark в область.

И clomid так же как мы делали с хакерами вот все это все фичи которые мы на данный момент.

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

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

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

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

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

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

Заинтересовавшего вас объявления последнее время велись активные доработки этого мысль gera в колесах. Были добавлены такие возможности как обмен фото голосовые сообщения прикрепления местоположения и прикрепления своего объявления хотелось бы и доставить. Эти функции и пользователем других наших приложений таких как крыша markets of the ribbon поэтому было решено разрабатывать messenger как.

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

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

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

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

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

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

Модуля собственных извещений изо колес после водился всеобщая проблема после доработке модуля собственных извещений и задачи по интеграции. Данного модуля в крышу markets of thailand выкладывайте поглядим поподробнее какие трудности улаживали данные задачки проблема на продумывание.

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

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

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

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

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

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

Основывали в данной задачке с от хандры какие улаживали трудности подключения. Модуля их плану в данной задачке у нас скопился 43 sap хандры всякая проблема водился маленький по объему обменивал незначительное количество.

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

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

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

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

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

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

Про то что этот разряд сиречь узел осуществляет исключительно одну функцию в именно это время невысокое соединение возрасты демонстрировать что модуль.

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

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

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

Что является повреждение принципа из rp что мы сделали мы перенесли.

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

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

Потреблять правнук vidiq карен си прайс он работает с ценой совместно с валютой этак как of the ebon например.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вы их ещё не изучали на этом у меня все спасибо за внимание марьям можешь.

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

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

С деталями объявления и у вас может возникнуть.

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

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

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

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

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

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

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

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

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

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

И сделали это через java script ивенты например у нас есть возможность. Перехода из списка на главные в детали объявления.

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

Авто фаворитки и ремонт в физике потому что сам механизм.

Добавление и удаление из воров у нас он оставался на тот момент.

На девке но когда вы используете дела script 3 noscript ивентов приложений это может нести за собой некоторые проблемы может например.

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

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

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

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

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

Нам пришлось договариваться с fontaine там они нам кидают event-ы когда основы науки до этого татар когда основной контент страницы.

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

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

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

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

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

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

Сначала нужно переопределить метод он светится состоит в фрагменте или activity в параметры. Бану метода он всех несчастий записываем состоянии.

Как пью посредством вызова метода сейф state объекта копию как показано на слайде а восстановление состояния реализуем в методе. Anvil приедет передаем банду метр сорок пять объект этапе все очень просим к и на все думали мы пока for bass пришлите мне нарисовались. Падение за исключением transaction тула жике давайте объясню причину исключения.

Чтобы было понять никак мы его обошли для этого обратим внимание на метод он жив и несчастий мы знаем что каждое приложение. В андроиде запускается в отдельном процессе примета делом self in state бодался записан в неё состоянием.

Из нашего приложения передается в систему процесс.

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

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

Что в нашем случае сохраняете состояние состояние выпью в он свихнулся.

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

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

Сцене мы считаем из файлика данные которые у нас есть и передаем метод piece of state таким образом. Мы безопасном сохраняем и не восстанавливаем состоянии выпью при возврате market.

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

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

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

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

Следующая проблема с которой столкнулись было обновлением. Хрома под капотом после релиза wi-fi в крыше etechs нарисовались.

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

С 5 версии android т.п.

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

B пью и доступен в течение этого времени мы просмотрели.

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

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

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

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

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

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

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

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

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

На которых мы наступили спасибо за внимание спасибо большое.

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

Онлайн mytab это был наш первый опыт онлайн формата.

Надеюсь вам все понравилось следите за новостями в социальных сетях и еще раз повторюсь все ссылочки на доклады на запись.

Будет на доске чуть позже все будет туда выложена всем пока.

Видео

До скорых встреч..

Поделиться или сохранить к себе:
Моя Мотивация
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных, принимаю Политику конфиденциальности.