Back-end driven UI - Алексей Шпирко (Avito)
ฝัง
- เผยแพร่เมื่อ 25 ส.ค. 2024
- Никто не любит заполнять длинные формы. Сложнее заполнения длинных форм только их разработка, поддержка и валидация входных данных. В докладе я расскажу о подходе, в котором можно максимально вынести логику построения сложных форм с мобильного клиента на бекенд и минимизировать количество изменений в коде при постоянно меняющихся бизнес-требованиях.
Avito.iOS (17.06.2017) #avitoios
avitotech.time...
Отличный доклад! Спасибо.
Интересно, поменялось ли что-то за 5 лет - перешли ли на JSONForms или еще что-то вместо полностью самописного решения?
привет! поменялось все :) Сейчас делаем другое, тоже самописное решение, но проще, универсальнее, расскажем о нем, как будет готово
@@AS-sg5vy а почему бы не использовать существующие решения, такие как jsonforms или uniforms?
@@Evergreenscoderzone Это хороший топик для afterparty после митапов) Но при масштабировании продукта и команд (в Авито десятки независимых команд, делающих продукт) часто сталкиваемся с тем, что готовые решения в edge кейсах не работают так, как нам нужно и затраты по их подпиливанию под наши требования сопоставимы, а то и больше, чем поддержка своего решения. Не знаю про приведенные Вами выше продукты, возможно, они тоже хороши)
@@AS-sg5vy ок, понимаю. пока я вижу что только сильно кастомные вещи - например при смене города подчищать поля адреса - сложно реализовать готовыми библиотеками. Но вот все остальные вещи - валидация, display-if, локализация, required-if, layout и т.п. - легко пишется через предложенные мной выше библиотеки. А так как они описаны декларативно, по можно отрисовать как угодно. Я тоже недавно задавался таким вопросом, поэтому и начал ресеч, нашел ваше видео, и хотел узнать сделали ли вы что-то иное.
А если все это еще завязать на swiftUI?)
🤔
жэсть, а я думал BDUI отнистельно недавно начали все внедрять, а тут авито 6 лет назад сотворили чтото нереальное
Может кто-то знает, можно ли использовать NSPredicate как-то для проверки валидности значений полей и других описанных в докладе кондишинов?
Привет! NSPredicate для нашей задачи показался слишком ограниченным, очень много проверок включали ссылку на другие поля и сама логика проверок выходила за рамки базового функционала, что дают NSPredicate. Но не берусь судить за более общие кейсы, когда нужно сравнить 2 строковых значения, может там и ок, но не углублялись в рисерч.