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
Спасибо за статью. Из статьи, как я понял, вы сами на 100% не уверены зачли ли Вам членство в IEEE за пункт членства в ассоциациях. Сколько пунктов Вы в общем хотели закрыть в своей петиции? Одобрили сразу без RFE?
Евгений Ёлчев красит кнопки на iOS, вроде
CurrencyPickerView: UIView, UIPickerViewDataSource, UIPickerViewDelegate, CurrencyPickerViewProtocol и MainViewController: UIViewController, MainViewProtocol, UITextFieldDelegate
Их можно заменить моками, соответствующим протоколам.
Презентер знает только это:
Приведите свой пример небольшого приложения для сравнения. Поделитесь с другими, как писать идеальный негрязненький код без никакой архитектуры.
В данном примере по правильной и чистой архитектуре вообще нельзя ссать в подъезде, это надо делать в туалете. А как конкретно и чем вы ссыте – это правильные конструкции кода или чистый код.
Я хотел показать, ГДЕ надо писать определенную часть логики, т.е. в каком слое.
func urlButtonClicked(with urlString: String?) тут String потому что вьюконтроллер не должен заниматься преобразованием в URL, это делается в интеракторе, а View-компонент знает только строки.
func handle(url: URL) нельзя писать во вьюконтроллере. Это уже логика заточенная будет. Мы должны только сообщать презентору, что нажалась кнопка.
В getAllCurrencies идет проверка на dict внутри saveAllCurrencies есть completion(CurrencyError(description: «Currencies' data format is wrong»)). Есть, конечно, опасность, что ни error ни ответа не придет, но там дописать один else только. Но это рабочий пример, а не приложение для продакшна.
VIPER – один из способов решить проблему Massive VC и «лапшекода» и я попытался показать это на примере. Напишете свою реализацию архитектуры с примером. Я бы с удовольствием посмотрел.