Большое обновление для iOS IQ - уже на проверке в App Store
Помимо канала в свободное время я развиваю и приложение, полезное разработчикам самых разных уровней, постоянно добавляя новые разделы, задания и кайфовые анимации. Кстати, история его создания есть в открытом доступе.
В личные сообщения часто приходят приятные отзывы (спасибо за них ♥️) и даже предложения сделать его платным - но у меня такой цели нет.
На текущий момент у него несколько тысяч установок в самых разных локациях - что само по себе неплохой повод добавить как минимум топ-5 языков для локализации (но на это нужно время).
Так вот, кроме очевидных тестов там есть история, возможность побороться за лидерство в таблице и чекнуть объяснения заковыристых вопросов.
А сегодня я хочу анонсировать новую ветку в проекте.
😎 Добавлен новый режим - на проверку знаний кода, своеобразный способ почувствовать себя ревьюером.
Кроме этого, прилично обновлён раздел с многопоточкой, сюда перекочевало ещё несколько десятков вопросов из бусти (но там есть и объяснение, и разбор важных деталей).
Приложение уже на проверке, и будет доступно в тестфлайте в ближайшее время всем подписчикам.
Если вы хотите первым его попробовать, напомню, что такая возможность существует💰 на бусти и ⭐️ прямо здесь.
А если вы хотите ускорить выход обновления в App Store - поддержите этот пост.
😃 iOS Dev
Помимо канала в свободное время я развиваю и приложение, полезное разработчикам самых разных уровней, постоянно добавляя новые разделы, задания и кайфовые анимации. Кстати, история его создания есть в открытом доступе.
В личные сообщения часто приходят приятные отзывы (спасибо за них ♥️) и даже предложения сделать его платным - но у меня такой цели нет.
На текущий момент у него несколько тысяч установок в самых разных локациях - что само по себе неплохой повод добавить как минимум топ-5 языков для локализации (но на это нужно время).
Так вот, кроме очевидных тестов там есть история, возможность побороться за лидерство в таблице и чекнуть объяснения заковыристых вопросов.
А сегодня я хочу анонсировать новую ветку в проекте.
По традиции реализовано несколько уровней - от новичка до хардкора (с возможностью, чтобы это решение принял великий рандом).
Нужно составить код из представленных строк так, чтобы он решал конкретную задачу (есть несколько подводных камней - так как кода может быть больше, чем необходимо - и вам понадобится убрать всё лишнее). Можно сравнить это с ревью пулл-реквестамив, но чуть попроще, конечно.
Кроме этого, прилично обновлён раздел с многопоточкой, сюда перекочевало ещё несколько десятков вопросов из бусти (но там есть и объяснение, и разбор важных деталей).
Приложение уже на проверке, и будет доступно в тестфлайте в ближайшее время всем подписчикам.
Если вы хотите первым его попробовать, напомню, что такая возможность существует
А если вы хотите ускорить выход обновления в App Store - поддержите этот пост.
Please open Telegram to view this post
VIEW IN TELEGRAM
10 25❤🔥13👏7👍5 2🔥1🫡1🆒1
Совместимость Swift и C++ на практике
Возможность полноценного взаимодействия с C++ была представлена в Swift 5.9.
Большое количество API на C++ можно вызывать непосредственно из Swift, а некоторые свифтовые API можно использовать из C++.
Делюсь понятным руководством, в котором можно посмотреть на пример такого взаимодействия.
📖 В этом посте Artur Gruchała показывает, как можно вызывать функции C++, оборачивать классы и передавать сложные типы данных.
А ещё можно познакомиться и с особенностями сборки: от карты модулей и работы с заголовками до твиков SwiftPM/Xcode и лучших опциях управления памятью и обработки ошибок.
➡️ А большой гайд со всеми деталями есть на официальном портале swift.
😃 iOS Dev
Возможность полноценного взаимодействия с C++ была представлена в Swift 5.9.
Большое количество API на C++ можно вызывать непосредственно из Swift, а некоторые свифтовые API можно использовать из C++.
Делюсь понятным руководством, в котором можно посмотреть на пример такого взаимодействия.
📖 В этом посте Artur Gruchała показывает, как можно вызывать функции C++, оборачивать классы и передавать сложные типы данных.
А ещё можно познакомиться и с особенностями сборки: от карты модулей и работы с заголовками до твиков SwiftPM/Xcode и лучших опциях управления памятью и обработки ошибок.
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍16 11✍5🔥3🤯2❤🔥1
Катализатор роста iOS-разработчика
В iOS я очень давно и виделтакое, во что вы просто не поверите. Штурмовые корабли в огне на подступах к Ориону. Я смотрел, как Си-лучи мерцают во тьме близ врат Тангейзера. Все эти мгновения исчезнут во времени разные изменения не только в оси, но и в экосистеме на протяжении более чем десяти лет карьеры.
Вызовы, которые появлялись на работе и за её пределами, иногда непростые - и могут требовать нескольких спринтов на адаптацию изменений.
Несмотря на то, что в настоящий момент я руковожу командой разработчиков, мои приоритеты не изменились — изучение сторонних технологий, на первый взгляд не очень популярных, может принести свои плоды в будущем.
Например, когда-то для звонков мы использовали pjsip, но при обновлении стека всё-таки переключились на LiveKit (и там, и там есть свои плюсы и недостатки).
В канале я регулярно делюсь историями и о пет-проектах, и о том, какие сложности могут возникать при этом.
Парадоксально, но помимо очевидного изучения документации и просмотра лекций WWDC, я бы рекомендовал вам иногда пробовать что-то из прочитанного не только в боевых проектах, но и в качестве теста.
Как инженер, в первую очередь я ищу самый простой способ для решения поступающих задач в жестко заданных рамках требований.
Язык программирования по факту всего лишь набор правил, эдакая знаковая система для общения с девайсом посредством инструкций. В своё время я писал и на python, и на c#, и на node.js, плюсы знаю чуть лучше, для пет-проектов до сих пор юзаю cloud functions гугла, умею разворачивать контейнеры в докере и юзал это для пары ботов — но всё это лишь способ достижения цели.
Поэтому важно сосредоточиться на фундаментальных знаниях. Несмотря на то, что у меня есть высшее образование и собственный взгляд на то, что наличие диплома по крайней мере показывает способность человека придерживаться намеченного вектора развития, в современном мире не все компании могут требовать от вас диплом. А вот наличие знаний необходимо (обратите внимание на этот базовый пост с чего начать изучение Swift).
Не стоит верить, что AI за вас всё решит, и тем более - что это нельзя определить.
Я вижу, как многие вместо собственного мнения выдают два обрезанных предложения. А вместо решения задачи пишут статьи или хвалятся как AI сделал за минуту нечто (что невозможно поддерживать в будущем, да и не факт - что это нечто скомпилится).
Но иногда токенов может не хватить для полноценного ответа.
Пару лет назад я говорил, что тестируя свой код AI-помощниками, вы лишь прокачиваете и бесплатно тестируете монструозные корпоративные проекты.
Цена на подписку будет только расти. Как и зависимость слишком полагающихся на неё специалистов.
А что будет с вашими знаниями?
😃 iOS Dev
В iOS я очень давно и видел
Вызовы, которые появлялись на работе и за её пределами, иногда непростые - и могут требовать нескольких спринтов на адаптацию изменений.
Несмотря на то, что в настоящий момент я руковожу командой разработчиков, мои приоритеты не изменились — изучение сторонних технологий, на первый взгляд не очень популярных, может принести свои плоды в будущем.
Например, когда-то для звонков мы использовали pjsip, но при обновлении стека всё-таки переключились на LiveKit (и там, и там есть свои плюсы и недостатки).
В канале я регулярно делюсь историями и о пет-проектах, и о том, какие сложности могут возникать при этом.
Парадоксально, но помимо очевидного изучения документации и просмотра лекций WWDC, я бы рекомендовал вам иногда пробовать что-то из прочитанного не только в боевых проектах, но и в качестве теста.
Как инженер, в первую очередь я ищу самый простой способ для решения поступающих задач в жестко заданных рамках требований.
Язык программирования по факту всего лишь набор правил, эдакая знаковая система для общения с девайсом посредством инструкций. В своё время я писал и на python, и на c#, и на node.js, плюсы знаю чуть лучше, для пет-проектов до сих пор юзаю cloud functions гугла, умею разворачивать контейнеры в докере и юзал это для пары ботов — но всё это лишь способ достижения цели.
Поэтому важно сосредоточиться на фундаментальных знаниях. Несмотря на то, что у меня есть высшее образование и собственный взгляд на то, что наличие диплома по крайней мере показывает способность человека придерживаться намеченного вектора развития, в современном мире не все компании могут требовать от вас диплом. А вот наличие знаний необходимо (обратите внимание на этот базовый пост с чего начать изучение Swift).
Не стоит верить, что AI за вас всё решит, и тем более - что это нельзя определить.
Я вижу, как многие вместо собственного мнения выдают два обрезанных предложения. А вместо решения задачи пишут статьи или хвалятся как AI сделал за минуту нечто (что невозможно поддерживать в будущем, да и не факт - что это нечто скомпилится).
Но иногда токенов может не хватить для полноценного ответа.
Пару лет назад я говорил, что тестируя свой код AI-помощниками, вы лишь прокачиваете и бесплатно тестируете монструозные корпоративные проекты.
Цена на подписку будет только расти. Как и зависимость слишком полагающихся на неё специалистов.
А что будет с вашими знаниями?
Please open Telegram to view this post
VIEW IN TELEGRAM
36❤🔥30🔥12🏆8👍4 4✍3🤝3
Сколько в среднем у вас длятся спринты?
Anonymous Poll
12%
Неделю
61%
Две недели
6%
Месяц
2%
Квартал
0%
Дольше квартала
4%
Всегда по-разному
16%
Не работаем по спринтам
9✍6👍5 5🔥2👏2😎2🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Эффект люминофора на SwiftUI+Metal
Попробовал адаптировать некоторые подходы из вот этих примеров, но пришлось побороться с производительностью. Xor не зря написал про то, что количество проходов очень сильно коррелирует с получившимся эффектом, но о нагрузке забывать нельзя.
🤩 То, что получилось вы можете увидеть на гифке.
А исходный код на Swift по традиции уже доступен💰 тут и ⭐️ тут.
😃 iOS Dev
Попробовал адаптировать некоторые подходы из вот этих примеров, но пришлось побороться с производительностью. Xor не зря написал про то, что количество проходов очень сильно коррелирует с получившимся эффектом, но о нагрузке забывать нельзя.
А исходный код на Swift по традиции уже доступен
Ещё примеры:🔗 Warp-эффект на metal-шейдере🔗 Beauty infinite loop🔗 Огненный шейдер
Please open Telegram to view this post
VIEW IN TELEGRAM
17 35🔥16❤🔥9🤩4 4✍2👍2
Какой бы совет вы дали начинающему iOS-разработчику?
Сформулируйте вашу мысль одним предложением (можно картинкой).
За самый популярный (он может быть как актуальным и полезным, так смешным или вредным) будет символический подарок.
Например:
Забудь про кейчейн, храни всё что можно в UserDefaults.
😃 iOS Dev
Сформулируйте вашу мысль одним предложением (можно картинкой).
За самый популярный (он может быть как актуальным и полезным, так смешным или вредным) будет символический подарок.
Например:
Забудь про кейчейн, храни всё что можно в UserDefaults.
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥14 13✍7👍2❤🔥1👌1🏆1🍓1 1
iOS Dev
Какой бы совет вы дали начинающему iOS-разработчику? Сформулируйте вашу мысль одним предложением (можно картинкой). За самый популярный (он может быть как актуальным и полезным, так смешным или вредным) будет символический подарок. Например: Забудь про…
А вообще - посмотрите тред, там очень много хороших советов и размышлений о возможном пути начинающего разработчика на iOS (или не только на iOS)
Please open Telegram to view this post
VIEW IN TELEGRAM
8🤣60💯16😁13 4👍2🔥2👏2 2❤🔥1
Секретный способ для скругления и тени одновременно в UIKit
Все знают о сложности (и совсем не таком легком пути, как кажется) подобной задачи в UIKit.
Оказывается, среди недокументированного API (а значит, с шансом попадания под определённые риски) есть способ для реализации такого комбо.
Можно настраивать ширину, цвет (обратите внимание, нужен именно cgColor) и прозрачность.
Большая разница по сравнению с border, которая рисуется внутрь, этот ободок позволяет расширять наше вью и добавлять эффект снаружи.
😃 iOS Dev
Все знают о сложности (и совсем не таком легком пути, как кажется) подобной задачи в UIKit.
Оказывается, среди недокументированного API (а значит, с шансом попадания под определённые риски) есть способ для реализации такого комбо.
CALayer
позволяет юзать свойства для изменения rim, если назвать его попроще - ободка, но не границы (которого вы не найдёте в доках и даже AI вам в этом не поможет).Можно настраивать ширину, цвет (обратите внимание, нужен именно cgColor) и прозрачность.
view.layer.setValue(true, forKey: "softRim")
view.layer.setValue(20, forKey: "rimWidth")
view.layer.setValue(UIColor.yellow.cgColor, forKey: "rimColor")
view.layer.setValue(1.0, forKey: "rimOpacity")
Большая разница по сравнению с border, которая рисуется внутрь, этот ободок позволяет расширять наше вью и добавлять эффект снаружи.
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥38🤩9🏆9 6👍2👏2 1
Насколько часто вам повышают зарплату? В опросе можно выбрать несколько вариантов
Anonymous Poll
7%
Автоматически два раза в год
22%
Автоматически раз в год
26%
Пересмотр бывает после регулярного перфоманс-ревью
36%
После собственного запроса (вы должны проявить инициативу)
2%
После выкатки каких-то фич или важных релизов
18%
Не повышают вообще (такая политика или у вас контракт)
7%
Катализатор - другая причина (напишите в комментариях)
6❤🔥8👏7✍5🔥3 2👍1 1
This media is not supported in your browser
VIEW IN TELEGRAM
😳 Макбук как весы — приложение для macOS на Github
Я не мог пройти мимо этого репозитория!
TrackWeight – это приложение, которое превращает MacBook в весы с помощью датчиков давления Force Touch.
Под капотом либа Open Multi-Touch Support (от Такуто Накамуры) для получения приватного доступа ко всем событиям мыши и трекпада в macOS.
Среди объяснений, почему это вообще работает: трекпад MacBook не совсем обычный, по факту это датчик силы нажатия с тактильными эффектами (поэтому мы чувствуем ощущение щелчка).
🛠 Репозиторий на GitHub (уже 2 000 звёзд).
За такие штуки мы и любим разработку, разве нет?
📊 Кстати, напомню, что с помощью Swift Charts можно играть в Pong.
😃 iOS Dev
Я не мог пройти мимо этого репозитория!
TrackWeight – это приложение, которое превращает MacBook в весы с помощью датчиков давления Force Touch.
Под капотом либа Open Multi-Touch Support (от Такуто Накамуры) для получения приватного доступа ко всем событиям мыши и трекпада в macOS.
Среди объяснений, почему это вообще работает: трекпад MacBook не совсем обычный, по факту это датчик силы нажатия с тактильными эффектами (поэтому мы чувствуем ощущение щелчка).
🛠 Репозиторий на GitHub (уже 2 000 звёзд).
За такие штуки мы и любим разработку, разве нет?
📊 Кстати, напомню, что с помощью Swift Charts можно играть в Pong.
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥57🤩14 13 5👍4❤🔥1🏆1🍓1
Apple только что представили Retention Messaging API
Будет полезно не только инди-разработчикам, но и компаниям, чей бизнес целиком завязан на подписках.
С помощью нового API можно выбрать, какое сообщение показывать пользователям, когда они просматривают инфу о подписке и могут отменить ее.
Нам теперь доступна возможность разработки и настройки таких экранов разных для продуктов и локалей.
Всего 4 опции: текст, текст+картинка, сообщение о переходе на новый план с текстом и другой подпиской, а также рекламный оффер с текстом и скидкой (или другим уровнем).
📖 Вся документация уже доступна здесь.
😃 iOS Dev
Будет полезно не только инди-разработчикам, но и компаниям, чей бизнес целиком завязан на подписках.
С помощью нового API можно выбрать, какое сообщение показывать пользователям, когда они просматривают инфу о подписке и могут отменить ее.
Нам теперь доступна возможность разработки и настройки таких экранов разных для продуктов и локалей.
Всего 4 опции: текст, текст+картинка, сообщение о переходе на новый план с текстом и другой подпиской, а также рекламный оффер с текстом и скидкой (или другим уровнем).
📖 Вся документация уже доступна здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥26 13👏8👍2 2❤🔥1💯1