iOS Dev
7.95K subscribers
1.17K photos
145 videos
1 file
1.45K links
👨‍💻Автор: Виктор Грушевский (@Viktorianec)

⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru

🍏Канал об iOS-разработке, алгоритмах и архитектурах

⭐️ Подготовка к собесам

⭐️ Код. Много кода.

#ios #mobile #swift
Download Telegram
😆 Компании стали внедрять стиль речи неандертальцев в чат-боты для экономии токенов

Автор Caveman заметил, что значительная часть бюджета расходуется на болтовню языковых моделей.

Его инструмент удаляет слова-связки, приветствия и просто вводный текст, сохраняя при этом сам код. Кстати, в репу кейвмана коммитил и техдир Open AI.

Мне кажется, что это безумно смешно. Пока все ждут возвращения Fable для всех, настоящий изумруд не за горами в виде какой-нибудь модели AI «Питекантроп».

И тогда надо делать опрос, не в какой компании быстрее деградирует iOS-разработчик, а и использованием какого ИИ.

Так и представляю общение через этот чат-бот в стиле бунга-вунга.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6😁38🔥8🤣7👍2😢1
Memberwise Initializer в Swift 6.4 на примерах

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

Но До Swift 6.4 приватные хранимые свойства со значениями по умолчанию мягко говоря были неудобными, так как вот такая история была бы невалидна:

struct Article {
let title: String
let url: URL
private var readCount: Int = 0
}

// You would expect this to work, but it does not before Swift 6.4:
let article = Article(
title: "Memberwise Initializers in Swift",
url: URL(string: "https://www.avanderlee.com")!
)


📖 В этой статье разбирается, что изменилось в Swift 6.4 благодаря SE-0502.

А множество других подводных камней разбиралось в статье из вот этого поста.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
612👏3👍2🔥1
Акторы в Swift - примеры использования и подводные камни

Акторы обеспечивают выполнение кода в определенном потоке.

Введенные в Swift 5.5, акторы помогают нам писать потокобезопасный, и что не менее важно, предсказуемый код при работе с асинхронными задачами.

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

А в развёрнутой статье на бусти аккумулировал огромное количество тонкостей, в частности: что такое actor, как работает изоляция, почему await внутри актора может быть опаснее, чем кажется, да и вообще что изменилось в Swift 6.x и Swift 6.4.

Весь код, все примеры и многое другое: 💰 На бусти и ⭐️ в телеграме.

🧠 Что вы получите ещё, подписавшись:
➡️Карта изучения Swift Concurrency (примеры, разбор каждого уровня, полезные советы)
➡️Вопросы на чтение кода (несколько уровней: простых, посложнее)
➡️Многопоточность
➡️DispatchQueue: практические вопросы
➡️Swift Concurrency
➡️Алгоритмы: терминология и примеры + путь Яндекс Coderun (разбор нескольких десятков задач)
➡️Память: ARC, side table, флаги, утечки
➡️Результаты зарплатного опроса в нашем канале + сравнение с европейскими реальными зарплатами в iOS
➡️Разбор подходов к анимациям и лучшие паттерны (классические способы, Metal, комбинации - все подкреплено кодом)
➡️Утечки памяти в Swift: что с ними делать, как предотвратить?
➡️Навигация в SwiftUI: типы, отличия, разбор неочевидных моментов


В трибьюте и бусти действует шикарное вводное предложение.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
615👍6🤩43😨1
Master of puppets

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

Так вот, тогда металлика казалась чем-то с другой планеты, ну как супергерои, которых не существует или звезды, которых никогда не достичь.

Но пару десятков лет спустя я рад, что появляются возможности оказаться где-то рядом.

Вчера посетил первый из двух закрывающих концертов M72. И черт возьми, всем бы столько сил, как у Хэтфилда в его 60+.

Интересно, что на одну из песен со всей этой движухой с ии можно взглянуть и по-другому.

Можно ли назвать человека, который использует десятки агентов, master of puppets?

Думаем.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥33🤩652😡1
Please open Telegram to view this post
VIEW IN TELEGRAM
😨28😢11👍3😁3🎉2🕊1😈11
Собираем краши в iOS 27 c помощью CrashReportExtension

С помощью нового фреймворка можно анализировать и безопасно отправлять отчеты прямиком на свой бэкенд, не привязываясь к сторонним SDK.

Для этого нужно создать отдельное расширение CrashReporterExtension. Кстати, его особенность в том, что оно запускается в отдельном изолированном процессе, полностью независимо от нашей крашнутой приложухи.

Когда приложение упадёт, система автоматически вызовет наше расширение и передаст ему метод processCrashReport.

В коде это выглядит так:

@main
struct MyCrashExtension: CrashReporterExtension {
func processCrashReport(process: CrashedProcess) {
// Получаем доступ к данным упавшего процесса
let corpsePort = process.corpsePort
let images = process.binaryImages

// 1. Формируем свой краш-репорт
// 2. Сохраняем на диск или шлем на сервер
}
}


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

Хотя подавляющее большинство юзает Firebase или Sentry, ещё одна альтернатива нам не помешает.

➡️ Список всех новых фреймворков iOS 27.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
619🎉6🤓3👍1💯1👾1
Изменение порядка для List и Grid с сохранением в SwiftData

Стюарт Линч выпустил урок по работе со SwiftData. В нём он рассказывает, как реализовать перетаскивание в LazyVGrid с помощью onDrag, onDrop и специального DropDelegate.

📺 А ещё в этом видео можно узнать, как:

• Перейти от локального состояния к @Query в SwiftData
• Сохранять изменения пользовательского порядка сортировки при перезапуске приложухи
• Добавлять элементы управления для редактирования (и добавления элементов)
• Обрабатывать удаление строк с сохранением порядка сортировки
• Создавать плавные анимации в сетке с помощью перетаскивания


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
415🔥42👾1