Получи случайную криптовалюту за регистрацию!

EasySwift iOS🍏

Логотип телеграм канала @swift_ioss — EasySwift iOS🍏 E
Логотип телеграм канала @swift_ioss — EasySwift iOS🍏
Адрес канала: @swift_ioss
Категории: Технологии
Язык: Русский
Количество подписчиков: 2.91K
Описание канала:

Все самое интересное в мире iOS разработки 🧑🏻‍💻
Предложить статью или новость: @EasySwiftBot
По всем вопросам обращаться к @itereznikov

Рейтинги и Отзывы

2.33

3 отзыва

Оценить канал swift_ioss и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

0

2 звезд

0

1 звезд

2


Последние сообщения

2022-10-01 16:08:20
iOS swift — setNeedsLayout против layoutIfNeeded против layoutSubviews()

Когда запускается приложение iOS, UIApplication в iOS запускает основной цикл выполнения приложения, который выполняется в основном потоке. Основной цикл выполнения обрабатывает события (например, касания пользователя) и обрабатывает обновления интерфейсов на основе представлений. По мере возникновения событий, таких как касание, обновления местоположения, управление движением и мультимедиа, цикл выполнения находит соответствующий обработчик для событий, вызывая соответствующие методы, которые вызывают другие методы и так далее.

— setNeedsLayout()
Метод setNeedsLayout для UIView сообщает системе, что вы хотите, чтобы она разметила и перерисовала это представление и все его подвиды, когда пришло время для цикла обновления. Это асинхронное действие, потому что метод завершается и возвращается немедленно, но только через некоторое время макет и перерисовка действительно происходят, и вы не знаете, когда будет этот цикл обновления.

— layoutIfNeeded()
Напротив, метод layoutIfNeeded - это синхронный вызов, который сообщает системе, что вы хотите создать макет и перерисовать представление и его подвиды, и вы хотите, чтобы это было сделано немедленно, не дожидаясь цикла обновления. Когда вызов этого метода завершен, макет уже скорректирован и нарисован на основе всех изменений, которые были отмечены до вызова метода.

— layoutSubviews()
Реализация по умолчанию использует все ограничения, которые вы установили для определения размера и положения любых вложенных представлений.
719 views13:08
Открыть/Комментировать
2022-09-30 15:28:49 Всем привет

Хочу порекомендовать вам канал Анастасии Ильиной, которая пишет очень вдохновляющие и мотивирующие посты.

Настя успела поработать на крупнейших проектах страны, прошла собеседования в топ российских IT компаний и теперь делится опытом и мыслями в своем телеграм-канале.

Там она расскажет про:
iOS разработку
прохождение собеседований
поиск работы
мотивацию

Рекомендую её пост про развитие и синдром самозванца, а также пост про невероятный путь до первой работы

Совсем скоро на своем канале она опубликует материалы для обучения iOS разработке!
742 views12:28
Открыть/Комментировать
2022-09-28 09:55:20
Как создать собственный верхний и нижний колонтитулы с помощью UIHostingConfiguration

Когда Apple представляет UIHostingConfigurationна WWDC, они в основном фокусируются на демонстрации того, как мы можем использовать его для создания пользовательских ячеек для представления таблицы и коллекции. Это заставляет меня задаться вопросом, можно ли создать собственный верхний и нижний колонтитулы, используя файлы UIHostingConfiguration.

В данной статье вы можете посмотреть, как можно это реализовать. Практически, полезная штука, которая может применяться во многих кейсах.
944 views06:55
Открыть/Комментировать
2022-09-27 10:31:48 MVVM + POP для работы со сложным пользовательским интерфейсом

Компонент View (Примечание: UIViewController — это View) может иметь внутри ViewModel и полагаться только на него.

ViewModel : компонент, отвечающий за выполнение всей работы и подготовку данных для использования View. ViewModel может иметь в себе модель

Модель:  модель данных или тип значения

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

Протоколы в Swift на самом деле дают больше возможностей, например,

Вы можете создать протокол и иметь расширение для этого протокола, чтобы иметь реализацию по умолчанию.

Protocols позволяет писать расширяемый код. Например. У вас может быть расширение для существующих классов, перечислений и т. д. и добавление к нему дополнительных функций без создания подкласса.

Множественное наследование. Либо вы можете создать протокол, который наследуется от протокола или нескольких протоколов, либо вы можете согласовать несколько протоколов, что решает проблему множественного наследования. Пожалуйста, проверьте пример на изображениях, приведенных ниже.

Пример реализации МВВМ и ПОП можно посмотреть в данной статье
966 views07:31
Открыть/Комментировать
2022-09-21 16:13:00
Многопоточность Swift

Что такое процесс? Процесс - это программа, запущенная на вашем компьютере.

Что такое поток? Поток - это последовательность инструкций, которые могут выполняться средой выполнения.

Что такое основной поток? Каждый процесс имеет по крайней мере один поток. В iOS основной поток, в котором запускается процесс, обычно называется основным потоком

Что такое многопоточное приложение? Мы могли бы сказать, что приложение является многопоточным, поскольку оно использует более одного потока.

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

Как мы можем добиться многопоточности?

Ваше устройство имеет несколько ядер процессора. Чтобы использовать эти ядра, вам нужно будет использовать несколько потоков. Параллельное выполнение работы также известно как параллелизм.

Подробно можно прочитать в данной статье
1.4K views13:13
Открыть/Комментировать
2022-09-19 10:27:11
Как временно закрыть весь экран вашего приложения

В этом коротком руководстве мы рассмотрим, как временно покрыть весь экран вашего приложения пользовательскими файлами UIView. В целом это имеет два основных варианта использования:

Затемнение фона для отображения всплывающего содержимого

Скрытие содержимого в переключателе приложений, чтобы скрыть потенциально конфиденциальную информацию или просто показать пользователю что-то веселое.

Оба работают одинаково, но код для отображения и скрытия этих представлений отличается.

Подробнее прочитать в данной статье
975 views07:27
Открыть/Комментировать
2022-09-14 20:57:19 RxSwift и реактивное программирование

RxSwift решает проблемы изменяемого состояния, позволяет составлять последовательности событий и улучшает архитектурные концепции, такие как изоляция кода, возможность повторного использования и развязка. Основными строительными блоками кода Rx являются наблюдаемые операторы и планировщики.

Наблюдаемый

Rx - это общая абстракция вычислений, выраженная через интерфейс Observable, который транслирует и подписывается на значения и другие события из наблюдаемого потока. ObservableTypeПротокол (которому Observableсоответствует) чрезвычайно прост. An Observableможет излучать (а наблюдатели могут получать) только три типа событий:

Планировщики

Планировщики — это Rx-эквивалент очередей отправки или очередей операций - только на стероидах и гораздо проще в использовании. Они позволяют определить контекст выполнения конкретной части работы.
RxSwift поставляется с несколькими предопределенными планировщиками, которые охватывают 99% случаев использования и, надеюсь, означают, что вам никогда не придется создавать свой собственный планировщик.
RxSwift будет действовать как диспетчер между вашими подписками (слева внизу) и планировщиками (справа), отправляя части работы в правильный контекст и позволяя им беспрепятственно работать с выводами друг друга.

Архитектура приложений
Стоит отметить, что RxSwift никоим образом не изменяет архитектуру вашего приложения; в основном он имеет дело с событиями, асинхронными последовательностями данных и универсальным коммуникационным контрактом.

Почему RxSwift?
Если ваше приложение сильно реагирует на пользовательские интеграции, RxSwift здесь, чтобы очистить вашу огромную кодовую базу. Давайте посмотрим на пример того, как это выглядит с помощью RxSwift.

Статья
1.3K views17:57
Открыть/Комментировать
2022-09-09 09:20:17
Анимированный TabBar

В данной статье автор разбирает, как сделать кастомный, аниммированный TabBarController. Много практики, полезного кода, а самое главное что свой материал он группирует на следующие группы:

Классы и модели
Свойства BubbleTabBar
Инициализация и первая прорисовка
Общедоступные методы
Анимация
1.1K viewsedited  06:20
Открыть/Комментировать
2022-09-06 10:07:10
5 сложных алгоритмов, упрощенных с использованием функций высшего порядка Swift

Как разработчику, очень часто нам приходится иметь дело со сложными алгоритмами, на разработку которых уходят часы или даже дни. Благодаря функциям высшего порядка Swift, таким как map, reduce, filter, и т.д., некоторые из этих сложных алгоритмов теперь могут быть легко решены всего несколькими строками кода.

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

Используя функции высшего порядка, мы можем значительно снизить сложность нашего кода, тем самым делая его менее подверженным ошибкам. Самое главное, это значительно упрощает обслуживание нашего кода.
1.2K views07:07
Открыть/Комментировать
2022-09-04 12:17:27
Списки захвата в Swift: в чём разница между ссылками weak, strong и unowned?

В данной
статье вы узнаете особенности сильных, слабых и бесхозных ссылок, их различия и как правильно применять на практике.
970 views09:17
Открыть/Комментировать