iOS жив
94 subscribers
28 photos
1 video
14 links
и точка 💅
осветить путь начинающим | рутина работы |
собесы |
обмен опытом |
Download Telegram
«Учись на ошибках других — у тебя просто не хватит жизни, чтобы совершить их все самому"

коллеги, я рада объявить что набираю несколько добровольцев на часовые созвоны со мной

ваш опыт не важен - главное желание и запрос ко мне
например:
- смогу дать советы в начале пути - что учить, на чем сделать акцент, что можно пока не трогать
- разберу резюме, чтобы оно стало заметнее для рекрутера и вас стали чаще звать на собесы
- обсудить провальные собесы/легенду/софты

Для записи пишите в лс или комментарии - обсудим ваш запрос и согласуем время
не бойся и не стесняйся, я не кусаюсь и жду твоего смс❤️
p.s: for free - с тебя только отзыв
🔥4👻3👍2
🧠 60+ собесов глазами iOS-инженера

Сложно найти собес на котором не затронут эти темы- сегодня посмотрим самый сок 😻
зная их можешь смело врываться на собес 😎

Типы данных:
Value & Reference типы
Escaping / Non-escaping closures
Память и куча
Когда value хранится в куче
Дженерики и associated type

Коллекции
Массив, сет, словарь
COA & COW — как сделать COW для структуры
Коллизии, открытая адресация
Алгоритмические сложности операций в массиве и словаре

Диспетчеризация
выговорить слово и знать все три типа , не забыть message(по возможности)

View&Layer
отличия и зачем каждый нужен
на чем анимации делал
frame&bounds
когда меняются bounds

UI
HitTest и responder chain
Ключевое окно
setNeedsLayout, layoutIfNeeded, intrinsicContentSize, contentHuggingPriority, compressionResistance
ЖЦ приложения
ЖЦ View Controller

ARC
Отличия MRC и GC
устройство счетчика ссылок
side table
weak&unowned
где отлавливать утечки
retain cycle

Многопоточка
Проблемы( deadlock, инверсия приоритетов и тд)
Очереди, локи , семафоры, группы, барьер
Операции и их преимущества

*Архитектуры
MVVM, MVP, VIPER, Clean Swift и TCA
связи, кто кого знает, как взаимодействуют

*SwiftUI
Как добавить SUI в UIKit проект и зачем
Property wrappers 🔥
ViewModifier
PreferenceKey

*Structured Concurrency
Отличие от GCD
Акторы : isolated и nonisolated
Task, Taskgroup
Sendable

*Реактивщина
в каких целях использовали
“горячий” и “холодный” Publisher
PassthroughSubject и CurrentValueSubject

вот как то так! а ты боялся
как думаете, какую тему забыла?
❤️ на подробные ссылки по материалам
🔥на разбор топ вопросов софт собеса
🔥9❤‍🔥64
iOS жив pinned a photo
друзья, на этой неделе отвела 4 консультации, очень зарядилась от вас ❤️ спасибо вам за доверие, вы крутые!
увидела в каждом потенциал и горящие глаза
и сегодня нас тут 40 человек😻

готовлю пост про софт собес и пишу материалы для своего первого ролика 🙌

всем классных выходных и восстановления ресурса, не забудьте позаботиться о себе ❤️
11
почему я люблю отвечать на глупые вопросы

в прошлый понедельник мы с выпускниками школы 21 выступили на открытом, микрофоне, спасибо за приглашение Никите❤️
куда еще сходить - например ребята из Coffee&Code устраивают сходки по мобилкам каждые выходные, приходите на учебу/мероприятия школы21

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

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

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

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

отвечаю на самый популярный вопрос конфы - как я пойму что айос это мое и стоит ли туда идти в 2025?
ДА, твои горящие глаза и желание - все что тебе нужно

получилось у меня, получится у вас. но нужно ебашить
7👍4❤‍🔥1
и всем, кто говорит и думает, что айос умер в 2025
поживет еще, старичок!🥰 ну а мы его поддержим
8👍5🔥3
вот вам и вся рабочая рутина🥹😻
а бэкендеров люблю все равно
33❤‍🔥1
нет ну вы вообще крепкий сеньор?

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

на нем могут быть разные люди - разрабы/ПМ твоей будущей команды или вовсе лид от IOS направления

важно - ознакомиться с вакансией, полистать в интернете, пересмотреть техничку на вопросы стека/узких кейсов продукта - ты должен знать, куда вообще идешь

твой факап - сделать акцент чему он тебя научил и какие выводы ты сделал(методика STAR и все такое)

твоя самая охуенная задача
тут я советую делить на
* технически сложную
* классную по бизнесу/пользовательскому опыту

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

инициатива и решительность - я предложил - сделал рефакторинг, внедрил классную библиотеку, перепил лида на корпоративе

твои вопросы
чуть инициативы, друг мой! последние 10 минут нужно показать, что тебе правда интересна команда, а не только пополнение карты в конце месяца
спроси, что еще не успели обсудить - про процессы, стек, требования и ожидания от кандидата

твоя задача - доказать, что ты ответственный, нетоксичный, корпоративный пирожочек, с появлением которого в команде будет всем только лучше. ну такие маскулинные вайбы «я все решу, малыш»🦧

горячо рекомендую посмотреть видео Ани авось прорвемся про софты и вот эту легенду вместе с кофе

все вопросы я собрала на отдельной страничке, пользуйся❤️ и уверенных тебе собесов
9👌3❤‍🔥11
девушка: боится слива нюдсов
женщина: боится слива резюме

но мы с вами ничего не боимся и сделаем из этого полезный возвращенский пост в канал

кто не видел - у Назарова вышел топ резюме с красной площадки по всем направлениям
делаем разбор актуальных сейчас навыков и требований по IOS от представителя списка?

коллеги, признавайтесь, кто тоже нашел себя в главных прошмандовках hh? кто сейчас ищет работу?
🫡4🔥32🤣21😁1
что там с яблочным рынком?

сухие факты красной площадки:
34 вакансии на 1-3 года
82 на 3-6 🔥
20 на 6+

Решила начать с анализа самых 20 вкусных вакансий сейчас на 3-6 лет(в комментарии оставлю ссылочки). В подборку вошли наши привычные старички санкционные бигтехи и классные заграничные стартапы

Что из интересного
Около 60% вакансий — из финтеха/банков
Неприятная динамика вакансий с гибридом(7), странной релокацией(Ташкент, Тбилиси) и офисом(5)
Удаленка явно указана только в 3 😱

Новенький суи уверенно догоняет проверенного старичка кита
UIKit — 15 из 20 (75%)
SwiftUI — 13 из 20 (65%)
Оба одновременно — 11 (55%)

Топ-10 ключевых навыков: Swift (100%), UIKit (75%), SwiftUI (65%), MVVM (60%), Git (60%), REST API (60%), GCD/async-await (60%), SOLID (55%), VIPER (50%), CI/CD (50%)

Топ задач:
• Разработка новой функциональности / реализация новых фич — Coordinator / Router, SnapKit / AutoLayout
• Проектирование архитектуры — MVVM / VIPER / Clean, модульность, SPM, Swinject, CocoaPods
• Интеграция с backend / клиент-серверное взаимодействие — REST/JSON, WebSocket, URLSession, Alamofire, Moya
• UI и сложные экраны — анимации (Core Animation / Lottie / Rive), Charts, AVKit / AVFoundation
• Оптимизация производительности и стабильности (crash-free) — Crashlytics, Instruments, Time Profiler, FPS
• Code review и качество кода — Git / GitFlow / GitLab, SwiftLint, SwiftFormat
• Тестирование — unit / UI / snapshot, XCTest
• Многопоточность и асинхронность — GCD, Swift Concurrency, OperationQueue
• CI/CD и релизный цикл — Fastlane / TeamCity / GitLab / TestFlight
• Командная работа в продукте — Jira, Figma, Agile
• A/B-тесты и продуктовые метрики — Firebase, AppMetrica, AppsFlyer
• Рефакторинг и работа с legacy — миграции UIKit → SwiftUI, GCD → async/await, Objective-C

Ну вот такие дела. И никаких тебе покраски кнопку и поругаться с бэкендом 😰
Подробный анализ оставляю для вас, мои любимки у себя в notion
Как подружить актуальные запросы рынка и свою резюмешку, обсудим дальше, не переключайтесь❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥31
я красный флаг или нет? смотрим на резюме взглядом HR

База
локация Москва, можно попробовать Кипр/Тбилиси, если у тебя есть такие вакансии на xx, но никаких маленьких РФ городов.

Конкретные достижения
Без выдуманных идеально круглых цифр.
Берем с собой FPS, crash rate, покрытие тестами, показатели A/B тестов, время сборки, кол-во крашей в Crashlytics

Навыки
30 шт! берем из моего поста + несколько интересных от себя

Активность
Взяла практические советы у моих классных друзей Егора go dev и Эльмана devops❤️
Ваш уровень активности должен держаться > 90%, он считается от откликов и самого нахождения на сайте
делать максимальное кол-во откликов на резюме, официально это 200 в день на резюме - можем брать не наш диапазон опыта или android/flutter/mobile прости господи, если активность совсем упала
Популярная утилита, которая раскинет отклики - просто потрясающе
Можем делать дубль с iOS developer, iOS engineer и еще какие названия найдете в вакансиях
Также ребята советуют два скрипта: для имитации активности в списке вакансий/переписки в чате
Пока тестирую, но вещь интересная

Работать с отказами
Смотрите отказы только по своему окну опыта(1-3,3-6,6+)
Определить с нейронкой
(мой любимчик opus 4.6) какие достижения и ключевые слова объединяют 5-10 отказов
Дублировать резюме и корректировать, добавляя пропущенные навыки

Отклик на сайте
Советую не лениться продублировать отклик на сайте компании после отклика на HH

Обо мне
Это твой добивающий лоу-кик
Никаких люблю читать и пить пиво пятницам - только выжимка по всему опыту
в каких компаниях и проектах работал, что прям крутого сделал в них, что тебя выделяет от других + тг!!

Сопроводительное
оно вшивается в резюме при отклике для HR , не пишите там длинные полотна от гпт
Укажите локацию, тг, твои самые крутые достижения и что твой опыт может быть полезен команде/ соответствует стеку Максимум 3-5 предложений

сколько красных флагов собрал, котик? 😻
🔥8🥰5👏41👻1
Смотрим топовые резюме с hh - гении разработки или обычные работяги?

Вот уже несколько недель команда ОМ публикует топовые резюме со стороны работодателя, две недели я изучала их в поисках единорога, но нашла только повторяющуюся структуру в каждом.

Навыки
Среднее количество — 27 навыков, поэтому не ленимся и заполняем их по формуле = самые частые в вакансиях + несколько уникальный ваших
Абсолютные лидеры— Swift + UIKit + MVVM (все резюме). Далее Git (90%) и REST API(70%)
VIPER — 6 из 10
Combine — 5 из 10. Нативная реактивность Apple вытесняет RxSwift (только 2 из 10).
CI/CD — упоминают 7 из 10
SwiftUI — 5 из 10. Но UIKit всё ещё у всех десяти🥰
Догоняют: 6 у CoreData, CocoaPods, JSON,
5 - GCD, Xcode, Atlassian Jira
4 - Firebase, SPM, SOLID, Objective-C (нас с вами переживет!), Realm

Компания
8 из 10 работали в продуктовых компаниях, 6 — в крупных корпорациях и e-commerce, по 3 — в стартапах, аутсорсе и банках. Только 1 кандидат имеет опыт в зарубежной компании.
Вывод - наши привычные крупные бигтехи в РФ очень конвертят резюме

Достижения
Собираем из
[Глагол действия] + [что именно сделал] + [каким инструментом] + [какой результат(измеримый обязательно)]

Используем разные глаголы-маркеры действий
«Реализовал» — 9/10, «Оптимизировал» — 5/10, «Спроектировал» — 5/10, «Повысил» — 5/10, «Внедрил» — 4/10, «Снизил / сократил» — 3/10, «Ускорил» — 3/10

А теперь конкретики накинем:
• Рефакторинг legacy-кода — 6 из 10
«Провёл рефакторинг, участвовал в миграции»
• CI/CD и автоматизация — 6 из 10
«Внедрил и настроил процесс CI/CD (GitLab CI + Fastlane): автоматизировал сборки, тестирование и доставку билдов, что ускорило релизный цикл»
• Code Review / менторинг — 6 из 10
• Тестирование — 5 из 10
«Внедрил автоматическое тестирование UI с XCTest и Snapshot Testing, покрыл Х критических флоу»
• Модульная декомпозиция — 4 из 10
«Декомпозиция iOS-монолита, выделение Y модулей через SPM, сокращение времени сборки на Х»
• Публикация в App Store и участие в релизном процессе — 5 из 10
• VoIP / WebRTC — 5 из 10
Неожиданно частая специализация.
Половина топа работала😁 с видеосвязью.
• Дизайн-система / UI-компоненты — 4/10

Образование
2 из 10 кандидатов со средним образованием попали в топ, включая классного сеньора с 8+ годами. Но я советую все таки вышку добавлять

Добивающие факторы
В топ всегда попадают новые аккаунты. Также не забываем следить за активностью(>80%) на аккаунте - больше всего ее конвертят отклики со всех резюме аккаунта

Вывод - резюме конвертится не из-за супер крутых достижений или работы с редкими фреймворками/уникальными продуктами.
Решает структура резюме и правильные формулировки.
Жду твое резюме в топе❤️
4👍3🔥2👻2
ты и есть инженерный свет❤️

тебе не нужно для этого чье-то одобрение, а только выкинуть из головы слова препода в вузе на паре по матану, подколы родителей о выборе вуза,ну и коллег/друзей/интервьюеров туда же

все, кто себе такое позволили - просто не знали какая инженерная сила внутри вас есть ❤️

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

с 8 марта моих принцесс подписчиц❤️💅
Please open Telegram to view this post
VIEW IN TELEGRAM
92🔥211
Премиум лучшему Дане Колбасенко❤️

Переходим от теории к практике 💅
Выложила 3 поста про рынок сейчас - смотрим вакансии, общие требования, топовые резюме
Пришло время совершать ошибки на пути к хорошему резюме, чтобы в ваш лс начали стучаться рекрутеры
Если устал получать одни отказы- кидай резюме в лс канала или в комментарии. Первым 5 дам обратную связь и за лучшее подарю тг прем лично от меня❤️ публиковаться никуда они не будут - все между нами

Не стесняйся и начни уже верить в себя, потому что я в тебя верю, бусинка🙏
43❤‍🔥1
Смотрим обитателей тайной комнаты

Принесла вам 3 свежие задачки с собеседований этой недели.
Самый мастхев, чтобы их не бояться : COW и типы данных, диспетчеризация, ARC(счетчик ссылок, weak/strong), GCD + методы синхронизации

Смотрим:
1. Есть протокол ApiClient с методом загрузки одного юзера по ID. Нужно написать метод, который принимает массив ID и возвращает массив юзеров

DispatchGroup — enter() увеличивает счетчик задач, leave() уменьшает. Когда счётчик дошёл до нуля — срабатывает notify. Это способ дождаться завершения нескольких асинхронных задач.
Set(ids) — дедупликация. Если в массиве есть повторяющиеся ID, запрос на сервер уйдёт только один раз.
Serial queue для синхронизации — DispatchQueue(label:...) по умолчанию создаёт последовательную очередь. Все записи в userDict идут строго по одной
compactMap { userDict[$0] } — маппим по оригинальному массиву ids, чтобы сохранить порядок. compactMap отбрасывает nil
guard !ids.isEmpty — ранний выход при пустом массиве

2. 🟢 Ответ:
Array 1: [100, 3, 4, 5]
Array 2: [100, 3, 4, 5]
Почему? Разберём по шагам:
1️⃣ array1 после remove(at: 0) содержит [Item(2), Item(3), Item(4), Item(5)]
2️⃣ var array2 = array1 — массив копируется (Array — value type, работает copy-on-write). НО! Внутри массива лежат ссылки на объекты класса Item. Копируются именно ссылки, а не сами объекты.
3️⃣ array2[0].id = 100 — мы НЕ меняем сам массив (не вставляем и не удаляем элемент). Мы меняем свойство объекта, на который ссылается элемент.
Поэтому изменение через array2 видно и в array1.
💡 Помним, что класс — это reference type (ссылочный тип). Когда ты копируешь массив объектов класса, ты копируешь «указатели», а не сами объекты. Если бы Item был struct, то array1 и array2 были бы полностью независимы и вывод был бы разным:
Array 1: [2, 3, 4, 5]
Array 2: [100, 3, 4, 5]

3. UIResponder — ключевой класс в responder chain
UIWindow наследуется от UIView — и это часто не так очевидно. UIWindow — это не что-то абстрактное, а самая обычная вьюха, просто с особой ролью. UIWindow должен уметь всё то же, что и UIView: рисовать себя, участвовать в layout, обрабатывать касания. Но UIWindow добавляет поверх этого несколько уникальных обязанностей:
— это корневой контейнер для всего UI приложения, все вьюхи живут внутри окна
— он управляет z-ordering — какие окна выше, какие ниже (например, алерт поверх основного контента)
UIView → UIControl — все интерактивные элементы (кнопки, текстовые поля, свитчи) наследуются от UIControl, который добавляет механизм target-action.
UIScrollView — родитель для UITableView и UICollectionView. Поэтому таблицы и коллекции умеют скроллиться «из коробки».
NSManagedObject — базовый класс для всех сущностей Core Data, модели наследуют именно его.
CALayer — каждая UIView содержит внутри layer, он не обрабатывает события пользователя, предназначен только для визуального отображения.

Какие еще задачки посмотрим?
3322
мы зумеры и это круто

сегодня вышла в почтовый сервис дочки Сбера и ездила на оформление в офис😁 кстати сливов я не боюсь, оффер все равно мне не очень нравится и иду больше ради интереса

фан факт: считаю этот собес одним из самых провальных, проходила с дичайшего похмелья и подготовка состояла из зайти домой и налить стакан воды😁

целый чай слушала про пожарную безопасность, насладилась атмосферой микроволновок и бесконечных кружек кофе с конфетами
обратно просто убегала, сверкая пятками, от рекрутера с криками «у меня удаленка в договоре»

еще с первой офисной работы не могу переносить душные офисы. что кто-то следит во сколько ты пришел, и не ушел ли раньше 17:30. что нужно поддерживать непонятные смол токи с коллегами и обедать строго по расписанию

в отличии от наших родителей, нам повезло иметь возможность выбирать себя в корпоративном мире ❤️

цените это и никому не позволяйте ограничивать свою свободу в каждом дне.
иначе зачем вообще в айти хотели? чтобы спать до 12 и в курсочик тыкать
533🥰11111