@@SwiftBook я имел ввиду знает , что такое само понятие Property Wrappers. Надо было сначала эту тему раскрыть , а потом уже объяснять урок))) Я не джун , но чтобы понять о чем видео . пришлось статью найти на Хабре, чтоб разобраться ))Урок хороший , но надо более подробно погружать в тему всегда и это важно не только чтобы объяснить сам материал , а еще более глубоко погрузить в само понятие программирования. На русском к сожалению много поверхностных знаний и мало именно глубоких знаний. Которые для новичка в начале пути , куда важнее . Путь программиста в России начинается с того , что его хотят научить зарабатывать на программировании , как можно быстрее . И в этом вся проблема. Из-за этого и много поверхностных программистов. В итоге Senior определяется уровнем зарплаты , а не уровнем знаний и это сейчас не связанные понятия . (скажу больше , что можно было начать урок с самого понятия свойства и , что такое обертка этого своиства)
@@Architect_Mobile Это ведь не курс по основам программирования, а копошилка. Формат, когда раскрывается какая то определенная тема, ни как не связанная с предыдущими. Я понимаю, что большинство людей, которые смотрят этот формат имеет мало опыта. Но почему так получилось? Может быть потому что более опытным этот формат не интересен из-за того, что ни чего нового они почерпнуть не могут? Лично для меня это видео было полезным, я наконец то почерпнул для себя что то новое и интерсеное. Давно такого не было. И мне бы хотелось что бы таких тем было больше. Таким образом можно привлечь и более опытных разработчиков.
@@lexdebash Суть в другом , даже копошилку можно более развернуто объяснить , я давно программирую и все равно смотрю каждый ролик и каждый ролик для меня информотивен. Просто вы программисты с рождения , а большинство тут на канале - это самоучки. И самоучкам тяжело сходу усвоить все тонкости , который как раз можно раскрыть в таких копошилках. Легко и не принужденно короткими видео погружаться в основы и суть программирования. Просто ты этого не замечаешь )) Но это есть
@@Architect_Mobile программистов с рождения не бывает. У меня даже профильного образования нет. Каждому угодить все равно не возможно. То, что информативно и понятно для одного, то для другого скучно и не интересно, т.к. ни чего нового не раскрывает. Это не значит, что я должен жаловаться под каждым роликом, о том, что не узнал ни чего нового. Ни чего страшного, что этот ролик тебе не зашел. Зато он зашел мне. А если бы тут начали раскрывать все с самого начала, я бы даже смотреть не стал. Т.к. основы и так знаю. Мне это просто не интересно будет смотреть. Так что не стоит свои ожидания интерполировать на всю публику. Публика разная и потребности у всех разные. И хорошо, когда есть разные по своей сложности материалы.
Заморочено, можно просто к классу subscript написать и в set/get делать тоже самое) class sPreferences { static let shared = sPreferences(); let defaults = UserDefaults.standard; enum Name: String{ case login; ///.... } subscript(_ key: Name)->T?{ set{ self.defaults.set(newValue, forKey: key.rawValue); } get{ self.defaults.object(forKey: key.rawValue) as? T; } } }
@@popovd да тут и думать нечего. К примеру, я так при написании библиотеки организую DI в реальном проекте, чтобы не тянуть для этого сторонние зависимости. Дешево и сердито, но задача выполнена.
Да, не надо использовать, в документации указано: synchronize() Waits for any pending asynchronous updates to the defaults database and returns; *this method is unnecessary and shouldn't be used.*
Честно такое объяснение , только для тех кто уже знает что это . Так с нуля вообще нечего не понятно
ну на самом деле на старте такое и не пригодится :) Это больше для гурманов iOS)
@@SwiftBook я имел ввиду знает , что такое само понятие Property Wrappers. Надо было сначала эту тему раскрыть , а потом уже объяснять урок))) Я не джун , но чтобы понять о чем видео . пришлось статью найти на Хабре, чтоб разобраться ))Урок хороший , но надо более подробно погружать в тему всегда и это важно не только чтобы объяснить сам материал , а еще более глубоко погрузить в само понятие программирования. На русском к сожалению много поверхностных знаний и мало именно глубоких знаний. Которые для новичка в начале пути , куда важнее . Путь программиста в России начинается с того , что его хотят научить зарабатывать на программировании , как можно быстрее . И в этом вся проблема. Из-за этого и много поверхностных программистов. В итоге Senior определяется уровнем зарплаты , а не уровнем знаний и это сейчас не связанные понятия . (скажу больше , что можно было начать урок с самого понятия свойства и , что такое обертка этого своиства)
@@Architect_Mobile Это ведь не курс по основам программирования, а копошилка. Формат, когда раскрывается какая то определенная тема, ни как не связанная с предыдущими. Я понимаю, что большинство людей, которые смотрят этот формат имеет мало опыта. Но почему так получилось? Может быть потому что более опытным этот формат не интересен из-за того, что ни чего нового они почерпнуть не могут? Лично для меня это видео было полезным, я наконец то почерпнул для себя что то новое и интерсеное. Давно такого не было. И мне бы хотелось что бы таких тем было больше. Таким образом можно привлечь и более опытных разработчиков.
@@lexdebash Суть в другом , даже копошилку можно более развернуто объяснить , я давно программирую и все равно смотрю каждый ролик и каждый ролик для меня информотивен. Просто вы программисты с рождения , а большинство тут на канале - это самоучки. И самоучкам тяжело сходу усвоить все тонкости , который как раз можно раскрыть в таких копошилках. Легко и не принужденно короткими видео погружаться в основы и суть программирования. Просто ты этого не замечаешь )) Но это есть
@@Architect_Mobile программистов с рождения не бывает. У меня даже профильного образования нет. Каждому угодить все равно не возможно. То, что информативно и понятно для одного, то для другого скучно и не интересно, т.к. ни чего нового не раскрывает. Это не значит, что я должен жаловаться под каждым роликом, о том, что не узнал ни чего нового. Ни чего страшного, что этот ролик тебе не зашел. Зато он зашел мне. А если бы тут начали раскрывать все с самого начала, я бы даже смотреть не стал. Т.к. основы и так знаю. Мне это просто не интересно будет смотреть. Так что не стоит свои ожидания интерполировать на всю публику. Публика разная и потребности у всех разные. И хорошо, когда есть разные по своей сложности материалы.
ТОП
Мега полезно, огромное спасибо!
Круто, пока не понимаю где это юзать. Понял только первый пример в плейграунде. Это полезно, нужно рарузнать подробнее
Виталь, интересную тему раскрыл. Можно сказать, что у тебя получилась копошилка для взрослых :) Спасибо, очень полезно 👍
Спасибо, как раз обдумываю еще одну тему. Как в формат копошилки запихнуть написание детализированного консольного логера =)
@@vitrusenok Отлично, с удовольствием посмотрю =)
Юзаем активно проперти врапперы с юзер дефолтс, удобная штука)
Заморочено, можно просто к классу subscript написать и в set/get делать тоже самое)
class sPreferences {
static let shared = sPreferences();
let defaults = UserDefaults.standard;
enum Name: String{
case login;
///....
}
subscript(_ key: Name)->T?{
set{
self.defaults.set(newValue, forKey: key.rawValue);
}
get{
self.defaults.object(forKey: key.rawValue) as? T;
}
}
}
@@popovd все можно в профессии разработчика. Но желательно знать несколько способов решения задачи, а не только один =)
@@vitrusenok Согласен, эту штуку ещё придумать нужно как использовать.
Я к комментарию о том что так надо настройки хранить. Затратно и не оптимально.
@@popovd да тут и думать нечего. К примеру, я так при написании библиотеки организую DI в реальном проекте, чтобы не тянуть для этого сторонние зависимости. Дешево и сердито, но задача выполнена.
Вроде как synchronize() в UserDefaults уже можно не писать, разве нет?
Не то что можно, а не нужно, как пишет эпл в документации. Хотя я может чего-то не знаю и жду ответ на свой вопрос :)
Да, не надо использовать, в документации указано:
synchronize()
Waits for any pending asynchronous updates to the defaults database and returns; *this method is unnecessary and shouldn't be used.*
Да, все верно. Можно не писать. Это у меня тянется со времен ObjC =) Трудно избавиться от старых привычек
@@vitrusenok Наверно с времён кода писали под macOS. Было время на macOS'и и я использовал, но сейчас и на macOS'и не надо.
Если кто хочет поспорить что Swift легче Objective C. Вперёд