iOS Такой 🍏
3.41K subscribers
417 photos
10 videos
2 files
300 links
IT | Подкасты | Apple | iOS Материалы | Swift

Реклама: @new_repository

Тёплый чат: https://t.me/+tzWmsOMTPpFjMzAy

Бусти: boosty.to/dimov_ios
Download Telegram
Малоизвестные представления SwiftUI

Когда вы начали изучать swiftUI, вы могли столкнуться с большим количеством представлений, таких как: VStack, HStack, ZStack, ScrollView, Grid и прочее.

В данной статье показывают некоторые представления, которые в целом редко используются (если вы глубоко погружены в SwiftUI, то, возможно, уже знаете их), а именно:

- AnyLayout
- ViewThatFits
- ContentUnavailableView
SwiftUI: алхимия приложений — превращаем идеи в реальность

В докладе рассказываем, как SwiftUI трансформирует процесс разработки, упрощая создание привлекательных и интерактивных интерфейсов с минимальными усилиями.

Арман Мырзакануров поделится опытом решения уникальных задач, таких как оптимизация обновления элементов списка, управление состоянием и создание анимаций, которые ранее требовали сложных манипуляций в UIKit.

Особое внимание уделяет сочетанию SwiftUI и UIKit для достижения наилучших результатов в разработке кроссплатформенных приложений.
Смешивание цветов в SwiftUI

В последней версии SwiftUI компания Apple представила новую функцию под названием «смешивание цветов». Это единая функция, которая позволяет выполнять различные творческие задачи. В этой статье рассматривают смешивание цветов в SwiftUI и изучают его потенциальное применение.
Темы в современных iOS-приложениях с UITraitCollection

Совсем недавно (с iOS 17) Apple представила довольно удобный способ обработки смены тем в приложениях для iOS. Раньше это было довольно мучительно.

С появлением UITraitAppearance все стало проще.

Эта статья представляет собой законченное описание того, как добавить тематическое оформление в реальное приложение. Тут так же есть ссылки на реальный проект, который вы можете скачать.
DeepSeek

Главная тема для
разговоров в западном интернете прямо сейчас — DeepSeek. Это китайский чат-бот, который делает то же самое, что ChatGPT, но в разы быстрее и дешевле

Для россиян DeepSeek сильно удобнее, чем ChatGPT. Чат-бот не требует ни VPN, ни зарубежного номера, ни подписки. Вы прямо сейчас можете зайти на их сайт, зарегистрироваться и начать задавать вопросы.

Пробуем👌
Аналитика пользователей iOS 18 охватила 68% всех iPhone

В пятницу компания Apple опубликовала новые данные, свидетельствующие о популярности iOS 18. Выпущенная в сентябре 2024 года, мобильная операционная система сейчас установлена на 68% совместимых устройств. Это число увеличивается до 78% на iPhone, выпущенных за последние четыре года.

Что касается остальных iPhone, то 19% из них работают под управлением iOS 17, а 13% используют более раннюю версию. Аналогично, 19% iPhone, выпущенных за последние четыре года, в настоящее время работают под управлением iOS 17.

С более ранними версиями iOS этот показатель снижается до 5% — это вполне объяснимо, учитывая общий процент устройств, которые поставлялись с iOS 17 или 18, а также склонность ранних пользователей поддерживать свои устройства на последних обновлениях ОС. В целом, представленные цифры похожи на те, что Apple опубликовала в 2024 году по поводу внедрения iOS 17.
💡 SwiftUI Совет

Автозаполнение кодов подтверждения — одна из лучших функций в iOS.

Чтобы явно включить её для текстового поля, просто используйте:
.textContentType(.oneTimeCode)
Forwarded from Мобильный кот (Vasiliy Usov)
👑 SwiftGPT: Библиотека для работы с ChatGPT

Выложил на GitHub первую версию библиотеки SwiftGPT. Она предназначена для интеграции возможностей ChatGPT в iOS/macOS/Linux проекты.

⭐️ Особенности

- Совместимость с официальным OpenAI API: интерфейс основан на стилях OpenAI.
- Поддержка Swift 6 и Swift Concurrency.
- Мультиплатформенность: работает на всех платформах Apple (iOS, macOS, watchOS, tvOS) и даже на Linux.

⬆️ Основные функции

- Поддержка Chat Completions (генерация текста)
- В планах: Assistants API, Text-to-Speech, Text Transcriptions, Image generation и др.
- Возможность указать URL для запросов (актуально для РФ, когда делаешь свой прокси)

Почему я занялся SwiftGPT

Я давно интересуюсь искусственным интеллектом и активно применяю его решения в своих проектах. Для одной из задач мне потребовался API ChatGPT, но я обнаружил, что официального SDK для iOS не существует. Сначала я задумался о создании собственной библиотеки, но обратил внимание на пакет ChatGPTSwift.

У данной библиотеки есть сильная сторона — использование OpenAPI 3.0 спецификации для сетевого слоя. То есть разработчик взял официальную спецификацию и использую
пакет от Apple Swift OpenAPI Generator сгенерировал сетевой слой.

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

Однако, реализация ChatGPTSwift имела ряд проблем, которые требовали исправлений.

🤕 Проблемы ChatGPTSwift и их решения

- Единый монолитный класс: библиотека объединяла все функции в одном классе, что снижало читаемость и масштабируемость. Я переработал архитектуру, распределив функции в соответствии с официальным ChatGPT API.
- Неудобное API: оригинальное API библиотеки отличалось от OpenAI API. Теперь интерфейс полностью соответствует официальной документации, что минимизирует порог вхождения.
- Ошибки Swift Concurrency: вместо необоснованных решений вроде @unchecked Sendable, я внедрил корректную поддержку Swift Concurrency.
- Сложные названия типов и свойств: автогенерированные имена вроде text_event_hyphen_stream заменены на более понятные и привычные — например, textEventStream.
- Баги и устаревший API: обновил сетевой слой до актуальной версии API и устранил ошибки в логике.
- Архаичная обработка контекста токенов: библиотека обрезала контекст до 4000 токенов, хотя ChatGPT последней версии поддерживает 128 000. Это ограничение устранено.

💊 Что дальше

Переработка библиотеки — это лишь начало работы. Сейчас SwiftGPT поддерживает основные функции, но я продолжаю тестировать её в реальных проектах, а также развивать поддержку новых и существующих API OpenAI.

# Пример использования

Все максимально просто

import SwiftGPT

// Установка API key
OpenAI.Configuration.apiKey = .apiKey("your-api-key")

Task {
// создание сессии
let chat = OpenAI.Chat()
// запрос
let response = try await chat.completions(prompt: "Как погода сегодня?")
print("Ответ: \(response)")
}

Если вам нужно интегрировать ChatGPT в iOS/macOS/Linux приложение, уже сейчас вы можете использовать SwiftGPT.

Забрать/посмотреть можно тут.

Теперь эта библиотека открыта для обратной связи и предложений сообщества!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Ваши вопросы к выпуску про увольнения

Планируем выпуск про увольнения в IT. Если у вас есть интересные вопросы и хотите, чтобы его разобрали — пишите в комментарии.
💡 SwiftUI

Легко создавайте светящуюся градиентную рамку в SwiftUI, используя модификаторы stroke() и shadow().
Потоки под капотом: как работают многопоточность и синхронизация

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

В данной статье мы рассмотрим детали этой темы, а именно:

1. Проанализируем работу потоков;
2. Выявим скрытые механизмы, обеспечивающие их функционирование;
3. Определим, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.
coming soon
💡 Совет по SwiftUI

Легко настройте минимальную высоту для всех строк в List
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftUI скрытие TabBar

В этом видео создадите прокручиваемый интерфейс с таб-баром, который плавно скрывается и появляется при прокрутке — это выглядит стильно, аккуратно и очень функционально
This media is not supported in your browser
VIEW IN TELEGRAM
Тим Кук анонсировал таинственную презентацию Apple

• Она пройдёт 19 февраля: Ждем iPhone 4SE.
🍏 Инсайдер Джон Проссер показал, как будет выглядеть iPhone 17 Pro

• Как вам?
Совет по SwiftUI

В iOS 16.0+ вы можете добавлять как внутренние, так и внешние тени, используя .inner() и .drop().
Всем привет! Мы записали два выпуска. В эту среду выйдет подкаст про увольнения, а в следующий понедельник мы релизним про выгорание.

Мы очень хотели бы поговорить о том как учить новые технологии, когда работаешь или когда лень.

Нужны гости, кому интересно пишите.
Как понять, что вы станете хорошим разработчиком

Разработка — это динамичная и постоянно развивающаяся область, которая привлекает множество людей. Но как понять, обладаете ли вы необходимыми качествами, чтобы не просто стать разработчиком, а стать хорошим разработчиком? Эта статья поможет вам разобраться в этом вопросе, предоставив подробный анализ ключевых навыков, личностных качеств и признаков, которые указывают на потенциал в сфере разработки.
🍏 Инсайдер Digital Chat Station показал свою версию концепта iPhone 17 Pro.
Please open Telegram to view this post
VIEW IN TELEGRAM