Если идешь на собеседование и предстоит секция лайвкодинга, то обязательно, прям возьми и запомни, что нельзя молча решать его.
1. Может закроится мысль у интервьюера, что ты просто знаешь, что так надо делать и знаешь без почему. Тебе же надо аргументировать своё решение.
Например решил добавить протокол к сервису, так скажи, что это ради тестов, ради подмены реализации, добавь, что тем самым мы реализуем букву D из SOLID принципов. Приведи пример из рабочего процесса, что дескать была реализация на GCD и чтобы плавно переехать на Structured Concurrency реализацию, протокол нам поможет.
2. Если молчать, а потом обрывисто выдавать правильные ответы, который порой могут - быть не совсем уверенно произнесены, то молжет сложиться мнение, что списываешь. Тут даже дело не в том, что списываешь, а на фоне других кандидатов, кто попадался за этим делом, может сложиться такое мнение и тут лучше сразу показать, что ты решаешь, потому-что знаешь.
3. Даже если не знаешь решения, ты должен зацепиться за что-то и начинать распутывать. Я это всегда повторял и буду повторять! Так - как это лишний плюсик кандидату, про это даже подробно в воркшопе "Полный процесс собеседования: от подготовки до фидбека + PDF гайд" проговаривал.
4. Не бойся рассказать про новые технологии, как например в секциях про многопточность, привет акторам и структурному concurrency. В ноушене есть секции соответствующие, достаточно рассказать про тред пул, плюсы и минусы async / await, что такое актор и какую он проблему решает и не решает, и всё, минимум уже знаешь. А дальше уже только апгрейд минимума: отмена тасок и проверка, async let для параллельного выполнения, даже картинку добавил, актор хопинг и реентерабельность, Task.deatached + Task.yield и все, крепки мидл+ дальше рекомендую.
Что-то забыл, или добавить / отредактировать? Пишите в чате и добавлю👋
1. Может закроится мысль у интервьюера, что ты просто знаешь, что так надо делать и знаешь без почему. Тебе же надо аргументировать своё решение.
Например решил добавить протокол к сервису, так скажи, что это ради тестов, ради подмены реализации, добавь, что тем самым мы реализуем букву D из SOLID принципов. Приведи пример из рабочего процесса, что дескать была реализация на GCD и чтобы плавно переехать на Structured Concurrency реализацию, протокол нам поможет.
2. Если молчать, а потом обрывисто выдавать правильные ответы, который порой могут - быть не совсем уверенно произнесены, то молжет сложиться мнение, что списываешь. Тут даже дело не в том, что списываешь, а на фоне других кандидатов, кто попадался за этим делом, может сложиться такое мнение и тут лучше сразу показать, что ты решаешь, потому-что знаешь.
3. Даже если не знаешь решения, ты должен зацепиться за что-то и начинать распутывать. Я это всегда повторял и буду повторять! Так - как это лишний плюсик кандидату, про это даже подробно в воркшопе "Полный процесс собеседования: от подготовки до фидбека + PDF гайд" проговаривал.
4. Не бойся рассказать про новые технологии, как например в секциях про многопточность, привет акторам и структурному concurrency. В ноушене есть секции соответствующие, достаточно рассказать про тред пул, плюсы и минусы async / await, что такое актор и какую он проблему решает и не решает, и всё, минимум уже знаешь. А дальше уже только апгрейд минимума: отмена тасок и проверка, async let для параллельного выполнения, даже картинку добавил, актор хопинг и реентерабельность, Task.deatached + Task.yield и все, крепки мидл+ дальше рекомендую.
Что-то забыл, или добавить / отредактировать? Пишите в чате и добавлю
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥4👍2🤯1
Тред про изучение iOS с нуля и устройства в BIG Tech
Тред уже закрылся, нельзя задать вопрос, но всегда можно постучать в лс автору и другим участникам.
Сам тред - весьма занимательный. Автор делится своим обучением: что и в какой последовательности делал. Рассказал про свою ЗП, в какой нише проект, количество откликов на вакансии - спойлер 280+.
Тред будет полезным тем кто обучается или в процессе, чтобы как минимум зарядится мотивацией, так как там, да-да не удивляйтесь, сложнее найти первую работу чем в СНГ, в общем и целом.
https://www.reddit.com/r/swift/comments/1h09dm0/3_years_ago_i_didnt_know_any_ios_dev_now_im_a/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
Тред уже закрылся, нельзя задать вопрос, но всегда можно постучать в лс автору и другим участникам.
Сам тред - весьма занимательный. Автор делится своим обучением: что и в какой последовательности делал. Рассказал про свою ЗП, в какой нише проект, количество откликов на вакансии - спойлер 280+.
Тред будет полезным тем кто обучается или в процессе, чтобы как минимум зарядится мотивацией, так как там, да-да не удивляйтесь, сложнее найти первую работу чем в СНГ, в общем и целом.
https://www.reddit.com/r/swift/comments/1h09dm0/3_years_ago_i_didnt_know_any_ios_dev_now_im_a/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
Reddit
From the swift community on Reddit
Explore this post and more from the swift community
👍3❤1
Чёрная пятница
Гитхаб репозиторий со списком программ и скидками на них, можно удачно взять ПО на год(ы) вперёд. А если не хочется тратить свои деньги, то можно спросить у руководства о возмещении, скидки обычно длятся от пары дней и до недели, лучше уточнять в каждом предложении!🤨
Гитхаб репозиторий со списком программ и скидками на них, можно удачно взять ПО на год(ы) вперёд. А если не хочется тратить свои деньги, то можно спросить у руководства о возмещении, скидки обычно длятся от пары дней и до недели, лучше уточнять в каждом предложении!
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mRs-/Black-Friday-Deals: Black Friday Deals for macOS / iOS Software & Books
Black Friday Deals for macOS / iOS Software & Books - mRs-/Black-Friday-Deals
❤4👍1🔥1
Опубликовали планы на swift к 2025 году, ознакомиться и почитать дискуссию можно здесь: https://forums.swift.org/t/swift-language-focus-areas-heading-into-2025/76611
Swift Forums
Swift Language focus areas heading into 2025
With Swift 6.0 and the Swift 6 language mode now released, Swift language development under the Language Steering Group is now focused on three major areas: making Swift Concurrency easier to approach and adopt, providing powerful low-level language and…
🤝6👍1
Несколько вариантов почему могут отозвать оффер (разделю их по главам):
1. Нарушение флоу найма
2. Затянули время
3. Мудаки и иуды
По подробнее по каждому пункту:
1.
➣ Рекрутер или согласующий/нанимающий скинул оффер до того, как прошла проверка СБ или до того, как одобрило последнее лицо согласования (понадеявшись, что всё будет ОК). Тут всё понятно, человек поспешил, нарушил — получил в своё "портфолио" негативно настроенного кандидата.
➣ Всё ок, СБ и согласование пройдены, но до выхода на работу =бац= и отзыв оффера: Тут люди либо получили пиздов сверху, либо передумали(3):
Пиздов сверху можно получить, если ты:
• Превышаешь вилку и согласовываешь это в тихую;
• Вывод человека не по той ставке команды/отдела/департамента. Например кандидата выводят не в департамент 1, а в департамент 2, чтобы потом перевести аккуратно и незаметно (чаще всего так делают, когда всё збс, но итоговое лицо мудак и не пойдёт на встречу), соответственно если это спалили то габэлла;
• Вывод человека на ставку выше (прим.: мидла на синьора). Допустим человек прошёл тех.собесы на мидл/мидл+, а его выводят на синьора (либо заочно, либо подарком, либо по блату, либо рекрутер/согласующий договорился), а потом это бац и спалилось.
2.
➣ Согласовали дату выхода через 2-10 недель и за это время попался другой кандидат (на два зуба больше и просящий на 6 копеек меньше). Искали сами специально (повторюсь в 3 главе) или просто попался по рекомендации/случайно нашли не так важно,→ суть в том, что рыночек порешал и кто-то более сильный/дешёвый/наглый забрал ваш оффер;
➣ Не спецом затянули и случился повтор 1: что-то вскрылось узналось (результаты собесов, накрутка, СБ, ход не по флоу-найма (прим. пропустить могли один этап) и т.п.).
➣ Пока ждали выход, пересмотрели бюджет/ставки/бэклог/аутстафф или аутсорс подрядчиков на год/квартал/месяц и потребность отпала и заморозили найм;
➣ Пока ждали выход кто-то сверху или сбоку согласовал перевод/перестановки и ставка закрылась;
3.
➣ Продолжают вести кандидата, имея сомнения и не пытаясь их прощупать. Потом сомнения подтверждаются и всё =ЧАО ПОКА= (сомнения могут быть в чём угодно: в софтах, в хардах, в документах, в месте жительства и т.п.).
➣ Главный хуй передумал: Это может по самым разным причинам: приснился сон, птица мимо =ЧЁРНАЯ= пролетела, когда думал о новом сотруднике, узнал что он дева, узнал что завтра доллар будет по 110 и решил вложить часть ФОТа в акции S&P500, вспомнил что на финале кандидат запнулся/замялся, тут вообще что угодно может быть;
➣ Похожее на пункт 2, но действуют не из позиции своей "безопасности", а из наглости/мудачества.
Пример: Специально затянули время, чтобы попытаться найти кого-то дешевле/тупее/скромнее/круглее/синусоиднее и т.п.
➣ Передумали насчёт другого кандидата и у вас оффер отозвали, а ему прислали;
➣ В дополнение последнему пункту во 2-ой главе: Тут уже корпоративные игры. По сути мудаки те, кто помещал найму, а не нанимающая сторона (рекрутеры, согласующие, нанимающие, кадровики);
Фухх, вроде всё, но если вдруг шо забыл, добавлю/исправлю🫡
И некоторые пункты мудачества спорные могут быть, ибо посмотреть можно по разному)
Спасибо большое Семёну за такое прекрасное объяснение, которое добавлю в ноушен самособой!
1. Нарушение флоу найма
2. Затянули время
3. Мудаки и иуды
По подробнее по каждому пункту:
1.
➣ Рекрутер или согласующий/нанимающий скинул оффер до того, как прошла проверка СБ или до того, как одобрило последнее лицо согласования (понадеявшись, что всё будет ОК). Тут всё понятно, человек поспешил, нарушил — получил в своё "портфолио" негативно настроенного кандидата.
➣ Всё ок, СБ и согласование пройдены, но до выхода на работу =бац= и отзыв оффера: Тут люди либо получили пиздов сверху, либо передумали(3):
Пиздов сверху можно получить, если ты:
• Превышаешь вилку и согласовываешь это в тихую;
• Вывод человека не по той ставке команды/отдела/департамента. Например кандидата выводят не в департамент 1, а в департамент 2, чтобы потом перевести аккуратно и незаметно (чаще всего так делают, когда всё збс, но итоговое лицо мудак и не пойдёт на встречу), соответственно если это спалили то габэлла;
• Вывод человека на ставку выше (прим.: мидла на синьора). Допустим человек прошёл тех.собесы на мидл/мидл+, а его выводят на синьора (либо заочно, либо подарком, либо по блату, либо рекрутер/согласующий договорился), а потом это бац и спалилось.
2.
➣ Согласовали дату выхода через 2-10 недель и за это время попался другой кандидат (на два зуба больше и просящий на 6 копеек меньше). Искали сами специально (повторюсь в 3 главе) или просто попался по рекомендации/случайно нашли не так важно,→ суть в том, что рыночек порешал и кто-то более сильный/дешёвый/наглый забрал ваш оффер;
➣ Не спецом затянули и случился повтор 1: что-то вскрылось узналось (результаты собесов, накрутка, СБ, ход не по флоу-найма (прим. пропустить могли один этап) и т.п.).
➣ Пока ждали выход, пересмотрели бюджет/ставки/бэклог/аутстафф или аутсорс подрядчиков на год/квартал/месяц и потребность отпала и заморозили найм;
➣ Пока ждали выход кто-то сверху или сбоку согласовал перевод/перестановки и ставка закрылась;
3.
➣ Продолжают вести кандидата, имея сомнения и не пытаясь их прощупать. Потом сомнения подтверждаются и всё =ЧАО ПОКА= (сомнения могут быть в чём угодно: в софтах, в хардах, в документах, в месте жительства и т.п.).
➣ Главный хуй передумал: Это может по самым разным причинам: приснился сон, птица мимо =ЧЁРНАЯ= пролетела, когда думал о новом сотруднике, узнал что он дева, узнал что завтра доллар будет по 110 и решил вложить часть ФОТа в акции S&P500, вспомнил что на финале кандидат запнулся/замялся, тут вообще что угодно может быть;
➣ Похожее на пункт 2, но действуют не из позиции своей "безопасности", а из наглости/мудачества.
Пример: Специально затянули время, чтобы попытаться найти кого-то дешевле/тупее/скромнее/круглее/синусоиднее и т.п.
➣ Передумали насчёт другого кандидата и у вас оффер отозвали, а ему прислали;
➣ В дополнение последнему пункту во 2-ой главе: Тут уже корпоративные игры. По сути мудаки те, кто помещал найму, а не нанимающая сторона (рекрутеры, согласующие, нанимающие, кадровики);
Фухх, вроде всё, но если вдруг шо забыл, добавлю/исправлю
И некоторые пункты мудачества спорные могут быть, ибо посмотреть можно по разному)
Спасибо большое Семёну за такое прекрасное объяснение, которое добавлю в ноушен самособой!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥11👍3💔2
#менторы #отзывы #своих_не_бросаем
Всем доброго воскресного дня! Хочу порекомендовать "Таблицу менторов" от нашего ноушена, в частности двух менторов, их кстате всего два, если хотите добавиться пишите в лс.
Товарищ СОВА - @OwlMaster
Товарищ Рома - @ondalor
Только положительные отзывы слышал про наших архаровцев, в частности:
- быстрое вовлечение в проект
- квалифицированная помощь
- работа на результат
Поэтому чтобы не слоняться по углам, ходить там, смотреть везде — лучше обращайтесь к нашим менторам, ибо свято место пусто не бывает, а капасити на всех 100% не хватит.
Лично мой кейс, Романы4 помог в переговорах к ЗП, была сложная ситуация, но Романыч помог и всё разрешилось прибаквой к окладу.
Вот тут все отзывы на Рому, на Сову нет отзывов, поэтому напишите пожалуйста кто с ним взаимодействует, дабы накинуть старине заслуженные отзывы.
УТП своих менторов в том, что всегда в чате можно поинтересоваться, что к чему и почему, а не эфимерный ментор из интернета, где отзыв можно написать совершенно любой, у нас же, всегда можно в чате найти того, кто сотрудничал, обнял!
Всем доброго воскресного дня! Хочу порекомендовать "Таблицу менторов" от нашего ноушена, в частности двух менторов, их кстате всего два, если хотите добавиться пишите в лс.
Товарищ СОВА - @OwlMaster
Товарищ Рома - @ondalor
Только положительные отзывы слышал про наших архаровцев, в частности:
- быстрое вовлечение в проект
- квалифицированная помощь
- работа на результат
Поэтому чтобы не слоняться по углам, ходить там, смотреть везде — лучше обращайтесь к нашим менторам, ибо свято место пусто не бывает, а капасити на всех 100% не хватит.
Лично мой кейс, Романы4 помог в переговорах к ЗП, была сложная ситуация, но Романыч помог и всё разрешилось прибаквой к окладу.
Вот тут все отзывы на Рому, на Сову нет отзывов, поэтому напишите пожалуйста кто с ним взаимодействует, дабы накинуть старине заслуженные отзывы.
УТП своих менторов в том, что всегда в чате можно поинтересоваться, что к чему и почему, а не эфимерный ментор из интернета, где отзыв можно написать совершенно любой, у нас же, всегда можно в чате найти того, кто сотрудничал, обнял!
🔥12👍4💯3
Новый тип в стандартной библиотеке Swift — Vector
Swift добавляет Vector, новый тип в стандартной библиотеке, который представляет собой массив фиксированного размера. Это альтернатива классическим C-массивам: T[N], std::array<T, N> в C++ и [T; N] в Rust.
Почему это важно?
Обычные массивы — это динамические структуры данных, которые выделяются на heap и могут быть излишне затратными для небольших массивов фиксированного размера. Vector, напротив, хранит элементы на stack или inline, что обеспечивает высокую производительность и минимизацию накладных расходов.
Основные преимущества Vector:
- Фиксированный размер: размер массива задаётся при создании.
- Высокая производительность: нет динамического выделения памяти.
- Безопасность: инлайн-инициализация элементов с возможностью индексации и итерации.
Пример использования:
Vector будет полезен, когда нужен массив фиксированного размера без накладных расходов динамической памяти. Будущий кандидат для собеседований? - Абсолютно. Будет ли применяться на практике? - Поживём, увидем.
Официальный обзор и примеры можно найти в предложении SE-0453.
Swift добавляет Vector, новый тип в стандартной библиотеке, который представляет собой массив фиксированного размера. Это альтернатива классическим C-массивам: T[N], std::array<T, N> в C++ и [T; N] в Rust.
Почему это важно?
Обычные массивы — это динамические структуры данных, которые выделяются на heap и могут быть излишне затратными для небольших массивов фиксированного размера. Vector, напротив, хранит элементы на stack или inline, что обеспечивает высокую производительность и минимизацию накладных расходов.
Основные преимущества Vector:
- Фиксированный размер: размер массива задаётся при создании.
- Высокая производительность: нет динамического выделения памяти.
- Безопасность: инлайн-инициализация элементов с возможностью индексации и итерации.
Пример использования:
let numbers: Vector<4, Int> = [1, 2, 3, 4]
for i in numbers.indices {
print(numbers[i])
}
Vector будет полезен, когда нужен массив фиксированного размера без накладных расходов динамической памяти. Будущий кандидат для собеседований? - Абсолютно. Будет ли применяться на практике? - Поживём, увидем.
Официальный обзор и примеры можно найти в предложении SE-0453.
GitHub
swift-evolution/proposals/0453-vector.md at main · swiftlang/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolution
🔥15👍3
Pets vs. Cattle — Почему 99% твоего кода отправят в утиль (и это нормально)
Вы когда-нибудь задумывались, сколько нашего кода реально используется в проде через год-другой?
Что если, значительная часть работы делается в стол? Значит ли это, что происходит бесполезная работа?
💡 "Pets vs. Cattle" — концепция из DevOps, которая применима и к разработке.
Pets — уникальные, любимые проекты, которым уделяют особое внимание. Они требуют постоянного ухода, улучшений и переживаний.
Cattle — код, который выполняет свою задачу, а потом его заменяют новым, без лишних сантиментов.
🔹 Большинство разработчиков относятся к своему коду как к питомцу: холят, лелеют, бесконечно рефакторят.
🔹 А бизнесу нужны "коровы", которые дают результат здесь и сейчас.
Что если мы можем принять тот факт, что 99% кода не переживет следующий бизнес-цикл. И это нормально. Настоящий профессионал не хранит код, а учится эффективно управлять "фермой". Чтобы разобраться в этом вопросе, можно почитать статью у Вастрика, а своим мнением поделиться в чате.
Вы когда-нибудь задумывались, сколько нашего кода реально используется в проде через год-другой?
Что если, значительная часть работы делается в стол? Значит ли это, что происходит бесполезная работа?
💡 "Pets vs. Cattle" — концепция из DevOps, которая применима и к разработке.
Pets — уникальные, любимые проекты, которым уделяют особое внимание. Они требуют постоянного ухода, улучшений и переживаний.
Cattle — код, который выполняет свою задачу, а потом его заменяют новым, без лишних сантиментов.
🔹 Большинство разработчиков относятся к своему коду как к питомцу: холят, лелеют, бесконечно рефакторят.
🔹 А бизнесу нужны "коровы", которые дают результат здесь и сейчас.
Что если мы можем принять тот факт, что 99% кода не переживет следующий бизнес-цикл. И это нормально. Настоящий профессионал не хранит код, а учится эффективно управлять "фермой". Чтобы разобраться в этом вопросе, можно почитать статью у Вастрика, а своим мнением поделиться в чате.
vas3k.blog
Pets vs. Cattle
«Питомцы vs. Скот». 99% вашей работы в итоге выбросят. Но это и сделает вас профессионалом
🔥8👍2
Для кого актуально установить Сбер на свой iPhone, то вот оффициальный способ сделать это легко и просто.
https://www.sberbank.com/ru/person/dist_services/inner_sbol/verni_sber?chips=macos#steps
https://www.sberbank.com/ru/person/dist_services/inner_sbol/verni_sber?chips=macos#steps
www.sberbank.ru
Как восстановить приложение СберБанка на iOS не выходя из дома
Верните Сбер на свой iPhone или iPad без визита в офис банка и долгого ожидания. Теперь вы можете самостоятельно установить СберБанк Онлайн на свой iPhone или iPad, чтобы сохранить доступ к удобному управлению финансами
👍6🔥2
Swift 6.1 и новинки в многопоточности
Swift 6.1 (beta) привносит важные изменения для работы с асинхронностью и акторами. Если ты следишь за эволюцией concurrency в Swift, вот что стоит знать:
[Изолированный deinit (будет в будущем)]
Разработчики давно ждали, чтобы deinit мог быть привязан к актору. В будущем можно будет явно указывать isolated deinit, например, для @MainActor классов. Это упростит управление памятью, но принесёт небольшие накладные расходы.
---
[Расширенное использование nonisolated]
Теперь nonisolated можно указывать сразу на всём расширении, а не на каждом методе. Это избавляет от дублирования, особенно при реализации протоколов в @MainActor классах.
💡 Было:
💡 Стало:
Меньше кода — больше удобства.
---
[Автоматический вывод типа в TaskGroup]
Раньше в withTaskGroup приходилось вручную указывать тип результатов. Теперь компилятор умеет автоматически определять тип из контекста.
💡 Было:
💡 Стало:
Типы всё ещё нужно указывать в сложных случаях, но в большинстве ситуаций — компилятор справляется сам.
Подробный разбор всех нововведений — читай тут.
Swift 6.1 (beta) привносит важные изменения для работы с асинхронностью и акторами. Если ты следишь за эволюцией concurrency в Swift, вот что стоит знать:
[Изолированный deinit (будет в будущем)]
Разработчики давно ждали, чтобы deinit мог быть привязан к актору. В будущем можно будет явно указывать isolated deinit, например, для @MainActor классов. Это упростит управление памятью, но принесёт небольшие накладные расходы.
---
[Расширенное использование nonisolated]
Теперь nonisolated можно указывать сразу на всём расширении, а не на каждом методе. Это избавляет от дублирования, особенно при реализации протоколов в @MainActor классах.
💡 Было:
extension MainActorType: NotIsolated {
nonisolated func doStuff() {}
nonisolated func doThings() {}
}
💡 Стало:
nonisolated extension MainActorType: NotIsolated {
func doStuff() {}
func doThings() {}
}
Меньше кода — больше удобства.
---
[Автоматический вывод типа в TaskGroup]
Раньше в withTaskGroup приходилось вручную указывать тип результатов. Теперь компилятор умеет автоматически определять тип из контекста.
💡 Было:
let messages = await withTaskGroup(of: Message.self) { group in
// ...
}
💡 Стало:
let messages = await withTaskGroup { group in
// Swift сам понимает, что тут Message!
}
Типы всё ещё нужно указывать в сложных случаях, но в большинстве ситуаций — компилятор справляется сам.
Подробный разбор всех нововведений — читай тут.
massicotte.org
New Concurrency Stuff with 6.1
❤8👍4🔥3
#обучение
Сейчас наполняю главу для изучения замыканий, думаю, что лучше этих двух видео и не найти даже:
1. https://www.youtube.com/watch?v=WeT1U9YiFAg
2. https://www.youtube.com/watch?v=410NFC0DYiM
Если - вдруг у кого проблемы с пониманием замыканий, то эти видео дадут прочный фундамент для понимания и работы, осталось лишь практика.
А вот capture list, delayed deallocation, autoclosure, проблема @escaping замыканий со SwiftUI, работа с ARC и вложенные замыкания + ARC — это уже на грейды повыше. Всё это можно найти и в ноушене, например вот здесь:
1. Capture list
2. Delayed deallocation
3. Autoclosures
4. Почему не стоит использовать escaping замыкание в SwiftUI
5. Escaping
6. Вложенные замыкания и ARC
Сейчас наполняю главу для изучения замыканий, думаю, что лучше этих двух видео и не найти даже:
1. https://www.youtube.com/watch?v=WeT1U9YiFAg
2. https://www.youtube.com/watch?v=410NFC0DYiM
Если - вдруг у кого проблемы с пониманием замыканий, то эти видео дадут прочный фундамент для понимания и работы, осталось лишь практика.
А вот capture list, delayed deallocation, autoclosure, проблема @escaping замыканий со SwiftUI, работа с ARC и вложенные замыкания + ARC — это уже на грейды повыше. Всё это можно найти и в ноушене, например вот здесь:
1. Capture list
2. Delayed deallocation
3. Autoclosures
4. Почему не стоит использовать escaping замыкание в SwiftUI
5. Escaping
6. Вложенные замыкания и ARC
🔥7🫡4👍3
#работа #шабашка
Всем привет, наш добрый друг — эйчар Семён поделился таким интересным графиком: https://public.tableau.com/app/profile/alkadarskiy.selim/viz/2021_16595984868110/232020
Актуально и сейчас. Как работать? Откликаться на вакансию либо ДО массовой активности других соискателей либо ПОСЛЕ чтобы ваш отклик был выше.
Всем привет, наш добрый друг — эйчар Семён поделился таким интересным графиком: https://public.tableau.com/app/profile/alkadarskiy.selim/viz/2021_16595984868110/232020
Актуально и сейчас. Как работать? Откликаться на вакансию либо ДО массовой активности других соискателей либо ПОСЛЕ чтобы ваш отклик был выше.
Tableau Public
Активность соискателей по дням недели в времени суток с 2021 года
🔥14👍2❤1
#полезное #swiftui #observable
lazy var в @Observable – почему не работает? 🤔
Если ты попробуешь использовать lazy var в @Observable классе, то наткнёшься на ошибку:
Но почему так?
Ключевая проблема – @Observable автоматически создаёт "синтезированные" свойства для отслеживания изменений. lazy var же инициализируется при первом доступе, а это конфликтует с механизмом синтеза.
Если добавить к нему макрос @ObservationIgnored, то система наблюдения будет игнорировать синтез для этого свойства.
lazy var в @Observable – почему не работает? 🤔
Если ты попробуешь использовать lazy var в @Observable классе, то наткнёшься на ошибку:
@Observable class MyClass {
private(set) lazy var something = "" // ❌ 'lazy' cannot be used on a computed property
}
Но почему так?
Ключевая проблема – @Observable автоматически создаёт "синтезированные" свойства для отслеживания изменений. lazy var же инициализируется при первом доступе, а это конфликтует с механизмом синтеза.
Если добавить к нему макрос @ObservationIgnored, то система наблюдения будет игнорировать синтез для этого свойства.
@Observable class MyClass {
@ObservationIgnored
private(set) lazy var something = "" // 💚 Все ок, теперь можно!
}
🔥10👍3❤2
#полезное #поиск_работы #линкедин
1. Создать ЛинкедИн;
2. Оформить профиль (можно как у меня, можно как у других людей с оформленным профилем);
3. Еженедельно расходуйте весь максимум на добавление контактов (100-150 шт). Добавляйте инфлюенсеров и рекрутеров и людей с большим количеством контактов - это поможет в будущем при посте: "я в поиске работы"/"я уволился" и т.п.;
4. Попросите знакомых заапрувить навыки на Линке;
5. Комментируйте рандомные посты, поздравляйте с днём бетона всех у кого день бетона, желайте удачи, ставьте лайки, пишите посты и повторюсь "расширяйте сеть контактов" — это гаранты вашего высокого SSI рейтинга. Чем выше эта залупа, тем вы "круче";
→ Ссылка для проверки SSI метрики на LinkedIn
6. Лайфхак: смешной мем в посте добавляет охватов больше, чем полезный "высер" + люди будут хихикать и потом мб вам придут и дадут ваку за хороший смех;
7. Делать всё нужно регулярно↑;
8. После 1000+ контактов можно забить хуй, но не рекомендую))))
9. Плашечка опенТуВорк: честно, холивар на ровном месте. Хотите ставьте, хотите нет);
10. Если вы в поиске работы — укажите ваш тг везде: в шапке, в заголовке, в "о себе", в контактах;
11. Можно заебаться и настроить авто-аутрич, когда к вам в контакт добавляется, чтобы от вас прилетало сообщение: салам аллейкум, одна тут? *Я такое не делал, так что не подскажу*;
12. Как искать ваки: в постах рекрутеров, через булевые запросы в поисковой строке линка, по хештегам, писать в лс рекрутерам и "привет рОдная, есть чем поживиться для пажилого?"
=КрАтЕньКо=
P.S. Я договорился с Семёном и будет гайд для небазовых, где он подробном и четко все сделат, в основном канале сегодня - завтра отпишу.
1. Создать ЛинкедИн;
2. Оформить профиль (можно как у меня, можно как у других людей с оформленным профилем);
3. Еженедельно расходуйте весь максимум на добавление контактов (100-150 шт). Добавляйте инфлюенсеров и рекрутеров и людей с большим количеством контактов - это поможет в будущем при посте: "я в поиске работы"/"я уволился" и т.п.;
4. Попросите знакомых заапрувить навыки на Линке;
5. Комментируйте рандомные посты, поздравляйте с днём бетона всех у кого день бетона, желайте удачи, ставьте лайки, пишите посты и повторюсь "расширяйте сеть контактов" — это гаранты вашего высокого SSI рейтинга. Чем выше эта залупа, тем вы "круче";
→ Ссылка для проверки SSI метрики на LinkedIn
6. Лайфхак: смешной мем в посте добавляет охватов больше, чем полезный "высер" + люди будут хихикать и потом мб вам придут и дадут ваку за хороший смех;
7. Делать всё нужно регулярно↑;
8. После 1000+ контактов можно забить хуй, но не рекомендую))))
9. Плашечка опенТуВорк: честно, холивар на ровном месте. Хотите ставьте, хотите нет);
10. Если вы в поиске работы — укажите ваш тг везде: в шапке, в заголовке, в "о себе", в контактах;
11. Можно заебаться и настроить авто-аутрич, когда к вам в контакт добавляется, чтобы от вас прилетало сообщение: салам аллейкум, одна тут? *Я такое не делал, так что не подскажу*;
12. Как искать ваки: в постах рекрутеров, через булевые запросы в поисковой строке линка, по хештегам, писать в лс рекрутерам и "привет рОдная, есть чем поживиться для пажилого?"
=КрАтЕньКо=
P.S. Я договорился с Семёном и будет гайд для небазовых, где он подробном и четко все сделат, в основном канале сегодня - завтра отпишу.
🔥17❤7
Indie-разработка жива: $35K за 30 дней
На Reddit всплыл классный пост от разработчика, который в одиночку сделал $35K за последний месяц с iOS-приложением. Без команды, без инвестиций — просто стабильная indie-работа и правильный подход к монетизации.
Из интересного:
- Приложение — “AI Chat”, но не просто обёртка для ChatGPT. Там и оффлайн-модели, и быстрые ответы, и проработанный UX.
- Очень грамотно сделана монетизация — подписка через IAP, пробный период, и чёткое УТП.
- Основной трафик — органика и App Store SEO.
Потратил 3 месяца на MVP.
Сейчас работает над улучшением ретеншна и платящих пользователей.
Делает всё сам: код, UI, маркетинг, support.
Читай полный пост: [ссылка на статью]
На Reddit всплыл классный пост от разработчика, который в одиночку сделал $35K за последний месяц с iOS-приложением. Без команды, без инвестиций — просто стабильная indie-работа и правильный подход к монетизации.
Из интересного:
- Приложение — “AI Chat”, но не просто обёртка для ChatGPT. Там и оффлайн-модели, и быстрые ответы, и проработанный UX.
- Очень грамотно сделана монетизация — подписка через IAP, пробный период, и чёткое УТП.
- Основной трафик — органика и App Store SEO.
Потратил 3 месяца на MVP.
Сейчас работает над улучшением ретеншна и платящих пользователей.
Делает всё сам: код, UI, маркетинг, support.
Читай полный пост: [ссылка на статью]
Reddit
From the iOSProgramming community on Reddit: Made $35K in sales over the past 30 days as an indie dev. Started building apps a…
Explore this post and more from the iOSProgramming community
🔥10👍3✍2
#vibecoding
Если вы так же как и я, не совсем в теме про vibe coding, то данное видео в полной мере объяснит новое течение.
А есть ли тут vibe coder'ы? Ставьте голубя, посмотрим сколько нас!🕊
https://www.youtube.com/watch?v=JeNS1ZNHQs8
Если вы так же как и я, не совсем в теме про vibe coding, то данное видео в полной мере объяснит новое течение.
А есть ли тут vibe coder'ы? Ставьте голубя, посмотрим сколько нас!
https://www.youtube.com/watch?v=JeNS1ZNHQs8
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Interview with Vibe Coder in 2025
Vibe Coding
https://linkgraph.net/stack/vibecoder
Interview with a Professional Vibe Coder with Kai Lentit aired on © The Viboe Coder 2025.
AI coding
prompt engineering
three js
windsurf
replit
cursor tricks
cursor rules
Programmer humor
Vibe code Jam…
https://linkgraph.net/stack/vibecoder
Interview with a Professional Vibe Coder with Kai Lentit aired on © The Viboe Coder 2025.
AI coding
prompt engineering
three js
windsurf
replit
cursor tricks
cursor rules
Programmer humor
Vibe code Jam…
😁7🕊6👍1
#server_side #backend
Как построить бизнес на серверном Swift и open source: подкаст с Тимом Кондоном
Если тебе интересен Swift не только на iOS, но и на сервере — советую к просмотру последний выпуск Going Indie Podcast, где Тим Кондон рассказывает, как он построил устойчивый бизнес вокруг Vapor, open source и консалтинга.
Тим делится очень честно — и о фейлах, и о росте, и о страхах. Если ты задумываешься о собственных проектах, хочешь уйти в инди или просто понять, как можно строить карьеру вне классического “работа в офисе” — это must-watch
👨💻 Кто такой Тим Кондон:
- Автор и мейнтейнер Vapor
- Основатель Broken Hands — компании по серверному Swift-консалтингу
- Член Swift Server Workgroup
- Организатор конференции ServerSide.swift
- Активный участник сообщества и автор курсов на Kodeco
🎞 Смотреть выпуск
Как построить бизнес на серверном Swift и open source: подкаст с Тимом Кондоном
Если тебе интересен Swift не только на iOS, но и на сервере — советую к просмотру последний выпуск Going Indie Podcast, где Тим Кондон рассказывает, как он построил устойчивый бизнес вокруг Vapor, open source и консалтинга.
Темы выпуска:
- Как перейти на инди-рельсы и преодолеть страх нестабильности
- Что значит быть ядром сообщества Server-Side Swift
- Как совмещать работу над Vapor, организацию конференций и личную жизнь
- Почему нетворкинг, личный бренд и выступления — это не только для экстравертов
- Как построить команду, начать зарабатывать на консалтинге и не выгореть
Тим делится очень честно — и о фейлах, и о росте, и о страхах. Если ты задумываешься о собственных проектах, хочешь уйти в инди или просто понять, как можно строить карьеру вне классического “работа в офисе” — это must-watch
👨💻 Кто такой Тим Кондон:
- Автор и мейнтейнер Vapor
- Основатель Broken Hands — компании по серверному Swift-консалтингу
- Член Swift Server Workgroup
- Организатор конференции ServerSide.swift
- Активный участник сообщества и автор курсов на Kodeco
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2👍1
#observable #swiftui #deepdive
How SwiftUI Tracks UI Changes With Observable (Behind the Scenes)
На канале у Карин вышло видео про работу
- Что это и для чего
- Понимание работы механизма
- Чуть-чуть глубже взгляд на работу
- Как с этим работать и выводы
Посмотреть можно здесь. Эту функцию и многое другое, интересное и связанное с макросом observable мы рассмотрели в этом воркшопе ещё год назад. А в этом воркшопе я уже делился после опыта на вроде и рассматривали практичную информацию по работе на проде.
Читай подробно про каждый воркшоп внутри. А для тех у кого нет небазовой подписке, хочу поделиться парочкой ссылок из одного воркшопа. Они прям для совсем хардкорщиков, там deep dive самого deep dive и всё это в кубе deep dive для изучения
- Swift Observation from Scratch — Part 1 of 2
- Swift Observation from Scratch — Part 2 of 2
Приятного просмотра и изучения!👋
How SwiftUI Tracks UI Changes With Observable (Behind the Scenes)
На канале у Карин вышло видео про работу
withObservationTracking. Где она рассказала всю необходимую информацию по этой функции.- Что это и для чего
- Понимание работы механизма
- Чуть-чуть глубже взгляд на работу
- Как с этим работать и выводы
Посмотреть можно здесь. Эту функцию и многое другое, интересное и связанное с макросом observable мы рассмотрели в этом воркшопе ещё год назад. А в этом воркшопе я уже делился после опыта на вроде и рассматривали практичную информацию по работе на проде.
Читай подробно про каждый воркшоп внутри. А для тех у кого нет небазовой подписке, хочу поделиться парочкой ссылок из одного воркшопа. Они прям для совсем хардкорщиков, там deep dive самого deep dive и всё это в кубе deep dive для изучения
withObservationTracking- Swift Observation from Scratch — Part 1 of 2
- Swift Observation from Scratch — Part 2 of 2
Приятного просмотра и изучения!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1👍1
A Day in the Life of a SwiftUI View
Chris Eidhof раскрывает mental model SwiftUI, показыя, как наш код превращается в ephemeral view tree и в персистентный render tree — AttributeGraph. Chris подробно объясняет, как @State интегрируется в граф, оптимизирует layout и что происходит при каждом вызове body.
https://www.youtube.com/watch?v=MRY3UCUVv98
https://www.youtube.com/watch?v=MRY3UCUVv98
https://www.youtube.com/watch?v=MRY3UCUVv98
> Текстовая версия доклада
> Похожая статейка в ноушен
> Подробно про AttributeGraph в ноушен
Chris Eidhof раскрывает mental model SwiftUI, показыя, как наш код превращается в ephemeral view tree и в персистентный render tree — AttributeGraph. Chris подробно объясняет, как @State интегрируется в граф, оптимизирует layout и что происходит при каждом вызове body.
https://www.youtube.com/watch?v=MRY3UCUVv98
https://www.youtube.com/watch?v=MRY3UCUVv98
https://www.youtube.com/watch?v=MRY3UCUVv98
> Текстовая версия доклада
> Похожая статейка в ноушен
> Подробно про AttributeGraph в ноушен
YouTube
Chris Eidhof - A Day in the Life of a SwiftUI View
Chris takes us through how a SwiftUI view is rendered, laid out and updated
🔥5❤1👍1
#weak_let #swift #concurrency
Раньше weak можно было только с var, и из-за этого классы и замыкания с такими ссылками не были Sendable, но с принятием этого проползола можно будет объявлять слабые ссылки с let, а не только с var.
Зачем это нужно?
- Убирает лишнюю мутируемость, weak let не мешает проверкам на безопасность в конкурентных контекстах.
- Закрывает брешь в sendability: классы и @Sendable-замыкания с weak let становятся полностью безопасными.
Про мотивацию
1. weak var считался мутируемым, потому что при деинициализации объекта ссылка сбрасывалась в nil.
2. На самом деле это не "мутация" значения, а просто особенность weak ref.
3. Теперь weak let отражает именно эту логику – неизменяемая слабая ссылка, которая по-прежнему может стать nil.
Прочитать подробнее и посмотреть можно здесь: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0481-weak-let.md
Раньше weak можно было только с var, и из-за этого классы и замыкания с такими ссылками не были Sendable, но с принятием этого проползола можно будет объявлять слабые ссылки с let, а не только с var.
Зачем это нужно?
- Убирает лишнюю мутируемость, weak let не мешает проверкам на безопасность в конкурентных контекстах.
- Закрывает брешь в sendability: классы и @Sendable-замыкания с weak let становятся полностью безопасными.
Про мотивацию
1. weak var считался мутируемым, потому что при деинициализации объекта ссылка сбрасывалась в nil.
2. На самом деле это не "мутация" значения, а просто особенность weak ref.
3. Теперь weak let отражает именно эту логику – неизменяемая слабая ссылка, которая по-прежнему может стать nil.
Прочитать подробнее и посмотреть можно здесь: https://github.com/swiftlang/swift-evolution/blob/main/proposals/0481-weak-let.md
GitHub
swift-evolution/proposals/0481-weak-let.md at main · swiftlang/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolution
🔥9👍4🤯1
final class Person {
var name: String
init(name: String) {
self.name = name
}
}
final class ViewModel: ObservableObject {
@Published var person = Person(name: "John")
func changeName() {
person.name = "Alice"
}
}
struct StateObjectInnerView: View {
@StateObject private var viewModel = ViewModel()
var body: some View {
Button {
viewModel.changeName()
} label: {
Text(viewModel.person.name)
}
Text("StateObject Demo").padding()
}
}
Ниже будет опрос
Please open Telegram to view this post
VIEW IN TELEGRAM