Обновить
5.86

Swift *

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

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

Нельзя просто так взять и написать полезный iOS фреймворк… Или можно?

Время на прочтение12 мин
Охват и читатели2.2K

Нельзя просто так взять и написать полезный iOS фреймворк... Или все-таки можно?

Привет, Хабровчане!

Меня зовут Дмитрий Новиков, я – разработчик департамента разработки корпоративных решений в IBS. Мы в компании занимаемся разработкой мобильных приложений на заказ и хотим рассказать, как мы пришли к идее создания собственного iOS фреймворка для решения ряда полезных в мобильной разработке задач, а также что у нас в итоге из этого получилось.

Интересно? Читайте статью под катом!

Combine: часть 1. Погружение в реактивное программирование

Время на прочтение10 мин
Охват и читатели26K

Привет, Хабр! Меня зовут Сергей, я iOS-разработчик в компании SimbirSoft.

Уже наступил 2023 год, а обсуждения на тему выбора инструмента для обработки асинхронных событий не утихают. На сцене привычные колбэки, нотификейшн-центры с «бородатыми» Objective-C-селекторами, разные фреймворки для реактивной разработки, а не так давно Apple представила модный Swift Concurrency.

Combine все больше набирает популярность в продакшене. За счет нативного происхождения у него хороший уровень оптимизации, его легко «склеивать» как с существующими легаси-инструментами, так и с новыми — SwiftUI или async/await.

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

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

Это первая часть статьи, где мы познакомимся с Combine, сравним его с RxSwift. Материал будет полезен для тех, кто до этого не сталкивался с реактивщиной, а также тем, кто успел поработать с аналогичными инструментами.

Читать далее

Как создать виджет экрана блокировки в iOS?

Время на прочтение5 мин
Охват и читатели3.8K

В iOS 16 Apple провела масштабную модернизацию Экран Блокировки. Одной из самых ожидаемых функций, которая появилась вместе с обновлением, - виджеты Экрана Блокировки. Как следует из названия, виджеты Экрана Блокировки — это виджеты, отображающие легко просматриваемый контент, который постоянно виден на экране блокировки iPhone и iPad.

Поскольку и виджеты Главного Экрана, и виджеты Экрана Блокировки работают на WidgetKit, способ создания виджета Экран Блокировки очень похож на то, как мы создаем виджеты Главного Экрана. Поэтому в этой статье я не буду показывать вам, как настроить и создать виджет с нуля, как это было описано в моей предыдущей статье.

Вместо этого я сосредоточусь на том, как обновить код существующих виджетов Главного Экрана для поддержки виджетов Экрана Блокировки.

С учетом всего сказанного, давайте начнем!

Читать далее

Создание кастомного макета в SwiftUI. Интервалы

Время на прочтение5 мин
Охват и читатели1.2K

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

Читать далее

Безопасная отладка вашего приложения в продакшене

Время на прочтение6 мин
Охват и читатели1.8K

Безопасная отладка вашего приложения в продакшене

Production (продакшен, прод) - версия продукта, прошедшая все стадии тестирования и выложена онлайн / установлена клиенту.

Читать далее

Как управлять настройками сборки, используя файлы конфигурации Xcode

Время на прочтение3 мин
Охват и читатели4.9K

Как управлять настройками сборки, используя файлы конфигурации Xcode

Читать далее

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

Время на прочтение3 мин
Охват и читатели846

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

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

Читать далее

Apple Machine Learning (ML). «Create ML»

Время на прочтение5 мин
Охват и читатели5K

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

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

Читать далее

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

Время на прочтение5 мин
Охват и читатели1.6K

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

Читать далее

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

Время на прочтение7 мин
Охват и читатели1.6K

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

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

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

Читать далее

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

Время на прочтение5 мин
Охват и читатели2.2K

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

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

Читать далее

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

Время на прочтение4 мин
Охват и читатели2.3K

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

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

Читать далее

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

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

Время на прочтение3 мин
Охват и читатели15K

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

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

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

Читать далее

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

Время на прочтение1 мин
Охват и читатели2.6K

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

Читать далее

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

Время на прочтение3 мин
Охват и читатели7.8K

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

Читать далее

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

Время на прочтение7 мин
Охват и читатели12K

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 мин
Охват и читатели3K

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

Читать далее