- 280
- 419 303
MadiSpace
Russia
เข้าร่วมเมื่อ 29 ก.ย. 2021
Образовательный канал IT-команды MADI.SPACE
Swift: Разбираем map и compactMap — просто и на примерах!
О курсе «Джун за 5!»:
madi.study
Запись на курс:
Телеграм: @WladMadi
Телефон: +7 (967) 901-73-24
Вы знаете, как преобразовать массивы или коллекции в Swift? В этом видео мы подробно разберём, как работают методы map и compactMap. Узнаете, в чём их различия, когда использовать каждый из них, и как они помогают писать чистый и удобный код.
📌 Что вы узнаете:
Как map преобразует элементы массива.
Как compactMap удаляет nil значения и создаёт новый массив.
Примеры для работы с числами, строками и опционалами.
🔥 Полезно для новичков и тех, кто хочет оптимизировать свой код!
VPN-бот:
t.me/ZenithShieldBot?start=538
По вопросам индивидуального обучения:
Телеграм: @WladMadi
Телефон: +7 (967) 901-73-24
Телеграм-чат по iOS-разработке:
t.me/+SBRqlvcbDWQ0ZGNi
Boosty: boosty.to/madispace
Заказать проект в MADI.SPACE:
Телеграм: @WladMadi
Телефон: +7 (967) 901-73-24
Не забудьте подписаться, чтобы не пропустить больше лайфхаков по Swift!
madi.study
Запись на курс:
Телеграм: @WladMadi
Телефон: +7 (967) 901-73-24
Вы знаете, как преобразовать массивы или коллекции в Swift? В этом видео мы подробно разберём, как работают методы map и compactMap. Узнаете, в чём их различия, когда использовать каждый из них, и как они помогают писать чистый и удобный код.
📌 Что вы узнаете:
Как map преобразует элементы массива.
Как compactMap удаляет nil значения и создаёт новый массив.
Примеры для работы с числами, строками и опционалами.
🔥 Полезно для новичков и тех, кто хочет оптимизировать свой код!
VPN-бот:
t.me/ZenithShieldBot?start=538
По вопросам индивидуального обучения:
Телеграм: @WladMadi
Телефон: +7 (967) 901-73-24
Телеграм-чат по iOS-разработке:
t.me/+SBRqlvcbDWQ0ZGNi
Boosty: boosty.to/madispace
Заказать проект в MADI.SPACE:
Телеграм: @WladMadi
Телефон: +7 (967) 901-73-24
Не забудьте подписаться, чтобы не пропустить больше лайфхаков по Swift!
มุมมอง: 175
วีดีโอ
BookMaster: Урок 10 - Верстка и Бизнес-логика функционала записи к мастеру
มุมมอง 10014 วันที่ผ่านมา
В этом курсе мы разрабатываем мобильное приложение под iOS для записи к мастеру с таймслотами. Разработка ведётся на языке Swift с применением фреймворка SwiftUI, а также новой для нашего канала архитектуры IVO - Identifiable View Observable. В курсе основной упор, конечно же, идет на практику разработки мобильного приложения. Затрагиваем сложные кастомные решения в разработке User Interface. Д...
BookMaster: Урок 9 - Функционал записи к мастеру - Часть 1
มุมมอง 23228 วันที่ผ่านมา
В этом курсе мы разрабатываем мобильное приложение под iOS для записи к мастеру с таймслотами. Разработка ведётся на языке Swift с применением фреймворка SwiftUI, а также новой для нашего канала архитектуры IVO - Identifiable View Observable. В курсе основной упор, конечно же, идет на практику разработки мобильного приложения. Затрагиваем сложные кастомные решения в разработке User Interface. Д...
Как выбрать минимальный таргет для iOS приложения?
มุมมอง 382หลายเดือนก่อน
Правильный выбор таргета для iOS-приложения - это важный шаг, который определяет его совместимость, аудиторию и функциональность. В этом видео: 📌 Разберём, как настройки таргета в Xcode определяют платформу, минимальную версию iOS, поддержку устройств и другие важные параметры. 📌 Как выбрать минимальную версию iOS? Почему важно учитывать, какие версии iOS наиболее популярны у пользователей. 🔔 П...
Диспетчеризация методов в Swift - Method Dispatch in Swift #coding #ios #smartphone #apps #apple
มุมมอง 382หลายเดือนก่อน
🔍 В этом видео мы детально разбираем диспетчеризацию методов в Swift! Узнай, как работает вызов методов в зависимости от их типа и модификаторов. 📌 Что ты узнаешь из видео: Разницу между статической, динамической диспетчеризацией и вызовами через V-Table. Как модификаторы final, @objc и наследование влияют на вызов методов. Как работает Swift под капотом и что нужно учитывать при написании прои...
BookMaster: Урок 8 - Вёрстка формы экрана профиля
มุมมอง 2392 หลายเดือนก่อน
BookMaster: Урок 8 - Вёрстка формы экрана профиля
BookMaster: Урок 7 - Создание проекта в Firebase. Аутентификация в FB Auth. Профиль в Firestore
มุมมอง 2263 หลายเดือนก่อน
BookMaster: Урок 7 - Создание проекта в Firebase. Аутентификация в FB Auth. Профиль в Firestore
BookMaster: Урок 6 - Состояния приложения. Вёрстка экрана авторизации/регистрации
มุมมอง 2593 หลายเดือนก่อน
BookMaster: Урок 6 - Состояния приложения. Вёрстка экрана авторизации/регистрации
BookMaster: Урок 5 - Вёрстка кастомных элементов
มุมมอง 6633 หลายเดือนก่อน
BookMaster: Урок 5 - Вёрстка кастомных элементов
BookMaster: Урок 4 - Модель записи, вёрстка ячеек записи, рефакторинг View согласно дизайну в Figma
มุมมอง 3483 หลายเดือนก่อน
BookMaster: Урок 4 - Модель записи, вёрстка ячеек записи, рефакторинг View согласно дизайну в Figma
BookMaster: Урок 3 - Вёрстка кастомного календаря со снайпером по неделям
มุมมอง 4024 หลายเดือนก่อน
BookMaster: Урок 3 - Вёрстка кастомного календаря со снайпером по неделям
BookMaster: Урок 2 - Настройки проекта. Расширения для Date, View
มุมมอง 4334 หลายเดือนก่อน
BookMaster: Урок 2 - Настройки проекта. Расширения для Date, View
BookMaster: Урок 1 - IVO - что это такое вообще? С чем это едят?
มุมมอง 5154 หลายเดือนก่อน
BookMaster: Урок 1 - IVO - что это такое вообще? С чем это едят?
BookMaster: Урок 0 - Новый курс по разработке приложения для записи к мастеру с таймслотами
มุมมอง 4034 หลายเดือนก่อน
BookMaster: Урок 0 - Новый курс по разработке приложения для записи к мастеру с таймслотами
Курс по iOS-разработке с нуля "Джун за 5" - программа, что изменилось за 6 потоков + БОНУС!
มุมมอง 3325 หลายเดือนก่อน
Курс по iOS-разработке с нуля "Джун за 5" - программа, что изменилось за 6 потоков БОНУС!
Как сохранять данные приложения в отдельном файле с кастомные расширением?
มุมมอง 2195 หลายเดือนก่อน
Как сохранять данные приложения в отдельном файле с кастомные расширением?
Custom Flip Transition - анимация перехода в SwiftUI
มุมมอง 4165 หลายเดือนก่อน
Custom Flip Transition - анимация перехода в SwiftUI
Новый подход к реактивному программированию в SwiftUI. Миграция на @Observable
มุมมอง 6575 หลายเดือนก่อน
Новый подход к реактивному программированию в SwiftUI. Миграция на @Observable
гДе мотивация? Сумбурные мысли с дачи о мотивации к стремлению стать программистом.
มุมมอง 5647 หลายเดือนก่อน
гДе мотивация? Сумбурные мысли с дачи о мотивации к стремлению стать программистом.
Ленивые массивы - Lazy Sequence in #Swift
มุมมอง 3088 หลายเดือนก่อน
Ленивые массивы - Lazy Sequence in #Swift
Combine: Урок 6 - Практика. Проверка email на валидность SwiftUI + MVVM + Combine.
มุมมอง 4219 หลายเดือนก่อน
Combine: Урок 6 - Практика. Проверка email на валидность SwiftUI MVVM Combine.
Сниппеты: Повышаем скорость разработки: Создание Snippet'ов. Шаблоны кода для переиспользования
มุมมอง 41710 หลายเดือนก่อน
Сниппеты: Повышаем скорость разработки: Создание Snippet'ов. Шаблоны кода для переиспользования
Combine: Урок 5 - Demind. Корректируем количество запрашиваемых значений
มุมมอง 43210 หลายเดือนก่อน
Combine: Урок 5 - Demind. Корректируем количество запрашиваемых значений
Combine - Урок 4. Кастомный издатель. Custom Publisher, Subject
มุมมอง 48210 หลายเดือนก่อน
Combine - Урок 4. Кастомный издатель. Custom Publisher, Subject
Combine: Урок 3 - Future. Простой асинхронный издатель для одного значения
มุมมอง 64010 หลายเดือนก่อน
Combine: Урок 3 - Future. Простой асинхронный издатель для одного значения
Combine: Урок 2 - Протоколы Publisher, Subscriber, Subscription. Создание кастомного подписчика
มุมมอง 80710 หลายเดือนก่อน
Combine: Урок 2 - Протоколы Publisher, Subscriber, Subscription. Создание кастомного подписчика
Combine: Урок 1 - Концепция фреймворка - Publisher, Operator, Subscriber
มุมมอง 1.2K10 หลายเดือนก่อน
Combine: Урок 1 - Концепция фреймворка - Publisher, Operator, Subscriber
Combine: Урок 0 - Отличие классического (делегативного) и реактивного подходов. Начну издалека
มุมมอง 1.4K11 หลายเดือนก่อน
Combine: Урок 0 - Отличие классического (делегативного) и реактивного подходов. Начну издалека
Кэширование изображений через KingFisher - как и зачем? Кэш iOS-приложения.Как реализовать?
มุมมอง 65011 หลายเดือนก่อน
Кэширование изображений через KingFisher - как и зачем? Кэш iOS-приложения.Как реализовать?
Спасибо. Запоздалый коммент в поддержку канала
Спасибо за видео:)
static let shared = Wallet() Ошибка: Static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wallet' may have shared mutable state
Это новые приколы 6 Свифта и акторов
Все сделал как на видео, все прекрасно работает, конечно были моменты когда не понимал, но ничего страшного, подучусь и пойму)) А учусь только с Вами теперь!) спасибо! очень познавательно
Тоже поддержу. Тоже смотрел, когда учился. Ребята, смотрите всё у Влада! И по делу и весело!
Слишком много показываешь себя и слишком много звиздишь,
Тебе показать, где находится кнопка «следующее видео»? Они же повсюду на YT
Коммент в поддержку! Когда учился - твои видосы очень помогали!
Спасибо большое! Приятно слышать) работаешь уже?
Дай Бог тебе здоровья
Ну и вам не хворать, чего уж там!)
Футболка зачет 😅
Да, это от родителей подарочек)
Круть, еще один способ безопасного unwrap.
Apple рекомендует писать все в одном классе, есть ли смысл делать viewModel? Не проще ли сделать extension и в него вынести функции? Можно в отдельный файл, если так удобней
кайф бро спасибо
Да пожалуйста)
Спасибо, что Вы есть! Мне довольно тяжело дается мой первый язык программирования, но с вашими уроками мне намного легче. Сейчас доделываю WordsGame и могу сказать, что Ваши даже БЕСПЛАТНЫЕ курсы намного круче любых других платных. Благодарю!
Спасибо за обратную связь! С Новым годом!)
Повар спрашивает повара
Взаимно. Всего самого искреннего и сокровенного 🙏
Спасибо, с Новым годом! Удачи и крепкого здоровья.
А как же продолжение?!
Для меня открытие популярность этого решения, думал это чисто извращение для иосников которым лень учить жабаскрипт
Влад, спасибо за понятные уроки! С удовольствием их смотрю. В этом уроке ты так и не создал кастомный Publisher, как объявлено в названии, а использовал стандартный PassthroughSubject. Но всё это мелочи.
Пасиб ❤, четка 😅
Мне кажется или это твоя версия этого видео th-cam.com/video/lsXqJKm4l-U/w-d-xo.html Спалился на совете про алгоритмы, хотя они тут совсем не нужны, можно просто сделать проверку на то есть ли такой элемент в массиве. Я немного в шоке от такого палева)
Я честно не помню, но возможно, что и отсюда) я никогда не скрывал, что иногда перевожу видео. Где-то даже источник указываю. Пускай даже будет называться копипаста или «моя версия» или ещё что-то. Называйте как хотите)
В kotlin лучше это реализовано
Надо было сначала тему с disposeBag раскрыть
JSON - JavaScript Object Notation. Слова notification там нет
Да, скосил. А вообще Joseph Stalin - Otec Narodov!)
Обработчик завершения идет первым потому что может прилететь ошибка и тогда до второго обработчика со значением просто не дойдет
лучший ❤
🔥🔥🔥🔥🔥🔥
Очень понравилось видео. Спасибо 🙏
Чётко! 🤓👍
Привет. Спасибо за видео. Отлично раскрыл тему 👍🏻🔥
Вот бы все уроки в инете были такими доступными. Автору огромный респект!
Вот бы все пользователи были такими активными и оставляли комменты и лайки)) может и канал бы рос побыстрее
Блин, думал ни за что не пойму отличия! СПАСИБО! Понял!
Чётко!
Супер!!! Четко объяснил! Спасибо!
Красава. Очень здорово объясняешь. Чем лучше человек разбирается в чём-то, тем доступнее он объясняет. Респект.
Очень крутое объяснение! Спасибо огромное!
Очень круто объяснил! Спасибо! 😍
Жду с нетерпением следующий урок
Офигеть! 😳 Так круто объяснил, спасибо огромное! 🤝🙏
Супер!
👍👍👍👍👍👍
Начало ролика: "Разберём тему для продвинутых разработчиков". Ролик: получасовой пересказ таблицы с 26:50 без разбора алгоритмов свифта определения метода при комбинации диспетчеризации. Очень слабые знания для продвинутого разработчика. В реалиях 2024 - это знания интернов. В свифте очень много более интересных случаев, которые требуют настоящих продвинутых знаний. Например: ```swift protocol AProtocol { func a() } extension AProtocol { func a() { print(1) } } extension AProtocol where Self: AClass { func a() { print(3) } } class AClass: AProtocol {} let a = AClass() a.a() ``` Почему вызовется метод c print(3)? Или: ```swift protocol AProtocol { func a() } extension AProtocol { func a() { print(1) } } class AClass: AProtocol { func a() { print(2) } } let a = AClass() a.a() ``` Почему вызовется метод с print(2)?
А это не очевидно, почему вызовется тот или иной метод, исходя из материала ролика?)
Подобные задачи уже на каждом собесе дублируют, можно и запомнить)
Снобизм?) не не слышали, опять же зачем Джуну и интерну знать как глубоко работает диспетчеризация, человек только ui научился писать, не нужно свое мнение проецировать на всех, особенно в реалиях 2024
Такое чувство, что я ролики на заказ тут фигачу и мне за этого платят, чтобы потом приходили снобы и говорили «фе, да тут не то и там не так. Недоделано, делай вот сяк». Если не нравится, можете сами попробовать, уверен, получится гораздо лучше и профессиональнее))
@@MadiSpace так тут только один эксперт высказался, остальным вроде все зашло)
А что в сфивте не придумали параметры по умолчанию?
Придумали конечно
А провальный 😢???
Ну это не тип инита, это просто как опциональный инит. Конвиниенс тоже может быть провальным
Добрый вечер! Я диспетчер!
Красавчик, все четко объяснил) слово из трёх букв ) тоже нормальный прикол 😅
Лучший!!! Спасибо!☺️
А пожалуйста) успехов в обучении 🎉
@ еще бы успехов в поиске работы )) Спасибо большое 🥳
вайббббб
по превьюшке футболки подумал, что Влад сменил жанр)
Не, судя по количеству просмотров, остался в старом жанре
Здоровое приложение 😮😊
Здоровенное
Почему вы всегда обращаетесь к вашим зрителям на ты? Мягко говорят как неуважения кто вас сморит
Ну не знаю, ко мне тоже все мои ученики практически на ты обращаются, и я к ним так же) не вижу в этом неуважения. К Екатерине II и Петру I тоже на Ты обращались. К Богу на Ты обращаются)
@@MadiSpace Вы сравниваете, совершенно разные ситуации, и отношения между людьми, людей ещё с детского садика людей воспитают к незнакомым людям обращаться на вы, и если ваша беседа уже проходит определенный момент общения, собеседники предлагают перейти на ты, у вас хороший Ютуб канал, можно много чего полезного узнать, но ваше обращение на ты, не много смущает, а так успехов вам вашем творческие-просвитительном деле!
Я считаю, что это субъективный вопрос. И также я считаю, что если уж это мой канал, то я сам могу выбирать, как мне обращаться к моей аудитории. И вам успехов в обучении)
К тем кто не знает что такое autoreleasepool вообще нужно обращаться - ты?(опциональное ты))