MadiSpace
MadiSpace
  • 280
  • 419 303
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!
มุมมอง: 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 หลายเดือนก่อน
гДе мотивация? Сумбурные мысли с дачи о мотивации к стремлению стать программистом.
Позиционирование View в SwiftUI
มุมมอง 4828 หลายเดือนก่อน
Позиционирование View в SwiftUI
Ленивые массивы - 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-приложения.Как реализовать?

ความคิดเห็น

  • @Dima-ih8pu
    @Dima-ih8pu 20 ชั่วโมงที่ผ่านมา

    Спасибо. Запоздалый коммент в поддержку канала

  • @artemvrednii
    @artemvrednii วันที่ผ่านมา

    Спасибо за видео:)

  • @serhiivedeniev8451
    @serhiivedeniev8451 6 วันที่ผ่านมา

    static let shared = Wallet() Ошибка: Static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wallet' may have shared mutable state

    • @MadiSpace
      @MadiSpace 6 วันที่ผ่านมา

      Это новые приколы 6 Свифта и акторов

  • @ValeryZhurda
    @ValeryZhurda 6 วันที่ผ่านมา

    Все сделал как на видео, все прекрасно работает, конечно были моменты когда не понимал, но ничего страшного, подучусь и пойму)) А учусь только с Вами теперь!) спасибо! очень познавательно

  • @RA_27_sector
    @RA_27_sector 8 วันที่ผ่านมา

    Тоже поддержу. Тоже смотрел, когда учился. Ребята, смотрите всё у Влада! И по делу и весело!

  • @KANA-hl1ec
    @KANA-hl1ec 8 วันที่ผ่านมา

    Слишком много показываешь себя и слишком много звиздишь,

    • @MadiSpace
      @MadiSpace 4 วันที่ผ่านมา

      Тебе показать, где находится кнопка «следующее видео»? Они же повсюду на YT

  • @МаксМорозов-я4г
    @МаксМорозов-я4г 9 วันที่ผ่านมา

    Коммент в поддержку! Когда учился - твои видосы очень помогали!

    • @MadiSpace
      @MadiSpace 8 วันที่ผ่านมา

      Спасибо большое! Приятно слышать) работаешь уже?

  • @vitalykhimenko4042
    @vitalykhimenko4042 10 วันที่ผ่านมา

    Дай Бог тебе здоровья

    • @MadiSpace
      @MadiSpace 8 วันที่ผ่านมา

      Ну и вам не хворать, чего уж там!)

  • @egorfeller4340
    @egorfeller4340 10 วันที่ผ่านมา

    Футболка зачет 😅

    • @MadiSpace
      @MadiSpace 10 วันที่ผ่านมา

      Да, это от родителей подарочек)

  • @dima1619
    @dima1619 11 วันที่ผ่านมา

    Круть, еще один способ безопасного unwrap.

  • @TheMrPifagor
    @TheMrPifagor 12 วันที่ผ่านมา

    Apple рекомендует писать все в одном классе, есть ли смысл делать viewModel? Не проще ли сделать extension и в него вынести функции? Можно в отдельный файл, если так удобней

  • @Tetsimon
    @Tetsimon 14 วันที่ผ่านมา

    кайф бро спасибо

    • @MadiSpace
      @MadiSpace 14 วันที่ผ่านมา

      Да пожалуйста)

  • @ValeryZhurda
    @ValeryZhurda 17 วันที่ผ่านมา

    Спасибо, что Вы есть! Мне довольно тяжело дается мой первый язык программирования, но с вашими уроками мне намного легче. Сейчас доделываю WordsGame и могу сказать, что Ваши даже БЕСПЛАТНЫЕ курсы намного круче любых других платных. Благодарю!

    • @MadiSpace
      @MadiSpace 16 วันที่ผ่านมา

      Спасибо за обратную связь! С Новым годом!)

  • @akaialiev3866
    @akaialiev3866 20 วันที่ผ่านมา

    Повар спрашивает повара

  • @Sweatyawe1
    @Sweatyawe1 22 วันที่ผ่านมา

    Взаимно. Всего самого искреннего и сокровенного 🙏

  • @reneaston5777
    @reneaston5777 23 วันที่ผ่านมา

    Спасибо, с Новым годом! Удачи и крепкого здоровья.

  • @ДиванныйГитарист
    @ДиванныйГитарист 25 วันที่ผ่านมา

    А как же продолжение?!

  • @Andrew-7324
    @Andrew-7324 26 วันที่ผ่านมา

    Для меня открытие популярность этого решения, думал это чисто извращение для иосников которым лень учить жабаскрипт

  • @КонстантинИсаченко-е3б
    @КонстантинИсаченко-е3б 27 วันที่ผ่านมา

    Влад, спасибо за понятные уроки! С удовольствием их смотрю. В этом уроке ты так и не создал кастомный Publisher, как объявлено в названии, а использовал стандартный PassthroughSubject. Но всё это мелочи.

  • @egorfeller4340
    @egorfeller4340 28 วันที่ผ่านมา

    Пасиб ❤, четка 😅

  • @ГлебХамин
    @ГлебХамин หลายเดือนก่อน

    Мне кажется или это твоя версия этого видео th-cam.com/video/lsXqJKm4l-U/w-d-xo.html Спалился на совете про алгоритмы, хотя они тут совсем не нужны, можно просто сделать проверку на то есть ли такой элемент в массиве. Я немного в шоке от такого палева)

    • @MadiSpace
      @MadiSpace หลายเดือนก่อน

      Я честно не помню, но возможно, что и отсюда) я никогда не скрывал, что иногда перевожу видео. Где-то даже источник указываю. Пускай даже будет называться копипаста или «моя версия» или ещё что-то. Называйте как хотите)

  • @ongrustit
    @ongrustit หลายเดือนก่อน

    В kotlin лучше это реализовано

  • @TheMrPifagor
    @TheMrPifagor หลายเดือนก่อน

    Надо было сначала тему с disposeBag раскрыть

  • @alexnone
    @alexnone หลายเดือนก่อน

    JSON - JavaScript Object Notation. Слова notification там нет

    • @MadiSpace
      @MadiSpace หลายเดือนก่อน

      Да, скосил. А вообще Joseph Stalin - Otec Narodov!)

  • @TheMrPifagor
    @TheMrPifagor หลายเดือนก่อน

    Обработчик завершения идет первым потому что может прилететь ошибка и тогда до второго обработчика со значением просто не дойдет

  • @edgaradamyan710
    @edgaradamyan710 หลายเดือนก่อน

    лучший ❤

  • @vasiario
    @vasiario หลายเดือนก่อน

    🔥🔥🔥🔥🔥🔥

  • @vasiario
    @vasiario หลายเดือนก่อน

    Очень понравилось видео. Спасибо 🙏

  • @JokerXP-rA9
    @JokerXP-rA9 หลายเดือนก่อน

    Чётко! 🤓👍

  • @vasiario
    @vasiario หลายเดือนก่อน

    Привет. Спасибо за видео. Отлично раскрыл тему 👍🏻🔥

  • @JokerXP-rA9
    @JokerXP-rA9 หลายเดือนก่อน

    Вот бы все уроки в инете были такими доступными. Автору огромный респект!

    • @MadiSpace
      @MadiSpace หลายเดือนก่อน

      Вот бы все пользователи были такими активными и оставляли комменты и лайки)) может и канал бы рос побыстрее

  • @JokerXP-rA9
    @JokerXP-rA9 หลายเดือนก่อน

    Блин, думал ни за что не пойму отличия! СПАСИБО! Понял!

  • @JokerXP-rA9
    @JokerXP-rA9 หลายเดือนก่อน

    Чётко!

  • @JokerXP-rA9
    @JokerXP-rA9 หลายเดือนก่อน

    Супер!!! Четко объяснил! Спасибо!

  • @JokerXP-rA9
    @JokerXP-rA9 หลายเดือนก่อน

    Красава. Очень здорово объясняешь. Чем лучше человек разбирается в чём-то, тем доступнее он объясняет. Респект.

  • @JokerXP-rA9
    @JokerXP-rA9 หลายเดือนก่อน

    Очень крутое объяснение! Спасибо огромное!

  • @JokerXP-rA9
    @JokerXP-rA9 หลายเดือนก่อน

    Очень круто объяснил! Спасибо! 😍

  • @Psiopss
    @Psiopss หลายเดือนก่อน

    Жду с нетерпением следующий урок

  • @JokerXP-rA9
    @JokerXP-rA9 หลายเดือนก่อน

    Офигеть! 😳 Так круто объяснил, спасибо огромное! 🤝🙏

  • @Kurortn1y
    @Kurortn1y หลายเดือนก่อน

    Супер!

  • @j.studio3304
    @j.studio3304 หลายเดือนก่อน

    👍👍👍👍👍👍

  • @IliaChub
    @IliaChub หลายเดือนก่อน

    Начало ролика: "Разберём тему для продвинутых разработчиков". Ролик: получасовой пересказ таблицы с 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)?

    • @MadiSpace
      @MadiSpace หลายเดือนก่อน

      А это не очевидно, почему вызовется тот или иной метод, исходя из материала ролика?)

    • @Руслан-ъ6л2щ
      @Руслан-ъ6л2щ หลายเดือนก่อน

      Подобные задачи уже на каждом собесе дублируют, можно и запомнить)

    • @miniwinner4318
      @miniwinner4318 หลายเดือนก่อน

      Снобизм?) не не слышали, опять же зачем Джуну и интерну знать как глубоко работает диспетчеризация, человек только ui научился писать, не нужно свое мнение проецировать на всех, особенно в реалиях 2024

    • @MadiSpace
      @MadiSpace หลายเดือนก่อน

      Такое чувство, что я ролики на заказ тут фигачу и мне за этого платят, чтобы потом приходили снобы и говорили «фе, да тут не то и там не так. Недоделано, делай вот сяк». Если не нравится, можете сами попробовать, уверен, получится гораздо лучше и профессиональнее))

    • @Руслан-ъ6л2щ
      @Руслан-ъ6л2щ หลายเดือนก่อน

      @@MadiSpace так тут только один эксперт высказался, остальным вроде все зашло)

  • @vazgen005
    @vazgen005 หลายเดือนก่อน

    А что в сфивте не придумали параметры по умолчанию?

    • @MadiSpace
      @MadiSpace หลายเดือนก่อน

      Придумали конечно

    • @egorfeller4340
      @egorfeller4340 หลายเดือนก่อน

      А провальный 😢???

    • @MadiSpace
      @MadiSpace หลายเดือนก่อน

      Ну это не тип инита, это просто как опциональный инит. Конвиниенс тоже может быть провальным

  • @true_rocknrolla
    @true_rocknrolla 2 หลายเดือนก่อน

    Добрый вечер! Я диспетчер!

  • @Lucktimerfull22
    @Lucktimerfull22 2 หลายเดือนก่อน

    Красавчик, все четко объяснил) слово из трёх букв ) тоже нормальный прикол 😅

  • @Dontgoagainstthedream
    @Dontgoagainstthedream 2 หลายเดือนก่อน

    Лучший!!! Спасибо!☺️

    • @MadiSpace
      @MadiSpace 2 หลายเดือนก่อน

      А пожалуйста) успехов в обучении 🎉

    • @Dontgoagainstthedream
      @Dontgoagainstthedream 2 หลายเดือนก่อน

      @ еще бы успехов в поиске работы )) Спасибо большое 🥳

  • @IbragimIbragim-lw1fs
    @IbragimIbragim-lw1fs 2 หลายเดือนก่อน

    вайббббб

  • @dima1619
    @dima1619 2 หลายเดือนก่อน

    по превьюшке футболки подумал, что Влад сменил жанр)

    • @MadiSpace
      @MadiSpace 2 หลายเดือนก่อน

      Не, судя по количеству просмотров, остался в старом жанре

  • @egorfeller4340
    @egorfeller4340 2 หลายเดือนก่อน

    Здоровое приложение 😮😊

    • @MadiSpace
      @MadiSpace 2 หลายเดือนก่อน

      Здоровенное

  • @ongrustit
    @ongrustit 2 หลายเดือนก่อน

    Почему вы всегда обращаетесь к вашим зрителям на ты? Мягко говорят как неуважения кто вас сморит

    • @MadiSpace
      @MadiSpace 2 หลายเดือนก่อน

      Ну не знаю, ко мне тоже все мои ученики практически на ты обращаются, и я к ним так же) не вижу в этом неуважения. К Екатерине II и Петру I тоже на Ты обращались. К Богу на Ты обращаются)

    • @ongrustit
      @ongrustit 2 หลายเดือนก่อน

      ​​@@MadiSpace Вы сравниваете, совершенно разные ситуации, и отношения между людьми, людей ещё с детского садика людей воспитают к незнакомым людям обращаться на вы, и если ваша беседа уже проходит определенный момент общения, собеседники предлагают перейти на ты, у вас хороший Ютуб канал, можно много чего полезного узнать, но ваше обращение на ты, не много смущает, а так успехов вам вашем творческие-просвитительном деле!

    • @MadiSpace
      @MadiSpace 2 หลายเดือนก่อน

      Я считаю, что это субъективный вопрос. И также я считаю, что если уж это мой канал, то я сам могу выбирать, как мне обращаться к моей аудитории. И вам успехов в обучении)

    • @evgenswap
      @evgenswap 15 วันที่ผ่านมา

      К тем кто не знает что такое autoreleasepool вообще нужно обращаться - ты?(опциональное ты))