bootg.com »
United States »
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT » Telegram Web
Variadic generics в Swift
Одна из следующих больших языковых фичей, которые появятся в Swift – variadic generics. С ее помощью можно будет определять дженерики с переменным количеством параметров.
Пример ситуации, где такая фича может быть полезна – оператор сравнения для tuples, который приходится перегружать по многу раз для того, чтобы описать его поведение с разным количеством параметров.
Обсудить пропозал и почитать чужие комментарии можно здесь.
Перевод на русский язык
Одна из следующих больших языковых фичей, которые появятся в Swift – variadic generics. С ее помощью можно будет определять дженерики с переменным количеством параметров.
Пример ситуации, где такая фича может быть полезна – оператор сравнения для tuples, который приходится перегружать по многу раз для того, чтобы описать его поведение с разным количеством параметров.
Обсудить пропозал и почитать чужие комментарии можно здесь.
Перевод на русский язык
Почему Rosetta 2 работает так быстро
Хардкорная статья с анализом устройства Rosetta 2 и сравнением сгенерированного ей кода с оригиналом.
Перевод на русский язык
Хардкорная статья с анализом устройства Rosetta 2 и сравнением сгенерированного ей кода с оригиналом.
Перевод на русский язык
Quick Navigation в DocC
- DocC – инструмент от Apple для генерации документации и спек для пользовательских библиотек в виде HTML.
- Скоро в DocC появится Quick Search, аналог похожим фичам в IDE.
- Quick Search будет уметь искать символы, похожие на пользовательский ввод, сортировать результаты по релевантности и работать с шорткатами.
- DocC – инструмент от Apple для генерации документации и спек для пользовательских библиотек в виде HTML.
- Скоро в DocC появится Quick Search, аналог похожим фичам в IDE.
- Quick Search будет уметь искать символы, похожие на пользовательский ввод, сортировать результаты по релевантности и работать с шорткатами.
Benchmark – SwiftPM плагин для запуска бенчмарков
- Работает как локально, так и на CI.
- Умеет замерять кучу разных метрик по перцентилям.
- Работает как локально, так и на CI.
- Умеет замерять кучу разных метрик по перцентилям.
Малоизвестные фичи VSCode extension для Swift
- Быстрая подмена любого пакета на его локальную версию.
- Куча полезных команд: запуск скриптов на Swift, запуск и дебаг сниппетов, выбор нужной версии Xcode.
- Автозаполнение комментариев по шаблону.
- Запуск Swift Command Plugins в виде тасок.
Перевод на русский язык
- Быстрая подмена любого пакета на его локальную версию.
- Куча полезных команд: запуск скриптов на Swift, запуск и дебаг сниппетов, выбор нужной версии Xcode.
- Автозаполнение комментариев по шаблону.
- Запуск Swift Command Plugins в виде тасок.
Перевод на русский язык
Список всех активных пропозалов в Swift на одной странице
На сайте Swift появилась отдельная страница, на которой можно смотреть все текущие активные пропозалы в язык с их статусом, датой следующих изменений и авторами.
На сайте Swift появилась отдельная страница, на которой можно смотреть все текущие активные пропозалы в язык с их статусом, датой следующих изменений и авторами.
Планы Swift на 2023 год
💻Основные направления развития языка:
- Доработка акторной модели многопоточности
- Variadic generics
- Возможности для ручного управления памятью в стиле Rust
- Макросы
- Интероп с С++
🛠️Другие интересные инсайты:
- Создание реестра SwiftPM пакетов, который заменит собой прямую загрузку пакетов с GitHub
- Много планов по улучшению DocC, инструмента для генерации документации
- Фокус Swift на сервере сейчас в основном на переходе всех проектов на Swift Concurrency и стандартизации подходов
Перевод на русский язык
💻Основные направления развития языка:
- Доработка акторной модели многопоточности
- Variadic generics
- Возможности для ручного управления памятью в стиле Rust
- Макросы
- Интероп с С++
🛠️Другие интересные инсайты:
- Создание реестра SwiftPM пакетов, который заменит собой прямую загрузку пакетов с GitHub
- Много планов по улучшению DocC, инструмента для генерации документации
- Фокус Swift на сервере сейчас в основном на переходе всех проектов на Swift Concurrency и стандартизации подходов
Перевод на русский язык
Как запинить Text Field к нижнему краю экрана
Если вы хотите запинить Text Field к нижнему краю экрана, причем таким образом, чтобы он двигался с появлением клавиатуры, используйте модификатор safeAreaInset(edge: .bottom).
Если вы хотите запинить Text Field к нижнему краю экрана, причем таким образом, чтобы он двигался с появлением клавиатуры, используйте модификатор safeAreaInset(edge: .bottom).
Xcode 14 может увеличить размер приложений на 70 процентов
- Приложения, собранные Xcode 14, резко прибавляют в размере, вплоть до 70%.
- Причина в отключении биткода. Из-за этого при загрузке приложений в App Store из них перестала вырезаться лишние метаданные.
- В статье рассказывается, как можно вырезать лишние метаданные вручную.
Перевод на русский язык
- Приложения, собранные Xcode 14, резко прибавляют в размере, вплоть до 70%.
- Причина в отключении биткода. Из-за этого при загрузке приложений в App Store из них перестала вырезаться лишние метаданные.
- В статье рассказывается, как можно вырезать лишние метаданные вручную.
Перевод на русский язык
Как Swift Concurrency предохраняет разработчика от переизбытка тредов
- Если приложение создает одновременно слишком много тредов, это может повлечь за собой кучу проблем с производительностью. Слишком много – в несколько раз больше, чем ядер в CPU.
- В статье разбираются механизмы Swift Concurrency, которые не дают разработчику совершить эту ошибку, и проводится несколько тестов, чтобы определить границы этой защиты.
Перевод на русский язык
- Если приложение создает одновременно слишком много тредов, это может повлечь за собой кучу проблем с производительностью. Слишком много – в несколько раз больше, чем ядер в CPU.
- В статье разбираются механизмы Swift Concurrency, которые не дают разработчику совершить эту ошибку, и проводится несколько тестов, чтобы определить границы этой защиты.
Перевод на русский язык
💰Айосные скидки на Черную Пятницу
Proxyman
Что: proxy-клиент для macOS, как Charles, только модный
Скидка: 30% по промокоду PROXYMAN_BLACK_FRIDAY_2022
Git Tower
Что: Git-клиент для тех, кто любит работать мышкой
Скидка: 50% скидка для всех
LeetCode Premium
Что: Премиум подписка на главный сервис изучения алгосов
Скидка: 20% для всех
Hacking with Swift
Что: Книги и курсы от Пола Хадсона
Скидка: до 50%
Podlodka Crew
Что: записи сезонов всех конференций
Скидка: до 40%
Пост будет обновляться, делитесь находками в комментариях!
Proxyman
Что: proxy-клиент для macOS, как Charles, только модный
Скидка: 30% по промокоду PROXYMAN_BLACK_FRIDAY_2022
Git Tower
Что: Git-клиент для тех, кто любит работать мышкой
Скидка: 50% скидка для всех
LeetCode Premium
Что: Премиум подписка на главный сервис изучения алгосов
Скидка: 20% для всех
Hacking with Swift
Что: Книги и курсы от Пола Хадсона
Скидка: до 50%
Podlodka Crew
Что: записи сезонов всех конференций
Скидка: до 40%
Пост будет обновляться, делитесь находками в комментариях!
Proxyman
Proxyman · Debug, intercept & mock HTTP with Proxyman
Proxyman is a native, high-performance macOS app, which enables developers to capture, inspect, and manipulate HTTP/HTTPS requests/responses with ease. Support iOS and Android Simulator and Physical Device.
Подборка советов по дебагу
- В .lldbinit можно вынести хелперы, которые вы будете использовать между проектами.
- Команда frame variable или ее алиас v заменяют po и работают быстрее.
- Команда watchpoint позволяет подписаться на изменение переменной.
Перевод на русский язык
- В .lldbinit можно вынести хелперы, которые вы будете использовать между проектами.
- Команда frame variable или ее алиас v заменяют po и работают быстрее.
- Команда watchpoint позволяет подписаться на изменение переменной.
Перевод на русский язык
Обзор новых API для навигации в SwiftUI
Неплохой обзор двух новых навигационных API: NavigationStack и NavigationSplitView. Можно читать статью, а можно сразу посмотреть код примеров на GitHub.
Перевод на русский язык
Неплохой обзор двух новых навигационных API: NavigationStack и NavigationSplitView. Можно читать статью, а можно сразу посмотреть код примеров на GitHub.
Перевод на русский язык
Реализация flow layout в SwiftUI с помощью протокола Layout
- Новый протокол Layout позволяет создавать максимально кастомный UI.
- Протокол требует реализации двух функций: sizeThatFits, которая расчитывает лэйаут, и placeSubviews, которая размещает дочерние вьюшки.
Перевод на русский язык
- Новый протокол Layout позволяет создавать максимально кастомный UI.
- Протокол требует реализации двух функций: sizeThatFits, которая расчитывает лэйаут, и placeSubviews, которая размещает дочерние вьюшки.
Перевод на русский язык
Воркшоп по работе с CoreData для тех, кто раньше этого не делал
Организация хранения данных сложнее обычного кеширования результатов запросов – не самая частотная задача в мобильной разработке. Но если вы с ней столкнулись – лучшим инструментом все еще остается CoreData. Про нее важно понимать один факт – это не просто ORM, а целый фреймворк для хранения и управления объектным графом вашей модели данных.
Исходя из данных нашего недавнего опроса, с CoreData так или иначе имело опыт ~50% подписчиков. Так вот, если вы входите во вторые 50%, подключайтесь к открытому уроку ребят из Otus про CoreData и нюансы работы с ней. Вы погрузитесь в теорию и попробуете сразу же применить все знания на практике, написав небольшое приложение со слоем хранения данных. А потом, кто знает, оно и в ваш пет-проект сможет перерасти!
Дата: 25 ноября, 20:00 по Москве
👉Подключайтесь
Организация хранения данных сложнее обычного кеширования результатов запросов – не самая частотная задача в мобильной разработке. Но если вы с ней столкнулись – лучшим инструментом все еще остается CoreData. Про нее важно понимать один факт – это не просто ORM, а целый фреймворк для хранения и управления объектным графом вашей модели данных.
Исходя из данных нашего недавнего опроса, с CoreData так или иначе имело опыт ~50% подписчиков. Так вот, если вы входите во вторые 50%, подключайтесь к открытому уроку ребят из Otus про CoreData и нюансы работы с ней. Вы погрузитесь в теорию и попробуете сразу же применить все знания на практике, написав небольшое приложение со слоем хранения данных. А потом, кто знает, оно и в ваш пет-проект сможет перерасти!
Дата: 25 ноября, 20:00 по Москве
👉Подключайтесь
swiftenv – менеджер версий Swift
- swiftenv – консольная утилита, которая позволяет удобно управлять установленными версиями Swift.
- С ее помощью можно как установить глобальную версию Swift, используемую всеми проектами, так и настроить ее локально для отдельных проектов.
- swiftenv – консольная утилита, которая позволяет удобно управлять установленными версиями Swift.
- С ее помощью можно как установить глобальную версию Swift, используемую всеми проектами, так и настроить ее локально для отдельных проектов.
Советы от дизайнеров Apple
По мотивам недавно прошедшей сессии Ask Apple команда дизайнеров Apple подбила свои ответы на часто задаваемые вопросы.
🤔Как понять, когда фичей в приложении стало слишком много, и пора упрощать интерфейс
📱Нормально ли ограничивать возможные ориентации приложения
⭐️В каких случаях можно отказаться от подписей элементов меню ТабБара
👀Нормально ли прятать ТабБар при навигации
🌈Каких гайдлайнов придерживаться при работе с цветами и тенями
Перевод на русский язык
По мотивам недавно прошедшей сессии Ask Apple команда дизайнеров Apple подбила свои ответы на часто задаваемые вопросы.
🤔Как понять, когда фичей в приложении стало слишком много, и пора упрощать интерфейс
📱Нормально ли ограничивать возможные ориентации приложения
⭐️В каких случаях можно отказаться от подписей элементов меню ТабБара
👀Нормально ли прятать ТабБар при навигации
🌈Каких гайдлайнов придерживаться при работе с цветами и тенями
Перевод на русский язык
📱iOS-разработчик ВК Видео (senior)
VK Видео — это видеоплатформа и стриминговый сервис. В компании будут доступны авторские инструменты по созданию контента для блогеров (видеоредактор, камера, сервис монетизации), а для их пользователей — уникальный контент. В планах стать площадкой №1 для размещения контента в Рунете.
🎯Задачи:
📌Разрабатывать приложение ВКонтакте (продукт видео) под IOS;
📌Создавать новый функционал продукта, реализовывать UX-эксперименты;
📌Следить за работоспособностью сервиса и устранять технический долг;
📌Взаимодействовать с командой менеджеров, дизайнеров, аналитиков и тестировщиков;
📌Принимать участие в планировании, обсуждении проектов.
🔥Требования:
💎Отличное знание Objective-С и Swift;
💎Хорошие знания системных фреймворков iOS и гайдлайны Apple;
💎Знание классических алгоритмов и структуры данных;
💎Навыки профилирования;
💎Опыт работы с аудио или видео на мобильных устройствах (желательно);
💎Активное участие в код-ревью.
🛠 Стек:
⚙️ Swift, Objective-С;
Минимальная версия iOS 14.
🤩Почему у них круто:
✔️Экспертное комьюнити IOS;
✔️ДМС для сотрудника и его детей с первого месяца работы;
✔️100%-ная оплата больничного в течение 30 дней;
✔️Компенсация занятий спортом;
✔️Компенсация питания.
И многое другое, скорее пиши в рекрутеру - @lona736
Ссылка на вакансию: https://team.vk.company/vacancy/26519/
VK Видео — это видеоплатформа и стриминговый сервис. В компании будут доступны авторские инструменты по созданию контента для блогеров (видеоредактор, камера, сервис монетизации), а для их пользователей — уникальный контент. В планах стать площадкой №1 для размещения контента в Рунете.
🎯Задачи:
📌Разрабатывать приложение ВКонтакте (продукт видео) под IOS;
📌Создавать новый функционал продукта, реализовывать UX-эксперименты;
📌Следить за работоспособностью сервиса и устранять технический долг;
📌Взаимодействовать с командой менеджеров, дизайнеров, аналитиков и тестировщиков;
📌Принимать участие в планировании, обсуждении проектов.
🔥Требования:
💎Отличное знание Objective-С и Swift;
💎Хорошие знания системных фреймворков iOS и гайдлайны Apple;
💎Знание классических алгоритмов и структуры данных;
💎Навыки профилирования;
💎Опыт работы с аудио или видео на мобильных устройствах (желательно);
💎Активное участие в код-ревью.
🛠 Стек:
⚙️ Swift, Objective-С;
Минимальная версия iOS 14.
🤩Почему у них круто:
✔️Экспертное комьюнити IOS;
✔️ДМС для сотрудника и его детей с первого месяца работы;
✔️100%-ная оплата больничного в течение 30 дней;
✔️Компенсация занятий спортом;
✔️Компенсация питания.
И многое другое, скорее пиши в рекрутеру - @lona736
Ссылка на вакансию: https://team.vk.company/vacancy/26519/
Правила работы с MainActor
В одной из сессий на WWDC 2022 говорилось, что компилятор гарантирует выполнение кода с атрибутом MainActor на главном потоке. На самом деле, это не так. Все осложняется тем, что нормальной документации пока тоже не завезли, и единственный доступный источник информации – пропозалы про акторы.
Автор статьи пробует задокументировать известную ему информацию про то, как работает атрибут MainActor, и в каких случаях он игнорируется.
В одной из сессий на WWDC 2022 говорилось, что компилятор гарантирует выполнение кода с атрибутом MainActor на главном потоке. На самом деле, это не так. Все осложняется тем, что нормальной документации пока тоже не завезли, и единственный доступный источник информации – пропозалы про акторы.
Автор статьи пробует задокументировать известную ему информацию про то, как работает атрибут MainActor, и в каких случаях он игнорируется.
Симулятор HomeKit устройств
- У Apple есть отдельное приложение, которое позволяет симулировать практически любое умное устройство: лампочки, сенсоры, камеры, дверные замки.
- Приложение HomeKit Accessory Simulator входит в состав Additional Tools for Xcode.
- Симулятор позволяет настраивать различные характеристики устройств. Например, для лампочки можно подкрутить цветовую температуру и яркость.
Перевод на русский язык
- У Apple есть отдельное приложение, которое позволяет симулировать практически любое умное устройство: лампочки, сенсоры, камеры, дверные замки.
- Приложение HomeKit Accessory Simulator входит в состав Additional Tools for Xcode.
- Симулятор позволяет настраивать различные характеристики устройств. Например, для лампочки можно подкрутить цветовую температуру и яркость.
Перевод на русский язык