ErrorNil. iOS-разработка
616 subscribers
254 photos
51 videos
16 files
298 links
Пишем код, разрабатываем приложения, учимся

Сайт школы https://error-nil.namari.ru/
YouTube https://www.youtube.com/@errornil
VK Видео - https://vk.com/video/@errornil

По всем вопросам пишите мне @ibatyrgereev
Download Telegram
Forwarded from iOS Broadcast (Андрей Зонов)
⚠️ Как использовать [weak self] в задачах параллелизма Swift?
Навалим немного базы:[weak self] используется для предотвращения утечек памяти в замыканиях. В обработчиках завершения [weak self] и guard let self используются для проверки существования self перед продолжением выполнения. Но SE-0269 позволяет использовать неявные self-захваты в ситуациях, когда замыкания не сохраняются, что снижает вероятность утечек памяти.

Проблемы с [weak self] в Task
🟢Task начинает выполняться сразу после создания, что уменьшает вероятность освобождения self.
🟢Использование guard let self else { return } в начале Task не предотвращает утечку памяти, так как Task удерживает strong ссылку на self до завершения.

Предотвращение утечек памяти в Task
🟢Можно использовать nil проверку или guard let self else { return } внутри Task для проверки существования self.
🟢Для длительных задач можно перемещать guard let self else { return } внутрь цикла, чтобы захватывать strong ссылку на self только при необходимости.

Рекомендации по использованию [weak self] в Task:
⚠️ Большинство Task замыканий не требуют [weak self], так как Task обычно существует недолго
⚠️ Если необходимо избежать утечек памяти, не используйте guard let self else { return } в первой строке Task
⚠️ Разворачивайте self только тогда, когда это нужно, и храните его как можно короче
⚠️ Используйте self? для избежания полного разворачивания self
⚠️ Если возможно, захватывайте только необходимые свойства, а не весь self
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥5
Новый ролик, который я хотел давно написать, обязательно смотрим, всем будет полезно.

Просьба ребята, оставить любой комент и лайк поставить, что бы видео набирало просмотры))
15🔥3
Хочу посоветовать классный канал 30 Seconds To Offer. О том как прокачать CV, готовиться к собесам, избежать ошибок и выбрать правильную стратегию поиска. Автор - ментор с опытом, который помогает упаковать себя так, чтобы получить оффер. Очень полезно, если вы в поиске работы или думаете о карьерном росте.
4👍4🔥31
Swift-Problembook.pdf
8.6 MB
Отличная книга для тренировки swift
🔥163
Если вдруг не подписаны ребята, подпишетесь, осталось всего ничего до 5к)))
8🔥5💯3👍1
Новый браузер заказывали?

OpenAI представила собственный браузер со встроенным ChatGPT — Atlas. Теперь помощник доступен прямо внутри браузера: он может анализировать содержимое страниц, сравнивать товары, подсказывать при покупках и помогать разбираться в сложных материалах.

По классике есть улучшение текста, привет из яндекс браузера. Так же вы сами выбираете информацию, которую ChatGPT запомнит, чтобы впоследствии давать более точные и персонализированные ответы.

Время покажет, сможет ли Atlas откусить свой кусочек от рынка браузеров, помниться был еще недавно очень перспективный браузер Arc, но работы над ним теперь прекращены. Atlas конечно может вывезти за счет сильной интеграции ИИ ассистента, но хватит ли только этого - вопрос открытый.

Скачать и протестировать можно бесплатно, пока доступно только под мак.
🎉3🔥21👍1
Swift теперь официально работает на Android

Команда Swift объявила о выходе Swift SDK для Android
Теперь разработчики могут писать нативные Android-приложения на Swift.

SDK уже доступен для macOS, Linux и Windows.
Появился гайд по установке и примеры на GitHub.

⚙️ Что это значит:

- Можно переносить Swift-пакеты на Android
- Более 25% пакетов уже совместимы
- Через проект swift-java Swift можно связать с Java
- Работает официальный CI и ведётся разработка будущего vision-документа

Swift постепенно превращается в по-настоящему кроссплатформенный язык?
14🔥6
🫢
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🤣1
Большая проблема новичков - начать самостоятельно писать код, в новом видео делюсь советами как преодалеть эту проблему и вообще как правильно учиться разработке

📱 Смотрим

Лайк комент приветствуется ))
Please open Telegram to view this post
VIEW IN TELEGRAM
💯11🔥84👍1
🥳
2🎉2317🔥6
Народ привет!

12 поток в сентярбре в нашей школе должен был быть последним в этом году, но за последний месяц появилось много желающих, которые хотели учиться, но не успели на сентябрь, что в итоге решил запустить на конец ноября новый 13, теперь уже точно, последний поток в этом году (даже при всем желании физически не смогу еще один😅), так что если по какой то причине не смогли попасть в предыдущий поток, есть возможность попасть в новый, запись идет и места пока тоже есть.

Как обычно всю инфу можно посмотреть на сайте либо написать мне 👉 @ibatyrgereev, всегда на связи и отвечу по любому вопросу)
53🔥3👍2
▶️ Делюсь полезными советами в новом видео

Лайк комент под видео приветствуется)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Полезный эктеншен из видео, для использования цвета по hex в swiftUI

extension Color {
init(hex: String) {
let hex = hex.trimmingCharacters(in: CharacterSet.alphanumerics.inverted)
var int: UInt64 = 0
Scanner(string: hex).scanHexInt64(&int)

let a, r, g, b: UInt64
switch hex.count {
case 3: // RGB (12-bit)
(a, r, g, b) = (255,
(int >> 8 * 17,
(int >> 4 & 0xF) * 17,
(int & 0xF) * 17)
case 6: // RGB (24-bit)
(a, r, g, b) = (255,
int >> 16,
int >> 8 & 0xFF,
int & 0xFF)
case 8: // ARGB (32-bit)
(a, r, g, b) = (int >> 24,
int >> 16 & 0xFF,
int >> 8 & 0xFF,
int & 0xFF)
default:
(a, r, g, b) = (255, 0, 0, 0) // Default to black
}

self.init(
.sRGB,
red: Double(r) / 255,
green: Double(g) / 255,
blue: Double(b) / 255,
opacity: Double(a) / 255
)
}
}
13