EasySwift iOS🍏
3.02K subscribers
269 photos
8 videos
395 links
Все самое интересное в мире iOS разработки 🧑🏻‍💻

Предложить статью или новость: @EasySwiftBot

По всем вопросам обращаться к @itereznikov
Download Telegram
Замыкания

Замыкания – это автономные функциональные блоки. Как и функции, замыкания принимают аргументы, выполняют инструкции и возвращают значение или Void.
👍113
Передача замыканий в функции

Замыкания могут быть переданы в качестве аргументов в функции. Передача замыканий функциям позволяет указать, как должна работать функция.
🔥11👍2
🧑‍💻Class && Struct (классы и структуры)

💻Отличный материал, который раскрывает основные отличия структуры от классов, а так же их применение!

По умолчанию Apple рекомендует использовать структуры. Структуры также полезны в следующих сценариях:
- Используйте структуры для простых типов данных. Воспринимайте их как простые базы данных, которые вы можете использовать в своем коде. Поскольку они четко определены и часто не нуждаются в сложных отношениях между объектами.
- В многопоточной среде, например, с подключением к базе данных в другом потоке, структуры более безопасны. и могут быть безопасно скопированы из одного потока в другой. Классы не имеют присущей им безопасности, если только они не намеренно сделаны поточно-ориентированными.
- Когда свойства структуры в основном являются значимыми типами, например String, имеет смысл обернуть их в структуру вместо класса.
Использование структур имеет дополнительное преимущество - вам проще анализировать изменения данных в вашем коде. Когда тип является структурой, вы можете быть уверены, что никакая другая часть вашего кода не сможет удерживать ссылку на объект. То есть структура не может быть изменена какой-либо другой частью вашего кода.

А дальше в статье https://habr.com/ru/post/592341/
🔥7😱2
Свойство .count

Свойство .count возвращает целое число, представляющее количество пар ключ-значение в словаре.
👍7
Свойство .isEmpty

Свойство .isEmpty возвращает true, если в словаре нет пар ключ-значение, false – если словарь содержит пары ключ-значение.
👍11
Верстка кодом🗿

Отличный материал, хорошая подача. Для тех кто хочет научиться верстать UI элементы кодом. Советую к прочтению. 🏰

https://www.hackingwithswift.com/read/8/2/building-a-uikit-user-interface-programmatically
👍10
Метод init()

Структуры могут иметь метод init() для инициализации значений свойств экземпляра. В отличие от других методов, метод init() не требует ключевого слова func. В его теле используется ключевое слово self для ссылки на фактический экземпляр структуры.
👍9
Мутирующие методы

Методы структуры, объявленные с ключевым словом mutating, позволяют методу влиять на собственные свойства экземпляра.
🔥14
Пример создания приложения Todo list для iOS с использованием VIPER

Крутая статья про использование
архитектуры VIPER. Советую к прочтению.

🤔Существует множество архитектур на выбор: MVC, MVVM, MVP, View State, VIPER и многие другие.
Архитектура, которую мы выберем, будет определять, как будет построено программное обеспечение и как оно будет масштабироваться по мере роста.

https://www.alfianlosari.com/posts/building-todo-list-ios-app-with-viper-architecture/
👍11
Переопределение

Подкласс может предоставить собственную реализацию свойства или метода, унаследованного от суперкласса. Это известно как переопределение.
👍14
Как сделать код производительным?

В документации на гите есть много крутых статей.
Я убежден, что если прочитаешь все — станешь гением и единственным человеком в мире, кто смог это сделать.

Поделюсь одной крутой страницей, где прячутся крутые советы по оптимизации своего кода

https://github.com/apple/swift/blob/main/docs/OptimizationTips.rst#advice-use-final-when-you-know-the-declaration-does-not-need-to-be-overridden
👍10
Добавление элементов в массив

Добавить элементы в массив можно двумя способами. Первый способ – использовать метод .append(). Для этого пишем его после имени массива, а в скобках указываем значение, которое хотим добавить в конец. Второй способ – использовать оператор присваивания со сложением (+=).
Кстати, с помощью оператора += можно присвоить сразу несколько элементов.
👍17
Метод наборов .intersection()

Sets (наборы) представляют собой неупорядоченные коллекции уникальных элементов.
Вы можете создать новый набор, который будет состоять из общих элементов двух входных наборов. Для этого используйте метод .intersection().
🔥9👍2
Полезный материал снова о базовых вещах с памятью

Программист — это впервую очередь не заложник своей платформы. И изучая иос не нужно забывать, что этот мир яблок не отдельный остров, который далек от компьютерных наук. А лишь абстракция над общим устройством компьютеров

https://youtu.be/TajLTcjBgIg
👍3
Метод наборов .union()

Sets (наборы) представляют собой неупорядоченные коллекции уникальных элементов. Вы можете объединить два набора в один новый набор с помощью метода .union().
👍8🔥2
Метод наборов .insert()

Наборы (Sets) представляют собой неупорядоченные коллекции уникальных элементов. Если у вас есть набор и вам необходимо добавить в него новый элемент, используйте для этого метод .insert().
👍10
Гибкая навигация в iOS

Помните времена, когда дизайнеры рисовали незамысловатые интерфейсы, а разработчики просто описывали переходы от одного экрана к другому? Вот и я не помню. Современное iOS-приложение – это тысячи строк кода, где добрая четверть – всего лишь описание навигации. Закономерно, что для упрощения жизни появляются различные фреймворки для навигации.  

https://habr.com/ru/company/hh/blog/669124/
👍1
Метод наборов .isEmpty()

Если вы хотите узнать, содержит ли набор значения, или он вовсе пустой, можете воспользоваться логическим методом .isEmpty(). Этот метод возвратит true – если набор пустой, и false – если набор имеет хотя бы один элемент.
👍8
Метод наборов .isEmpty()

Если вы хотите узнать, содержит ли набор значения, или он вовсе пустой, можете воспользоваться логическим методом .isEmpty(). Этот метод возвратит true – если набор пустой, и false – если набор имеет хотя бы один элемент.
👍4
SnapKit 📌

Учитесь верстать кодом? Используется якоря? Ходите сделать как можно меньше кода в вашем приложении? - SnapKit, отличная статья, которая вкатывает знания по верстка SnapKit -ом.

Всем удачного кодинга

https://www.raywenderlich.com/3225401-snapkit-for-ios-constraints-in-a-snap
7👍3