iOS IQ - апдейт по прогрессу базы и бонус для новых подписчиков
Безусловно, практика в нашей работе должна быть на первом месте (и об этом я пишу в канале буквально с самого первого поста).
Я постоянно стараюсь облегчить жизнь не только благодаря фичам с оптимизацией на работе, но и делаю полезные утилиты: Lines (если у вас ещё есть код на Objective-C), ReviewBuddy, iOS IQ (кстати, уже в разработке новые интересные темы) и целый ряд других приложений.
Многое из моих реальных задач связано с шифрованием, а также работой с большим объёмом данных.
Поэтому в базе есть не только непростые вопросы, но и все решённые задачи с CodeRun (несколько десятков от прошлых к сложным), множество примеров непростых анимаций (включая Metal), а также разбор реальных ситуаций, которые могут возникать в нашей работе.
При этом iOS IQ постоянно наполняется вопросами на самые разные темы.
✅ Присоединяйтесь, всю неделю будет действовать вводное предложение: 💰 в бусти и ⭐️ в телеграм.
Ах да, ещё недавно был редизайн (так что можно заглянуть хотя бы ради нового оформления).
😃 iOS Dev
Безусловно, практика в нашей работе должна быть на первом месте (и об этом я пишу в канале буквально с самого первого поста).
Я постоянно стараюсь облегчить жизнь не только благодаря фичам с оптимизацией на работе, но и делаю полезные утилиты: Lines (если у вас ещё есть код на Objective-C), ReviewBuddy, iOS IQ (кстати, уже в разработке новые интересные темы) и целый ряд других приложений.
Многое из моих реальных задач связано с шифрованием, а также работой с большим объёмом данных.
Поэтому в базе есть не только непростые вопросы, но и все решённые задачи с CodeRun (несколько десятков от прошлых к сложным), множество примеров непростых анимаций (включая Metal), а также разбор реальных ситуаций, которые могут возникать в нашей работе.
При этом iOS IQ постоянно наполняется вопросами на самые разные темы.
➡️ Вопросы на чтение кода➡️ Многопоточность➡️ DispatchQueue: практические вопросы (две части)➡️ Swift Concurrency➡️ Память: ARC, side table, флаги, утечки➡️ UIKit (теория + практика, две части)➡️ Компилятор Swift➡️ Основы: URLSession, UICollectionView и т.д.)
Ах да, ещё недавно был редизайн (так что можно заглянуть хотя бы ради нового оформления).
Please open Telegram to view this post
VIEW IN TELEGRAM
9 14🤩7🔥5👍4🎉2🏆2❤🔥1💯1🎅1
Коллекционер и аукцион
Попробуем новый формат - с вас самое короткое решение задачи, с меня подарок в телеграм (сегодня это будет white hat 🎩).
Сама задача:
Решения присылайте в комментарии (внимание - вы можете решать олдскульно или пользоваться любыми средствами от Grok до Cursor).
Итоги в 16:00 по мск.
😃 iOS Dev
Попробуем новый формат - с вас самое короткое решение задачи, с меня подарок в телеграм (сегодня это будет white hat 🎩).
Сама задача:
Вам дан массив цен картиныprices
, гдеprices[i]
это цена картины в i-день.
Вы хотите добиться максимальной прибыли для коллекционера, выбрав оптимальный день для покупки и другой день для последующей продажи.
Верните максимальную прибыль, которую вы можете получить от перепродажи. Если заработать не получится, нужно вернуть 0.
Пример 1
Input: prices = [12,1,4,3,6,2]
Output: 5
Ответ здесь 5, так как мы можем купить картину на 2 день и продать её на 5 день, получив прибыль 5 = 6 - 1
Пример 2
Input: prices = [12,11,10,9,8,7]
Output: 0
Здесь ответ 0, так как мы не можем получить прибыль, купив картину в любой из дней.
Присылайте в комментарии ваши варианты решения задачи на Swift, но помните, что решение задачи должно быть максимально коротким (не обяательно самым быстрым).
[UPD 12:42] - тест-кейсы должны быть пройдены все.
Подсчёт символов решения будет внутри этой функции, включая пробелы (учтите при отправке ваших решений):
func maxProfit(_ p: [Int]) -> Int {
}
Решения присылайте в комментарии (внимание - вы можете решать олдскульно или пользоваться любыми средствами от Grok до Cursor).
Итоги в 16:00 по мск.
Please open Telegram to view this post
VIEW IN TELEGRAM
20⚡12👏5👍4💯3👌2🏆2 2✍1🔥1😎1
iOS Dev
Коллекционер и аукцион Попробуем новый формат - с вас самое короткое решение задачи, с меня подарок в телеграм (сегодня это будет white hat 🎩). Сама задача: Вам дан массив цен картины prices, где prices[i] это цена картины в i-день. Вы хотите добиться…
Ну что, время итогов алгоритмического конкурса
Я не ожидал столько вариантов решения, но очень рад, что вы решили поучаствовать и проверить себя. Эта задача — интерпретация одной из популярных литкодовских (вот тут можно почитать условие).
И хотя было несколько достойных кандидатов, я решил выбрать двоих победителей среди всех присланных.
🏆 Решение Дмитрия - 55 символов.
🏆 Решение Вовы - 54 символа.
Победители уже получили 🎩 white (1) hat (2), надеюсь, отсылка к цвету очевидна.
И, хотя вот эта версия от Игоря не прошла все кейсы, но бонус всё-таки улетел (до 12:42 была лазейка в условиях задачи).
🚀 Поддержите бустом канал, если вы хотели бы видеть больше таких задач.
В следующий раз можем выбрать что-то посложнее.
😃 iOS Dev
Я не ожидал столько вариантов решения, но очень рад, что вы решили поучаствовать и проверить себя. Эта задача — интерпретация одной из популярных литкодовских (вот тут можно почитать условие).
И хотя было несколько достойных кандидатов, я решил выбрать двоих победителей среди всех присланных.
🏆 Решение Дмитрия - 55 символов.
🏆 Решение Вовы - 54 символа.
Победители уже получили 🎩 white (1) hat (2), надеюсь, отсылка к цвету очевидна.
И, хотя вот эта версия от Игоря не прошла все кейсы, но бонус всё-таки улетел (до 12:42 была лазейка в условиях задачи).
В следующий раз можем выбрать что-то посложнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
26🏆11 8🔥5👏3🎉3👍2⚡1🤩1💯1
SharingGRDB — альтернатива для SwiftData от авторов Point-Free
По факту это слияние либы Sharing и GRDB.swift (от Гвендаля Руэ), в котором есть целый набор инструментов, которые могут заменить многие сценарии использования SwiftData.
SharingGRDB даёт прямой доступ к базовому SQLite (включая джойны, aggregate-запросы и многое другое).
📖 Документация и примеры запросов.
Примеры проектов:
1️⃣ Case Studies - примеры, показывающие фичи либы.
2️⃣ SyncUps - по факту ребилд приложения Scrumdinger от Apple.
3️⃣ Reminders - приложение с напоминаниями, списками и тегами.
🔗 Ссылка на репозиторий.
😃 iOS Dev
По факту это слияние либы Sharing и GRDB.swift (от Гвендаля Руэ), в котором есть целый набор инструментов, которые могут заменить многие сценарии использования SwiftData.
SharingGRDB даёт прямой доступ к базовому SQLite (включая джойны, aggregate-запросы и многое другое).
📖 Документация и примеры запросов.
Примеры проектов:
1️⃣ Case Studies - примеры, показывающие фичи либы.
2️⃣ SyncUps - по факту ребилд приложения Scrumdinger от Apple.
3️⃣ Reminders - приложение с напоминаниями, списками и тегами.
Please open Telegram to view this post
VIEW IN TELEGRAM
9 19👍9🔥6💯4✍1👏1🎉1👌1
Гайд по работе со SwiftUI Alert + примеры
Работа с алертами в SwiftUI немного отличается от привычного способа в UIKit (но это не означает, что этот процесс сложнее).
📖 В несложном туториале разобраны примеры показа обычных алертов, обработки действий и добавления локализации.
😃 iOS Dev
Работа с алертами в SwiftUI немного отличается от привычного способа в UIKit (но это не означает, что этот процесс сложнее).
📖 В несложном туториале разобраны примеры показа обычных алертов, обработки действий и добавления локализации.
Please open Telegram to view this post
VIEW IN TELEGRAM
8 18👍9✍2🔥2👏2💯2🎄1
Где Swift Assist 😡
Вышедший буквально вчера отчёт от The Information раскрыл много деталей касаемо Apple Intelligence в целом (и затронул множество деталей разработки внутри компании).
Оказывается, что практически ничего из того, что было показано на прошлом WWDC, не было реализовано.
Например, фича, когда Siri получала доступ почте пользователя и отображение перелёта в режиме реального времени - была фактически фиктивной.
🎆 Демонстрация стала неожиданностью даже для разработчиков Siri, которые никогда не видели рабочих версий этих функций.
Ах да, вот забавный сайт с состоянием доступности Swift Assist.
Получается, ждём WWDC25, где шутка перестанет быть шуткой?
😃 iOS Dev
Вышедший буквально вчера отчёт от The Information раскрыл много деталей касаемо Apple Intelligence в целом (и затронул множество деталей разработки внутри компании).
Оказывается, что практически ничего из того, что было показано на прошлом WWDC, не было реализовано.
Например, фича, когда Siri получала доступ почте пользователя и отображение перелёта в режиме реального времени - была фактически фиктивной.
Ах да, вот забавный сайт с состоянием доступности Swift Assist.
Получается, ждём WWDC25, где шутка перестанет быть шуткой?
Please open Telegram to view this post
VIEW IN TELEGRAM
8⚡15 8💯5🔥4👍3🤯3👏2✍1❤🔥1🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Futuristic movement - шейдер имитации движения в космосе
Иногда я нахожу интересные алгоритмы или подходы к необычным вещам. Конечно, повседневными их не назовёшь, но ряд любопытных моментов всегда можно прокачать.
🧑💻 В iOS IQ используется один из стилистически связанных warp-эффектов (статья есть и в открытом доступе), а в этот раз делюсь реализацией для движения с искривлением в пространстве.
Вы могли видеть разные вариации использования во многих фильмах 📺.
Впрочем, можете и сами попробовать написать на Swift (видос на шаттерстоке за 200 евро и неплохой способ на shadertoy).
🛠 Код на SwiftUI + Metal уже доступен для читателей:💰 в бусти и ⭐️ в телеграм.
😃 iOS Dev
Иногда я нахожу интересные алгоритмы или подходы к необычным вещам. Конечно, повседневными их не назовёшь, но ряд любопытных моментов всегда можно прокачать.
Вы могли видеть разные вариации использования во многих фильмах 📺.
Впрочем, можете и сами попробовать написать на Swift (видос на шаттерстоке за 200 евро и неплохой способ на shadertoy).
🛠 Код на SwiftUI + Metal уже доступен для читателей:
Please open Telegram to view this post
VIEW IN TELEGRAM
11 14💯6👍5✍3🔥2❤🔥1⚡1☃1👏1🎄1
Основная функция приложения
В погоне за бизнесовыми метриками, прибылью и таргетом на постоянный рост иногда кажется, что команды, а иногда и целые компании упускают нить такого важной и понятной истории как основная фича.
В музыке - это прослушивание чёртовых песен или подкастов.
В такси - как доехать из точки А в точку Б.
В мессенджерах - разговор с друзьями или чтение каналов.
К сожалению, эта тенденция сейчас проецируется и накрывает веером целые секторы, области приложений.
Суперприложения?
Как быть с размером таких приложений, когда на старте иногда может литься несколько метров трафика? Когда стартовый экран представляет собой бесконечный шиммер (не всегда эффективный и часто написанный с ошибками проверки нагрузки и финиша анимации).
Я намеренно умалчиваю возможные проседания по производительности, да и длительность запросов к серверу иногда вызывает вопросы.
Время запуска всегда должно быть приоритетной метрикой. Но вместо того, чтобы закрывать это фичей (фичей ли) с вибрацией, как у Кинопоиска - может быть стоит подумать, как сократить нагрузку? Ну и ведь есть простые советы.
Даже телеграм с последними фичами (и вы ведь помните теглайн No ads - навсегда), в последнее время всё чаще проваливается в яму сложностей не только с экспоненциальным ростом базы пользователей, но и с производительностью.
В одном из последних обновлений была проблема со скруглениями аватаров, вечные сложности с прочтением сообщений и каунтеров (что является особенностью всех больших мессенджеров из-за потенциально большого количества сессией, особенности работы APNS, подтверждения прочтений). А ещё есть несвоевременная отправка по расписанию, пролаги в новой (но прибыльной фиче) с подарками и так далее.
Наша с вами цель — упрощать жизнь пользователей и использовать технологии во благо.
А не встраивать ещё одну рекламу, чтобы посмотреть рекламу.
Моя волна в яндекс.музыке - пример того, как комбинацию рекомендательных технологий и упрощение взаимодействия можно использовать во благо. Spotify к этому так и не пришёл.
Всегда должна быть возможность простого сценария.
😃 iOS Dev
В погоне за бизнесовыми метриками, прибылью и таргетом на постоянный рост иногда кажется, что команды, а иногда и целые компании упускают нить такого важной и понятной истории как основная фича.
В музыке - это прослушивание чёртовых песен или подкастов.
В такси - как доехать из точки А в точку Б.
В мессенджерах - разговор с друзьями или чтение каналов.
К сожалению, эта тенденция сейчас проецируется и накрывает веером целые секторы, области приложений.
Суперприложения?
Как быть с размером таких приложений, когда на старте иногда может литься несколько метров трафика? Когда стартовый экран представляет собой бесконечный шиммер (не всегда эффективный и часто написанный с ошибками проверки нагрузки и финиша анимации).
Я намеренно умалчиваю возможные проседания по производительности, да и длительность запросов к серверу иногда вызывает вопросы.
Время запуска всегда должно быть приоритетной метрикой. Но вместо того, чтобы закрывать это фичей (фичей ли) с вибрацией, как у Кинопоиска - может быть стоит подумать, как сократить нагрузку? Ну и ведь есть простые советы.
Даже телеграм с последними фичами (и вы ведь помните теглайн No ads - навсегда), в последнее время всё чаще проваливается в яму сложностей не только с экспоненциальным ростом базы пользователей, но и с производительностью.
В одном из последних обновлений была проблема со скруглениями аватаров, вечные сложности с прочтением сообщений и каунтеров (что является особенностью всех больших мессенджеров из-за потенциально большого количества сессией, особенности работы APNS, подтверждения прочтений). А ещё есть несвоевременная отправка по расписанию, пролаги в новой (но прибыльной фиче) с подарками и так далее.
Наша с вами цель — упрощать жизнь пользователей и использовать технологии во благо.
А не встраивать ещё одну рекламу, чтобы посмотреть рекламу.
Моя волна в яндекс.музыке - пример того, как комбинацию рекомендательных технологий и упрощение взаимодействия можно использовать во благо. Spotify к этому так и не пришёл.
Всегда должна быть возможность простого сценария.
Please open Telegram to view this post
VIEW IN TELEGRAM
36💯24 11❤🔥6👏3👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Приложение для тренировок для WatchOS с HealthKit + SwiftUI
Каждый, кто хоть раз пробовал делать приложение для часов, представляет, какие проблемы могут возникнуть даже на стадии соединения (не шутка).
Получасовые подключения и копирование символов, потеря аттача в рандомные моменты, ограничения по фичам и так далее.
В своё время в телеге даже был рекордный приз для мобил именно в контесте для Watch OS (вроде около $20 000 за первое место).
Об этом я знаю не просто так, часто пилю виджеты и standalone приложения + консультировал в своё время небольшой стартап при реализации кастомного протокола для работы с часами.
Поэтому каждый пример завершённого (или доведённого до логической отсечки) приложения - это довольно ценная информация.
Например, для тренировок Strava сейчас едва ли не монополист (но может вы знаете и другие приложения).
В проекте ниже 0Itsuki0 делится своим опытом для трека воркаутов:
1️⃣ SwiftUI: простое приложение для тренировок с HealthKit (часть 1)
2️⃣ SwiftUI: чтение данных из HealthKit
3️⃣ SwiftUI: разделение тренировки на составляющие
🛠 Сам проект доступен на GitHub.
😃 iOS Dev
Каждый, кто хоть раз пробовал делать приложение для часов, представляет, какие проблемы могут возникнуть даже на стадии соединения (не шутка).
Получасовые подключения и копирование символов, потеря аттача в рандомные моменты, ограничения по фичам и так далее.
В своё время в телеге даже был рекордный приз для мобил именно в контесте для Watch OS (вроде около $20 000 за первое место).
Об этом я знаю не просто так, часто пилю виджеты и standalone приложения + консультировал в своё время небольшой стартап при реализации кастомного протокола для работы с часами.
Поэтому каждый пример завершённого (или доведённого до логической отсечки) приложения - это довольно ценная информация.
Например, для тренировок Strava сейчас едва ли не монополист (но может вы знаете и другие приложения).
В проекте ниже 0Itsuki0 делится своим опытом для трека воркаутов:
1️⃣ SwiftUI: простое приложение для тренировок с HealthKit (часть 1)
2️⃣ SwiftUI: чтение данных из HealthKit
3️⃣ SwiftUI: разделение тренировки на составляющие
🛠 Сам проект доступен на GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍18 10🔥4❤🔥2✍1👏1🎉1💯1
Какой у вас формат работы?
Anonymous Poll
11%
Только офис
26%
Гибридный график (частично офис, частично удалёнка)
63%
Полная удалёнка
8✍9😎8☃6👍3 3🔥1👏1🎄1
Использование ключевого слова Swift defer в контексте async
ℹ️ Про
И несмотря на то, что изначально это не всегда кажется полезным, при написании современного Swift-кода использование defer может быть оправдано.
Например, когда есть несколько потенциальных точек выхода внутри наших функций и замыканий - и особенно при написании кода, в котором юзаем
📖 В этой статье разобрано несколько таких случаев (от соединения с базой данных до выполнения задач по загрузке инфы).
😃 iOS Dev
defer
(в том числе с примерами использования) в канале был пост ранее.И несмотря на то, что изначально это не всегда кажется полезным, при написании современного Swift-кода использование defer может быть оправдано.
Например, когда есть несколько потенциальных точек выхода внутри наших функций и замыканий - и особенно при написании кода, в котором юзаем
throws
или при использовании async/await
.📖 В этой статье разобрано несколько таких случаев (от соединения с базой данных до выполнения задач по загрузке инфы).
Please open Telegram to view this post
VIEW IN TELEGRAM
8 19👍7🔥6👏2💯2
Акторы в Swift - для чего они вообще нужны?
Актор — это ссылочный* тип, подобный классу, созданный для безопасного управления изменчивым состоянием в многопоточной среде.
Введенные в Swift 5.5, акторы помогают разработчикам писать потокобезопасный, и что не менее важно, предсказуемый код при работе с асинхронными задачами.
📖 В этом материале можно узнать, чем же они отличаются от классов, как (и когда) их использовать, а ещё можно посмотреть простую реализацию чат-сервера и другие примеры.
* Разбор value и reference type c подборкой вопросов есть тут:💰 Boosty • 💬 Telegram.
А в канале можно ещё раз освежить знания с помощью глоссария Swift Concurrency.
😃 iOS Dev
Актор — это ссылочный* тип, подобный классу, созданный для безопасного управления изменчивым состоянием в многопоточной среде.
Введенные в Swift 5.5, акторы помогают разработчикам писать потокобезопасный, и что не менее важно, предсказуемый код при работе с асинхронными задачами.
📖 В этом материале можно узнать, чем же они отличаются от классов, как (и когда) их использовать, а ещё можно посмотреть простую реализацию чат-сервера и другие примеры.
* Разбор value и reference type c подборкой вопросов есть тут:
А в канале можно ещё раз освежить знания с помощью глоссария Swift Concurrency.
Please open Telegram to view this post
VIEW IN TELEGRAM
10 15👍10✍4💯2❤🔥1🔥1👏1👌1🍓1
Доклады с конференции try! Swift Tokyo 2025
Буквально неделю назад завершилась одна из самых крупных конференций по iOS, и выступления уже доступны для просмотра.
📺 Understanding Render Loop to optimise SwiftUI
Можно узнать несколько деталей о том, как SwiftUI работает под капотом. Рассказывается про цикл рендеринга и влияние на производительность. Кстати, тут показаны и некоторые техники, которые могут помочь устранить лаги интерфейса.
📺 Special effects with SwiftUI Text
Как использовать протокол TextRenderer в SwiftUI для создания ряда эффектов, которые помогут оживить пользовательский интерфейс.
📺 Rendering beautiful text using MSDFs and Metal
Быстрая реализация интерфейса в реальном времени на бесконечном канвасе с использованием Metal.
📺 Raymarching Shaders with SwiftUI
Элегантное объединение синтаксиса SwiftUI с функциями raymarching для создания крутых шейдеров.
📺 SwiftSyntax: for good and evil
SwiftSyntax - это библиотека Apple, которая может использоваться для любых целей - от форматирования исходного кода (как в swift-format) до его генерации (как в Swift Macros). В этом докладе можно узнать несколько неочевидных деталей.
📺 Целиком все доклады можно посмотреть вот тут.
А вот тут есть список прошлых конференций:
😃 iOS Dev
Буквально неделю назад завершилась одна из самых крупных конференций по iOS, и выступления уже доступны для просмотра.
📺 Understanding Render Loop to optimise SwiftUI
Можно узнать несколько деталей о том, как SwiftUI работает под капотом. Рассказывается про цикл рендеринга и влияние на производительность. Кстати, тут показаны и некоторые техники, которые могут помочь устранить лаги интерфейса.
📺 Special effects with SwiftUI Text
Как использовать протокол TextRenderer в SwiftUI для создания ряда эффектов, которые помогут оживить пользовательский интерфейс.
📺 Rendering beautiful text using MSDFs and Metal
Быстрая реализация интерфейса в реальном времени на бесконечном канвасе с использованием Metal.
📺 Raymarching Shaders with SwiftUI
Элегантное объединение синтаксиса SwiftUI с функциями raymarching для создания крутых шейдеров.
📺 SwiftSyntax: for good and evil
SwiftSyntax - это библиотека Apple, которая может использоваться для любых целей - от форматирования исходного кода (как в swift-format) до его генерации (как в Swift Macros). В этом докладе можно узнать несколько неочевидных деталей.
А вот тут есть список прошлых конференций:
🔗 Подборка докладов с iOS Conf SG 2024
🔗 Подборка докладов с конференции Swift Craft
🔗 Доклады с конференции try! Swift Tokyo 2024
🔗 Подборка докладов с конференции Swift Connection 2024
🔗 iOS Conf SG 2025: подборка докладов
Please open Telegram to view this post
VIEW IN TELEGRAM
7 21👍17✍9🔥4☃1👏1🎉1🙏1💯1
Swift Play Experimental — новый проект от Apple
🛠В репе эпла появился новый интересный инструмент (который можно юзать и для изучения, и для тренировки, и для тестирования кода).
Прототип состоит из:
- Новый макрос
- Новая команда
- API Playgrounds для конкретных инструментов, позволяющий любому инструменту или IDE добавить поддержку поиска и запуска экземпляров
📖 Описание и примеры использования вот тут.
ℹ️ В настоящее время реализация считается экспериментальной и пока не рекомендована для широкого использования в продакшне, но автор все равно рекомендует попробовать.
😃 iOS Dev
🛠В репе эпла появился новый интересный инструмент (который можно юзать и для изучения, и для тренировки, и для тестирования кода).
Прототип состоит из:
- Новый макрос
#Playground
- с его помощью можно определять исполняемые блоки кода в любом Swift-файле.- Новая команда
swift play
- можно использовать для автоматического повторного запуска при любых изменениях исходного кода.- API Playgrounds для конкретных инструментов, позволяющий любому инструменту или IDE добавить поддержку поиска и запуска экземпляров
#Playground
(как и реализовано для swift play).📖 Описание и примеры использования вот тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
7 18👍9🔥5👏1🎉1💯1🤝1
Гонки данных в iOS: определение, причины возникновения и способы решения на практических примерах
В канале и закрытой базе данных я регулярно делюсь не только кейсами, которые могут возникать в разработке и их решениями.
Одна из самых популярных проблем — гонки данных, которые встречаются даже в популярных продуктах.
Они возникают, когда встречается несколько обращений к одной и той же области памяти, при условии, что по крайней мере один из этих доступов — запись.
Без правильной синхронизации это может привести к непредсказуемому поведению, сбоям приложения или невалидности данных.
В iOS IQ я добавил несколько типичных примеров, когда можно столкнуться с таким поведением и привёл варианты решения (не только для DispatchQueue, но и для Swift Concurrency с акторами).
А ещё можно увидеть полезную (и понятную) реализацию для работы с кэшем.
✅ Новый раздел в разборе полётов уже можно найти 💰 в бусти и ⭐️ прямо здесь.
📖 Кстати, в канале можно почитать и про Thread Sanitizer, и про то, для чего ещё нужны акторы.
😃 iOS Dev
В канале и закрытой базе данных я регулярно делюсь не только кейсами, которые могут возникать в разработке и их решениями.
Одна из самых популярных проблем — гонки данных, которые встречаются даже в популярных продуктах.
Они возникают, когда встречается несколько обращений к одной и той же области памяти, при условии, что по крайней мере один из этих доступов — запись.
Без правильной синхронизации это может привести к непредсказуемому поведению, сбоям приложения или невалидности данных.
В iOS IQ я добавил несколько типичных примеров, когда можно столкнуться с таким поведением и привёл варианты решения (не только для DispatchQueue, но и для Swift Concurrency с акторами).
А ещё можно увидеть полезную (и понятную) реализацию для работы с кэшем.
📖 Кстати, в канале можно почитать и про Thread Sanitizer, и про то, для чего ещё нужны акторы.
Please open Telegram to view this post
VIEW IN TELEGRAM
11 11👍7🔥5☃2✍1🎉1💯1🤝1🤗1
10 12👍6🤝5⚡2🔥2👏1🎉1💯1🍓1
Ближайшие дни я буду в отпуске, а по факту планирую курсировать по традиционному маршруту с некоторыми точками в районах Киото, Осаки, Нагои (и Токио), поэтому посты будут выходить немного реже.
Вообще, сегодня юбилей для Apple Watch Activity, и можно заработать ачивку. А если попасть в Apple Store с закрытыми кольцами активности, то можно получить лимитированный эксклюзивный физический значок от Apple. Любопытный факт, такое происходит впервые в истории (обычно они были только в цифровом виде).
Так вот, я подсуетился (в прямом и переносном смысле), чтобы успеть получить один из них, и как только будет проще с логистикой при доставке, мы разыграем его в канале.
😎 Кстати, если будет чуть больше бустов, смогу закинуть пару интересных сторис).
Для меня это не первая поездка в Японию и многие туристические поинты уже достигнуты, но возможно вы также были тут и поделитесь какими-то локациями. С радостью бы почитал в комментариях ваши рекомендации, куда непременно стоит съездить.
P.S. В офисе Кодзимы уже был (так что тут на точку поменьше)
😃 iOS Dev
Вообще, сегодня юбилей для Apple Watch Activity, и можно заработать ачивку. А если попасть в Apple Store с закрытыми кольцами активности, то можно получить лимитированный эксклюзивный физический значок от Apple. Любопытный факт, такое происходит впервые в истории (обычно они были только в цифровом виде).
Так вот, я подсуетился (в прямом и переносном смысле), чтобы успеть получить один из них, и как только будет проще с логистикой при доставке, мы разыграем его в канале.
Для меня это не первая поездка в Японию и многие туристические поинты уже достигнуты, но возможно вы также были тут и поделитесь какими-то локациями. С радостью бы почитал в комментариях ваши рекомендации, куда непременно стоит съездить.
P.S. В офисе Кодзимы уже был (так что тут на точку поменьше)
Please open Telegram to view this post
VIEW IN TELEGRAM
8🤩24 11🔥9❤🔥3👍2👏1💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Робокафе в Токио: новый способ удаленной работы, доступность и аватары
Первое, что написано на вывеске - это не AI, как может показаться на первый взгляд.
OriHime это технология, с помощью которой люди, которые не могут физически присутствовать на работе, получают возможность участвовать в любых социальных процессах удаленно.
🙌🏻 Самими аватарами пилоты могут управлять, используя свои глаза, что позволяет работать даже парализованным людям (но одно из требований - знать японский).
В самом кафе порядка 20 аватаров, каждым из которых управляет человек. И в такие моменты стоит помнить, что одним AI всех проблем не решить.
Это понимал и создатель кафе Кентаро Йошифудзи с весьма интересной биографией. Например, в 2012 году он получил премию за создание робота-аватара для борьбы с одиночеством (чувствуете параллель с фильмом Она?).
И поначалу кафе, которое было экспериментальным и которое планировалось закрыть, вот уже два года функционирует и переосмысливает значение термина доступность.
За символическую плату в 1800 йен с человека вы можете посетить его (и даже тут будет включен напиток, можно алкологольный, можно другой), а затем поговорить с одним из операторов.
Например, мы общались с девушкой-оператором, которая прекрасно говорит на английском языке, играет в теннис и живет рядом с Токио.
За такими технологиями будущее. Ведь даже в Японии 2.5 процента сотрудников в крупных и не только компаниях должны быть с ОВЗ. И это настоящая доступность.
📍 Локация: Токио, кафе Dawn.
📸 Больше фото в комментариях.
😃 iOS Dev
Первое, что написано на вывеске - это не AI, как может показаться на первый взгляд.
OriHime это технология, с помощью которой люди, которые не могут физически присутствовать на работе, получают возможность участвовать в любых социальных процессах удаленно.
🙌🏻 Самими аватарами пилоты могут управлять, используя свои глаза, что позволяет работать даже парализованным людям (но одно из требований - знать японский).
В самом кафе порядка 20 аватаров, каждым из которых управляет человек. И в такие моменты стоит помнить, что одним AI всех проблем не решить.
Это понимал и создатель кафе Кентаро Йошифудзи с весьма интересной биографией. Например, в 2012 году он получил премию за создание робота-аватара для борьбы с одиночеством (чувствуете параллель с фильмом Она?).
И поначалу кафе, которое было экспериментальным и которое планировалось закрыть, вот уже два года функционирует и переосмысливает значение термина доступность.
За символическую плату в 1800 йен с человека вы можете посетить его (и даже тут будет включен напиток, можно алкологольный, можно другой), а затем поговорить с одним из операторов.
Например, мы общались с девушкой-оператором, которая прекрасно говорит на английском языке, играет в теннис и живет рядом с Токио.
За такими технологиями будущее. Ведь даже в Японии 2.5 процента сотрудников в крупных и не только компаниях должны быть с ОВЗ. И это настоящая доступность.
📍 Локация: Токио, кафе Dawn.
📸 Больше фото в комментариях.
Please open Telegram to view this post
VIEW IN TELEGRAM
20❤🔥22🔥10🤩6👍3🎉2 2💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Декомпозиция задач в разработке на примере Toyota
Даже самый сложный проект при правильной декомпозиции значительно намного проще довести до продакшена.
В этом можно убедиться, посетив музей, посвященный развитию Тойоты, которая далеко не всегда была знаменита своими автомобилями.
Например, в 1924 году был изобретен ткацкий станок на основе простого принципа дзидока, означающий, что машина останавливается сама, когда возникает проблема.
Этот принцип легко проецируется на написание тестов, которые сообщают нам о возникающих ошибках. К слову, в музее можно чекнуть с десяток устройств, тестирующих отказоустойчивость систем от самых простых до сложных (от прочности металла до потенциальных повреждений при столкновениях авто).
В музее можно познакомиться с декомпозицией и на примерах сборки авто с помощью современных роботизированных устройств, и даже проверить отдельные этапы.
📍 Локация: музей промышленности и технологий, (300 км от Токио)
😃 iOS Dev
Даже самый сложный проект при правильной декомпозиции значительно намного проще довести до продакшена.
В этом можно убедиться, посетив музей, посвященный развитию Тойоты, которая далеко не всегда была знаменита своими автомобилями.
Например, в 1924 году был изобретен ткацкий станок на основе простого принципа дзидока, означающий, что машина останавливается сама, когда возникает проблема.
Этот принцип легко проецируется на написание тестов, которые сообщают нам о возникающих ошибках. К слову, в музее можно чекнуть с десяток устройств, тестирующих отказоустойчивость систем от самых простых до сложных (от прочности металла до потенциальных повреждений при столкновениях авто).
Забавный факт, хотя фамилия основателей звучит как Тоёда, для бренда остановились на произношении Тоёта, так как по написании катаканой здесь 8 черточек, а именно восьмерка считается числом, которое приносит удачу.
В музее можно познакомиться с декомпозицией и на примерах сборки авто с помощью современных роботизированных устройств, и даже проверить отдельные этапы.
📍 Локация: музей промышленности и технологий, (300 км от Токио)
Please open Telegram to view this post
VIEW IN TELEGRAM
6 19👍12❤🔥8🔥4💯2👏1🎉1