🍏 Что такое Lazy Variables (ленивые переменные)? Когда их следует использовать?
Начальное значение ленивой переменной вычисляется при первом обращении к ней. Ленивые переменные можно использовать для оптимизации кода, не выполняя ненужную работу раньше времени.
Например:
Чтобы узнать больше о lazy, ознакомьтесь с этой статьей.
#swift
Начальное значение ленивой переменной вычисляется при первом обращении к ней. Ленивые переменные можно использовать для оптимизации кода, не выполняя ненужную работу раньше времени.
Например:
lazy var tallest: Person? = {
return people.max(by: { $0.height < $1.height })
}()
Чтобы узнать больше о lazy, ознакомьтесь с этой статьей.
#swift
❤4
🍏 Что такое перечисления (enumerations) в Swift?
Перечисление (enumeration)- это группа связанных значений.
Перечисления позволяют писать безопасный для типов код.
Теперь в своем коде вы можете вызвать, например,
Больше информации о перечислениях можно прочесть в этой статье.
#swift
Перечисление (enumeration)- это группа связанных значений.
Перечисления позволяют писать безопасный для типов код.
enum Direction {
case North
case East
case South
case West
}
Теперь в своем коде вы можете вызвать, например,
Direction.North
, вместо того чтобы использовать мистическую строку «North»
(которая легко может быть неправильно написана и вызвать раздражающие ошибки).Больше информации о перечислениях можно прочесть в этой статье.
#swift
🥱5❤1
🔧 Строим архитектуру для SwiftUI
SwiftUI фундаментально отличается от UIKit, поэтому он требует своего подхода к архитектуре. Известные паттерны, такие как MVP, MVVM и другие, в чистом виде не адаптированы под особенности SwiftUI.
В статье автор рассказывает о создании собственной архитектуры для разработки на SwiftUI.
👉 Читать статью
#новость #ios #swift
SwiftUI фундаментально отличается от UIKit, поэтому он требует своего подхода к архитектуре. Известные паттерны, такие как MVP, MVVM и другие, в чистом виде не адаптированы под особенности SwiftUI.
В статье автор рассказывает о создании собственной архитектуры для разработки на SwiftUI.
👉 Читать статью
#новость #ios #swift
😁4❤1🥱1
🍏 typealias в Swift
Вы можете создать его следующим образом:
Теперь вы можете использовать
#swift
Typealias
, как следует из названия, является псевдонимом для существующего типа данных.Вы можете создать его следующим образом:
typealias Weight = Float
Теперь вы можете использовать
Weight
вместо Float
:let mass1: Weight = 150.0
let mass2: Weight = 220.0
let total: Weight = mass1 + mass2
#swift
🥱5❤3
📝 Вызов защищённого API из iOS-приложения на Swift
Как Swift‑разработчику, в какой‑то момент вам, скорее всего, понадобится добавить в своё приложение аутентификацию пользователей или, как её ещё называют, логин и логаут.
В этой статье автор показывает, как настроить Auth0 для получения токена доступа OAuth 2.0, который позволит вам безопасно, надёжно и от имени пользователя вызывать защищённый API из вашего приложения.
👉 Читать статью
#новость #ios #swift
Как Swift‑разработчику, в какой‑то момент вам, скорее всего, понадобится добавить в своё приложение аутентификацию пользователей или, как её ещё называют, логин и логаут.
В этой статье автор показывает, как настроить Auth0 для получения токена доступа OAuth 2.0, который позволит вам безопасно, надёжно и от имени пользователя вызывать защищённый API из вашего приложения.
👉 Читать статью
#новость #ios #swift
🔥2
🌗 Темы в современных iOS-приложениях с UITraitCollection
Совсем недавно (с iOS 17) Apple представила удобный способ обработки смены тем в приложениях для iOS. Раньше это было довольно сложно, но с появлением UITraitAppearance стало проще.
Эта статья представляет собой законченное описание того, как добавить тематическое оформление в реальное приложение.
👉 Читать статью
#новость #ios #swift
Совсем недавно (с iOS 17) Apple представила удобный способ обработки смены тем в приложениях для iOS. Раньше это было довольно сложно, но с появлением UITraitAppearance стало проще.
Эта статья представляет собой законченное описание того, как добавить тематическое оформление в реальное приложение.
👉 Читать статью
#новость #ios #swift
🥰3
🎨 Как использовать смешивание цветов в SwiftUI
В последнем обновлении SwiftUI Apple представила новую функцию под названием «смешивание цветов». Эта функция открывает новые творческие возможности для разработчиков, позволяя выполнять различные задачи с цветами.
Автор статьи рассматривает смешивание цветов в SwiftUI и его потенциальное применение.
👉 Читать статью
#новость #ios #swift
В последнем обновлении SwiftUI Apple представила новую функцию под названием «смешивание цветов». Эта функция открывает новые творческие возможности для разработчиков, позволяя выполнять различные задачи с цветами.
Автор статьи рассматривает смешивание цветов в SwiftUI и его потенциальное применение.
👉 Читать статью
#новость #ios #swift
🤩2
⬇️ Как снизить потребление оперативной памяти в iOS-приложении
Чтобы избежать перегрузки системы и крашей приложения, iOS-команда AliExpress решила разработать инструмент для мониторинга памяти.
Его задача — отслеживать потребление ресурсов на этапе тестирования и предупреждать разработчиков о потенциальных перегрузках, чтобы проблемный код не попал к пользователям.
Автор статьи рассказывает, как минимизировать краши, связанные с нехваткой оперативной памяти на мобильных устройствах.
👉 Читать статью
#новость #ios #swift
Чтобы избежать перегрузки системы и крашей приложения, iOS-команда AliExpress решила разработать инструмент для мониторинга памяти.
Его задача — отслеживать потребление ресурсов на этапе тестирования и предупреждать разработчиков о потенциальных перегрузках, чтобы проблемный код не попал к пользователям.
Автор статьи рассказывает, как минимизировать краши, связанные с нехваткой оперативной памяти на мобильных устройствах.
👉 Читать статью
#новость #ios #swift
❤2
🍏 Что такое опциональное связывание (optional binding)
Опциональное связывание проверяет, содержит ли опция значение или нет. Если опция имеет значение, опциональное связывание делает это значение временно доступным:
Например, следующий код проверяет, является ли имя
Вывод:
#swift
Опциональное связывание проверяет, содержит ли опция значение или нет. Если опция имеет значение, опциональное связывание делает это значение временно доступным:
Например, следующий код проверяет, является ли имя
nil
или нет. Если нет, то создается временная константа realName
и ей присваивается значение name
.var name: String? = «Charles»
if let realName = name {
print (realName)
}
Вывод:
Charles
#swift
❤1
🍏 Что делает init() в Swift
Метод
Инициализация означает подготовку экземпляра (класса, структуры или перечисления) к использованию.
В процессе инициализации вы устанавливаете начальные значения для каждого свойства экземпляра. Вы также можете выполнить некоторые другие подготовительные действия, прежде чем экземпляр будет готов к использованию.
#swift
Метод
init()
используется для инициализации экземпляра.Инициализация означает подготовку экземпляра (класса, структуры или перечисления) к использованию.
В процессе инициализации вы устанавливаете начальные значения для каждого свойства экземпляра. Вы также можете выполнить некоторые другие подготовительные действия, прежде чем экземпляр будет готов к использованию.
#swift
🥰6🥱5😁2
📃 Sheet с автоматическим подсчётом высоты и поддержкой iOS 15
В этой статье автор рассказывает о том, как создать нативный
Основная задача заключалась в реализации решения с минимальным количеством костылей и поддержкой iOS 15. Готовых решений с аналогичной функциональностью не нашлось, поэтому автор разработал собственное решение.
👉 Читать статью
#новость #ios #swift
В этой статье автор рассказывает о том, как создать нативный
Sheet
, который автоматически подсчитывает свою высоту в зависимости от контента (SwiftUI View
).Основная задача заключалась в реализации решения с минимальным количеством костылей и поддержкой iOS 15. Готовых решений с аналогичной функциональностью не нашлось, поэтому автор разработал собственное решение.
👉 Читать статью
#новость #ios #swift
❤1
🍏 Что нас ждёт в Swift 6
Как вы знаете, прошлой осенью зарелизился Swift 6, а вместе c ним появились и строгие проверки для защиты от датарейсов, связанные со Swift Concurrency. В Swift 5 такие проверки включались при помощи флага
В этой статье автор разбирается с основными изменениями в каждом пропозале и делится своими заметками, тем, что показалось самым важным или интересным.
👉 Читать статью
#новость #ios #swift
Как вы знаете, прошлой осенью зарелизился Swift 6, а вместе c ним появились и строгие проверки для защиты от датарейсов, связанные со Swift Concurrency. В Swift 5 такие проверки включались при помощи флага
-strict-concurrency=complete
, но, по заявлениям разработчиков Swift, были слишком консервативными.В этой статье автор разбирается с основными изменениями в каждом пропозале и делится своими заметками, тем, что показалось самым важным или интересным.
👉 Читать статью
#новость #ios #swift
🥰5
🗺️ Рисуем карты с помощью Swift Charts
Swift Charts — это мощный фреймворк, позволяющий визуализировать данные различными способами. Оказывается, с его помощью можно рисовать карты.
В статье рассказывается, как рисовать карты с помощью Swift Charts. Конечный результат не идеален, но автор обнаружил много интересных и неочевидных моментов, которые могут быть полезны в будущем.
👉 Читать статью
#новость #ios #swift
Swift Charts — это мощный фреймворк, позволяющий визуализировать данные различными способами. Оказывается, с его помощью можно рисовать карты.
В статье рассказывается, как рисовать карты с помощью Swift Charts. Конечный результат не идеален, но автор обнаружил много интересных и неочевидных моментов, которые могут быть полезны в будущем.
👉 Читать статью
#новость #ios #swift
🥰3❤2👍1
🍏 Для чего нужен оператор вида «??»?
Оператор двойного вопросительного знака
Его можно использовать как сокращение для проверки того, является ли опциональное значение
На это:
#swift
Оператор двойного вопросительного знака
??
известен как оператор объединения (слияния) nil
. Он возвращает значение в левой части, если оно не равно nil
. Если левая часть равна nil
, то возвращается значение в правой части.Его можно использовать как сокращение для проверки того, является ли опциональное значение
nil
. Например, вы можете заменить это:var name: String?
if name != nil {
print(name)
} else {
print(«N/A»)
}
На это:
print(name ?? «N/A»)
#swift
🤩4👍3
💻 Apple выпустила новое расширение Swift для VS Code
В блоге Swift-разработчиков рассказали о релизе нового расширения Visual Studio Code для работы с кодом на Swift. Компания хочет предоставить пользователям всех платформ одинаково удобные инструменты.
Apple продолжает реализовывать планы по трансформации Swift в язык программирования для кроссплатформенной разработки. Новое расширение для VS Code предназначено для разработчиков серверных приложений, прошивок для IoT-устройств, приложений для Linux и Windows.
👉 Подробнее в статье
#новость #ios #swift
В блоге Swift-разработчиков рассказали о релизе нового расширения Visual Studio Code для работы с кодом на Swift. Компания хочет предоставить пользователям всех платформ одинаково удобные инструменты.
Apple продолжает реализовывать планы по трансформации Swift в язык программирования для кроссплатформенной разработки. Новое расширение для VS Code предназначено для разработчиков серверных приложений, прошивок для IoT-устройств, приложений для Linux и Windows.
👉 Подробнее в статье
#новость #ios #swift
🤩4🔥1
⚒️ Как устроен пользовательский интерфейс SwiftUI
iOS‑разработчикам приходится много работать с пользовательскими интерфейсами. Понимание различных аспектов пользовательского интерфейса, таких как жизненный цикл или компоновка, имеет решающее значение для работы с UIKit и SwiftUI.
Понимание внутренней работы фреймворка может дать значительные преимущества, например, помочь избежать проблем с производительностью, спорадических глюков, неожиданных анимаций или ошибок в вёрстке.
Автор статьи предоставляет полный обзор того, как SwiftUI устроен под капотом.
👉 Читать статью
#новость #ios #swift
iOS‑разработчикам приходится много работать с пользовательскими интерфейсами. Понимание различных аспектов пользовательского интерфейса, таких как жизненный цикл или компоновка, имеет решающее значение для работы с UIKit и SwiftUI.
Понимание внутренней работы фреймворка может дать значительные преимущества, например, помочь избежать проблем с производительностью, спорадических глюков, неожиданных анимаций или ошибок в вёрстке.
Автор статьи предоставляет полный обзор того, как SwiftUI устроен под капотом.
👉 Читать статью
#новость #ios #swift
🤩4🤔1
🍏 Чем будет свойство pounds в следующем примере?
Свойство также известно как вычисляемое свойство.
В Swift вычисляемые свойства не хранятся в объекте. Вычисляемое свойство означает, что его значение вычисляется «по требованию» только при попытке доступа к нему. Вы можете создавать вычисляемые свойства с помощью методов и (необязательно) .
• Метод выполняет вычисление «по требованию», когда вызывается .
• Метод обновляет килограммы, когда обновляются фунты. (Обратите внимание, что метод является необязательным, и вам не нужен такой метод для создания вычисляемого свойства).
#swift
class Weight {
var kilograms: Float = 0.0
var pounds: Float {
get { return (kilograms * 2.205)}set(newWeight) {
kilograms = newWeight /2.205
}}}
let weight = Weight()
weight.kilograms = 100print(weight.pounds) // prints '220.5'weight.pounds = 315print(weight.kilograms) // prints '142.85715'
pounds
get
set
get
weight.pounds
set
set
#swift
❤2
📱 Осваиваем скроллинг в SwiftUI
Начиная с iOS 17 в SwiftUI появилась функция
В этой статье на реальном примере автор показывает, как использовать
👉 Читать статью
#новость #ios #swift
Начиная с iOS 17 в SwiftUI появилась функция
scrollTargetBehavior
, позволяющая разработчикам управлять поведением прокрутки с большей точностью. Будь то выравнивание представлений или реализация пользовательских эффектов пагинации, ScrollTargetBehavior
обеспечивает надежную поддержку. Что еще более важно, разработчики могут создавать собственные реализации функции для удовлетворения конкретных потребностей. В этой статье на реальном примере автор показывает, как использовать
scrollTargetBehavior
и в конечном итоге реализовать пользовательскую логику управления прокруткой.👉 Читать статью
#новость #ios #swift
🥰4❤1
🍏 Назовите 5 утверждений передачи управления (Control Transfer Statements)
Вот онислева-направо (сверху-вниз):
•
•
•
•
•
Операторы передачи управления изменяют порядок выполнения вашего кода.
Например, вы можете использовать оператор передачи управления
#swift
Вот они
•
Break
•
Continue
•
Fallthrough
•
Throw
•
Return
Операторы передачи управления изменяют порядок выполнения вашего кода.
Например, вы можете использовать оператор передачи управления
break
для завершения выполнения цикла for
, когда продолжение цикла считается ненужным:for choice in choices:if isCorrect(choice):print(«Correct choice found!»)break
#swift
❤2
😴 Task.sleep() и Task.yield()
В Swift Concurrency мы можем использовать Task.sleep() и Task.yield(), чтобы перевести конкретную задачу в режим ожидания или приостановки в течение определённого периода времени. Оба они выглядят и ведут себя одинаково, но есть несколько существенных различий, о которых следует знать Swift-разработчикам.
Зная эти различия, вы сможете лучше понять, когда и как использовать те или иные функции, а также оптимизировать свой код соответствующим образом. Прежде чем перейти к рассмотрению различий, автор сначала объясняет, что делают эти модификаторы.
👉 Читать статью
#новость #swift
В Swift Concurrency мы можем использовать Task.sleep() и Task.yield(), чтобы перевести конкретную задачу в режим ожидания или приостановки в течение определённого периода времени. Оба они выглядят и ведут себя одинаково, но есть несколько существенных различий, о которых следует знать Swift-разработчикам.
Зная эти различия, вы сможете лучше понять, когда и как использовать те или иные функции, а также оптимизировать свой код соответствующим образом. Прежде чем перейти к рассмотрению различий, автор сначала объясняет, что делают эти модификаторы.
👉 Читать статью
#новость #swift
🤩3❤1👍1