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

Реклама: @new_repository

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

Бусти: boosty.to/dimov_ios
Download Telegram
Инсайдеры показали ранние версии Dynamic Island для iPhone

До выпуска Dynamic Island в iPhone, Apple рассматривала несколько альтернативных дизайнерских идей.

Одна из концепций включала в себя всплывающее меню у правого края дисплея для отображения времени, уровня сигнала связи, Wi-Fi, заряда батареи, а также уровня яркости и громкости.

Другая предполагала использование чёрного цвета для верхней части экрана, чтобы скрыть вырез, делая его практически невидимым на контрастных OLED-дисплеях.

Но в итоге выбрали Dynamic Island — интерактивный интерфейс, который адаптируется к различным событиям в iOS. Это позволило Apple эффективно интегрировать вырез в интерфейс пользователя, превратив его из потенциального недостатка в уникальную особенность дизайна.
Идеальный онбординг в IT компанию

Всем привет! Сегодня у нас в гостях - Вадим, iOS разработчик с большим стажем. И мы поговорим про тему онбординга.

Что такое онбо́рдинг? Это знакомство нового сотрудника или клиента с организацией, её продукцией или услугами. Узнаем как измерять эффективность онбординга, плюсы и минусы онбординга, поймем что такое плохой онбординг, а какой хороший.

Всем приятного просмотра.
Ссылка на телеграм канал гостя.
Continuations для взаимодействия асинхронных задач с синхронным кодом

В Swift были представлены новые функции, которые помогают нам адаптировать старые API в стиле completionhandler к современному асинхронному коду.

Continuations позволяют нам создать обертку над обработчиком завершения (completion handler) и асинхронными функциями, чтобы мы могли обернуть старый код в более современный API. Например, функция withCheckedContinuation() создает новое continuation, которое может запускать любой код, который мы хотим, а затем вызывает resume(returning:), чтобы отправить значение обратно, даже если это часть обработчика завершения (completion handler).

Предлагаю вместе посмотреть на реализацию в данной статье.

#digest
🍏Вышла iOS 17.4 с поддержкой сторонних магазинов приложений для ЕС.
Please open Telegram to view this post
VIEW IN TELEGRAM
Оптимальный архитектурный шаблон iOS

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

Автор: Олег Бахарев. iOS - тимлид.
Как создать приложение для чата iOS

Используя SwiftUI и Firebase, мы создадим основу для приложения для чата. С его помощью вы сможете добавить функциональность чата в свое приложение. Руководство разбито на следующие разделы:

00:00 Вступление
04:17 Дизайн
07:42 Предположения
08:58 Аутентификация
13:37 Авторизация
23:02 Модель
31:23 Просмотров
47:32 Заключение
🍏Apple разрабатывает MacBook с гибким экраном

• Запуск планируется к 2027 году
Please open Telegram to view this post
VIEW IN TELEGRAM
🍏Еврокомиссия потребовала от Apple объяснений, почему она заблокировала учетную запись Epic Games в App Store.
Please open Telegram to view this post
VIEW IN TELEGRAM
Дорогие дамы канала, поздравляем вас с 8 марта! Желаю большого счастья, любви и исполнение всех желаний❤️

Так же отдельно хочу поздравить нашу ведущую Екатерину @Neifmetus с женским днём! Катя, всех благ 💥☀️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🍏Новые iPad 2024 будут иметь фронтальную камеру, расположенную на длинной грани.
Please open Telegram to view this post
VIEW IN TELEGRAM
Обработка URL-адресов Deeplink в SwiftUI

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

Вы можете использовать модификатор view в SwiftUI или метод AppDelegate для обработки входящих URL-адресов и соответствующей навигации. При разумной настройке вы можете открывать URL-адреса внутри приложения и перемещаться к местам назначения в любом месте приложения.

Настройка, реализация и пример кода в статье.
Лучшие практики управления состояниями в SwiftUI

Эффективное управление состояниями — ключ к созданию стабильных и отзывчивых приложений в SwiftUI. Ниже приведены некоторые лучшие практики управления состоянием в ваших приложениях SwiftUI:

1. Используйте State и Binding для простых локальных состояний.
2. Для сложных состояний используйте ObservedObject и Published.
3. Используйте EnvironmentObject для совместного использования состояния в несвязанных представлениях.
4. Избегайте больших State переменных.
5. Отложите сложные вычисления и побочные эффекты
Разработка, управляемая тестами (TDD), для исправления ошибок

Test-Driven Development (TDD) — это техника, которая требует, чтобы вы сначала написали тест, прежде чем приступать к реализации решения. Хотя разработчики используют эту методику и в целом во время разработки, есть способ применять ее только для исправления ошибок.

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

Разработка, управляемая тестами — это отличная техника, позволяющая увеличить покрытие кода тестами и одновременно повысить качество кода

В статье примеры кода, плюсы и минусы данного подхода.
Что такое состояние гонки (race condition)

Состояние гонки (race condition) — это ситуация, которая возникает в многозадачных или многопоточных программных системах, когда результаты выполнения программы зависят от того, в какой последовательности выполняются инструкции или операции в различных потоках или процессах. Это может привести к непредсказуемому поведению программы или к ошибкам в её выполнении.

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

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

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

#digest
Swiftfin: видеоплеер Jellyfin для iOS и tvOS

Swiftfin — это современный видеоклиент для медиасервера Jellyfin (от этой же компании — альтернатива проприетарным Emby и Plex, позволяющая передавать медиа с выделенного сервера на устройства конечных пользователей через множество приложений). Плеер написан на Swift, что позволяет максимально использовать возможности VLC для прямого воспроизведения и выглядеть нативно на всех классах устройств Apple.
JTAppleCalendar: библиотека календаря на Swift

JTAppleCalendar — календарь для iOS на Swift. Полностью настраиваемый, с настройками ячеек и общего вида, горизонтальным и вертикальным режимом, изменяемыми заголовками, выбором диапазонов и всем прочим.
В пятницу в Москве в концертном зале «Крокус Сити Холл» произошел чудовищный теракт.

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

В ближайшее время мы не будем публиковать материалы.

Берегите себя и своих близких.
Создание крупномасштабных приложений с помощью SwiftUI: руководство по модульной архитектуре

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

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

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

00:00 Введение
00:49 Что такое стек
01:23 Рост в обратную сторону
02:20 Указатели
03:35 Команды для работы со стеком
04:54 Функции
06:30 Команды перехода
07:18 Фрейм стека
10:37 Переполнение стека
10:50 Передача параметров в функцию
13:09 Способы передачи параметров
13:49 Локальные переменные функции
15:07 Итог
Apple официально объявила о своем намерении приобрести южнокорейского гиганта Samsung

Если все пойдет по плану, сделка станет крупнейшей в истории IT-индустрии, сейчас её стоимость оценивается в рекордные 320 миллиардов долларов.

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

По словам Тима Кука, CEO Apple, данная сделка является стратегическим шагом, направленным на укрепление позиций компании на мировом рынке. Он также подчеркнул, что приобретение Samsung поможет Apple расширить свое присутствие в развивающихся странах, где продукция Samsung пользуется большой популярностью.

В свою очередь, представители Samsung выразили удовлетворение данным решением и заявили, что объединение усилий с Apple позволит им создать еще более инновационные продукты.

Ожидается, что сделка будет завершена к концу текущего года.