This media is not supported in your browser
VIEW IN TELEGRAM
Что означает spacing = nil в SwiftUI?
Понимание принципов Spacing важно при работе со сложной версткой, а владение определенными техниками может помочь добиться эффектов, которые сложно реализовать традиционными методами.
Как можно видеть на гифке, когда используется nil, расстояние между Text и соседними элементами больше не равны.
Из документации Apple:
При установке nil расстояние должно быть дефолтным по умолчанию для каждой пары subviews.
Но, как оказывается, это значение не фиксировано.
📖 В этой статье объясняется, что на самом деле означает значение nil по умолчанию для параметра Spacing.
Кроме того, рассматриваются и другие аспекты, связанные с этим свойством.
😃 iOS Dev
Понимание принципов Spacing важно при работе со сложной версткой, а владение определенными техниками может помочь добиться эффектов, которые сложно реализовать традиционными методами.
Как можно видеть на гифке, когда используется nil, расстояние между Text и соседними элементами больше не равны.
Из документации Apple:
При установке nil расстояние должно быть дефолтным по умолчанию для каждой пары subviews.
Но, как оказывается, это значение не фиксировано.
📖 В этой статье объясняется, что на самом деле означает значение nil по умолчанию для параметра Spacing.
Кроме того, рассматриваются и другие аспекты, связанные с этим свойством.
Please open Telegram to view this post
VIEW IN TELEGRAM
Подготовка к собеседованиям: Swift Concurrency
Подготовил вопросы, которые помогут новичкам и опытным разработчикам, знакомым с концепциями параллелизма и заинтересованным в изучении синтаксиса и API Swift Concurrency.
Можно узнать что-то новое о приоритетах, выполнении нескольких задач одновременно и многом другом. Задачи постарался по максимуму покрыть примерами с кодом. Некоторые из вопросов уже добавлены в приложение.
✅ Доступ можно получить здесь или тут сразу на год.
Больше важных тем:
🔗 Блок вопросов: многопоточность (и бонус)
🔗 Собеседования: вопросы на понимание кода
🔗 DispatchQueue: практические вопросы
😃 iOS Dev
Подготовил вопросы, которые помогут новичкам и опытным разработчикам, знакомым с концепциями параллелизма и заинтересованным в изучении синтаксиса и API Swift Concurrency.
Можно узнать что-то новое о приоритетах, выполнении нескольких задач одновременно и многом другом. Задачи постарался по максимуму покрыть примерами с кодом. Некоторые из вопросов уже добавлены в приложение.
Больше важных тем:
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как сделать иконку приложения анимированной?
Наверняка, многие могли задуматься и раньше, как избежать алерта при выборе альтернативной иконки.
Bryce Bostwick, разработчик, знакомый по великолепным постам о реверс-инжиниринге, попробовал покопать глубже, и написал большое исследование о том, как создать иллюзию анимации (на самом деле для этого нужно достаточно часто менять эти иконки).
📖 Почитать увлекательную статью можно здесь (и рекомендую посмотреть остальные статьи блога).
📺 В формате видео вот тут.
🛠 Демо-проект (посмотреть и попробовать повторить) доступен на github. Напоминаю про этот пост, если захотите выложить в стор.
✅ Больше крутых эффектов можно увидеть здесь или тут.
😃 iOS Dev
Наверняка, многие могли задуматься и раньше, как избежать алерта при выборе альтернативной иконки.
Bryce Bostwick, разработчик, знакомый по великолепным постам о реверс-инжиниринге, попробовал покопать глубже, и написал большое исследование о том, как создать иллюзию анимации (на самом деле для этого нужно достаточно часто менять эти иконки).
📖 Почитать увлекательную статью можно здесь (и рекомендую посмотреть остальные статьи блога).
📺 В формате видео вот тут.
🛠 Демо-проект (посмотреть и попробовать повторить) доступен на github. Напоминаю про этот пост, если захотите выложить в стор.
Please open Telegram to view this post
VIEW IN TELEGRAM
Объяснение использования
Если включить -strict-concurrency для своих существующих проектов, то, вероятнее всего, при первой компиляции проекта Xcode выдаст множество предупреждений и/или ошибок.
Этого можно избежать с использованием @preconcurrency, можно использовать для:
📼 functions
📼 types
📼 protocols
📼 imports
С помощью
Это отличный способ начать постепенно внедрять строгий параллелизм по мере приближения выпуска Swift 6.
📖 В этом посте рассмотрены примеры использования и ошибки, которые могут встретиться.
😃 iOS Dev
@preconcurrency
в SwiftЕсли включить -strict-concurrency для своих существующих проектов, то, вероятнее всего, при первой компиляции проекта Xcode выдаст множество предупреждений и/или ошибок.
Этого можно избежать с использованием @preconcurrency, можно использовать для:
С помощью
@preconcurrency
появляется возможность импортировать старые модули в новый код. Это отличный способ начать постепенно внедрять строгий параллелизм по мере приближения выпуска Swift 6.
📖 В этом посте рассмотрены примеры использования и ошибки, которые могут встретиться.
Please open Telegram to view this post
VIEW IN TELEGRAM
Настраиваемая кнопка с разными состояниями в SwiftUI
Конечно, задача мобильных разработчиков далеко не только в покраске кнопок, но знать несколько подходов и обладать арсеналом таких навыков необходимо.
SwiftUI в несколько раз упрощает создание переиспользуемой кнопки (и добавление конфигов).
📖 Вот тут можно увидеть подходы к созданию такого элемента на реальных примерах.
😃 iOS Dev
Конечно, задача мобильных разработчиков далеко не только в покраске кнопок, но знать несколько подходов и обладать арсеналом таких навыков необходимо.
SwiftUI в несколько раз упрощает создание переиспользуемой кнопки (и добавление конфигов).
📖 Вот тут можно увидеть подходы к созданию такого элемента на реальных примерах.
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS Dev
Какие темы обязательно должны быть в первой версии?
Anonymous Poll
61%
Многопоточность
43%
Память
29%
Алгоритмы (сложность, примеры)
44%
Архитектуры
30%
Код (поиск ошибок и т.д.)
33%
Компилятор (особенности, оптимизации, терминология)
Протоколы в iOS: назначение и примеры
Даже при частом использовании протоколов начинающие разработчики могут не знать все особенности.
Например,
📖 В этой статье разбираются популярные протоколы на примерах кода.
🧠 Ах да, кстати, приложение уже в тестфлайте и вы можете получить ранний доступ.
Кстати, проголосовавшие в опросе будут приятно удивлены списку тем внутри.
😃 iOS Dev
Даже при частом использовании протоколов начинающие разработчики могут не знать все особенности.
Например,
Identifiable
постоянно нужен в SwiftUI, но почему он обычно применяется для списков? Или CustomStringConvertible
, который вполне подойдёт для более удобного дебага наших моделей.📖 В этой статье разбираются популярные протоколы на примерах кода.
Кстати, проголосовавшие в опросе будут приятно удивлены списку тем внутри.
Please open Telegram to view this post
VIEW IN TELEGRAM
The Composable Architecture: часто задаваемые вопросы
Создатели компонуемой архитектуры (или же TCA) собрали ответы на часто задаваемые вопросы, и развеяли несколько мифов (в том числе и о минусах):
🔗 Следует ли использовать TCA для всех типов приложений?
🔗 Идет ли TCA вразрез со SwiftUI?
🔗 Не является ли ведение отдельного перечисления «действий» лишней работой?
🔗 Являются ли функции TCA неэффективными, потому что все состояние приложения хранится в одном массивном типе?
🔗 Нужно ли быть знакомым с «функциональным программированием», чтобы использовать TCA?
📖 Другие (не менее важные) вопросы создатели архитектуры также рассмотрели в своём блоге.
✅ Узнать больше про архитектуры можно в этом посте.
😃 iOS Dev
Создатели компонуемой архитектуры (или же TCA) собрали ответы на часто задаваемые вопросы, и развеяли несколько мифов (в том числе и о минусах):
📖 Другие (не менее важные) вопросы создатели архитектуры также рассмотрели в своём блоге.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос из приложения iOS IQ
🐱 Попробуйте догадаться, какая временная сложность у алгоритма для решения задачи «Ханойские башни».
Это пример из приложения, доступного на бусти (кстати, есть хардкор-режим для настоящих профессионалов).
✅ Уже сейчас можно попробовать возглавить таблицу лидеров.
😃 iOS Dev
Это пример из приложения, доступного на бусти (кстати, есть хардкор-режим для настоящих профессионалов).
Please open Telegram to view this post
VIEW IN TELEGRAM
Как справиться с секцией на написание кода?
Чтобы оценить кандидата, компании используют одну, либо сразу две итерации:
1️⃣ Лайв-кодинг. Нужно решить техническую задачу перед интервьюерами (от 0.5 до 1.5 часов).
2️⃣ Тестовое задание. Чаще всего на срок от одного-двух дней (иногда неделя).
📖 Вот тут можно ознакомиться с некоторыми полезными советами про прохождению этой секции. Среди них:
🔘 Прочтите условие несколько раз. Как известно в условии вопроса часто половина решения (особенно касается лайв-кодинга).
🔘 Разделите техническую задачу на следующие темы: обязательные требования и дополнительные требования.
🔘 Выпишите вопросы. Уточните их у интервьюера.
🔘 Убедитесь, можно ли юзать сторонние либы перед тем, как их добавлять.
При подготовке также важно определиться, какой именно архитектурный паттерн вам нужен.
✅ Другие советы и задачи можно найти вот тут.
😃 iOS Dev
Чтобы оценить кандидата, компании используют одну, либо сразу две итерации:
1️⃣ Лайв-кодинг. Нужно решить техническую задачу перед интервьюерами (от 0.5 до 1.5 часов).
2️⃣ Тестовое задание. Чаще всего на срок от одного-двух дней (иногда неделя).
📖 Вот тут можно ознакомиться с некоторыми полезными советами про прохождению этой секции. Среди них:
🔘 Прочтите условие несколько раз. Как известно в условии вопроса часто половина решения (особенно касается лайв-кодинга).
🔘 Разделите техническую задачу на следующие темы: обязательные требования и дополнительные требования.
🔘 Выпишите вопросы. Уточните их у интервьюера.
🔘 Убедитесь, можно ли юзать сторонние либы перед тем, как их добавлять.
При подготовке также важно определиться, какой именно архитектурный паттерн вам нужен.
Please open Telegram to view this post
VIEW IN TELEGRAM
Алгоритмы: терминология и примеры
Для того, чтобы понять сложность алгоритма, иногда достаточно просто использовать свою интуицию (не нужно слишком глубоких математических знаний).
Например, если код использует один цикл, в котором мы проходим по всем n элементов входных данных, сложность O(n).
Если у нас есть два вложенных цикла, это O(n^2), и так далее.
📖 Конечно, в канале уже был пост про сложность алгоритмов.
Но бывают и далеко не самые очевидные моменты.
🧠 Пришло время новой секции в iOS IQ (добавлено две части, на теорию и на оценку кода). Есть и интерактивный формат в тестфлайте.
❤️ Получить доступ можно сразу на год.
🐱 А в честь WWDC со скидкой 24% - вот тут (ссылка работает ровно неделю).
😃 iOS IQ
Для того, чтобы понять сложность алгоритма, иногда достаточно просто использовать свою интуицию (не нужно слишком глубоких математических знаний).
Например, если код использует один цикл, в котором мы проходим по всем n элементов входных данных, сложность O(n).
Если у нас есть два вложенных цикла, это O(n^2), и так далее.
📖 Конечно, в канале уже был пост про сложность алгоритмов.
Но бывают и далеко не самые очевидные моменты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Начали с показа обновлений Vision OS 2
Из крутых фич, теперь технологии позволят создавать из 2D фото с погружением.
Пообещали упростить работу с технологиями, добавили новые API. Volumetric APIs, TabletopKit, Enterprise APIs.
Добавили 8 новых стран, где можно купить.
😃 iOS Dev
Из крутых фич, теперь технологии позволят создавать из 2D фото с погружением.
Пообещали упростить работу с технологиями, добавили новые API. Volumetric APIs, TabletopKit, Enterprise APIs.
Добавили 8 новых стран, где можно купить.
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS 18
Расширили работу с иконками на домашнем экране (в андроиде уже тысячу лет?).
😎 Иконки можно красить, привет, tintColor!
😃 iOS Dev
Расширили работу с иконками на домашнем экране (в андроиде уже тысячу лет?).
Please open Telegram to view this post
VIEW IN TELEGRAM
Control Center
Пересмотрели функциональность. Можно добавлять виджеты, появилась возможность задавать новые элементы для своих приложений.
Для этого появится новый Control API.
😃 iOS Dev
Пересмотрели функциональность. Можно добавлять виджеты, появилась возможность задавать новые элементы для своих приложений.
Для этого появится новый Control API.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Wallet
💰 Tap to cash! - фича для оплаты, просто направив телефон друг на друга.
Где будет работать, Крейг? Где?!
😃 iOS Dev
Где будет работать, Крейг? Где?!
Please open Telegram to view this post
VIEW IN TELEGRAM
Редизайн приложения Photos!
Фильтр по скриншотам (очень полезная фича при разработке), новый интерфейс для сортировки по времени, ввели Collections - можно искать фото по темам.
Коллекции можно сортировать, пинить и не только.
Добавили карусель с лучшими моментами и Featured Photos (всё можно кастомизировать).
😃 iOS Dev
Фильтр по скриншотам (очень полезная фича при разработке), новый интерфейс для сортировки по времени, ввели Collections - можно искать фото по темам.
Коллекции можно сортировать, пинить и не только.
Добавили карусель с лучшими моментами и Featured Photos (всё можно кастомизировать).
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM