Каждый раз, когда я вижу в MR очередную реализацию "более эффективной" коллекции, хочется бить по рукам. Даже если есть практическая необходимость, уже есть официальный пакет с открытым исходным кодом для расширения набора коллекций Swift. Цель проекта - служить испытательным полигоном для новых структур данных, улучшить дизайн и исправить ошибки до официального включения в библиотеку. Например, есть реализации для двусторонней очереди (
Deque
), упорядоченного набора (OrderedSet
), упорядоченного словаря (OrderedDictionary
), BitSet
, BitArray
, Heap
, TreeSet
и TreeDictionary
. Особенности коллекций:
Deque:
• Упорядоченная коллекция с произвольным доступом и изменяемостью
• Поддерживает эффективные вставки и удаления с обоих концов
• Обеспечивает удобные операции по вставке и выталкиванию элементов
OrderedSet:
• Гибрид массива и набора
• Поддерживает уникальные элементы и эффективные тесты на принадлежность
• Использует массив для хранения элементов и хэш-таблицу для индексов
OrderedDictionary:
• Альтернатива словарю для эффективного доступа к элементам в различных позициях
• Вставляет новые пары ключ-значение за постоянное время
• Обеспечивает произвольный доступ к парам ключ-значение
#swift #collections
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
У вас бывает желание сделать простой статический сайт? Иногда хочется быстро накидать, но не хочется напрямую все верстать руками. Кажется, я нашел себе нового фаворита взамен Hugo. Сначала я был максимально скептичен, обычный POC по DSL Swift <-> HTML, подобные решения уже были.
Ignite - это статический конструктор сайтов для разработчиков любящих Swift. Он предлагет выразительный и мощный API для создания красивых веб-сайтов. Ignite не пытается преобразовать пользовательский код Swift в HTML или просто преобразовать HTML-теги в Swift-код. Вместо этого он нацелен на использование синтаксиса, подобного SwiftUI, чтобы помочь вам создавать отличные веб-сайты, даже если вы не разбираетесь в HTML или CSS. Поддерживаются все основные концепты современного веба:
Все это можно вживую посмотреть на демо странице. Что приятно, этот продукт используется для hackingwithswift а значит не только активно поддерживается, но и соответствует требованиям разработчиков. Чем вам не pet-проект на выходные
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
Врываемся в рабочую неделю с супер новостями, Apple выпускает Swift Build в опенсорс! Наконец, можно взглянуть на внутренние процессы сборки swift, включая поддержку Linux и Windows. Я не стал торопиться с публикацией на выходных и потратил немного времени чтобы понять что мы получили и что это значит для будущего Swift.
Cистема сборки отвечает за преобразование входных данных (исходников, ассетов, конфигураций) в выходные артефакты (библиотеку, утилиту, приложение). Swift Build отвечает за этап планирования сборки и за саму сборку внутри Swift Package Manager и Xcode. Работает поверх llbuild и интегрирован с компилятором Swift.
Чем отличается swift-build от xcodebuild и Xcode?
Что это значит для сообщества?
#swiftbuild
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11
Network Link Conditioner
Если вы тестируете свое приложение на девайсе или симмуляторе в условиях хорошей сети, вы точно пропускаете часть проблем, возникающих у пользователей. Сотовая сеть не везде хорошо ловит, а даже если ловит хорошо, может оказаться что вышка перегружена и LTE превращается в 3g. Для этого в iOS и MacOS существует отдельный инструмент "Network Link Conditioner". Вот как его включить:
🟢 В macOS Sequoia он не входит в стандартный набор ОС, требуется установить Additional Tools for Xcode
🟢 На устройстве Network Link Conditioner можно найти в разделе настроек разработчика, который появляется после активации
Главное-не забыть его выключить, ставьте 🎉 кто забывал. Я как-то неделю ходил с 3G
Если вы тестируете свое приложение на девайсе или симмуляторе в условиях хорошей сети, вы точно пропускаете часть проблем, возникающих у пользователей. Сотовая сеть не везде хорошо ловит, а даже если ловит хорошо, может оказаться что вышка перегружена и LTE превращается в 3g. Для этого в iOS и MacOS существует отдельный инструмент "Network Link Conditioner". Вот как его включить:
Главное-не забыть его выключить, ставьте 🎉 кто забывал. Я как-то неделю ходил с 3G
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉24👍4