- Видео 127
- Просмотров 37 371
Программирование - интерес жизни
Россия
Добавлен 20 дек 2021
Все о программировании.
Swift. Metal. Compute pass setup
Теперь посмотрим как самим настроить отрисовку фигур с помощью шейдеров.
#swift #swiftui #metal #xcode #shaders
#swift #swiftui #metal #xcode #shaders
Просмотров: 167
Видео
Swift. Metal. Basics
Просмотров 353Месяц назад
Что такое шейдеры? Как они появились в программировании? Пара простых шейдеров в SwiftUI #swift #swiftui #metal #xcode #shaders
Combine. AsyncStreams.
Просмотров 1192 месяца назад
Рассмотрели: - как из Combine паблишера получить AsyncStream - как использовать async функции в Combine операторах (тут я потупил маленько) - сравнили жизненные циклы Combine и AsyncStream #swift #combine #asyncawait
Swift. Async/Await. AsyncStreams
Просмотров 1762 месяца назад
Рассмотрели: - Зачем нужны AsyncStreams, AsyncSequence - Как работают и устроены - Где использовать #swift #async #asyncawait #streams
Combine. UIKit. User Input
Просмотров 1392 месяца назад
Рассмотрели как с помощью Combine инструментов можно работать с пользовательским вводом #swift #uikit #combine #operator #combinelatest #zip #merge
Combine. UIKit Controls Publisher
Просмотров 1732 месяца назад
Написали небольшой publisher для удобства работы с компонентами UIKit #swift #combine #uikit
Работа в IT за границей. Разговор с Сергеем Масловым
Просмотров 4982 месяца назад
Созвонились с моим давним товарищем Сергеем Масловым, который работает в IT, в Эстонии. Поговорили в целом о том, как там все устроено. В целом получилась беседа в несколько неформальном, местами, ключе. Но без отклонений от основной темы разговора. 00:00-01:31 - О себе 01:31-10:00 - Градации разработчиков 10:00-12:12 - Про реализацию идей 12:12-13:38 - Тех.стэк 14:33-25:58 - Процесс планирован...
Combine. UIKit. Model + Subjects
Просмотров 2342 месяца назад
Рассмотрели как с помощью Combine инструментов можно передавать изменения из ViewModel во View #swift #uikit #combine #passthroughsubject #currentvaluesubject
Swift. Async/Await. Actors
Просмотров 3863 месяца назад
Рассмотрели: - Зачем нужны акторы - Как работают и устроены - ReEntrancy - Protocols #swift #async #asyncawait #actors
Swift. Async/Await. Sendable
Просмотров 2823 месяца назад
Рассмотрели: - Sendable концепция - Sendable value types - Sendable reference types - Sendable closures, functions 00:00 - 9:07 - Sendable концепция 9:07 - 18:04 - Sendable value types 18:04 - 23:04 - Sendable reference types 23:04 - 31:02 - Sendable closures, functions 31:02 - 36:50 - Николай тупит 36:50 - Sendable closures, functions #swift #async #asyncawait #sendable
Разговор про Swift с Михаилом
Просмотров 5213 месяца назад
Изначально это планировалось как mock интервью, но получилось совсем не формально, больше похоже просто на беседу с вопросами и ответами. Более того, некоторые вопросы ни разу на интервью мне не встречались, это моя отсебятина. И, для интервьюера, я слишком много разговаривал. Обычно на собеседовании нужно больше давать говорить кандидату. Плюс оформление окон и вообще визуально - все будет улу...
Swift. Async/Await. TaskGroups
Просмотров 2534 месяца назад
Рассмотрели: - TaskGroups (throwing) - DiscardingTaskGroup Способы добавления в группу: - addTask - addTaskUnlessCancelled #swift #async #asyncawait #taskgroups
Swift. Async/Await. Task. Часть 2
Просмотров 3424 месяца назад
Рассмотрели: - Отмена задач - Unstructured/Structured concurrency - async let #swift #async #asyncawait #asynclet
Swift. Async/Await. Task. Часть 1
Просмотров 5054 месяца назад
Рассмотрели: - Есть ли предел потоков - Как понять где выполнится задача - Жизненный цикл - Обработка ошибок #swift #async #asyncawait
Swift. Async/Await. Basics
Просмотров 9605 месяцев назад
Звук получился тихим, сделайте в этом видео погромче. Остальные видео будут лучше. Самые, самые основы async/await. Получилось довольно много слов и теории: - Немного о предыдущих подходах - Про использование async/await - Task.yeild, Continuation Следующий ролик будет про Task, будет больше кода и практики. 00:00-2:50 - Вступление 2:51-8:50 - Что было раньше 8:51-30:04 - Основы работы 30:05 - ...
День разработчика. Работа с задачами
Просмотров 4115 месяцев назад
День разработчика. Работа с задачами
День разработчика. Созвоны, распорядок, требования
Просмотров 8446 месяцев назад
День разработчика. Созвоны, распорядок, требования
Swift. Dependency Injection Новый подход
Просмотров 4927 месяцев назад
Swift. Dependency Injection Новый подход
Спасибо за контент, который пилишь. Посмотрел многие твой видео. Но, в данном видео, на вопрос "нафига (some vs any)", ответ был очень сумбурным. Насколько я знаю в свифте, когда конформишься под протокол, то создается экзистеншиал контейнер (ну для value types точно), и его размер 40 байт (в зависимости от системы), если я тебя правильно понял, то ты имеешь ввиду, что если объявить var a: some SomeProtocol = SomethingProtocolConfirmed() то для "а" не будет создан экзистеншиал контейнер?
Спасибо за видео!
Благодаря подписчикам в телеграмме нашли ошибку в коде видео при вычислении threadsPerGroupCount. width и height параметры нужно дополнительно разделить на переменные width и height.
Материал крутой! 🔥Сейчас немного подлагивают анимации тоже, хотя из предыдущего видео на SUI они не тормозили и ранее существенно более сложные затягивались по всему приложению вообще без лагов. Почему именно kernel шейдеры решили здесь использовать, а не через фрагментные и вершинные? Еще обычно через CADisplayLink я обновлял время каждый кадр и триггерил перерисовку, возможно это и оверхед, надо поисследовать. Спасибо за видео, тема не простая, но ваша подача отлично воспринимается!
@@artemaj9 спасибо за отзыв. Если про подлагивающее анимации в видео - то это из-за нагрузки на комп. Там obs в высоком разрешении записывает и ноут не тянет все сразу. Про kernel и остальное - напишу чуть позже, сам пока разбираюсь до конца. CADisplayLink хорошая практика, мы их для Лотти даже использовали. Именно в видео просто задача была показать настройку pipeline. Чтобы лишнего не накидывать.
Спасибо за урок! Прекрасно объясняете, всё понятно.
Спасибо огромное!
Спасибо!
Спасибо за очень полезное видео!
Спасибо за урок! К сожалению в первом примере нет кода файла ContentView. На GitHub его тоже нет.
Спасибо!
Спасибо за полезное видео!
спасибо за видосы, только поправьте порядок видео в плейлисте, пожалуйста
Done
По идее [weak self] в конце решило бы проблему с захватом. То что дальше шел бы guard self влияет только на проверку на nil, эта проверка никак не связана с захватом ссылок.
Попробую посмотреть и напишу.
спасибо огромное за твои ролики! очень много интересных тем
Супер❤
может вам сделать телеграм канал? там обсудим метал
Канал есть. t.me/developer_philosophy Он, в основном, чтобы не пропустить обновления. Но в комментариях можно вопросы задать, обсудить.
потрясающий материал! спасибо
18:48 Тут опечатка? Потому что throwing функция требует withThrowingTaskGroup в любом случае, она не требует только try перед вызовом withThrowingTaskGroup Invalid conversion from throwing function of type '() async throws -> ()' to non-throwing function type '@isolated(any) () async -> Void'
Да, здесь я запутался в try и throwing
Николай, вопрос: заметил что вы часто используете struct, а не class для того, чтобы показать какую-либо работу, почему? Вы всегда предпочитаете struct классам? Например, в данном случае функция mutating
Есть такое. Если есть возможность обойтись структурой - старюсь использовать ее. Меньше рисков в многопоточной среде. Быстрее диспетчирезция (по умолчанию).
хотелось бы еще про BackgroundTasks, максимально не понятные вещи в нем, относительно организации фонового режима работы в Android.
Записл себе
каеф 💣
Реализация паблишера Future на swift 6 вызывает ошибку "Capture of 'promise' with non-sendable type '(Result<Data, CombineError>) -> Void' in a `@Sendable` closure" на каждом вызове promise, надо переключиться обратно на 5ый, ошибка превратится просто в варнинг. Долго искала как решить эту ошибку, в итоге в одном из чатов посоветовали просто проигнорировать. Потихоньку учусь и прохожу ваши материалы по Combine, спасибо большое за такие качественные видео!
@@allaalla-w6n спасибо за отзыв! Еще можно попробовать в build settings сменить strict concurrency checking.
Спасибо вам огромное. Супер обьясняете у вас Талант ! Не понимаю почему так мало подписчиков. Лучший ! Хотелось бы еще увидеть от вас обьяснение Clean Swift пожалуйста 🙏🏼 Успехов вам ❤
Спасибо. Про архитектуры подумаю.
@@nikolai.developer про архитектуры кстати поддерживаю, было бы супер!
Похоже на логику с оператором yield из других языков
Возможно это есть где-то дальше в видео или в следующих роликах, но уу меня вопрос по примеру, с 47:00, а зачем вообще использовать тут комбайн и паблишеры, почему нельзя просто асинхронно загрузить картинку через, например async/await? То есть в каком случае на практике может пригодиться паблишер?
Это для демонстрации работы паблишера. Как он работает и какие особенности есть. Плюс иногда бывают ситуации, когда у вас весь код написан и заточен под паблишеры. Т.е вы все приложение написали на Combine. Тогда удобнее придерживаться его.
Вы смотрю одержимы async/await темой. Это уже седьмое видео на канале
новый тренд в Swift разработке как никак)
Мне нравится новая технология. Это правда. Но, помимо этого, она много где встречается\востребована. Поэтому,. ее разбираю, освещаю.
@@nikolai.developer я никогда не пользовался async/await. Вы правы это новая технология. Но для меня - слишком новая.
Ваш канал стал для меня открытием, странно что раньше не попадался❤
Спасибо.
Спасибо, супер видео! Много полезного материала. На 27:22 эксперимент не до конца чистый, так как функция осталась помеченной nonisolated ))
Да, если смотреть до конца объективно, согласен.
Будет очень интересно посмотреть видео с сетью, спасибо за видео
Потрясающе объяснено! Спасибо огромное! Помню Вас на обучении на Отусе)
Спасибо за отзыв!
Ого, честно говоря не ожидал чего-то настолько качественного когда тыкал по рекомендации в ютубе
Рад, что понравилось
Лучший лектор✊🔥
Спасибо
Полезный контент!
Блин круто, как раз на комбайне в UIKit мне нужно было работать)
10 мин скучновато.. пошел дальше
Огонь!
Отличная подача. Спасибо за труд
👍👍👍
💪💪💪
Однажды Эрнест Хемингуэй поспорил... Это самое грустное видео, которое я видела. Желаю Сергею получать много денег, занимаясь любимым делом🙌
Ну блин человек в Европе хочет больше безопасности и свободы выразить своё мнение? Не верю своим ушам!
1:11:40
Сергея ещё не уволили?
Увы, еще нет.
@@nikolai.developer тогда нужен ещё выпуск. С ещё более провокационными вопросами)))
Я требую вторую часть!!!
Есть разговоры на эту тему.
Переменные дожны быть запоминающиеся💯 Желаю чтобы Сергею как можно реже звонил робот, который в контактах записан "Ааааааа Жопа!!!!"
Поездатые разработчики😂😂😂 Несомненно 🔥🔥🔥
Голубой вагон бежит качается)))
Внимание, Вы читаете восторженный коммент.
Как стать таким прошареным чуваком хотя бы за год, кто знает? 😅
За год вряд ли получится)
Хотя бы за год... 🥲 Сергей наверняка большую часть жизни в этой сфере работает. Так что ответ на твой вопрос - "никак!"))
Офигенно, куча интересной инфы изнутри . 👍
Спасибо за видео! Интересно смотреть именно про детали реализации. Классно объясняешь. Идеи для видосов: Было бы круто увидеть демо проект где объединяется навигация + работа со сторонними зависимостями. Например Firebase. Условно добавить firebase через @Dependencies, и смену экраноа после авторизации. Так же интересно как выстроить навигацию с таббаром + реализация popToRoot по нажатию на таб или кнопку из конечного экрана в стеке