Pull to refresh
13
0
Send message

Что нового в Xcode?

Reading time2 min
Views4.9K
Всем привет!

В понедельник стартовал новый WWDC 2022, и нас ждет много интересных новинок и фич от Apple.

Сделаем небольшой обзор на доклад «What's new in Xcode».

Для начала — Xcode 14 стал легче на 30 процентов, дополнительные утилиты можно скачать по необходимости.
Читать дальше →

Взлет и падение Clubhouse

Reading time3 min
Views25K
Всем привет!

Год назад многие из нас узнали о новой для нас на тот момент социальной сети — Clubhouse. Именно после того как в ней зарегистрировался Илон Маск, туда потекли толпы русскоязычных пользователей и конечно такой всплеск активности не мог не остаться незамеченным. Однако год спустя уже сложно найти кого-то, кто бы так же часто «зависал» в этой сети как в прошлогоднем феврале. Что же случилось?
image
Читать дальше →

Делаем OpenVPN клиент для iOS

Reading time5 min
Views15K
Привет всем!
Давайте рассмотрим как создать собственное приложение, поддерживающее OpenVPN-протокол. Для тех, кто об этом слышит впервые ссылки на обзорные материалы, помимо Википедии, приведены ниже.

С чего начать?


Начнем с фреймворка OpenVPNAdapter — написан на Objective-C, ставится с помощью Pods, Carthage, SPM. Минимальная поддерживаемая версия ОС — 9.0.
После установки необходимо будет добавить Network Extensions для таргета основного приложения, в данном случае нам понадобится пока Packet tunnel опция.

image

Network Extension


Затем добавляем новый таргет — Network Extension.
Сгенерированный после этого класс PacketTunnelProvider приведем к следующему виду:
Читать дальше →

Keychain API в iOS

Reading time3 min
Views16K
Всем привет!

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

Я нашел много хороших статей по этой теме, но в основном там описываются сторонние фреймворки, упрощающие жизнь, а было интересно посмотреть, как работать с API напрямую. В этой статье я попытался объединить документацию Apple с практикой на простом примере.

Начнем с небольших определений


Keychain — зашифрованная база данных, куда сохраняются небольшие объемы пользовательской информации (см. документацию Apple).

Общая схема работы продемонстрирована на рисунке.

image

Keychain API Services в свои очередь являются часть фреймворка Security, но его рассмотрение требует отдельной статьи.

Добавление элемента


let keychainItemQuery = [
     kSecValueData: pass.data(using: .utf8)!,
     kSecClass: kSecClassGenericPassword
 ] as CFDictionary

 let status = SecItemAdd(keychainItemQuery, nil)
 print("Operation finished with status: \(status)")

Выше приведен пример сохранения пароля в Keychain.
Читать дальше →

Swift 5.3: Что нового?

Reading time3 min
Views7.8K
Привет Хабр! Язык программирования Swift обладает большой популярностью ввиду его использования в написании приложений под iOS, поэтому его развитие представляет интерес для всех занятых в этой области.

Давайте посмотрим что нового приготовил разработчикам Swift версии 5.3.

Multiple trailing closures


Новая версия (SE-0279) предлагает новый синтаксис для конечных замыканий, который позволяет вызывать несколько замыканий в качестве параметров функции более читаемым способом. Это сводит к минимуму использование слишком большого количества скобок в сигнатуре функции.

import Foundation

func load(url: String, success: (Data) -> Void, failure: (Error) -> Void) {
    
}

// old  version

load(url: "someURL", success: { data in }, failure: { error in })

// new multiple trailing closures

load(url: "someURL") { (data) in
    // do smth
} failure: { (error) in
    // do smth
}

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

Multi-Pattern Catch Clauses


В настоящее время каждый пункт catch в операторе do-catch может содержать только один шаблон. Чтобы обойти эту проблему, разработчики будут использовать возможности вариантов коммутаторов для включения сопоставления шаблонов в тело операторов catch, тем самым увеличивая вложенный и дублированный код (SE-0276).
Читать дальше →

Фоновое выполнение приложений в iOS 13

Reading time5 min
Views28K
Главное событие года в мире iOS и MacOS-разработчиков, WWDC, неизменно радует всех занятых в индустрии людей выходом в свет новых версий операционной системы, фреймворков, железа — в общем, всего того, с чем собственно и предстоит работать.

Этот год исключением не стал и предметом активных обсуждений стали и новая версия iOS, и SwiftUI, и собственная ОС iPadOS для вы-сами-поняли-каких-устройств.

Однако были темы не столь освещенные, но от этого не менее интересные — например была затронута такая полезная вещь, как фоновое выполнение приложений.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity