Реверс-инжиниринг Coding Intelligence в Xcode
В этом году в Xcode выкатили полноценную версию Coding Intelligence.
📖 В этом материале можно немного приоткрыть завесу того что происходит внутри и понять, как работает этот инструмент.
Для этого можно прочитать про реверс-инжиринг системных инструкций в Xcode и посмотреть на несколько типичных задач кодирования (вместе с соответствующими подсказками).
➡️ Напомню, что в канале есть и любопытный пост про то, что в целом происходит под капотом у ИИ (можно узнать, что такое токены, как LLM работает с контекстом, а также познакомиться с ключевыми концепциями трансформер-архитектуры).
😃 iOS Dev
В этом году в Xcode выкатили полноценную версию Coding Intelligence.
📖 В этом материале можно немного приоткрыть завесу того что происходит внутри и понять, как работает этот инструмент.
Для этого можно прочитать про реверс-инжиринг системных инструкций в Xcode и посмотреть на несколько типичных задач кодирования (вместе с соответствующими подсказками).
Please open Telegram to view this post
VIEW IN TELEGRAM
7 16🔥8👍5❤🔥3😎2
iOS IQ — список доступных к изучению разделов
Уже продолжительное время я веду не только канал, но и делюсь неочевидными моменты в разработке, своим опытом в решении алгоритмов и задаю каверзные вопросы в приложении (и в разных секциях).
Напомню, что вы можете поддержать канал, подписавшись💰 на бусти и ⭐️ прямо здесь.
Что можно получить сегодня?
И это только небольшая часть того, что там есть.
iOS Dev
Уже продолжительное время я веду не только канал, но и делюсь неочевидными моменты в разработке, своим опытом в решении алгоритмов и задаю каверзные вопросы в приложении (и в разных секциях).
Напомню, что вы можете поддержать канал, подписавшись
Что можно получить сегодня?
➡️ Несколько десятков пройденных алгоритмических задач с боевых конкурсов.➡️ Вопросы на чтение кода➡️ Многопоточность➡️ DispatchQueue: практические вопросы (две части)➡️ Swift Concurrency➡️ Память: ARC, side table, флаги, утечки➡️ UIKit (теория + практика, две части)➡️ Компилятор Swift➡️ Основы: URLSession, UICollectionView и многое другое.
А также:➡️ Множество необычных подходов к анимации (включая шейдеры).➡️ Разбор популярных архитектур (и их недостатков).➡️ Несколько кайфовых и интересных фактов об истории прототипирования в Apple.➡️ Как на самом деле работает Code Signing.➡️ Несколько трюков и фишек при работе c Xcode.
И это только небольшая часть того, что там есть.
iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
11 11🔥8❤🔥5👍4 3🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
Я люблю качественные игры (и даже был в офисе легендарного геймдизайнера).
Но вчерашнее событие из обычного резко вырвалось из привычного контекста.
Удалось попасть на закрытое мероприятие в Here at outernet, посвященное туру Death Stranding 2 (должны быть шутки про доставку, и как гений-Кодзима все предугадал на счет коронавируса). Оно нигде не стримилось, оттого и уникально.
И здесь был сам мистер Хидео!
А днем по счастливой случайности пересеклись с арт-директором не только Death Stranding, но и всей серии Metal Gear Solid Йодзи Синкава в японском кафе. Это его визуальный стиль можно распознать буквально с пары кадров.
На закрытом ивенте поговорили про технологию захвата движений и про то, как сложно бывает порой коннектить хороших людей в целом, и как много должно сойтись.
Не думал, что удастся сказать спасибо Кодзиме за его шедевры вживую, но жизнь интересная штука.
Кстати, в качестве специальных гостей приехали не только Кэролайн Полачек и Chvrches, но и сам Сэм Бриджес (он же Норман Ридус). И даже Лея Сейду украсила вечер своим присутствием.
🗓️ Магазин, посвященный игре, открылся 30 июня буквально на один день (прямо рядом с Tottenham court road station). Потратив 100 фунтов, можно было получить бонусом автограф или фото Йодзи. Что я выбрал, можно узнать в комментариях.
🕹️ Играйте в хорошие игры.
😃 iOS Dev
Но вчерашнее событие из обычного резко вырвалось из привычного контекста.
Удалось попасть на закрытое мероприятие в Here at outernet, посвященное туру Death Stranding 2 (должны быть шутки про доставку, и как гений-Кодзима все предугадал на счет коронавируса). Оно нигде не стримилось, оттого и уникально.
И здесь был сам мистер Хидео!
А днем по счастливой случайности пересеклись с арт-директором не только Death Stranding, но и всей серии Metal Gear Solid Йодзи Синкава в японском кафе. Это его визуальный стиль можно распознать буквально с пары кадров.
На закрытом ивенте поговорили про технологию захвата движений и про то, как сложно бывает порой коннектить хороших людей в целом, и как много должно сойтись.
Не думал, что удастся сказать спасибо Кодзиме за его шедевры вживую, но жизнь интересная штука.
Кстати, в качестве специальных гостей приехали не только Кэролайн Полачек и Chvrches, но и сам Сэм Бриджес (он же Норман Ридус). И даже Лея Сейду украсила вечер своим присутствием.
🗓️ Магазин, посвященный игре, открылся 30 июня буквально на один день (прямо рядом с Tottenham court road station). Потратив 100 фунтов, можно было получить бонусом автограф или фото Йодзи. Что я выбрал, можно узнать в комментариях.
Please open Telegram to view this post
VIEW IN TELEGRAM
17❤🔥53🤯16🔥10👍6🏆4 3🤩2 1
This media is not supported in your browser
VIEW IN TELEGRAM
Почему view обновляются в SwiftUI — простой совет для дебага
Есть подход, особенно полезный при отладке обновлений вьюх в SwiftUI, который заключается в вызове внутреннего метода
Это позволяет узнать, какое именно свойство вызвало обновление (и записать эту инфу в консоль).
Кроме указания имен свойств,
Когда-то давно этот способ был приватным API, но сейчас его можно найти и в доках.
😃 iOS Dev
Есть подход, особенно полезный при отладке обновлений вьюх в SwiftUI, который заключается в вызове внутреннего метода
Self._printChanges()
из body (вместо вызова print). Это позволяет узнать, какое именно свойство вызвало обновление (и записать эту инфу в консоль).
Кроме указания имен свойств,
@self
отмечает изменение значения view, а @identity
- изменение идентичности вью.Когда-то давно этот способ был приватным API, но сейчас его можно найти и в доках.
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥53 12✍7⚡5👍4 2🤯1🙏1👌1
Работа с таймером в AlarmKit
Одним из фреймворков, представленных на WWDC, стал AlarmKit.
Для интеграции необходимо выполнить всего пару простых шагов (и добавить ключ
📖 В этом туториале можно посмотреть на пример настройки проекта вместе с Live Activity (для локскрина и Dynamic Island) и познакомиться с возможностям конфигурации.
😃 iOS Dev
Одним из фреймворков, представленных на WWDC, стал AlarmKit.
Для интеграции необходимо выполнить всего пару простых шагов (и добавить ключ
NSAlarmKitUsageDescription
).📖 В этом туториале можно посмотреть на пример настройки проекта вместе с Live Activity (для локскрина и Dynamic Island) и познакомиться с возможностям конфигурации.
Please open Telegram to view this post
VIEW IN TELEGRAM
5 13👍7🔥7❤🔥2✍1💯1
Сколько iOS-разработчиков в вашей команде?
Anonymous Poll
24%
1
15%
2
11%
3
18%
4-5
12%
6-10
7%
11-20
3%
21-30
10%
> 30
🔥13✍11❤🔥4 3⚡2💯2 2👍1
Кто такой senior-разработчик
Тот, кто проработал больше 5 (10) лет? Тот, кто лучше всех знает, как устроен компилятор? Человек, который лучше всех пишет код?
А что вообще значит «лучше»?
Моя позиция, что совершенно необязательно человек должен знать всё обо всём, чтобы считаться таковым. В целом, все эти лычки/звания относительны и меняются от одной компании к другой (а иногда и от отдела к отделу). Более того, даже на стадии собесов проверяющие могут сделать вывод, кардинально отличающийся от другого набора собеседующих в той же компании.
На мой взгляд, ни количество кода, ни тем более количество задач (которые некоторые менеджеры считают объективным показателем), не отражают уровень владения инструментами.
При этом, даже на отдельно взятой задаче среднего уровня - вполне можно оценить уровень погружения в контекст. Намного важнее корреляция количества задаваемых вопросов к граничным условиям самой задачи, и что намного более важно — ресурсов на поддержку кода в будущем (здесь можно оценить количество потенциальных багов, их вариации и вектор возможных проблем).
То, что называют системным дизайном (или проектированием, терминология не так важна) вполне может проецироваться не только на глобальный уровень при создании приложения, но и на его компоненты. Масштабирование, способность реагирования на ошибки (или отказы) и вместе с тем сохранение производительности — важные вехи при реализации.
Мне импонирует сравнение на счёт количества строк в коде (что джун добавляет 50 строчек, миддл 1000, а сеньор удаляет 5), это не так далеко от правды. Премировать за количество строк кода — нонсенс, но я слышал и такие истории. Конечно, в случае если вы Маяковский - это можно оправдать, но в остальных ситуациях это просто за гранью разумного.
Способность писать понятный другим код (и вам, если вернетесь к нему через три года) — навык, который вырабатывается итерационно, иногда годами. В этом плюс ревью в команде (залетайте в тред, возможно вам будет что добавить).
Поэтому сениор это не только человек, который способен решить задачу по заданному тз (хотя это буквально то, что требуется), но и профессионал, ход мыслей которого можно понять просто посмотрев на решение.
И хотя это может показаться очевидным, на самом деле дистанция от «решил» до «решил понятно» может быть гигантской.
А умение формулировать свои мысли — важно не только в разработке, но и в жизни.
А кто в вашем понимании сениор-разработчик? Поделитесь мнением.
😃 iOS Dev
Тот, кто проработал больше 5 (10) лет? Тот, кто лучше всех знает, как устроен компилятор? Человек, который лучше всех пишет код?
А что вообще значит «лучше»?
Моя позиция, что совершенно необязательно человек должен знать всё обо всём, чтобы считаться таковым. В целом, все эти лычки/звания относительны и меняются от одной компании к другой (а иногда и от отдела к отделу). Более того, даже на стадии собесов проверяющие могут сделать вывод, кардинально отличающийся от другого набора собеседующих в той же компании.
На мой взгляд, ни количество кода, ни тем более количество задач (которые некоторые менеджеры считают объективным показателем), не отражают уровень владения инструментами.
При этом, даже на отдельно взятой задаче среднего уровня - вполне можно оценить уровень погружения в контекст. Намного важнее корреляция количества задаваемых вопросов к граничным условиям самой задачи, и что намного более важно — ресурсов на поддержку кода в будущем (здесь можно оценить количество потенциальных багов, их вариации и вектор возможных проблем).
То, что называют системным дизайном (или проектированием, терминология не так важна) вполне может проецироваться не только на глобальный уровень при создании приложения, но и на его компоненты. Масштабирование, способность реагирования на ошибки (или отказы) и вместе с тем сохранение производительности — важные вехи при реализации.
Мне импонирует сравнение на счёт количества строк в коде (что джун добавляет 50 строчек, миддл 1000, а сеньор удаляет 5), это не так далеко от правды. Премировать за количество строк кода — нонсенс, но я слышал и такие истории. Конечно, в случае если вы Маяковский - это можно оправдать, но в остальных ситуациях это просто за гранью разумного.
Способность писать понятный другим код (и вам, если вернетесь к нему через три года) — навык, который вырабатывается итерационно, иногда годами. В этом плюс ревью в команде (залетайте в тред, возможно вам будет что добавить).
Поэтому сениор это не только человек, который способен решить задачу по заданному тз (хотя это буквально то, что требуется), но и профессионал, ход мыслей которого можно понять просто посмотрев на решение.
И хотя это может показаться очевидным, на самом деле дистанция от «решил» до «решил понятно» может быть гигантской.
А умение формулировать свои мысли — важно не только в разработке, но и в жизни.
А кто в вашем понимании сениор-разработчик? Поделитесь мнением.
Please open Telegram to view this post
VIEW IN TELEGRAM
8 30👍14❤🔥11🔥6✍2👏1
Типобезопасная и удобная обработка ошибок в Swift 6
Swift 6 привнес в язык новую интересную возможность: typed throws. С помощью этого изменения можно определить, какие типы ошибок может выбрасывать функция.
На первый взгляд это небольшое изменение, но на самом деле открывает путь к написанию более чистого и надежного кода.
📖 В этом посте можно посмотреть на пример кастомного протокола ошибок и на два кейса использования в Swift 6.
😃 iOS Dev
Swift 6 привнес в язык новую интересную возможность: typed throws. С помощью этого изменения можно определить, какие типы ошибок может выбрасывать функция.
На первый взгляд это небольшое изменение, но на самом деле открывает путь к написанию более чистого и надежного кода.
📖 В этом посте можно посмотреть на пример кастомного протокола ошибок и на два кейса использования в Swift 6.
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥17👍10 8✍3