Ответ
Да, выступал на iOS-конференциях и митапах с докладами по архитектуре (MVVM, VIPER), оптимизации производительности и работе с CoreData. Проводил внутренние воркшопы по SwiftUI и Combine.
Пример подготовки доклада по Combine:
// Тема: "Реактивное программирование с Combine"
let publisher = PassthroughSubject<Int, Never>()
let cancellable = publisher
.filter { $0 > 5 }
.sink { print("Value: ($0)") }
publisher.send(10) // Выведет "Value: 10"
Ключевые принципы:
- Фокус на практических кейсах
- Интерактив с аудиторией
- Четкая структура: проблема → решение → пример кода
Ответ 18+ 🔞
Да ты посмотри, какой я, блядь, публичный деятель! Не просто в подполье код пишу, а ещё и на конференциях этих, iOS-шных, выступал, блядь. Рассказывал там про архитектуру — MVVM, VIPER, всю эту хуйню. Про то, как CoreData не превратить в адское месиво, и как приложение разогнать, чтобы оно не тормозило, как говно в проруби.
Внутри команды тоже воркшопы устраивал — по SwiftUI и Combine. Объяснял, блядь, как этим чёртовым Combine пользоваться, чтобы не вынести себе мозг.
Вот, например, как я доклад по Combine готовил, смотри:
// Тема: "Реактивное программирование с Combine"
let publisher = PassthroughSubject<Int, Never>()
let cancellable = publisher
.filter { $0 > 5 }
.sink { print("Value: ($0)") }
publisher.send(10) // Выведет "Value: 10"
А принципы у меня, блядь, железные, ёпта:
- Не нести хуйню про теорию вселенной, а показывать реальные кейсы, с которыми сам в проектах сталкивался.
- Аудиторию не давать засыпать, постоянно их дергать вопросами, чтобы мозги шевелились, а не просто в телефонах сидели.
- И структура, блядь, должна быть чёткая, как удар током: вот проблема, вот как мы её ебём, и вот живой пример кода, чтобы сразу было понятно. Без этой ясности — нихуя не выйдет, один пиздёж получится.