Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.64K subscribers
1.63K photos
79 videos
52 files
4.43K links
Все самое полезное для мобильного разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
⚒️ Как устроен пользовательский интерфейс SwiftUI

iOS‑разработчикам приходится много работать с пользовательскими интерфейсами. Понимание различных аспектов пользовательского интерфейса, таких как жизненный цикл или компоновка, имеет решающее значение для работы с UIKit и SwiftUI.

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

Автор статьи предоставляет полный обзор того, как SwiftUI устроен под капотом.

👉 Читать статью

#новость #ios #swift
🤩4🤔1
🍏 Чем будет свойство pounds в следующем примере?

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 также известно как вычисляемое свойство.

В Swift вычисляемые свойства не хранятся в объекте. Вычисляемое свойство означает, что его значение вычисляется «по требованию» только при попытке доступа к нему. Вы можете создавать вычисляемые свойства с помощью методов get и (необязательно) set.

• Метод get выполняет вычисление «по требованию», когда вызывается weight.pounds.

• Метод set обновляет килограммы, когда обновляются фунты. (Обратите внимание, что метод set является необязательным, и вам не нужен такой метод для создания вычисляемого свойства).

#swift
2
📱 Осваиваем скроллинг в SwiftUI

Начиная с iOS 17 в SwiftUI появилась функция scrollTargetBehavior, позволяющая разработчикам управлять поведением прокрутки с большей точностью. Будь то выравнивание представлений или реализация пользовательских эффектов пагинации, ScrollTargetBehavior обеспечивает надежную поддержку. Что еще более важно, разработчики могут создавать собственные реализации функции для удовлетворения конкретных потребностей.

В этой статье на реальном примере автор показывает, как использовать scrollTargetBehavior и в конечном итоге реализовать пользовательскую логику управления прокруткой.

👉 Читать статью

#новость #ios #swift
🥰41
🍏 Назовите 5 утверждений передачи управления (Control Transfer Statements)

Вот они слева-направо (сверху-вниз):

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
🤩31👍1
Можно ли в Swift вернуть из функции несколько значений

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

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

➡️ Вот как можно вернуть несколько значений, хранящихся в кортеже:

func functionWithMultipleReturnValues(
val1: Int,
val2: Int
) -> (sum: Int, product: Int) {
let sum = val1 + val2
let prod = val1 * val2
return (sum, prod)
}
let result = functionWithMultipleReturnValues(val1: 10, val2: 20)
let s = result.sum
let p = result.product


🐸 Библиотека мобильного разработчика

#буст #MiddlePath #Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для чего используется Guard

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

Например, оператор guard используется для выхода из функции:

func myFun() {
guard false else {
print("This block is run")
return
}
print("This is never run")
}

myFun()


Вывод:

This block is run


👉 Узнайте больше о ключевом слове guard, прочитав эту статью

🐸 Библиотека мобильного разработчика

#буст #JuniorKit #Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
2