Анна@xbitstream
Программистка, архитекторка, ахахахка
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирована
- Активность
Специализация
Разработчик мобильных приложений, Архитектор программного обеспечения
Ведущий
От 6 000 $
Swift
Kotlin
Проектирование архитектуры приложений
Управление разработкой
Я не говорила, что это особое поведение. Я недоумеваю, что могло привести к тому, что они объявили опционал вьюхой. Это раз.
Два - .some у опционала тоже может быть ещё одним опционалом и так далее. Но главный вопрос в том, что это дженерик тип. И что опционалы нельзя просто так друг к другу кастовать. Потому что даже .none несёт информацию, чей же конкретно он .none. Например .none у Optional<Int> не то же самое, что у Optional<String>. На этапе компиляции, конечно же. Если в рантайме, то, видимо, поэтому и возможен успешный каст любого нила к нилу от невер.
Очевидно, что это сделано для их собственного ViewBuilder'а, но он тоже резалт билдер. Хрен знает, что у них там не влезло и куда.
Но ведь ещё и каст к Optional<Never> сделан такой зачем-то.
А нельзя было сделать, например, кеш собранных либ кокоаподс и через симлинк подсовывать в DervedData папку теми же скриптами, например?
Я буквально пару недель назад наоборот, выдирала с кровью Carthage из проекта с 30 подпроектами. Прокляла и "архитектора" и картаж, который впиливали не очень умные люди. Большей мусорки не видела, наверное, никогда.
Кратко: наследование и расширение функционала (называется traits) — совсем разные вещи. Не говоря уже о подписке. Могу подписаться на нетфликс, например, или на уведомления от сервиса, но на протокол — не умею.
Если уж говорить про расширение функционала типов через экстеншены, то это ничем не отличается от простого написания в декларации этого типа. То, что ниже — идентично с той лишь разницей, что в екстеншене вы не сможете объявить хранимые свойства:
class A: P {}
class A {}
extension A: P {}
То, что вы добавляете протоколу с помощью экстеншенов не относится к типам, реализующих этот протокол.
Ну или объясните мне семантику термина «подписаться на протокол» :-)
Почему модно говорить "подписывать на протокол" вместо "реализовать протокол"? Второй год уже эту шляпу вижу. Откуда это взялось, мне интересно? Conform(implement) vs Subscribe.
При этом особо забавно, что описываем паттерн наблюдатель и используем термин subscriber, подписчик :-)
Могу только сказать как разработчик одного из приложений из списка, мне вот сейчас ещё геморрой прилетел из-за этого. Всякие роскомпозоры и прочее… Так хорошо было. Да и стыдно почему-то. Наверное, потому что это банальное лоббирование, а не честная конкуренция… Фу так делать
Ушло в закладки!
Если честно, то я все же не поняла цели (могу себе придумать, но интересна мотивация автора) — сделал, чтобы сделать, так как таких мало. Простое любопытство.
Кстати, мобильная версия выглядит не очень, если нет возможности допилить, то лучше вообще вырубить.
Ktor — монструозный крутейший комбайн. Сама писала бэк на нем. Имхо, стоит быть осторожным, чтобы он не потянул ненужных зависимостей. Например, зачем сервак в клиенте? :-)
Ретрофит тянет за собой концепции джавы типа пачки SAM вместо лямбд. ИМХО стоит использовать средства языка по максимуму.
Выглядит как ремонт фасадов в России — навесить принт со стеной и окнами на руины. Если есть возможность в принципе реорганизовать работу сервиса, то почему бы не выкинуть ретрофит и заюзать котлиновские библиотеки?
Вы думаете, я программирую только каждый первый четверг после полнолуния? Право, не стоит так сильно беспокоиться, поберегите себя.
Положить файлик в
~/Library/Developer/Xcode/UserData/FontAndColorThemesСейчас более-менее

Какую семантику вы имеете ввиду? Структуру кода? Потому что я тоже за семантическое выделение. Но сущностей много, следовательно и цветов много.
Скачать файлик, в студии выбрать пункт меню
File > Import Settingsи указать скачанный файл