Что такое замыкания и как их использовать?
Сегодня хотел бы поделиться с вами информацией о замыканиях (closures). И подготовили видео доклад на нашем ютуб канале.
🔎 Что такое замыкания?
Замыкание - это блок кода, который можно передать и использовать в качестве аргумента или возвращаемого значения в функциях. Оно может захватывать и хранить ссылки на переменные и константы из контекста, в котором оно было создано. Замыкания в Swift могут быть написаны в сжатой и лаконичной форме, что делает код более читабельным и понятным.
🎯 Зачем нужны замыкания?
Замыкания в Swift предоставляют множество возможностей и преимуществ:
1️⃣ Передача кода в качестве аргументов: замыкания позволяют передавать и использовать куски кода внутри других функций. Это особенно полезно при работе с асинхронными операциями или при необходимости выполнить определенные действия после завершения задачи.
2️⃣ Хранение кода в переменных: замыкания можно присваивать переменным или константам и использовать их в любом месте кода. Это позволяет создавать гибкие и масштабируемые архитектуры приложений.
3️⃣ Захват значений из окружения: замыкания могут захватывать и использовать значения из внешнего контекста. Это позволяет создавать более гибкие и мощные функции, которые могут адаптироваться к различным сценариям использования.
💡 Если вы хотите узнать больше о замыканиях в Swift, рекомендую посмотреть технический доклад на нашем канале iOS. Он содержит объяснение концепции замыканий и примеры их использования.
#iOS #digest #замыкания
Сегодня хотел бы поделиться с вами информацией о замыканиях (closures). И подготовили видео доклад на нашем ютуб канале.
🔎 Что такое замыкания?
Замыкание - это блок кода, который можно передать и использовать в качестве аргумента или возвращаемого значения в функциях. Оно может захватывать и хранить ссылки на переменные и константы из контекста, в котором оно было создано. Замыкания в Swift могут быть написаны в сжатой и лаконичной форме, что делает код более читабельным и понятным.
🎯 Зачем нужны замыкания?
Замыкания в Swift предоставляют множество возможностей и преимуществ:
1️⃣ Передача кода в качестве аргументов: замыкания позволяют передавать и использовать куски кода внутри других функций. Это особенно полезно при работе с асинхронными операциями или при необходимости выполнить определенные действия после завершения задачи.
2️⃣ Хранение кода в переменных: замыкания можно присваивать переменным или константам и использовать их в любом месте кода. Это позволяет создавать гибкие и масштабируемые архитектуры приложений.
3️⃣ Захват значений из окружения: замыкания могут захватывать и использовать значения из внешнего контекста. Это позволяет создавать более гибкие и мощные функции, которые могут адаптироваться к различным сценариям использования.
💡 Если вы хотите узнать больше о замыканиях в Swift, рекомендую посмотреть технический доклад на нашем канале iOS. Он содержит объяснение концепции замыканий и примеры их использования.
#iOS #digest #замыкания
🔥20👍8❤4🤮1
500 подписчиков💥
Спасибо всем, я очень рад и счастлив. Постараюсь выпускать качественный и годный контент чаще.
Ближайшие выпуски:
1️⃣ Важность проведение one to one в компании.
2️⃣ Переход от классического UIKit+VIPER на SwiftUI по шагам.
3️⃣ Мок-собеседование на должность iOS разработчика.
Спасибо всем, я очень рад и счастлив. Постараюсь выпускать качественный и годный контент чаще.
Ближайшие выпуски:
1️⃣ Важность проведение one to one в компании.
2️⃣ Переход от классического UIKit+VIPER на SwiftUI по шагам.
3️⃣ Мок-собеседование на должность iOS разработчика.
🎉35❤5🔥5👍3🥰1👏1💩1
MVVM на практике UIKit
Когда iOS впервые появилась, Apple предложила использовать MVC (Model-View-Controller) в качестве шаблона проектирования. Они показали это во всех своих примерах, и все первые разработчики были счастливы использовать его, потому что он прекрасно разделял проблемы между бизнес-логикой и пользовательским интерфейсом. По мере того, как приложения становились больше и сложнее, возникла новая проблема, получившая соответствующее название Massive View Controllers (MVC).
Поскольку вся бизнес-логика была добавлена в ViewController, со временем они обычно становились слишком большими и сложными. Чтобы избежать проблем с MVC, в мире iOS был введен новый шаблон проектирования - шаблон Model-View-ViewModel (MVVM).
Как выглядит MVVM. У вас есть стандартный ViewController + View (в storyboard, XIB или Code), который действует как представление MVVM (в дальнейшем text - View будет ссылаться на представление MVVM). Представление имеет ссылку на ViewModel, где находится наша бизнес-логика. Важно заметить, что ViewModel ничего не знает о представлении и никогда не имеет ссылки на представление. ViewModel содержит ссылку на модель.
Одна из основных проблем с MVVM заключается в том, как обновить View с помощью ViewModel, когда ViewModel не имеет никаких ссылок и даже ничего не знает о View.
Смотреть видео про архитектурный паттрен MVVM
#swift #mvvm
Когда iOS впервые появилась, Apple предложила использовать MVC (Model-View-Controller) в качестве шаблона проектирования. Они показали это во всех своих примерах, и все первые разработчики были счастливы использовать его, потому что он прекрасно разделял проблемы между бизнес-логикой и пользовательским интерфейсом. По мере того, как приложения становились больше и сложнее, возникла новая проблема, получившая соответствующее название Massive View Controllers (MVC).
Поскольку вся бизнес-логика была добавлена в ViewController, со временем они обычно становились слишком большими и сложными. Чтобы избежать проблем с MVC, в мире iOS был введен новый шаблон проектирования - шаблон Model-View-ViewModel (MVVM).
Как выглядит MVVM. У вас есть стандартный ViewController + View (в storyboard, XIB или Code), который действует как представление MVVM (в дальнейшем text - View будет ссылаться на представление MVVM). Представление имеет ссылку на ViewModel, где находится наша бизнес-логика. Важно заметить, что ViewModel ничего не знает о представлении и никогда не имеет ссылки на представление. ViewModel содержит ссылку на модель.
Одна из основных проблем с MVVM заключается в том, как обновить View с помощью ViewModel, когда ViewModel не имеет никаких ссылок и даже ничего не знает о View.
Смотреть видео про архитектурный паттрен MVVM
#swift #mvvm
👍10🔥7❤5🤮2
А У ВАС ЕСТЬ ONE TO ONE?
В мире информационных технологий, где командная работа становится все более распространенной практикой, не следует забывать о важности проведения индивидуальных встреч "one to one". Это поистине магическое время, когда руководитель и сотрудник имеют возможность погрузиться в мир личных достижений, амбиций и целей.
Один на один - это не просто обычная встреча, это возможность создать гармонию в команде. Ведь каждый из нас уникален и имеет свои сильные и слабые стороны. Именно во время таких встреч можно выявить и развить эти стороны, создавая идеальное сочетание навыков внутри команды.
Но важность one to one не ограничивается только гармонией в команде. Это также отличная возможность для руководителя понять, что мотивирует каждого сотрудника, какие цели он преследует и как можно помочь ему достичь этих целей. Ведь только истинно мотивированный сотрудник способен добиться высоких результатов.
iOS Такой пригласил гостя - Анатолия Кнутарева, который подготовил доклад и рассказал о важности проведение one to one в компаниях.
#digest #доклад
В мире информационных технологий, где командная работа становится все более распространенной практикой, не следует забывать о важности проведения индивидуальных встреч "one to one". Это поистине магическое время, когда руководитель и сотрудник имеют возможность погрузиться в мир личных достижений, амбиций и целей.
Один на один - это не просто обычная встреча, это возможность создать гармонию в команде. Ведь каждый из нас уникален и имеет свои сильные и слабые стороны. Именно во время таких встреч можно выявить и развить эти стороны, создавая идеальное сочетание навыков внутри команды.
Но важность one to one не ограничивается только гармонией в команде. Это также отличная возможность для руководителя понять, что мотивирует каждого сотрудника, какие цели он преследует и как можно помочь ему достичь этих целей. Ведь только истинно мотивированный сотрудник способен добиться высоких результатов.
iOS Такой пригласил гостя - Анатолия Кнутарева, который подготовил доклад и рассказал о важности проведение one to one в компаниях.
#digest #доклад
👍8🔥7❤3💩2
Гибкость интерфейса с Backend-Driven UI
Backend‑Driven UI (или Server‑Driven UI) — это концепция в разработке приложений с интерфейсом, при котором бэкенд управляет как данными приложения, так и его внешним видом. Например, для фронтенд‑приложения BDUI будет управлять вёрсткой.
В этой статье на практических примерах разбираются преимущества переноса логики интерфейса приложения на backend.
Вы узнаете, как упростить тестирование, оптимизировать разработку и быстро вносить изменения в дизайн.
#idgest
Backend‑Driven UI (или Server‑Driven UI) — это концепция в разработке приложений с интерфейсом, при котором бэкенд управляет как данными приложения, так и его внешним видом. Например, для фронтенд‑приложения BDUI будет управлять вёрсткой.
В этой статье на практических примерах разбираются преимущества переноса логики интерфейса приложения на backend.
Вы узнаете, как упростить тестирование, оптимизировать разработку и быстро вносить изменения в дизайн.
#idgest
👍8❤2🔥2🤮2
Привет всем!✨
Хочу поделиться с вами некоторыми мыслями о нашем контенте и предложить вам возможность поддержать наш канал на бусти. Если вам нравятся наши видео, вы можете сделать свой вклад, который будет не только огромной поддержкой для меня, но и для всего канала!
☕️ 199 рублей - цена чашки кофе, но большой вклад в развитие контента!
Я очень стараюсь выпускать новые ролики и хочу поделиться с вами планами на будущее:
🔴 Скоро выходит выпуск свой игры, над которой мы усердно работаем.
🔴 Расскажем о переходе с VIPER UIKit на SwiftUI подробно
🔴 Возвращаем рубрику публичных моковых собеседований! Следующий выпуск будет очень интересным🔫
Для подписчиков бусти создадим специальный локальный чат, помогать друг другу в развитии, делиться приватной полезной информацией! Но главное - это мок собеседования внутри этого чата и ваша возможность принять участие в них!
Огромное спасибо всем за вашу поддержку и интерес к нашему контенту. Вы делаете нас лучше! Люблю!🎯
#digest #поддержка
Хочу поделиться с вами некоторыми мыслями о нашем контенте и предложить вам возможность поддержать наш канал на бусти. Если вам нравятся наши видео, вы можете сделать свой вклад, который будет не только огромной поддержкой для меня, но и для всего канала!
Я очень стараюсь выпускать новые ролики и хочу поделиться с вами планами на будущее:
Для подписчиков бусти создадим специальный локальный чат, помогать друг другу в развитии, делиться приватной полезной информацией! Но главное - это мок собеседования внутри этого чата и ваша возможность принять участие в них!
Огромное спасибо всем за вашу поддержку и интерес к нашему контенту. Вы делаете нас лучше! Люблю!🎯
#digest #поддержка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🎉4🏆3💩2🤮1🤡1
Swift Runtime в деталях
Это написанная на C++ библиотека, которая занимается обслуживанием встроенных в сам язык Swift функций. В частности, тут можно выделить как минимум две больших категории: работа с памятью (ARC), и работа с типами данных.
Статья про Swift Runtime - что это, зачем он нужен, где появляется и на чем основан принцип его работы, немного про особенности его реализации и про этапы компиляции.
#digest
Это написанная на C++ библиотека, которая занимается обслуживанием встроенных в сам язык Swift функций. В частности, тут можно выделить как минимум две больших категории: работа с памятью (ARC), и работа с типами данных.
Статья про Swift Runtime - что это, зачем он нужен, где появляется и на чем основан принцип его работы, немного про особенности его реализации и про этапы компиляции.
#digest
🔥14👍8❤4💩2😡1
Полезные материалы
Много ссылок об iOS и Swift — эти материалы очень полезны в решении многих вопросов. Сохраняй, пользуйся, делись👇
Xcode
➡️ Подробнее про сам Xcode
➡️ Подробнее про Interface Builder
Структура приложения
➡️ Жизненный цикл iOS-приложения
➡️ Туториал по iOS Storyboard
➡️ UIApplicationDelegate
➡️ UIScene
Работа с Git
➡️ Документация по Git
➡️ Вводная по работе с Git
UI/UX
➡️ Документация Apple UIViewController
➡️ Хабр: жизненный цикл UIViewController
➡️ Документация Apple UINavigationController
➡️ Документация Apple UITabBarController
➡️ VC: основы мобильной навигации
➡️ UX/UI Design Glossary. Navigation Elements
Архитектура
➡️ Документация по MVC
➡️ Хабр: про MVC
➡️ Medium: отличия MVP от MVC
➡️ Хабр: различные архитектуры
UICollectionView
➡️ Документация от Apple
➡️ Туториал
➡️ CollectionView with NSHipster
Тестирование
➡️ Практический видео материал
➡️ Написание своего первого теста
UITableView
➡️ Документация
➡️ Подробный разбор на Medium
➡️ Туториал для начинающих
Layout
➡️ Статья про Update Cycle и все его методы
➡️ Туториал про CALayer
➡️ Документация от Apple по layoutSubviews()
➡️ Подробный гайд AutoLayout от Apple
➡️ Хабр: концепция, строение, применение AutoLayout
➡️ От Apple про адаптивный дизайн
➡️ Хабр: математические основы AutoLayout
Работа с сетью
➡️ Официальная документация URLSession от Apple
➡️ Networking in iOS от Swift by Sundell
➡️ Хабр: взаимодействие с сетью в iOS
➡️ Документация URLSession + Combine
➡️ Medium: REST простым языком
Decoding
➡️ Туториал по декодингу данных от Apple
➡️ Гайд по Codable
➡️ Хабр: парсинг данных в iOS
Temporary
➡️ Официальная документация URLCache от Apple
➡️ Официальная документация NSCache от Apple
➡️ Cache with NSCache from Swift by Sundell
Databases
➡️ Официальная документация Core Data от Apple
➡️ Core Data + Swift для самых маленьких
➡️ Medium: синхронизация API с Core Data
Key-Value
➡️ Storing Keys in the Keychain от Apple
➡️ Хабр: Keychain в API
➡️ Официальная документация UserDefaults от Apple
➡️ Medium: пример использования UserDefaults
➡️ Официальная документация FileManager от Apple
Многопоточность и асинхронность
➡️ Немного о RunLoop
➡️ Medium: Swift Mutex benchmark
➡️ Параллелизм, многопоточность и асинхронное программирование
➡️ Хабр: Multithreading
➡️ YouTube: Multithreading в Swift с нуля
➡️ Medium: Deadlocks, Livelocks и Starvation
➡️ Medium: параллельное программирование на Swift
➡️ Устройство многопоточности в iOS
Книги по iOS
➡️ Swift подробно
➡️ Мет Ньюберг ios 14 programming (кому нужен перевод книги, пишите мне - я скину)
Много ссылок об iOS и Swift — эти материалы очень полезны в решении многих вопросов. Сохраняй, пользуйся, делись
Xcode
Структура приложения
Работа с Git
UI/UX
Архитектура
UICollectionView
Тестирование
UITableView
Layout
Работа с сетью
Decoding
Temporary
Databases
Key-Value
Многопоточность и асинхронность
Книги по iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple Developer Documentation
Xcode | Apple Developer Documentation
Build, test, and submit your app with Apple’s integrated development environment.
🔥27❤7👍5💩2⚡1🎉1
Туториал для начинаюших по Bezier Paths и Shape Layers
Существуют разные способы и разные подходы к тому, как нарисовать "экран" приложения:
— Использовать полученную графику от дизайнеров.
— Реализовать UI в коде.
— Использовать Interface Builder.
— Комбинации способов выше и другие варианты.
Но иногда, нам необходимо нарисовать сложный графический UI, который зачастую делается с помощью Bezier Paths и Shape Layers.
В статье предлагается практическое руководство по созданию Bezier Paths. Автор рассматривает серию небольших, но понятных примеров, и знакомит с обеими концепциями.
#digest #UI
Существуют разные способы и разные подходы к тому, как нарисовать "экран" приложения:
— Использовать полученную графику от дизайнеров.
— Реализовать UI в коде.
— Использовать Interface Builder.
— Комбинации способов выше и другие варианты.
Но иногда, нам необходимо нарисовать сложный графический UI, который зачастую делается с помощью Bezier Paths и Shape Layers.
В статье предлагается практическое руководство по созданию Bezier Paths. Автор рассматривает серию небольших, но понятных примеров, и знакомит с обеими концепциями.
#digest #UI
❤12👍6🔥4💩2🤷♂1❤🔥1
Привет, друзья!
У нас на YouTube канале вышла викторина по iOS💡
В ней соревнуются четыре опытных разработчика, и каждый из них показывает свои знания и навыки.
Викторина состоит из пяти секций, которые охватывают различные аспекты разработки на iOS. Мы покрываем такие темы, как:
🔴 SwiftUI
🔴 Сеть
🔴 Многопоточность
🔴 Рандомные вопросы
🔴 Основы Swift.
В каждой секции есть по семь вопросов, начиная с простых и заканчивая самыми сложными.
Кроме того, мы также выпустили моковое собеседование с одним из наших подписчиков на платформе Boosty.
Удачи в развитии ваших навыков разработки на iOS! 🚀📚
#digest #свояигра #викторина
У нас на YouTube канале вышла викторина по iOS💡
В ней соревнуются четыре опытных разработчика, и каждый из них показывает свои знания и навыки.
Викторина состоит из пяти секций, которые охватывают различные аспекты разработки на iOS. Мы покрываем такие темы, как:
В каждой секции есть по семь вопросов, начиная с простых и заканчивая самыми сложными.
Кроме того, мы также выпустили моковое собеседование с одним из наших подписчиков на платформе Boosty.
Удачи в развитии ваших навыков разработки на iOS! 🚀📚
#digest #свояигра #викторина
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🎉5❤2🔥2🤮2💯1🙉1
🔥 На канале iOS Такой вышел новый выпуск командной викторины, посвященный теме Apple и разработке
В этом выпуске приняли участие две команды, которые соревновались друг с другом, чтобы показать свои знания и умения
Викторина была не только увлекательной, но и информативной. Участники отвечали на вопросы, связанные с продукцией Apple, и делились интересными фактами о разработке приложений и программ для iOS
Каждая команда демонстрировала свою экспертность в мире Apple, стараясь ответить на вопросы как можно точнее и быстрее. Атмосфера в студии была наполнена энергией и соперничеством
Если вы хотите провести время с пользой, узнать что-то новое о компании Apple и разработке для iOS, обязательно посмотрите этот выпуск на канале iOS Такой
#digest #викторина
В этом выпуске приняли участие две команды, которые соревновались друг с другом, чтобы показать свои знания и умения
Викторина была не только увлекательной, но и информативной. Участники отвечали на вопросы, связанные с продукцией Apple, и делились интересными фактами о разработке приложений и программ для iOS
Каждая команда демонстрировала свою экспертность в мире Apple, стараясь ответить на вопросы как можно точнее и быстрее. Атмосфера в студии была наполнена энергией и соперничеством
Если вы хотите провести время с пользой, узнать что-то новое о компании Apple и разработке для iOS, обязательно посмотрите этот выпуск на канале iOS Такой
#digest #викторина
❤19🔥12👍4👎3
В скором времени мы подготовим и выпустим для вас выпуск на тему «Переход c VIPER UIKit на SwiftUI, пошагово» от опытного разработчика.
Если у вас есть какие-то идеи для выпуска или вы хотите стать гостем, не стесняйтесь пишите в комментарии или в личку.
Мы рады любой обратной связи. Большое спасибо Вам ❤️
Если у вас есть какие-то идеи для выпуска или вы хотите стать гостем, не стесняйтесь пишите в комментарии или в личку.
Мы рады любой обратной связи. Большое спасибо Вам ❤️
🔥34❤5🖕3❤🔥2👍2
Все по SwiftUI
➡️ SwiftUI Tutorials — серьезный материал от Apple, который сформирует базовые знания
➡️ Лекции Стенфорда. Бесспорно, не требующий представления ресурс, который содержит изменения за 2023 год
➡️ SwiftUI by Example — куча страниц с кодом под любую задачу
➡️ Awesome SwiftUI — список статей, обучающих программ, руководств и видосов
➡️ SwiftUI Weekly — обновляемый список ссылок на материалы
#digest #swiftui
➡️ SwiftUI Tutorials — серьезный материал от Apple, который сформирует базовые знания
➡️ Лекции Стенфорда. Бесспорно, не требующий представления ресурс, который содержит изменения за 2023 год
➡️ SwiftUI by Example — куча страниц с кодом под любую задачу
➡️ Awesome SwiftUI — список статей, обучающих программ, руководств и видосов
➡️ SwiftUI Weekly — обновляемый список ссылок на материалы
#digest #swiftui
🔥24❤7👍3🤮2🤩1
Готовим в ближайший релиз два выпуска
⚡Технический доклад о переходе с VIPER UIKit на SwiftU подробно. От Senior iOS Разработчика
⚡Подкаст на тему "Развитие и продвижение своего продукта и бренда" от опытного маркетолога с большим опытом
Ставь лайк, если интересно. Пишите в комментариях, чтобы вы хотели бы видеть.
⚡Технический доклад о переходе с VIPER UIKit на SwiftU подробно. От Senior iOS Разработчика
⚡Подкаст на тему "Развитие и продвижение своего продукта и бренда" от опытного маркетолога с большим опытом
Ставь лайк, если интересно. Пишите в комментариях, чтобы вы хотели бы видеть.
Telegram
#НЕПРОДЮСЕР
О блогерах, рекламе и не только
Influence Marketing Lead • Диджитал продюсер / exclusive: Елена Ландэ, Алиса Боха, Елена Подкаминская, Юрий Столяров
Feedb'эчная / запросы: @no_producerbot
Influence Marketing Lead • Диджитал продюсер / exclusive: Елена Ландэ, Алиса Боха, Елена Подкаминская, Юрий Столяров
Feedb'эчная / запросы: @no_producerbot
👍15🔥4🤡4⚡3🤮1💩1
Состояние рынка труда и зарплат в IT
В опросе поучаствовали айтишники, проживающие в 39 странах мира. «Страна проживания» — это страна, которую респондент указал в ответ на вопрос «Ваша локация», т.е он может быть как гражданином этой страны, так и релокантом.
82% респондентов, проживающих в России, и 92% респондентов, проживающих в других странах, соответствуют уровням Middle, Senior и Lead.
#digest #рынок
В опросе поучаствовали айтишники, проживающие в 39 странах мира. «Страна проживания» — это страна, которую респондент указал в ответ на вопрос «Ваша локация», т.е он может быть как гражданином этой страны, так и релокантом.
82% респондентов, проживающих в России, и 92% респондентов, проживающих в других странах, соответствуют уровням Middle, Senior и Lead.
#digest #рынок
👍13💩7❤4🔥2👎1🤮1