Эта книга переведена и продаётся в лабиринте. Собственно я Ее читал неделю назад. Ваше стремление написать статью похвально, но она выглядит похожим на вольный, сильно сжатый пересказ главы из этой книги.
Я вам объяснил что это не то же самое, в презентере нет ничего лишнего, он ничего не знает о view, его легко тестировать, его легко понять, у него всего одна ответственность. То что модуль в памяти держит View это издержки архитектуру apple, и пусть это не лучший вариант, он равно намного лучше чем делать презенте из VC.
Еле коротко то вы все нарушили. Начнем с роутера, это компонент отвечающий за переход от одного модуля к другому, UINavigationController отвечает за все что угодного кроме этого, фактически это контейнер для контроллеров, он не знает куда надо переходить дальше. UIViewController опять же не разделим с View он управляет анимацией, навигацией и даже просто внешним видом. Он фактически весь состоит из того чего в нем быть не должно. С interactor`ом и view у вас особых проблем нет, так как они остались из изначального вайпера. Почитайте про solid, поймете что ваша архитектура не про него. Попробуйте покрыть модуль тестами и снова поймете что у вас проблемы. Ваша архитектура это скорее MVC от эапла как она должна быть + interactor. Это лучше чем просто massive view controller, но не более.
У вас вышела некая школьная/упрощенная версия Вайпера. В целом архитектура не плохая и ее можно использовать при этом не прикладывая много усилий в борьбе с uikit. Но это не вайпер, так как основаная идея вайпера это соблюдение принципов solid. А в вашей версии они все нарушены, слишком многого ответственностей на каждом из компонентов. Увеличена связность, тестировать сложнее. Но думаю для мелких проектов и проектов где на первом месте скорость разработки, оно зайдёт.
При размещении чего либо в ScrollView с использованием auto layout стоит понимать всего один нюанс. Это то что у ScrollView есть два размера — внешний (размер самого ScrollView) и внутренний (размер контента). Собственно нельзя растянуть что то внутри ScrollView по ширине (или высоте) потому что у ScrollView нет четких значений высоты и ширины, они зависят от элементов внутри. ambiguous height — как раз и значит что высота не может быть высчитана.
Конкретно в вашем случае вы пытаетесь прировнять высоту таблицы к высоте контента ScrollView, а она в свою очередь считается по единственному элементу внутри — таблице и вы попадаете в рекурсию)
А почему именно iPhone 5, еще есть же iPhone 6 и iPhone 6 + или это просто легаси переменная и вам просто необходим не iPhone 4? К чему это я? К тому, что есть более удобный способ определения модели устройства. Например я использую честно украденное где то расширение для UIDevice
Спасибо за статью. В интернете очень мало информации и примеров о rxSwift и даже о последней RC. Глядя на официальную документацию я впадаю в уныние. Там действительно разбираться недели две, а времени такого у меня пока нет. Пиши еще, пишите больше!
Потому что сейчас нет технологии которая может заставить вас думать что вы идете, когда вы сидите. А что будет когда она появиться? В виртуальности вы можете изменить физику, в жизни нет. Платформа не смоделирует прыжок на 50 метров в верх. Да даже опустим измененную физику, плаванье, секс, скалолазание и т.д. такой платформе не под силу.
Мне кажется Илон имел ввиду несколько другое. Телевизор и компьютерные игры бесспорно снижают физ. активность. Но и не все ими заинтересованы. Кто то предпочитает играм лыжи, туризм или просто прогулку в парке с друзьями. Да и самый прожженный геймер не откажется выбраться на дачу поесть шашлыков, а это тоже какая никакая активность (дойти, установить мангал и т.д.) Но виртуальная реальность будет замещать это все, она будет ярче, чем сама жизнь. Спуск на лыжах в вирт. реальности будет давать те же ощущения что и в жизни, только без опасности травм, без необходимости добираться до склона, да еще и гору модно смоделировать такую какой в реальной жизни не найти. А если подкрутить в таком симуляторе физику? Увеличить скорость например. Кто захочет после такого кататься на настоящих лыжах. Хочешь прогуляться в парке? Нет проблем, нацепил очки позвонил подруге в скайп и выбрал локацию. Вы совершаете незабываемую прогулку в парке цветущей сакуры, в то время как ваши тушки валяются в кресле. А представьте секс в вирт реальности. Изменяем внешность и это уже не вы. Нет стеснения, нет риска получить дурную репутацию, нет дырявых носков, волосатых женских грудей, лишнего веса, и неловкого прощания. Да после такого рождаемость и процент заключаемых браков упадет в два раза по самым скромным оценкам.
Конечно до этого далеко, сейчас нет таких технологий. Но когда они придут у человечества будет огромная пробная проблема.
В тот же день как увидел эту заразу вызвал борца с клопами. За 1т.р. и одну ночь я избавился от них и больше никогда не видел (полтора года прошло). 1т.р. зарабатывается за час на odesk.
В том то и дело. Возможно сайты и правда скоро не надо будет писать. Это уже сейчас не собо то нужно, если человек включит мозг то легко сам сделает себе сайт используя какой нибудь конструктор или CMS. Только программирование это не шаблонные говностайтики клепать.
Эта книга переведена и продаётся в лабиринте. Собственно я Ее читал неделю назад. Ваше стремление написать статью похвально, но она выглядит похожим на вольный, сильно сжатый пересказ главы из этой книги.
например
https://github.com/rambler-digital-solutions/generamba-catalog/tree/master/swifty_viper
У вас вышела некая школьная/упрощенная версия Вайпера. В целом архитектура не плохая и ее можно использовать при этом не прикладывая много усилий в борьбе с uikit. Но это не вайпер, так как основаная идея вайпера это соблюдение принципов solid. А в вашей версии они все нарушены, слишком многого ответственностей на каждом из компонентов. Увеличена связность, тестировать сложнее. Но думаю для мелких проектов и проектов где на первом месте скорость разработки, оно зайдёт.
Конкретно в вашем случае вы пытаетесь прировнять высоту таблицы к высоте контента ScrollView, а она в свою очередь считается по единственному элементу внутри — таблице и вы попадаете в рекурсию)
https://github.com/Hearst-DD/ObjectMapper#easy-mapping-of-nested-objects
distance <- map["distance.value"]
distance <- map["distances.0.value"]
Спасибо за статью. В интернете очень мало информации и примеров о rxSwift и даже о последней RC. Глядя на официальную документацию я впадаю в уныние. Там действительно разбираться недели две, а времени такого у меня пока нет. Пиши еще, пишите больше!
Конечно до этого далеко, сейчас нет таких технологий. Но когда они придут у человечества будет огромная пробная проблема.
И почему например не исчезают бухгалтеры? Столько же софта бухгалтерского?