iOS Dev
7.89K subscribers
1.19K photos
150 videos
1 file
1.48K links
👨‍💻Автор: Виктор Грушевский (@Viktorianec)

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

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

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

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

#ios #mobile #swift
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftOS - экспериментальный проект по созданию настоящей операционной системы с помощью embedded Swift

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

🛠 Необычная история как минимум, код можно посмотреть на GitHub, а доки вот тут.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
8😨38👍19👾84🏆3😎1
😆 Компании стали внедрять стиль речи неандертальцев в чат-боты для экономии токенов

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

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

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

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

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6😁39🔥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👍8🤩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🔥35🤩652😡1
Please open Telegram to view this post
VIEW IN TELEGRAM
😨31😢12👍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
622🎉6🤓4👍1😱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
417🔥42👾1
Новый скилл для дизайна в стиле Apple на основе WWDC-сессий

Эмиль Ковальски отобрал 17 топовых принципов дизайна и анимаций, легко транслируемый и для веба, например.

🛠 У репозитория уже более 7 000 звёзд.

Если хотите огромную подборку скиллов, поставьте 👍.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
662👍102👏1
А сегодня же пятница, а у каждого из нас множество мемов

Предлагаю провести конкурс. С вас - смешной (ну или под тремя слоями постиронии) мем про разработку, можно iOS, можно ИИ, да даже про жизнь.

С меня NFT-подарок в телеге для победителя.

Го в комменты)

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
3😁42🤣116
This media is not supported in your browser
VIEW IN TELEGRAM
Перетаскивание элементов в SwiftUI в iOS 27

Я уже делился примером с WWDC на счет появившихся опций (официальная дока здесь).

📖 В этой статье можно посмотреть более расширенную инструкцию и возможности работы нового API.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
512👍6🔥2👾1
Сайты github, google и apple в РФ недоступны

По данным хабра, Git и вообще доступ к репам без доп сетевых средств сейчас невозможен.

[UPD] Спустя 2 часа ситуация стабилизировалась. РКН при этом заявил, что доступ не ограничивался.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
😢31😨16😍10👍5🕊4🔥3😱3
This media is not supported in your browser
VIEW IN TELEGRAM
Морфинг текста на SwiftUI в 50 строк кода

Вы же помните, что я просто обожаю необычные эффекты)

Вот как тут, например - с принтером и анимацией отчётов за пару десятков строк кода. Или в стиле tap to cash (до сих пор прилетают запросы где взять туториал).

Так вот, делюсь одним необычным и несложным эффектом - вдохновиться можете где-нибудь здесь.

А по факту у нас два текста кроссфейдятся с анимированным блюром, а с помощью шейдера поверх мы режем альфу по заданному порогу. В общем из-за этого размытые буквы «слипаются» и перетекают друг в друга, как жидкость)

Если разобраться, как такое сделать, можно удивиться, насколько все просто (это аналог feColorMatrix "0 0 0 255 -140" из примера выше):

#include <metal_stdlib>
#include <SwiftUI/SwiftUI_Metal.h>
using namespace metal;

[[stitchable]] half4 textMorphThreshold(float2 position,
SwiftUI::Layer layer,
float4 bounds,
float threshold,
float softness) {
half4 c = layer.sample(position);
float a = float(c.a);
if (a < 1e-4) {
return half4(0.0);
}

float na = smoothstep(threshold - softness, threshold + softness, a);

float3 rgb = float3(c.rgb) / a;
return half4(half3(rgb * na), half(na));
}


Ну а если вам все-таки нужен исходный код, вы можете прям переписать его с гифки или не терять время и найти его: ⭐️ здесь или 💰 тут.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
420😍7😨3🔥2😎1
OpenAI выпустили первое физическое устройство Codex Micro

Стоит 230 долларов. Видео с примерами работы - тут.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
5😨217👾5😱4😢3😴1
iOS Dev
⚡️ Приложения VK удалили из российского AppStore Пока что пропали Музыка, Мессенджер, Видео и Дзен. 😃 iOS Dev
Приложения VK и МАХ исчезли из Google Play

Пресс-служба ВК сообщила, что пользователи Android-устройств продолжат получать пуш-уведомления о сообщениях, событиях и звонках в МАХ и приложениях VK.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥57🕊6😢5😈5😨4👍3😡3😴1🤝11