1️⃣ При сборках с 14.3 девайсы на iOS 13, использующие протоколы Objective-C из Swift, крашились при запуске.
С этой проблемой мы столкнулись и на рабочем проекте.
2️⃣ Исправили краш на iOS 15, связанный со Swift Concurrency.
Кроме этого, избавились от проблем с отображением альтернативных иконок на планшетах и улучшили поведение на макоси.
🔗 Детально весь список обновлений здесь.
🛠 Скачать обновлённый Xcode уже можно на сайте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему Apple запретила своим сотрудникам использовать ChatGPT и другие нейросети
Некоторое время назад я писал, почему использование ChatGPT мешает жить StackOverflow и не только.
Буквально сегодня в сторе появился официальный iOS-клиент, который уже на подступах к первым позициям во всех чартах. И как нельзя кстати появилась вот эта новость на базе информации от The Wall Street Journal.
Мартовская ошибка позволяла пользователям видеть историю чатов других пользователей ChatGPT, и только после этого инцидента ChatGPT добавил возможность разрешить пользователям отключать историю чатов и не участвовать в обучении модели ИИ.
Если инженеры Apple используют эти платформы, нет никакой гарантии, что их код (или ваш) не попадёт к кому-то другому или даже не будет использован конкурентами.
То же самое относится и к другой конфиденциальной информации, поскольку сотрудники могут использовать ChatGPT, например, для составления электронных писем.
Apple не единственная компания, запретившая ChatGPT. Например, JPMorgan Chase и Verizon также ограничили использование таких платформ.
Кстати, в отчете упоминается, что Apple также работает над собственной моделью ИИ.
Так оно или нет, узнаем совсем скоро, WWDC приближается.
😃 iOS Dev
Некоторое время назад я писал, почему использование ChatGPT мешает жить StackOverflow и не только.
Буквально сегодня в сторе появился официальный iOS-клиент, который уже на подступах к первым позициям во всех чартах. И как нельзя кстати появилась вот эта новость на базе информации от The Wall Street Journal.
Мартовская ошибка позволяла пользователям видеть историю чатов других пользователей ChatGPT, и только после этого инцидента ChatGPT добавил возможность разрешить пользователям отключать историю чатов и не участвовать в обучении модели ИИ.
Если инженеры Apple используют эти платформы, нет никакой гарантии, что их код (или ваш) не попадёт к кому-то другому или даже не будет использован конкурентами.
То же самое относится и к другой конфиденциальной информации, поскольку сотрудники могут использовать ChatGPT, например, для составления электронных писем.
Apple не единственная компания, запретившая ChatGPT. Например, JPMorgan Chase и Verizon также ограничили использование таких платформ.
Кстати, в отчете упоминается, что Apple также работает над собственной моделью ИИ.
Так оно или нет, узнаем совсем скоро, WWDC приближается.
Please open Telegram to view this post
VIEW IN TELEGRAM
Рендеринг сцены Моаны (мультфильма Диснея) менее чем за 10 000 строк кода Swift
После того, как Walt Disney выпустила описание сцены острова в Моане, были предприняты некоторые усилия по его визуализации помимо Диснеевского Hyperion.
Энтузиаст пошёл ещё дальше и выпустил собственный рендерер на Swift (с несколькими строками на C++ для вызова OpenEXR и Ptex).
📖 В большом исследовании он пишет, как пришёл к этому, какие оптимизации принял, и почему Swift оказался предпочтительным выбором.
📖 А в текущей версии он рассказывает, как он смог ускорить процесс рендеринга с 26 часов в начале до 78 минут.
🛠 Вы не поверите, но есть даже исходный код.
😃 iOS Dev — а что вы сможете делать с помощью Swift?
После того, как Walt Disney выпустила описание сцены острова в Моане, были предприняты некоторые усилия по его визуализации помимо Диснеевского Hyperion.
Энтузиаст пошёл ещё дальше и выпустил собственный рендерер на Swift (с несколькими строками на C++ для вызова OpenEXR и Ptex).
📖 В большом исследовании он пишет, как пришёл к этому, какие оптимизации принял, и почему Swift оказался предпочтительным выбором.
📖 А в текущей версии он рассказывает, как он смог ускорить процесс рендеринга с 26 часов в начале до 78 минут.
🛠 Вы не поверите, но есть даже исходный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
🇯🇵 Apple Marunouchi в Токио
Сейчас я в отпуске, и наконец получилось добраться до страны восходящего солнца. Несмотря на невероятное количество достопримечательностей, невозможно было не зайти в крупнейший эпл стор в мегаполисе.
Он открылся в 2019 году и более чем половина из 130 сотрудников приехали сюда из разных районов Японии. А если сложить их знания, окажется, что работники могут помочь вам аж на 15 разных языках.
Внутри оконные проемы отделаны бамбуком, чтобы интегрировать высокий темп жизни снаружи и отдать дань уважения традициям страны. Атриум в центре выступает сердцем магазина и соединяет оба этажа.
В отличие от моих прошлых постов о двух магазинах в Нью-Йорке и в Лос-Анджелесе можно сказать, что здесь торжествует минимализм. Но знаете, здесь это как нельзя кстати.
😃 iOS Dev
Сейчас я в отпуске, и наконец получилось добраться до страны восходящего солнца. Несмотря на невероятное количество достопримечательностей, невозможно было не зайти в крупнейший эпл стор в мегаполисе.
Он открылся в 2019 году и более чем половина из 130 сотрудников приехали сюда из разных районов Японии. А если сложить их знания, окажется, что работники могут помочь вам аж на 15 разных языках.
Внутри оконные проемы отделаны бамбуком, чтобы интегрировать высокий темп жизни снаружи и отдать дань уважения традициям страны. Атриум в центре выступает сердцем магазина и соединяет оба этажа.
В отличие от моих прошлых постов о двух магазинах в Нью-Йорке и в Лос-Анджелесе можно сказать, что здесь торжествует минимализм. Но знаете, здесь это как нельзя кстати.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎈Сегодня мой День Рождения
В нашей жизни каждый день приходится решать задачи разной степени важности.
Когда-то, только попав в школу, в своем родном поселке я ждал после уроков, чтобы в единственном компьютерном классе в радиусе 10 км попросить запустить Dune 2000, чтобы посмотреть на этот дивный новый мир! Получалось далеко не всегда, но до своего домашнего пк было очень далеко.
Вообще у всех разный старт. И когда говорят, что Билл Гейтс бросил универ и стал миллиардером, уделите внимание его родителям: известному адвокату и члену совета директоров банка. Ах да, его дед был главной нацбанка США, но это мелочи.
Для меня же образование было единственным способом пробиться куда-то, поэтому я до сих пор продолжаю учиться, и одно из следствий этого – канал, который вы читаете.
Возвращаясь к истории с дюной, намного проще было собраться и поиграть в квадрат где-нибудь рядом. Кто-то сейчас знает, что это?
Прошло много времени и сейчас среди рабочих тасок управление многопоточкой, шифрованием, анимациями и поддержание всего этого в нормальном состоянии. Для меня кажется обыденным постоянно быть на связи и решать что-то в срочном порядке, например, проблемы с эпловским ревью.
Но знаете, через 10-20 лет о наших переработках будут помнить только близкие люди. А о рабочих подвигах только мы (возможно).
Я не очень люблю отмечать день рождения. Для меня важнее не символическая дата, а то, что мы можем сказать о своих поступках в прошлом, настоящем и в будущем.
❤️ Спасибо, что читаете этот канал. Как и прежде, здесь я продолжу делиться своим опытом и знаниями.
Ну вот вы и нашли ключевое слово для шифра Виженера: iosdevcypher
😃 iOS Dev
В нашей жизни каждый день приходится решать задачи разной степени важности.
Когда-то, только попав в школу, в своем родном поселке я ждал после уроков, чтобы в единственном компьютерном классе в радиусе 10 км попросить запустить Dune 2000, чтобы посмотреть на этот дивный новый мир! Получалось далеко не всегда, но до своего домашнего пк было очень далеко.
Вообще у всех разный старт. И когда говорят, что Билл Гейтс бросил универ и стал миллиардером, уделите внимание его родителям: известному адвокату и члену совета директоров банка. Ах да, его дед был главной нацбанка США, но это мелочи.
Для меня же образование было единственным способом пробиться куда-то, поэтому я до сих пор продолжаю учиться, и одно из следствий этого – канал, который вы читаете.
Возвращаясь к истории с дюной, намного проще было собраться и поиграть в квадрат где-нибудь рядом. Кто-то сейчас знает, что это?
Прошло много времени и сейчас среди рабочих тасок управление многопоточкой, шифрованием, анимациями и поддержание всего этого в нормальном состоянии. Для меня кажется обыденным постоянно быть на связи и решать что-то в срочном порядке, например, проблемы с эпловским ревью.
Но знаете, через 10-20 лет о наших переработках будут помнить только близкие люди. А о рабочих подвигах только мы (возможно).
Я не очень люблю отмечать день рождения. Для меня важнее не символическая дата, а то, что мы можем сказать о своих поступках в прошлом, настоящем и в будущем.
❤️ Спасибо, что читаете этот канал. Как и прежде, здесь я продолжу делиться своим опытом и знаниями.
Please open Telegram to view this post
VIEW IN TELEGRAM
Необычный способ найти причину проблемы из-за нехватки свободного места на девайсе
Пока я нахожусь в отпуске (и делаю очень много фотографий), задумался над тем, как корректно обработать ситуации, когда на айфоне уже не остаётся доступного пространства и что с этим можно сделать при работе над мессенджером или каким-нибудь редактором.
Оказывается, эту проблему можно воспроизвести и на симуляторе.
Для этого нужно:
1️⃣ Обратиться к hdutil
4️⃣ После выявления проблемного кейса удалить тестовый образ, используя команду для получения списка
📖 Хороший разбор сценария целиком доступен тут.
😃 iOS Dev
Пока я нахожусь в отпуске (и делаю очень много фотографий), задумался над тем, как корректно обработать ситуации, когда на айфоне уже не остаётся доступного пространства и что с этим можно сделать при работе над мессенджером или каким-нибудь редактором.
Оказывается, эту проблему можно воспроизвести и на симуляторе.
Для этого нужно:
1️⃣ Обратиться к hdutil
hdiutil create -size 1m -fs HFS+ /tmp/app-storage-test.dmg
2️⃣ Использовать созданный образ для симулятора, предварительно получив адрес documentsdirectory.hdiutil attach /tmp/app-storage-test.dmg -mountpoint “полученный путь”
3️⃣
Добавить контент как обычно.4️⃣ После выявления проблемного кейса удалить тестовый образ, используя команду для получения списка
diskutil list.
И избавиться от него с помощью hdiutil detach.
📖 Хороший разбор сценария целиком доступен тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как связаны все репозитории об iOS-разработке на Github
Оказывается, пользователь с ником @anvaka задумался об этом и создал интерактивную карту.
На ней представлен целый остров под названием Swiftoria, на котором можно найти все репозитории, относящиеся к iOS, а еще кроме этого можно посмотреть на их взаимосвязи.
📖 Об идее и используемых технологиях для создания можно прочесть здесь.
🌐 А вот тут доступна интерактивная версия.
😃 iOS Dev
Оказывается, пользователь с ником @anvaka задумался об этом и создал интерактивную карту.
На ней представлен целый остров под названием Swiftoria, на котором можно найти все репозитории, относящиеся к iOS, а еще кроме этого можно посмотреть на их взаимосвязи.
📖 Об идее и используемых технологиях для создания можно прочесть здесь.
🌐 А вот тут доступна интерактивная версия.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация эффекта адаптивного блюра
Многие пользователи iOS обращали внимание на необычный стиль блюра на системной шторке.
Оказывается, его можно повторить с помощью приватного апи, используя
🛠Janum Trivedi, автор опенсорсного Wave, поделился тонкостями реализации в своем репозитории.
В комментариях к посту заметили, что это можно сделать и комбинацией SceneKit + Metal, и с помощью visual effect view.
Кстати, в своей реализации я использовал маску для градиентного блюра.
😃 iOS Dev
Многие пользователи iOS обращали внимание на необычный стиль блюра на системной шторке.
Оказывается, его можно повторить с помощью приватного апи, используя
CAFilter.
🛠Janum Trivedi, автор опенсорсного Wave, поделился тонкостями реализации в своем репозитории.
В комментариях к посту заметили, что это можно сделать и комбинацией SceneKit + Metal, и с помощью visual effect view.
Кстати, в своей реализации я использовал маску для градиентного блюра.
Please open Telegram to view this post
VIEW IN TELEGRAM
О чистоте кода и японских урнах
Даже плохой код может работать. Но с течением времени скорость разработки начнет снижаться и в какой-то момент может потребоваться активизация огромных ресурсов для того, чтобы все это починить и вернуться к нормальным темпам.
🇯🇵 Находясь в Японии, многие туристы обратят внимание на невероятную чистоту, а еще на практически полное отсутствие урн на улицах, и это неспроста.
Дело в том, что с ранних лет японцев учат воспринимать уборку не как наказание, а скорее как некую игру для формирования привычек.
☕️ Например, в «Книге о чае» Окакуры Какузо, классическом труде о чайной церемонии есть такая цитата «…всё абсолютно чисто. Ни пылинки в самом темном углу. Потому что если найти пылинку, то хозяин — не чайный мастер».
В нашей разработке также стоит учитывать чистоту кода, и не стоит недооценивать правило трех.
Но не нужно слишком рьяно относиться к этому, так как в гонке за бесконечными улучшениями кода бизнес не будет ждать. Поэтому как и в чайной церемонии, в разработке должен быть баланс.
А куда будет склоняться чаша весов, можно определить в будущих спринтах.
😃 iOS Dev
Даже плохой код может работать. Но с течением времени скорость разработки начнет снижаться и в какой-то момент может потребоваться активизация огромных ресурсов для того, чтобы все это починить и вернуться к нормальным темпам.
Дело в том, что с ранних лет японцев учат воспринимать уборку не как наказание, а скорее как некую игру для формирования привычек.
В нашей разработке также стоит учитывать чистоту кода, и не стоит недооценивать правило трех.
Но не нужно слишком рьяно относиться к этому, так как в гонке за бесконечными улучшениями кода бизнес не будет ждать. Поэтому как и в чайной церемонии, в разработке должен быть баланс.
А куда будет склоняться чаша весов, можно определить в будущих спринтах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Performance Trace Profiles: отладка проблем производительности, которые сложно воспроизвести
Одна из самых сложных частей нашей работы — поиск багов, которые встречаются у единичных пользователей, но команда разработчиков не может их повторить.
Среди них: фризы пользовательского интерфейса, проблемы с многопоточностью/параллелизм, проблемы ЦП/памяти и так далее.
Как следует из названия,
Более того, с их помощью можно запускать системную трассировку всего, что в данный момент работает на телефоне, которую вы можете позже извлечь и открыть в «Инструментах».
📖 В этом материале рассматриваются нужные шаги для работы с профилями, инструкция для анализа и несколько советов.
Но будьте осторожны, ведь трассировка будет фиксировать и избыточную информацию.
😃 iOS Dev
Одна из самых сложных частей нашей работы — поиск багов, которые встречаются у единичных пользователей, но команда разработчиков не может их повторить.
Среди них: фризы пользовательского интерфейса, проблемы с многопоточностью/параллелизм, проблемы ЦП/памяти и так далее.
Как следует из названия,
Performance Trace Profiles
предоставляют возможности отслеживания производительности вашего устройства.Более того, с их помощью можно запускать системную трассировку всего, что в данный момент работает на телефоне, которую вы можете позже извлечь и открыть в «Инструментах».
📖 В этом материале рассматриваются нужные шаги для работы с профилями, инструкция для анализа и несколько советов.
Но будьте осторожны, ведь трассировка будет фиксировать и избыточную информацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
Топ-5 нововведений в Xcode 15, которые могут вас удивить
Так сложилось, что во время самого WWDC я был в самолёте и по определённым причинам не смог провести трансляцию, как в прошлый раз , но!
🤩 Вот пять новинок в Xcode, которые некоторые даже смогли предсказать:
1️⃣ Можно использовать previews в UIKit (и AppKit!).
До этого существовали некоторые способы, но теперь нативно.
2️⃣ Представлена SwiftData (многие давно ждали/верили/надеялись, но решили выкатить сейчас, анонс уже здесь).
3️⃣ Можно оставлять закладки в коде! Пока, задисейбленные брейпоинты?
4️⃣ Теперь доступна новая система макросов, которую можно использовать для уменьшения бойлерплейт-кода и улучшения API.
5️⃣ Неактивный код в блоках
😎 Бонус!
Теперь доступно действие Archive, даже если выбран симулятор. Наверняка каждый хоть раз, да забывал переключать симулятор для архива во всех 14 предыдущих версиях Xcode.
😃 iOS Dev — будем следить за новинками вместе (и копить на лыжную маску amazing хэдсет за $3 500)
1️⃣ Можно использовать previews в UIKit (и AppKit!).
До этого существовали некоторые способы, но теперь нативно.
2️⃣ Представлена SwiftData (многие давно ждали/верили/надеялись, но решили выкатить сейчас, анонс уже здесь).
3️⃣ Можно оставлять закладки в коде! Пока, задисейбленные брейпоинты?
4️⃣ Теперь доступна новая система макросов, которую можно использовать для уменьшения бойлерплейт-кода и улучшения API.
5️⃣ Неактивный код в блоках
#if…#endif
теперь будет отображаться с тенью. Очень полезно, когда выбран не тот таргет. Можно вернуть, как было в Text Editing > Display
.Теперь доступно действие Archive, даже если выбран симулятор. Наверняка каждый хоть раз, да забывал переключать симулятор для архива во всех 14 предыдущих версиях Xcode.
Please open Telegram to view this post
VIEW IN TELEGRAM