XCSnippetsApp – приложение с подборкой сниппетов кода
Приложение помогает искать и использовать в Xcode 200+ различных сниппетов от коммьюнити. Приложение автоматически обновляется, подкачивая новые сниппеты из репозиториев с их подборками.
Приложение помогает искать и использовать в Xcode 200+ различных сниппетов от коммьюнити. Приложение автоматически обновляется, подкачивая новые сниппеты из репозиториев с их подборками.
🤡33🔥20👎1
📆Каждый день я стараюсь публиковать несколько классных и полезных материалов про iOS разработку. За месяц их набегает много десятков, и ориентироваться в них не всегда легко. Чтобы облегчить вам задачу, я хочу попытаться снова начать публиковать ежемесячные дайджесты лучших материалов по реакциям читателей.
🎨Разработка UI
Сториборды в watchOS депрекейтнули
Разбор Navigation API в SwiftUI
Анимированное перетекание иконок из одной формы в другую
Бэкпорты новых фичей UIKit и SwiftUI
Реализация DynamicStack на SwiftUI
Как правильно скруглять края у вьюшек
🧱Системные фреймворки
Примеры реализаций всех графиков с WWDC на Swift Charts
URL.documentsDirectory для доступа к папке Documents приложения
Как определить локацию пользователя по номеру телефона
Изменения в dyld в iOS 16 и их влияние на перфоманс
Рекомендации Apple по перфомансу
🦅Swift
Новый API для работы со временем в Swift
Сравнение трех подходов к многопоточному коду
Все Swift анонсы с WWDC
🗜Инструменты и сервисы
Каталог всех SwiftUI компонентов и их свойств
Hang Detection в iOS 16
Вышел App Store Connect 2.0
🕵️♀️Кстати, у меня есть еще один канал, на который стоит подписаться тем, кто хочет расти в управление командой – TechLead Good Reads. Держите несколько интересных материалов оттуда на закуску!
🌟Как улучшить коммуникацию, используя STAR метод
❤️Радикальная искренность, и как она помогает тимлиду
🤲Как научить разработчиков просить о помощи
🌏Огромный гайд по тому, как управлять remote командой
📚Рекомендации тимлидских книг
Если дайджест вам понравился – ставьте ❤️, 👍 и 🔥. Благодаря этому я пойму, что собирал его не зря! А если у вас будут конкретные предложения по его улучшению – смело пишите в комментарии!
#digest
🎨Разработка UI
Сториборды в watchOS депрекейтнули
Разбор Navigation API в SwiftUI
Анимированное перетекание иконок из одной формы в другую
Бэкпорты новых фичей UIKit и SwiftUI
Реализация DynamicStack на SwiftUI
Как правильно скруглять края у вьюшек
🧱Системные фреймворки
Примеры реализаций всех графиков с WWDC на Swift Charts
URL.documentsDirectory для доступа к папке Documents приложения
Как определить локацию пользователя по номеру телефона
Изменения в dyld в iOS 16 и их влияние на перфоманс
Рекомендации Apple по перфомансу
🦅Swift
Новый API для работы со временем в Swift
Сравнение трех подходов к многопоточному коду
Все Swift анонсы с WWDC
🗜Инструменты и сервисы
Каталог всех SwiftUI компонентов и их свойств
Hang Detection в iOS 16
Вышел App Store Connect 2.0
🕵️♀️Кстати, у меня есть еще один канал, на который стоит подписаться тем, кто хочет расти в управление командой – TechLead Good Reads. Держите несколько интересных материалов оттуда на закуску!
🌟Как улучшить коммуникацию, используя STAR метод
❤️Радикальная искренность, и как она помогает тимлиду
🤲Как научить разработчиков просить о помощи
🌏Огромный гайд по тому, как управлять remote командой
📚Рекомендации тимлидских книг
Если дайджест вам понравился – ставьте ❤️, 👍 и 🔥. Благодаря этому я пойму, что собирал его не зря! А если у вас будут конкретные предложения по его улучшению – смело пишите в комментарии!
#digest
Telegram
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
Сториборды официально депрекейтнули. Правда, только для watchOS, но это только первый шаг!
🔥113👍18❤8😱1
Принцип работы ViewThatFits в SwiftUI
-
- Порядок дочерних вьюшек важен – подставляется первая из списка вью подходящего размера
-
ViewThatFits заменяет собой использование GeometryReader
- ViewThatFits измеряет доступное пространство и подставляет в него одну из дочерних вьюшек, которая подходит по размеру- Порядок дочерних вьюшек важен – подставляется первая из списка вью подходящего размера
🥰14👍11❤🔥2👎1
Live Activity доступны в Beta
В beta 4 версии iOS 16 подвезли Live Activities – виджеты, которые отображаются на Lock-скрине, и отображают информацию из вашего приложения в реальном времени. Для их разработки можно использовать новый фреймворк ActivityKit.
Важно – Live Activities не попадут в стабильный релиз iOS 16, а докатятся в одном из следующих обновлений.
В beta 4 версии iOS 16 подвезли Live Activities – виджеты, которые отображаются на Lock-скрине, и отображают информацию из вашего приложения в реальном времени. Для их разработки можно использовать новый фреймворк ActivityKit.
Важно – Live Activities не попадут в стабильный релиз iOS 16, а докатятся в одном из следующих обновлений.
👍21
Релиз библиотеки Get 1.0
Get – аналог Alamofire, написанный с использованием async/await. Основные преимущества – в библиотеке сильно меньше кода, и есть много классных интеграций с инструментами вроде Pulse и CreateAPI.
Get – аналог Alamofire, написанный с использованием async/await. Основные преимущества – в библиотеке сильно меньше кода, и есть много классных интеграций с инструментами вроде Pulse и CreateAPI.
🤡55👍23🔥4👎2
Расширение функциональности UIViewController через паттерн Pluginable
На многих экранах требуется реализовывать одинаковую логику – обрабатывать клавиатуру, показывать ошибки, делать всякие штуки, связанные с жизненным циклом контроллера. В статье рассказывается, как завести базовый контроллер, который даст возможность расширения функциональности своих дочерних классов на основе плагинов.
На многих экранах требуется реализовывать одинаковую логику – обрабатывать клавиатуру, показывать ошибки, делать всякие штуки, связанные с жизненным циклом контроллера. В статье рассказывается, как завести базовый контроллер, который даст возможность расширения функциональности своих дочерних классов на основе плагинов.
🔥48👎23👍18🤔5😱1
Открытый воркшоп по Swift Charts
Я уже публиковал десяток статей про то, как работать со Swift Charts. Но самый лучший способ научиться чему-то – сходить на воркшоп эксперта с релевантным опытом, а затем повторить все задания самому. Подключайтесь 4 августа в 20:00 на вебинар Антона Марунько, и вкатитесь в красивые графики!
Вебинар является частью онлайн-курса «iOS Developer» от OTUS.
Я уже публиковал десяток статей про то, как работать со Swift Charts. Но самый лучший способ научиться чему-то – сходить на воркшоп эксперта с релевантным опытом, а затем повторить все задания самому. Подключайтесь 4 августа в 20:00 на вебинар Антона Марунько, и вкатитесь в красивые графики!
Вебинар является частью онлайн-курса «iOS Developer» от OTUS.
🤡21🔥5👎3❤1👍1😁1
iOSRef – подборка шпаргалок по iOS разработке
📱Особенности каждого девайса: разрешение, тип экрана, железо, доступные версии ОС
🛠Инструменты: HEX to UIColor, NSDateFormatter, Auto Layout helper
🔗Ссылки на различные гайдлайны
📱Особенности каждого девайса: разрешение, тип экрана, железо, доступные версии ОС
🛠Инструменты: HEX to UIColor, NSDateFormatter, Auto Layout helper
🔗Ссылки на различные гайдлайны
Iosref
iOS Ref
Quick reference tables, tools, and links for iOS developers. iOS Ref has iOS compatibility tables, a beautiful Swift cheatsheet, a hex code to UIColor converter, device screen resolution tables, and more.
👍30🔥6👎2❤1
Compile-time проверка URL
Если вам не нравится постоянно использовать
Если вам не нравится постоянно использовать
guard let
для проверки валидности URL, попробуйте этот Swift Package. Он проверяет валидность URL прямо во время компиляции.GitHub
GitHub - jhonatn/SwiftSafeURL: [DEPRECATED by Swift Macros and Xcode 15] Compile-time-checked URLs
[DEPRECATED by Swift Macros and Xcode 15] Compile-time-checked URLs - jhonatn/SwiftSafeURL
👎45👍6🤔2🤡2
Малоизвестные возможности цветовой палитры в Xcode
- Палитру можно вызывать не только через меню инструментов, но и через цветовые литералы прямо из кода
- Можно создавать свои палитры цветов и переиспользовать их между проектами
- Цветам в палитре можно задавать названия и использовать их как литералы
- Можно прямо в Xcode сгенерировать свою цветовую палитру на основе любого изображения
- Палитру можно вызывать не только через меню инструментов, но и через цветовые литералы прямо из кода
- Можно создавать свои палитры цветов и переиспользовать их между проектами
- Цветам в палитре можно задавать названия и использовать их как литералы
- Можно прямо в Xcode сгенерировать свою цветовую палитру на основе любого изображения
👍24🔥4❤🔥1
Как работать с типом Measurement в Swift Charts
Foundation предоставляет удобный тип для работы с любым типом измерений – Measurement. Но по умолчанию он пока что не работает со Swift Charts. В статье рассматривается несколько вариантов, как решить эту проблему.
Foundation предоставляет удобный тип для работы с любым типом измерений – Measurement. Но по умолчанию он пока что не работает со Swift Charts. В статье рассматривается несколько вариантов, как решить эту проблему.
👍1
TableView: reload vs reconfigure
Начиная с iOS 15 в UITableView и UICollectionView появился метод reconfigure. В отличие от reload он не пересоздает ячейку с нуля, а обновляет существующую. По ссылке можно прочитать детали про алгоритм его работы.
Начиная с iOS 15 в UITableView и UICollectionView появился метод reconfigure. В отличие от reload он не пересоздает ячейку с нуля, а обновляет существующую. По ссылке можно прочитать детали про алгоритм его работы.
Twitter
iOS 15 introduces a new way for you to conveniently update content displayed in existing cells in UICollectionView and UITableView: reconfigure.
When and why should you use reconfigure? How is it different from reloading an item or row?
Let’s dive in with…
When and why should you use reconfigure? How is it different from reloading an item or row?
Let’s dive in with…
👍51🌭6🔥5🤡4🤔3🤬1
Советы по тестированию кастомных Codable инициализаторов
- Кастомную сериализацию нужно тестировать так же, как и другую бизнес-логику
- Кастомный codable init лучше объявлять в экстеншне, чтобы не потерять memberwise init, генерируемый компилятором
- Проверочный объект создаете вручную через memberwise init, а проверяемый – на основе JSON
- Чтобы получить полезный аутпут теста о том, что конкретно отличается в объектах, попробуйте библиотеку Difference
- Кастомную сериализацию нужно тестировать так же, как и другую бизнес-логику
- Кастомный codable init лучше объявлять в экстеншне, чтобы не потерять memberwise init, генерируемый компилятором
- Проверочный объект создаете вручную через memberwise init, а проверяемый – на основе JSON
- Чтобы получить полезный аутпут теста о том, что конкретно отличается в объектах, попробуйте библиотеку Difference
👍19🔥2👎1
Как включить Stage Manager в iPad симуляторе
Стандартный ответ на вопрос – внести правки в .GlobalPreferences.plist на симуляторе, что не очень удобно. Но есть вариант попроще:
Стандартный ответ на вопрос – внести правки в .GlobalPreferences.plist на симуляторе, что не очень удобно. Но есть вариант попроще:
xcrun simctl spawn booted defaults write -g SBChamoisWindowingEnabled -bool true.
👍3🕊2❤1
Loco – линтер для Localization.strings
Линтер умеет делать следующие проверки:
- Непереведенные строки в Swift коде
- Пропущенные ключи в каких-то из локализаций
- Ключи-дубликаты
- Неиспользуемые ключи
Линтер умеет делать следующие проверки:
- Непереведенные строки в Swift коде
- Пропущенные ключи в каких-то из локализаций
- Ключи-дубликаты
- Неиспользуемые ключи
🔥98👍12👎2
Подробный пост про Grids в SwiftUI
👀Сравнение разных типов контейнеров
☎️Разбор настройки Spacing, Alignment, Width/Height
✡️Реализация шестиугольных ячеек
💻Семпловый проект Grid Trainer, в котором можно поиграться самостоятельно со всеми настройками
👀Сравнение разных типов контейнеров
☎️Разбор настройки Spacing, Alignment, Width/Height
✡️Реализация шестиугольных ячеек
💻Семпловый проект Grid Trainer, в котором можно поиграться самостоятельно со всеми настройками
🔥30
Когда вы интегрируете рекламные SDK в приложение, готовьтесь: будет много проблем. Не всегда очевидных. Но всегда сильно раздражающих.
Ребята из FUNCORP подготовили список таких «граблей» — а заодно объяснили, как работает реклама в приложениях под капотом. Бонус: в статье есть код, который решает самые бесячие проблемы.
Читать здесь.
Ребята из FUNCORP подготовили список таких «граблей» — а заодно объяснили, как работает реклама в приложениях под капотом. Бонус: в статье есть код, который решает самые бесячие проблемы.
Читать здесь.
👍18👎1
Лайфхак для тестирования готовности приложения к интернационализации строк
Если вы укажете
Есть еще несколько способов включить этот режим:
- Scheme Editor -> Application Language -> Double Length Pseudolanguage
- Interface Builder -> Preview Assistant Editor -> Double Length
Если вы укажете
NSDoubleLocalizedStrings
в качестве Launch Argument, все строки в приложении автоматически продублируются. Благодаря этому можно посмотреть, как приложение справляется с более длинными строками.Есть еще несколько способов включить этот режим:
- Scheme Editor -> Application Language -> Double Length Pseudolanguage
- Interface Builder -> Preview Assistant Editor -> Double Length
🔥69👍13🤡7🤯3
This media is not supported in your browser
VIEW IN TELEGRAM
Туториал по реализации клона Apple Calculator на SwiftUI
- Разбор того, как правильно декомпозировать калькулятор на View слое
- Поэтапная реализация всех компонентов калькулятора
- Исходники на GitHub
- Разбор того, как правильно декомпозировать калькулятор на View слое
- Поэтапная реализация всех компонентов калькулятора
- Исходники на GitHub
👍21😁4🤡4🔥1