У тебя на устройстве одно ядро. Вопрос, что будет?
Anonymous Quiz
24%
Будет parallelism
50%
Будет concurrency
15%
Будет parallelism и concurrency
10%
Ничего не будет
🔥2🤯2
#miniapp #miniapp_обновление
Привет. Хочу поделиться тремя новыми фичами по улучшению поиска работы, которые ждут тебя на проде мини апы.
Обновление: Управление вакансиями
---
1. Отклики. Нашёл подходящую вакансию - отправляй отклик прямо из приложения.
Одно нажатие, и ты уже видишь куда откликался. Все вакансии с откликами собраны в отдельной вкладке - удобно следить за статусом и не терять из виду.
2. Заметки. Добавляй заметки к любой вакансии. Записал, почему понравилась. Отметил вопросы для собеседования.
Заметка привязана к вакансии и всегда под рукой - не нужно держать в голове или искать в мессенджерах.
3. Избранное. Сохраняй вакансии, к которым хочешь вернуться позже. Интересное предложение попалось в метро - добавил в избранное, изучишь вечером.
Сравниваешь несколько офферов - собрал в одном месте. Закладка ставится и снимается одним тапом, без лишних шагов.
Если есть какие-то идеи или предложения, всегда готов выслушать и реализовать, чтобы приложение было еще удобнее и полезенне!🙏
Привет. Хочу поделиться тремя новыми фичами по улучшению поиска работы, которые ждут тебя на проде мини апы.
Обновление: Управление вакансиями
---
1. Отклики. Нашёл подходящую вакансию - отправляй отклик прямо из приложения.
Одно нажатие, и ты уже видишь куда откликался. Все вакансии с откликами собраны в отдельной вкладке - удобно следить за статусом и не терять из виду.
2. Заметки. Добавляй заметки к любой вакансии. Записал, почему понравилась. Отметил вопросы для собеседования.
Заметка привязана к вакансии и всегда под рукой - не нужно держать в голове или искать в мессенджерах.
3. Избранное. Сохраняй вакансии, к которым хочешь вернуться позже. Интересное предложение попалось в метро - добавил в избранное, изучишь вечером.
Сравниваешь несколько офферов - собрал в одном месте. Закладка ставится и снимается одним тапом, без лишних шагов.
Если есть какие-то идеи или предложения, всегда готов выслушать и реализовать, чтобы приложение было еще удобнее и полезенне!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
Давай проверим твою интуицию и знание того, как работают target очереди в GCD. Посмотрите на этот небольшой фрагмент кода:
Здесь у нас есть имитация базы данных и сетевого слоя: networkQueue перенаправляет свои задачи в databaseQueue для синхронизации, а внутри мы имитируем задержку сети.
Внимательно изучи код. Как думаешь, что будет выведено в консоль при его запуске?
let databaseQueue = DispatchQueue(label: "com.app.db")
let networkQueue = DispatchQueue(label: "com.app.network", target: databaseQueue)
databaseQueue.async {
print("Start fetching...")
// Имитация сложной сетевой работы
networkQueue.sync {
Thread.sleep(forTimeInterval: 1)
print("Data received: 123")
}
print("Fetching finished")
}
Здесь у нас есть имитация базы данных и сетевого слоя: networkQueue перенаправляет свои задачи в databaseQueue для синхронизации, а внутри мы имитируем задержку сети.
Внимательно изучи код. Как думаешь, что будет выведено в консоль при его запуске?
❤2👍2🔥2
SwiftUI изнутри: attribute graph, diffing и etc
Наткнулся на очень хорошее и грамотное объяснение того, как SwiftUI работает из-под капота. Да Apple скрывает устройство, но при помощи реверс инжинеринга и собирания по крупицам можно изучить.
Советовал бы всем посмотреть, кто:
• A - хочет углубиться в понимание работы с SwiftUI
• B - хочет подготовиться к собеседованию
По моим наблюдениям*, на собеседованиях не часто встретишь верхнеуровневое понимание от кандидата Middle и Senior и выше.
Поэтому это та Ахиллесова пята за которую стоит цепляться и демонстрировать свои знания и набирать оценку себе, тем самым забирая у тех, кто не смог ответить или не знал.
Для повседневной работы - это самособой собой актуально на все 146%, да с макросом @Observable по-меньше, но всё-таки если стоит цель прокачаться технически - однозначно!
Если после видеоразбора захочется углубиться, то в ноушене на тему AttributeGraph'a всё уже есть: как его дебажить, что там внутри и примеры код! Однозначно советую.
А ты знал про существование AttributeGraph? Имеешь представление как устроена работа SwiftUI изнутри?
• Поставь 👍 , если что-то слышал
• Поставь🔥 , если имеешь представление
• Поставь🩷 , если собаку съел на этом всём
Посмотрим у кого какой уровень, только чествно, сугубо для статистики! 🙂
Наткнулся на очень хорошее и грамотное объяснение того, как SwiftUI работает из-под капота. Да Apple скрывает устройство, но при помощи реверс инжинеринга и собирания по крупицам можно изучить.
Советовал бы всем посмотреть, кто:
• A - хочет углубиться в понимание работы с SwiftUI
• B - хочет подготовиться к собеседованию
По моим наблюдениям*, на собеседованиях не часто встретишь верхнеуровневое понимание от кандидата Middle и Senior и выше.
Поэтому это та Ахиллесова пята за которую стоит цепляться и демонстрировать свои знания и набирать оценку себе, тем самым забирая у тех, кто не смог ответить или не знал.
Для повседневной работы - это самособой собой актуально на все 146%, да с макросом @Observable по-меньше, но всё-таки если стоит цель прокачаться технически - однозначно!
Если после видеоразбора захочется углубиться, то в ноушене на тему AttributeGraph'a всё уже есть: как его дебажить, что там внутри и примеры код! Однозначно советую.
А ты знал про существование AttributeGraph? Имеешь представление как устроена работа SwiftUI изнутри?
• Поставь 👍 , если что-то слышал
• Поставь
• Поставь
Посмотрим у кого какой уровень, только чествно, сугубо для статистики! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
SwiftUI Under The Hood: What's Really Happening When You iOS Updates
Most SwiftUI developers have no idea what actually happens after they write @State. SwiftUI feels like magic — change a variable, the UI updates. But how? What's actually running under the hood? And more importantly, what hidden mistakes are silently killing…
❤10🔥6👍3
Forwarded from Рекрутинг, котики и апокалипсис (Кира Кузьменко)
LinkedIn верификация работает с российским загранпаспортом. Я только что прошла.
Спасибо Лёше Ряховскому, который мне про это написал. У меня заняло 10 минут буквально.
Что нужно:
Биометрический загранпаспорт РФ (тот, что с чипом — на обложке есть специальная метка). Обычный не подойдёт.
Как это работает:
1. Нажимаете в Linkedin на галку верификации в профиле, он выдаст вам QR-код, который нужно открыть в мобильном приложении (ну вот так всё устроено, да)
2. Выбираете страну — ту, где вы сейчас находитесь. Не обращайте внимания, что там написано «страна, выдавшая документы» — просто выбирайте, где вы живёте.
3. Дальше сканируете камерой телефона первую страницу своего загранпаспорта — ту, где фото.
4. Потом самое весёлое: нужно приложить телефон к паспорту и поелозить по нему, чтобы он считал NFC-чип. У меня получилось с третьего раза. Пришлось перевернуть телефон и сканировать задней частью. Не сдавайтесь, если не сработает сразу.
5. Следующий шаг — подтверждение лица. Короткое видео в режиме реального времени, попросит повертеть головой вправо-влево. У меня тоже не с первого раза получилось — нужно хорошее освещение. Становитесь лицом к окну или лампе.
6. После этого LinkedIn одобрил верификацию мгновенно. Галочка появилась в профиле сразу.
И да, нужно согласиться на передачу биометрических данных. Я согласилась.
Зачем вообще это делать?
Верифицированный профиль — хороший сигнал рекрутеру о том, что человек реальный, аккаунт не фейковый, кандидат серьёзно относится к своему присутствию на платформе. Когда у рекрутера 2000 откликов на вакансию, такой сигнал может влиять на принятие решения.
Но есть ещё одна мысль, даже более важная.
Смотрите, логика соцсетей очень простая: за использование новых фич они дают плюшки пользователям, например улучшают ранжирование профиля в поисковой выдаче. Все новые фичи Linkedin типа звёзд, скиллов и прочее — всегда влияли на ранжирование. Это же мне подтверждал продакт менеджер Linkedin.
Я не могу это утверждать наверняка, но у меня есть гипотеза, что верифицированные профили LinkedIn будет лучше ранжировать в поиске и рекомендациях. Что важно для вас, если вы ищете работу или если вы прокачиваете свой проф бренд в этой соц. сети.
Если у вас биометрический загран — потратьте 10 минут.
Пишите в комменты — с какой страной и паспортом пробовали? Получилось или нет. Давайте разбираться, точно ли для всех универсально работает.
Спасибо Лёше Ряховскому, который мне про это написал. У меня заняло 10 минут буквально.
Что нужно:
Биометрический загранпаспорт РФ (тот, что с чипом — на обложке есть специальная метка). Обычный не подойдёт.
Как это работает:
1. Нажимаете в Linkedin на галку верификации в профиле, он выдаст вам QR-код, который нужно открыть в мобильном приложении (ну вот так всё устроено, да)
2. Выбираете страну — ту, где вы сейчас находитесь. Не обращайте внимания, что там написано «страна, выдавшая документы» — просто выбирайте, где вы живёте.
3. Дальше сканируете камерой телефона первую страницу своего загранпаспорта — ту, где фото.
4. Потом самое весёлое: нужно приложить телефон к паспорту и поелозить по нему, чтобы он считал NFC-чип. У меня получилось с третьего раза. Пришлось перевернуть телефон и сканировать задней частью. Не сдавайтесь, если не сработает сразу.
5. Следующий шаг — подтверждение лица. Короткое видео в режиме реального времени, попросит повертеть головой вправо-влево. У меня тоже не с первого раза получилось — нужно хорошее освещение. Становитесь лицом к окну или лампе.
6. После этого LinkedIn одобрил верификацию мгновенно. Галочка появилась в профиле сразу.
И да, нужно согласиться на передачу биометрических данных. Я согласилась.
Зачем вообще это делать?
Верифицированный профиль — хороший сигнал рекрутеру о том, что человек реальный, аккаунт не фейковый, кандидат серьёзно относится к своему присутствию на платформе. Когда у рекрутера 2000 откликов на вакансию, такой сигнал может влиять на принятие решения.
Но есть ещё одна мысль, даже более важная.
Смотрите, логика соцсетей очень простая: за использование новых фич они дают плюшки пользователям, например улучшают ранжирование профиля в поисковой выдаче. Все новые фичи Linkedin типа звёзд, скиллов и прочее — всегда влияли на ранжирование. Это же мне подтверждал продакт менеджер Linkedin.
Я не могу это утверждать наверняка, но у меня есть гипотеза, что верифицированные профили LinkedIn будет лучше ранжировать в поиске и рекомендациях. Что важно для вас, если вы ищете работу или если вы прокачиваете свой проф бренд в этой соц. сети.
Если у вас биометрический загран — потратьте 10 минут.
Пишите в комменты — с какой страной и паспортом пробовали? Получилось или нет. Давайте разбираться, точно ли для всех универсально работает.
❤8🔥6👍5
Вышел Swift 6.3, что же там внутри?
Два дня назад Apple выкатили Swift 6.3. Найти блог пост можешь как-обычно на swift.org. Но для тех, кому лень все читать, вот основные моменты:
1. @c - Swift функции теперь видны из C:
Раньше, чтобы дёрнуть Swift из C / C++, приходилось городить bridging обёртки. Теперь вешаешь @c на функцию - и компилятор сам генерит декларацию в C-хедере:
В сгенерированном хедере появится:
Можно задать кастомное имя через @c(MyLib_callFromC). А в связке с @implementation - наоборот, реализовать существующую C-функцию на Swift. Компилятор проверит, что сигнатуры совпадают.
Ты можешь спросить, а зачем тебе это? Если работаешь с C/C++ библиотеками или Embedded - это убирает целый слой boilerplate.
2. Module selectors - ModuleA::getValue()
Импортируешь два модуля, а в обоих есть getValue(). Раньше было больновато, но теперь можно разрулить через :::
Работает и для стандартной библиотеки: Swift::Task { ... } - когда у тебя в проекте есть свой Task и нужно явно указать на системный.
Вроде мелочь, а на больших проектах может быть приятно.
3. Контроль оптимизаций для авторов библиотек
Три новых атрибута:
• @specialize - предоставляешь предспециализированные реализации дженерик функций для конкретных типов.
• @inline(always) - гарантирует инлайнинг вызова. Без "может быть". Но используй осторожно: размер бинарника подрастёт.
• @export(implementation) - открывает реализацию функции из ABI-stable библиотеки для клиентов. Больше возможностей для оптимизаций на стороне вызывающего кода.
Если ты не автор публичной библиотеки - пока просто знай, что такое есть. Если автор - то можешь изучить подробнее, пригодится.
4. Swift Testing: предупреждения, отмена тестов, картинки
Issue.record("Что-то подозрительное", severity: .warning) - записывает проблему как предупреждение, но тест не падает. Удобно для нестабильных вещей, которые не хочешь игнорировать, но и не хочешь ломать пайплайн.
try Test.cancel() - отмена теста прямо в процессе выполнения. Можно скипнуть конкретный аргумент в параметризованном тесте или остановиться по условию.
Image attachments - ты прикладываешь картинки к тесту на Apple и Windows платформах. Через кросс-импорт с UIKit.
5. Swift Build - единый билд движок, превью
Swift Package Manager получил превью интеграции с Swift Build. В чём суть: один билд движок на всех платформах вместо зоопарка. Пока-что это в превью, но уже можно тестировать на своих пакетах.
Также: пребилженный swift-syntax для макро библиотек, swift package show traits для просмотра трейтов пакета.
6. Android SDK - официально
Это, пожалуй, самая неожиданная штука. Swift 6.3 включает первый официальный SDK для Android. Можно писать нативный Android код на Swift, собирать пакеты под Android, интегрировать Swift в Kotlin / Java-приложения через Swift Java.
Пока рано говорить, что это перевернёт кроссплатформу иKMM KMP стоит переживать . Но сам факт, что Apple выпускает официальный Android SDK - внушительный и дающий надежды сигнал.
Что если swift хочет быть языком не только для яблочных платформ? Поживём - увидим.
7. Embedded Swift - подтянули
Улучшили C-интероп для Embedded, допилили дебаг, продвинулись в linkage model. Если ты работаешь с железом - отдельный блог пост от Apple разбирает детали: Embedded Swift Improvements.
8. DocC - три экспериментальных фичи
Markdown-выгрузка документации: --enable-experimental-markdown-output. Статический HTML внутри <noscript> для SEO и скринридеров. Аннотации для блоков кода: nocopy, highlight, showLineNumbers, wrap.
Если ты ведёшь документацию через DocC - поиграйся. Особенно highlight по строкам - удобно для туториалов.
—-
А ты что-то ждал или нашел для себя приятный сюрприз?😜
Два дня назад Apple выкатили Swift 6.3. Найти блог пост можешь как-обычно на swift.org. Но для тех, кому лень все читать, вот основные моменты:
1. @c - Swift функции теперь видны из C:
Раньше, чтобы дёрнуть Swift из C / C++, приходилось городить bridging обёртки. Теперь вешаешь @c на функцию - и компилятор сам генерит декларацию в C-хедере:
@c func callFromC() { ... }
В сгенерированном хедере появится:
void callFromC(void);
Можно задать кастомное имя через @c(MyLib_callFromC). А в связке с @implementation - наоборот, реализовать существующую C-функцию на Swift. Компилятор проверит, что сигнатуры совпадают.
Ты можешь спросить, а зачем тебе это? Если работаешь с C/C++ библиотеками или Embedded - это убирает целый слой boilerplate.
2. Module selectors - ModuleA::getValue()
Импортируешь два модуля, а в обоих есть getValue(). Раньше было больновато, но теперь можно разрулить через :::
import ModuleA
import ModuleB
let x = ModuleA::getValue()
let y = ModuleB::getValue()
Работает и для стандартной библиотеки: Swift::Task { ... } - когда у тебя в проекте есть свой Task и нужно явно указать на системный.
Вроде мелочь, а на больших проектах может быть приятно.
3. Контроль оптимизаций для авторов библиотек
Три новых атрибута:
• @specialize - предоставляешь предспециализированные реализации дженерик функций для конкретных типов.
• @inline(always) - гарантирует инлайнинг вызова. Без "может быть". Но используй осторожно: размер бинарника подрастёт.
• @export(implementation) - открывает реализацию функции из ABI-stable библиотеки для клиентов. Больше возможностей для оптимизаций на стороне вызывающего кода.
Если ты не автор публичной библиотеки - пока просто знай, что такое есть. Если автор - то можешь изучить подробнее, пригодится.
4. Swift Testing: предупреждения, отмена тестов, картинки
Issue.record("Что-то подозрительное", severity: .warning) - записывает проблему как предупреждение, но тест не падает. Удобно для нестабильных вещей, которые не хочешь игнорировать, но и не хочешь ломать пайплайн.
try Test.cancel() - отмена теста прямо в процессе выполнения. Можно скипнуть конкретный аргумент в параметризованном тесте или остановиться по условию.
Image attachments - ты прикладываешь картинки к тесту на Apple и Windows платформах. Через кросс-импорт с UIKit.
5. Swift Build - единый билд движок, превью
Swift Package Manager получил превью интеграции с Swift Build. В чём суть: один билд движок на всех платформах вместо зоопарка. Пока-что это в превью, но уже можно тестировать на своих пакетах.
Также: пребилженный swift-syntax для макро библиотек, swift package show traits для просмотра трейтов пакета.
6. Android SDK - официально
Это, пожалуй, самая неожиданная штука. Swift 6.3 включает первый официальный SDK для Android. Можно писать нативный Android код на Swift, собирать пакеты под Android, интегрировать Swift в Kotlin / Java-приложения через Swift Java.
Пока рано говорить, что это перевернёт кроссплатформу и
Что если swift хочет быть языком не только для яблочных платформ? Поживём - увидим.
7. Embedded Swift - подтянули
Улучшили C-интероп для Embedded, допилили дебаг, продвинулись в linkage model. Если ты работаешь с железом - отдельный блог пост от Apple разбирает детали: Embedded Swift Improvements.
8. DocC - три экспериментальных фичи
Markdown-выгрузка документации: --enable-experimental-markdown-output. Статический HTML внутри <noscript> для SEO и скринридеров. Аннотации для блоков кода: nocopy, highlight, showLineNumbers, wrap.
Если ты ведёшь документацию через DocC - поиграйся. Особенно highlight по строкам - удобно для туториалов.
—-
А ты что-то ждал или нашел для себя приятный сюрприз?
Please open Telegram to view this post
VIEW IN TELEGRAM
Swift.org
Swift 6.3 Released
Swift is designed to be the language you reach for at every layer of the software stack. Whether you’re building embedded firmware, internet-scale services, or full-featured mobile apps, Swift delivers strong safety guarantees, performance control when you…
👍7❤6
Forwarded from iOS Roadmap - Новости, анонсы и все события
PvP Дуэли в мини приложении
Привет, в приложении уже доступен для пользования функционал дуэлей. Он работает асинхронно, и вот как это устроенно:
• Создаёшь дуэль - нажимаешь на кнопку "Быстрый матч"
• Отвечаешь на 8 вопросов - это микс тем, сложность по нарастающей: лёгкие -> средние -> сложные -> последний средний
• Ждёшь когда ответит соперник, так же 8 вопросов
После того как ты и твой соперник прошли дуэль, вы получаете результаты. Эти результаты будут отмечаться в статистике в шапке экрана дуэлей и в футере как прошедший матч.
Кто побеждает?🤔
1. Больше правильных ответов -> победа
2. Одинаковый счёт? Побеждает тот, кто быстрее отвечал на правильные вопросы: время на ошибки не считается - нельзя наугад тыкать быстро
3. Разница во времени ≤ 3 секунды? Ничья
Новый функционал позволит тебе ещё качественне и с интересом подойти к вопросу подготовки к собеседованию.
Даже если ты не готовишься к собеседованию, узнать кто же лучше знает вопрос и iOS разработку.
Если остались вопросы или предложения, можно отписать в комментарии или в лс, встретимся на дуэли!🎮
Ссылка на мини приложение
Привет, в приложении уже доступен для пользования функционал дуэлей. Он работает асинхронно, и вот как это устроенно:
• Создаёшь дуэль - нажимаешь на кнопку "Быстрый матч"
• Отвечаешь на 8 вопросов - это микс тем, сложность по нарастающей: лёгкие -> средние -> сложные -> последний средний
• Ждёшь когда ответит соперник, так же 8 вопросов
После того как ты и твой соперник прошли дуэль, вы получаете результаты. Эти результаты будут отмечаться в статистике в шапке экрана дуэлей и в футере как прошедший матч.
Кто побеждает?
1. Больше правильных ответов -> победа
2. Одинаковый счёт? Побеждает тот, кто быстрее отвечал на правильные вопросы: время на ошибки не считается - нельзя наугад тыкать быстро
3. Разница во времени ≤ 3 секунды? Ничья
Новый функционал позволит тебе ещё качественне и с интересом подойти к вопросу подготовки к собеседованию.
Даже если ты не готовишься к собеседованию, узнать кто же лучше знает вопрос и iOS разработку.
Если остались вопросы или предложения, можно отписать в комментарии или в лс, встретимся на дуэли!
Ссылка на мини приложение
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2❤1