Как стать автором
Обновить
24.83
Рейтинг

Swift *

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

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

Зональная Диаграмма со слоем затемнения вплоть до текущего момента времени

Разработка под iOS *Swift *
Перевод

Зональная Диаграмма со слоем затемнения вплоть до текущего момента времени

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 460
Комментарии 0

Новости

Улучшенные API навигации SwiftUI

Разработка под iOS *API *Swift *
Перевод
Tutorial

Сегодня мы выпускаем самое большое обновление для нашей библиотеки SwiftUINavigation с момента её первого выпуска год назад. В нём обеспечена поддержка новых API-интерфейсов iOS 16, исправлены ошибки некоторых навигационных инструментов Apple, улучшена поддержка оповещений и диалоговых окон подтверждения, а также улучшена документация.

Присоединяйтесь к нам для быстрого обзора новых функций и обязательно обновитесь до версии 0.4.0, чтобы получить доступ ко всему этому и многому другому:

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 261
Комментарии 0

Разработка приложений с помощью Симулятора Аксессуаров HomeKit

Разработка под iOS *Swift *
Перевод
Tutorial

Узнайте, как использовать HomeKit Accessory Simulator (HAS) (Симулятор аксессуаров для HomeKit) от Apple, для имитации смарт-аксессуаров для дома при разработке приложений с поддержкой HomeKit.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 515
Комментарии 1

Обзор новых API навигации в SwiftUI

Разработка под iOS *API *Swift *
Перевод
Tutorial

SwiftUI имеет совершенно новые API-интерфейсы навигации в iOS 16 и macOS 13. Они позволяют нам определять навигацию на основе стека и навигацию по нескольким столбцам.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 495
Комментарии 0

Управление загрузками в Xcode

Разработка под iOS *Swift *
Перевод
Tutorial

Начиная с Xcode 14, симуляторы для watchOS и tvOS доступны в виде отдельных загрузок (iOS и macOS по-прежнему «встроены»). Данное решение позволяет значительно уменьшать размер загрузки приложения, однако теперь вам придется самостоятельно управлять этими большими (3-4 ГБ) компонентами.

При первом запуске Xcode 14 вам будет предложено загрузить дополнительные платформы. Также подсказка появится, когда вы попытаетесь запустить код без среды выполнения.

Но что это за загрузки и где они хранятся? Первый совет — откройте дисковую утилиту (Disk Utility). Вы увидите кучу новых томов «Симулятор», смонтированных в разделе «Образы дисков» (Disk Images):

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 437
Комментарии 0

Android vs iOS: кто быстрее покорит Эверест?

Блог компании Sportmaster Lab Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Swift *Kotlin *
Мегапроект

Привет всем мобильным разработчикам! Мы одинаково любим Android и iOS. Но у каждого свои предпочтения. Предлагаем определить фаворита в дружеском поединке. Для этого перенесёмся в Гималаи и покорим Эверест. Выберите команду и постарайтесь дать как можно больше правильных ответов, чтобы добраться до вершины первыми. На весь тест 10 минут.

Взобраться на Эверест
Всего голосов 15: ↑10 и ↓5 +5
Просмотры 3.9K
Комментарии 12

Bottom sheet: Navigation

Блог компании Кошелёк Разработка под iOS *Swift *
Tutorial

Это вторая статья из цикла про bottom sheet, в которой мы воссоздаём поведение платёжного фрагмента в Кошельке по образу и подобию Apple Pay и сталкиваемся с тем, что это не так то просто.

Из материала вы узнаете, как повторить полноценную навигацию в рамках bottom sheet отображения, основанного на autolayout, а не на неудобном ручном расчёте высоты. А ещё мы вместе повторим анимации навигационных переходов и добавим navigation bar как нативный способ управления навигацией.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 634
Комментарии 0

Создание пользовательского (индивидуального) макета в SwiftUI. Основы

Разработка под iOS *Swift *
Перевод
Tutorial

В настоящее время SwiftUI предоставляет протокол Layout, позволяющий нам создавать суперпользовательские (сверхиндивидуальные мне кажется здесь больше подходит) макеты, копаясь в системе компоновки без использования GeometryReader. Протокол Layout дает нам невероятную силу создания и повторного использования любого макета, который вы можете себе представить. На этой неделе мы узнаем, как использовать новый протокол Layout для создания макета потока в SwiftUI.

Любой макет, который вы хотите создать, должен соответствовать новому Layout протоколу. Для реализации у него есть две необходимые функции.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 274
Комментарии 0

Чем порадует и удивит Swift в 2023 году?

Разработка под iOS *Swift *
Перевод

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

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

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Просмотры 1.4K
Комментарии 0

Big O нотация в Swift (часть 2 — Сокращение)

Алгоритмы *Swift *

 Привет всем, добро пожаловать в раздел о сокращении Big O. В первой части мы познакомились с BigO нотацией, а сегодня вы узнаете, как взять большой сложный алгоритм и свести его до минимального значения Big O. После прочтения данной статьи вы сможете взглянуть на любой алгоритм и определить, что представляют собой различные компоненты в рантайме. Итак, давайте выясним, как на самом деле анализировать и определять Big O любого алгоритма.

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 1.6K
Комментарии 15

Core Data в современном интерьере SwftUI. Взаимосвязь объектов. Динамический @FetchRequest. часть 2

Разработка под iOS *Разработка мобильных приложений *Функциональное программирование *Swift *
В первой части этой статьи мы рассмотрели основы работы с Core Data в SwiftUI на примере шаблонного приложения, предложенное Apple. Это было тривиальное приложение, в котором всего лишь один объект Core Data с одним единственным атрибутом, и тем не менее было показано, что давая объектам Core Data дополнительную функциональность с помощью „синтаксического сахара“ в расширении extension их классов class, автоматически генерируемых Xcode, можно добиться комфортной работы с Core Data в SwiftUI. Эти классы являются миниатюрными ViewModels для наших SwiftUI Views, так как они реализуют протоколы ObservableObject и Identifiable. И Apple научила их прекрасно «играть» на поле реактивности SwiftUI.

Во второй части статьи я хочу показать, что роль автоматически генерируемых Xcode классов class для объектов Core Data существенно возрастает при работе с реальными взаимосвязанными объектами — рейсами Flights, аэропортами Airports и авиакомпаниями AirLines, которые мы получаем в интернете на сайте компании FlightAware и размещаем в локальной базе данных Core Data.

Создаваемое в этой части статьи приложение с именем CoreDataSwiftUIFlights является сильно упрощенной модификацией реального приложения Enroute из стэнфордских курсов CS193P 2020, которое оперативно подкачивает данные с сервера FlightAware и требует от вас платной подписки на сервис FlightAware .

Однако, просто зарегистрировавшись на сайте компании FlightAware, вы можете бесплатно получить временной срез любой интересующей вас информации о рейсах Flights, аэропортах Airports и авиакомпаниях Airlines в JSON формате. Эти данные размещаются в Core Data с учетом взаимосвязей этих объектов, и вы можете не просто видеть всю информацию о рейсах, но и делать различные запросы к ней с помощью фильтров и сортировать ее нужным вам способом.



Код находится на Github.
Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 381
Комментарии 0

Core Data в современном интерьере SwftUI. Некоторые уточнения и заблуждения. часть 1

Разработка под iOS *Разработка мобильных приложений *Функциональное программирование *Swift *
Фреймворк Core Data, разработанный Apple для постоянного хранения данных на своих платформах, эффективно работающий даже с очень большими объемами данных, используется очень давно, с версии iOS 3 и macOs 10.4, так что прошло где-то порядка 10 лет с того момента, когда Apple впервые представила фреймворк Core Data. Когда это произошло, языка программирования Swift вообще не было в проекте, так что Core Data была спроектирована с ориентацией на Objective-C и, конечно, это отразилось на её API.



Но на WWDC 2019 был впервые представлен SwiftUI, который предложил нам новую парадигму конструирования UI, он был предложен для iOS 13 и полностью опирался на Swift, его корни — это Swift, хотя он использует UIKit “под капотом” и полностью зависит от UIKit на iOS, по крайней мере на данный момент, и от AppKit на macOS. Конечно, он это скрывает, как только может, он сконструирован и реализован с прицелом на Swift. Более того, Swift сам был существенно доработан с целью поддержки SwiftUI и стал ещё более мощным и интересным.

Но дело даже не в возрастном различии фреймворков, a в том, что Core Data принципиально связана с объектно-ориентированным программированием ( классы, наследование, делегирование и все такое), a суперсовременный SwiftUI основан на декларативном функциональном программировании (структуры, протокольно-ориентированное программирование) и имеет реактивную природу, которая воплощается в использовании архитектуры MVVM.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 529
Комментарии 0

Видение вариативных дженериков в Swift

Разработка под iOS *Swift *
Из песочницы
Перевод

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

В стандартной Библиотеке Swift есть
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 458
Комментарии 0

Истории

Шифруем CoreML

Информационная безопасность *Разработка под iOS *Разработка мобильных приложений *Objective C *Swift *
Из песочницы

ML модель, как и многие другие формы интеллектуальный собственности, можно украсть и использовать для своих целей без ведома авторов. В случае с CoreML большинство моделей зашиты внутри приложения. Достаточно взять Jailbreak девайс, прочитать содержимое бандла и вытащить модель. Подобрать инпут модели уже дело техники и некоторого количества времени. В свое время на практике подобный подход я использовал для сравнения качества нашей ML модели с моделями конкурентов. В этой статье я хотел бы поделиться возможными способами шифрования CoreML моделей.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 1.7K
Комментарии 9

Как устроено приложение Календарь в iPhone

Разработка под iOS *Xcode *Swift *

Разберу как Apple использовали UIKit для приложения Календаря: события, сетку дней, экран с превью года, навигейшн и другие элементы.

Из интересного - события сделали картинками, а переход для навигации - простое перемещение вьюх за экран. Подробнее под катом.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.7K
Комментарии 0

Пишем собственный CustomStepper в Swift

Программирование *Разработка под iOS *Swift *
Из песочницы
Tutorial

Тут можно найти реализацию готового проекта

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

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 990
Комментарии 11

«Оживляем» наше iOS-приложение с помощью Live Activity

Блог компании OTUS Разработка под iOS *Разработка мобильных приложений *Swift *
Перевод

В то время как Android-устройства в целом ушли в направлении простых вырезов в экране под фронтальную камеру или даже подэкранных фронталок, Apple создала совершенно новый пользовательский опыт благодаря своему новому пространству для размещения камеры — «челке» (the notch). Сегодня мы с вами обсудим, как реализовать нечто подобное в iOS.

Виджеты, которые Apple представила в iOS 14, позволяют нам просматривать информацию прямо на наших главных экранах.

Но что, если мы пойдем еще дальше и представим контекстно-зависимую информацию, которая всплывает при необходимости и не задерживается на экране слишком долго? А что, если бы это было реализовано таким образом, чтобы все это гармонично работало с самым большим обновлением для фронтальной панели, которое наши iPhone видели с момента появления челки? Больше никаких «а что, если» — встречайте Dynamic Island.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 1.2K
Комментарии 1

Загружаем dSYM в Firebase Crashlytics через Xcode Cloud

Разработка под iOS *Разработка мобильных приложений *Xcode *Swift *
Из песочницы

Всем привет, в этой статье я бы хотел поделиться опытом о том, как наша команда столкнулась со сложностями загрузки dSYM в Firebase Crashlytics, и как мы эти сложности решили. Важно сказать пару слов о нашем стеке: все зависимости установлены через Swift Package Manager, мы используем Xcode 14, а в качестве CI и CD используем Xcode Cloud с первых дней его релиза.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 442
Комментарии 1

Как сделать удобное взаимодействие с Kotlin из Swift: решение с помощью плагина MOKO KSwift

Разработка под iOS *Разработка мобильных приложений *Swift *Kotlin *Gradle *

Привет! На связи Алексей Михайлов, технический директор компании IceRock Development. В прошлой статье я рассказывал о том, какие проблемы есть в работе с Kotlin со стороны Swift, и рассматривал способы их решения. В этой статье подробно остановлюсь на третьем решении, которое мы используем на практике. Это Gradle-плагины, а именно плагин, который мы разработали сами.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 630
Комментарии 0

Вклад авторов

Работа

iOS разработчик
52 вакансии
Swift разработчик
64 вакансии