Как стать автором
Поиск
Написать публикацию
Обновить
11.42

Swift *

Открытый объектно-ориентированный язык

Сначала показывать
Порог рейтинга
Уровень сложности

Как поддерживать несколько виджетов при использовании WidgetKit?

Время на прочтение3 мин
Количество просмотров745

Как Поддерживать Несколько Виджетов При Использовании WidgetKit?

Наличие нескольких виджетов с различными функциональными возможностями - довольно распространенная особенность для приложений в наши дни. Например, в приложении для покупок может быть виджет, показывающий сегодняшнюю акцию, и другой виджет, показывающий статус заказа пользователя.

Читать далее

Apple Machine Learning (ML). «Create ML»

Время на прочтение5 мин
Количество просмотров4.2K

2022 год стал революционным для выхода нейронных сетей к широкому потребителю. Помимо голосовых помощников, которые в основном, использовались в качестве игрушки, на рынок вышли потрясающие решения которые высоко были оценены профессионалами – художниками, программистами, писателями и учеными. Наборы высоко технологических решений стали доступны для массового использования. Подавляющее большинство таких решений опирается на технологию перцептрона – устройства, которое реализует нейронные сети на физическом уровне, и известное инженерами уже на протяжении нескольких десятилетий.

Не смотря на то, что теоретические основы преподаются к каждом техническом ВУЗе, разработчики не стремились включать их в свои приложения. Это обусловлено тем, что нужно пройти несколько этапов прежде чем со сконструированной  нейронной сетью можно будет взаимодействовать – разработка нейронной сети – трудоемкий процесс, но ее обучение – еще и чрезвычайно ресурсоемкий, а потому довольно затратный при каждом изменении базовых свойств.

Читать далее

Предварительный просмотр Stateful Вью в SwiftUI

Время на прочтение5 мин
Количество просмотров1.3K

При создании пользовательского интерфейса в SwiftUI мы, как правило, создаем два типа компонентов пользовательского интерфейса: экраны и (переиспользуемые) вью. Обычно мы начинаем с создания прототипа экрана, что неизбежно приводит к Massive ContentView, далее который мы начинаем рефакторить в более мелкие, используемые повторно компоненты.

Читать далее

Новая библиотека, чтобы управлять зависимостями и не дать им управлять вами

Время на прочтение7 мин
Количество просмотров1.4K

Новая библиотека, чтобы управлять зависимостями и не дать им управлять вами

Мы рады открыть исходный код совершенно новой системы управления зависимостями для приложений на Swift. Она позволяет легко распространять зависимости вглубь вашего приложения эргономичным, но в то же время безопасным способом. Как только вы начнете управлять ими, то сразу же сможете писать более простые тесты, обнаруживать в превью Xcode мощь, не имеющую себе равных, улучшать время компиляции и многое другое.

Присоединяйтесь к нам, чтобы получить краткий обзор и подумать над добавлением библиотеки в свое приложение уже сегодня!

Читать далее

Более Быстрые Сборки Apple с помощью lld Linker

Время на прочтение5 мин
Количество просмотров1.8K

Более Быстрые Сборки Apple с помощью lld Linker.

Linker - Компоновщик (также редактор связей, от англ. link editor) — инструментальная программа, которая производит компоновку («линковку»): принимает на вход один или несколько объектных модулей и собирает из них исполняемый или библиотечный файл-модуль.

Читать далее

Улучшения Функции Автодополнения в Xcode 14

Время на прочтение4 мин
Количество просмотров2K

Улучшения Функции Автозавершения в Xcode 14

Apple описывает Xcode 14 как «все, что вам нужно» для создания программного обеспечения для своих платформ. Компания реализовала ряд улучшений, таких как несколько обновленных функций автозавершения, для повышения производительности Xcode. Читайте дальше, чтобы узнать, какие из них я считаю особенно важными, и посмотреть, как они работают на практике.

Читать далее

Что лучше: UIKit или SwiftUI?

Время на прочтение3 мин
Количество просмотров12K

Hello, World! Меня зовут Денис. Я IOS разработчик, пишу приложения для App Store. Хочу поделиться своим небольшим опытом на UIKit и SwiftUI.

Первый запуск

На WWDC19 Apple предоставила декларативный фреймворк SwiftUI. Новый фреймворк позволяет уменьшать время на написание UI-составляющей своих приложений.

Читать далее

Создаем VIPER шаблон с помощью Generamba

Время на прочтение1 мин
Количество просмотров2.2K

Если вам не нравится тратить много времени на создание шаблонов для VIPER можно воспользоваться Generamba.

Читать далее

Понимание жизненных циклов вью SwiftUI

Время на прочтение3 мин
Количество просмотров6.1K

Я написал приложение под названием SwiftUI View Lifecycle. Приложение позволяет вам наблюдать, как различные конструкции и контейнеры SwiftUI влияют на жизненный цикл вью, включая время жизни его состояния и время вызова onAppear. Код приложения находится на GitHub. Его можно собрать для iOS и macOS.

Читать далее

Подробный гайд Dynamic Island и Live Activities

Время на прочтение7 мин
Количество просмотров8.7K

Live Activities появились начиная с версии IOS 16.1 на всех моделях iPhone. Live Activity отображают самые последние данные вашего приложения на экране блокировки iPhone и в Dynamic Island. Это позволяет вашим пользователям видеть самую актуальную информацию которая происходит в вашем приложении. 

Важно понимать что и Dynamic Island и Live Activities сами по себе являются частью ActivityKit фреймворка, поэтому для простоты, дальше в посте я буду называть Dynamic Island и Live Activities просто - Live Activities.

Note1: Live Activity доступен только на iPhone.

Note2: Во время написания поста Dynamic Island доступен только на моделях iPhone 14 Pro и Pro Max.

Читать далее

Мои 3 способа для выравнивания UI на разных девайсах в Swift

Время на прочтение3 мин
Количество просмотров2.5K

Всем привет! Я не так давно примкнул к клубу мобильных разработчиков, хотя уже имею некий коммерческий опыт в разработке iOS-приложений. И недавно я задумался о том, насколько удобной делают нашу жизнь констрейнты. Однако всё равно иногда возникает вопрос, а нужно ли использовать какие-нибудь "костыли", чтобы на разных девайсах тот или иной объект выглядел одинаково хорошо. Для себя я выделил 3 основных помощника в этом вопросе и хотел бы в формате рассуждения поделиться своим опытом и, возможно, помочь кому-нибудь, кто только начал свой путь в разработке.

Читать далее

Ближайшие события

SwiftUI ScrollView и параллакс без тормозов

Время на прочтение8 мин
Количество просмотров4.1K

Передо мной возникла задача сделать скроллируемый контент, на заднем плане которого прокручивается другой контент. Прокрутка должна быть синхронной, но с замедленной скоростью - как отдалённый фон в мультфильмах или играх.

В классическом UIScrollView из UIKit можно реализовать протокол UIScrollViewDelegate - метод scrollViewDidScroll(_ scrollView: UIScrollView) скажет нам, насколько сместился основной контент. Но в SwiftUI ScrollView не имеет делегата, поэтому ловить изменения нужно другими способами.

Я нашёл способ обрабатывать смещение - GeometryReader внутри ScrollView:

Читать далее

SwiftUI в 2022. Что нового?

Время на прочтение4 мин
Количество просмотров5.5K

Всем привет, с вами я, Наиль Габутдинов, iOS разработчик.

Apple выпустила первый SwiftUI в 2019 году, предлагая тем самым новый подход создания приложений в декларативном стиле. SwiftUI 4.0, представленный этим летом на WWDC 2022 вместе с iOS 16 и macOS 13 включает в себя много нововведений для более качественных и универсальных приложений под разные платформы Apple с меньшим количеством кода.

Давайте посмотрим, что нового.

Читать далее

Как превратить единственный SwiftUI контейнер в dropDestination для нескольких Transferable типов?

Время на прочтение4 мин
Количество просмотров1.3K

Новый протокол  Transferable пришел на замену классу NSItemProvider в iOS 16+, macOS 13+ (Ventura и новее), watchOS 9.0+ и tvOS 16+. Познакомиться с некоторыми аспектами применения протокола  Transferable можно в постах Протокол Transferable меняет правила игры для Drag & Drop в SwiftUI и Протокол Transferable в SwiftUI — передача альтернативного контента с помощью ProxyRepresentation.

Проблема в том, что при использовании нового протокола Transferable и нового View модификатора .dropDestination (for: action: isTargeted:); его параметр for не принимает несколько ТИПов "сбрасываемых" объектов одновременно, как это делает выше приведенный View модификатор .onDrop (of: [.plainText, .url, .image] ...).

С помощью перечисления enum DropItem, куда мы включили все возможные объекты (текст StringURL-адрес, изображение в виде двоичного файла Data), нам удалось в SwiftUI с помощью нового протокола Transferable обеспечить перетаскивание и "сброс" (Drag & Drop) в один и тот же контейнер (например,ZStack) различных ТИПов объектов.

Читать далее

Статические и динамические фреймворки на iOS — обсуждение с ChatGPT

Время на прочтение11 мин
Количество просмотров4.4K

Статические и динамические фреймворки на iOS - обсуждение с ChatGPT

Как и большинство людей в мире технологий, мы экспериментировали с ChatGPT и хотели посмотреть, как он справится с низкоуровневыми техническими деталями. Мы попросили ChatGPT написать блог о статических и динамических фреймворках в iOS. Здесь - его ответ, а также то, что он сделал правильно, а что нет.

Читать далее

Расширяя Xcode с помощью включений

Время на прочтение6 мин
Количество просмотров978

Расширяя Xcode с помощью включений

В этом посте я описываю техническую настройку небольшого языкового эксперимента, который я разработал, чтобы помочь себе в работе над пользовательскими инструментами Xcode.

Читать далее

Туториал по Встроенным Подпискам в iOS с помощью StoreKit 2 и Swift

Время на прочтение34 мин
Количество просмотров16K

Туториал по Встроенным Подпискам в iOS с помощью StoreKit 2 и Swift

Пошаговое руководство по созданию рабочего примера приложения с подписками на SwiftUI.

Читать далее

Будущее Foundation

Время на прочтение2 мин
Количество просмотров1.6K

Будущее Foundation

9 ДЕКАБРЯ 2022 г. Тони Паркер

Фреймворк Foundation используется почти во всех проектах Swift. Он обеспечивает как базовый уровень функциональности для таких основных элементов, как строки, коллекции и даты, так и устанавливает соглашения для написания отличного Swift-кода.

Читать далее