Ibrakhim Nikishin @IbrahimKZ
lead iOS dev
Information
- Rating
- Does not participate
- Location
- Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
- Date of birth
- Registered
- Activity
Specialization
Mobile Application Developer
Lead
From 10,000 $
iOS development
На модули же разделяют не для того, чтобы потом сделать из них маленькие фреймворки и переиспользовать. А больше для того, чтобы легче было тестировать и отлаживать каждый слой в модуле. Проблема с UI? Значит ищем во View или презентере. И т.д. Знаем, в каком слое что искать.
По поводу «протоколы легко ломает бизнес логику и приводит к взаимоисключающим состояниям» не совсем понял. Довольно абстрактно без конкретного примера.
Проблему с роутером я решил в своей реализации. Она использует все родные механизмы. Но зато логику перехода смотрим в роутере. И не надо все это искать во вьюконтроллере.
По поводу дробления контроллера я абсолютно согласен. Про это и статья. Как разбить Massive View Controller.
По-вашему, лучше так все и оставить? Или хотя бы пытаться перевести это на нормальную архитектуру, с разделением слоев? Я сам писал долгое время приложения, как попало. И они работают и приносят мне небольшой доход. Но сейчас понимаю, что их тяжело поддерживать из-за того, что криво написаны.
Когда они там уже перестанут выкатывать каждый год новую версию, и можно будет хоть немного расслабиться? Неужели обязательно так часто выкатывать обновления на уровне языка? Не к вам вопрос, конечно. Просто мысли вслух.
Моя мысль была в том, что если на меня нападают, то я могу использовать любые средства для своей защиты.
Допустим, вы маленькая страна, но у вас есть огнестрельное оружие. Вокруг вас много других стран, которые имеют средневековое оружие (копья, луки). По их женевским законам использовать в войне огнестрельное оружие нельзя. Все вокруг желают стереть вас и ваше население с лица Земли. Единственное, что вас защищает – это огнестрельное оружие. Сдаться без боя не вариант. Вас захватят и вырежут. Что вы будете делать?
Но вот ведь беда. Оно запрещено женевской конвенцией. Т.е. мы дадим себя истребить и победить, но не будем использовать единственно возможный способ победить с помощью нашего секретного и эффективного, но запрещенного оружия. Я правильно все понял? Убивать других можно только разрешенным оружием, даже если на вас нападают?
Глянул. Она еще в 2012 году была написана, в ней Xcode 4 и, вероятно, iOS 5 рассматривается.
Или это не помеха?
p.s. Скачал. На само приложение не делает ровным счетом ничего :-)
Я имею ввиду, что Вы просто описали каждую функцию и для чего она. Но начинающим не хватает какого-нибудь мало-мальски работающего приложения (небольшого), где уже НА ПРАКТИКЕ показали бы, как используется это unit-тестирование. Где был бы разобран каждый вид (Равенство базовых типов, Проверка на nil, Проверка на выбрасывание исключения и т.д.). Хотя, наверно, в рамках одной статьи такое тяжело написать. Надо маленькую книжку написать.
Никак не могу начать писать unit-тесты для своих приложений, потому что не могу понять вообще зачем оно мне и как, и для чего мне их писать. Именно на практике.