Да, что-то типа того и должно быть. Только проще сделать, чтобы презентер сразу отдавал список неких Item-ов, которые вью должна уметь отображать. Даже если сейчас надо отображать только строки - все равно лучше завернуть их в небольшие модельки, тогда, если понадобится отображать и другие данные, то все будет проще. Плюс, стоит использовать DiffUtil для изменения списка.
В смысле, когда он должен вызываться? Когда презентер сочтёт нужным(у него откуда-то появляются данные, чаще всего - асинхронно: из БД, сети, файл, любой i/o должен быть асинхронным), вот они пояились и он дернул у вью метод для их отображения.
Aleksandr Govorukhin, да конечно, решаемая, достаточно написать свой калькулятор таких выражений.
А в в свифте ты что собрался расширять? Инт? Ок, допустим даже, что для него можно доопределить унарный оператор %. Но он на то и унарный, что применяется к одному операнду. От чего ты будешь брать x%? От дырки от бублика?
Денис Лобода, метод setItems у Вью, что тут может быть непонятного? В интерфейсе и реализации View.
Про примеры - они какие-то стрёмные. Ссылок на контекст у презентера быть не должно. У Вью максимум ссылка на листенер, который реализует презентер. Активити и фрагменты - только точки входа, клей, если угодно.
Денис Лобода, што.
Презентер получает данные и зовёт метод setItems у Вью. Вью вообще не знает про презентер (у Вью даже ссылки на него быть не должно, не то, что данные требовать).
Денис Лобода, нет, неправильно. Презентер никогда не должен знать ничего про андроидовые вьюхи(ресайклер, его адаптер и тд), про контекст и так далее. У MVPView должен быть метод showItems(List), который дергает презентер и в котором элементы просечиваются в адаптер. Это и называется "ресайклер спрятан в реализации вью".
Кирилл Жиляев, можно. первое, что приходит на ум - реализовать AND - двигаем каждый бит в позицию ноль, делаем умножение(арифметическое), двигаем обратно. Результат получаем сложением. Затем NOT - аналогично, двигаем в позицию ноль, прибавляем 1, делаем AND(он уже реализован) с 1. Дальше все остальные (OR, XOR и тд) выражаются просто. Например x | y = !!(x | y) = !(!x& !y) - правило де Моргана. x ^ y = (x | y) & !(x & y)
Сергей Тополов, я лично не писал обои, но когда интересовался этим, там было немного вариантов - OpenGL и канвас, насколько я помню. Никаких вьюх, тем более, вебвью => никакого css. И это хорошо.