Инсайдеры показали ранние версии Dynamic Island для iPhone
До выпуска Dynamic Island в iPhone, Apple рассматривала несколько альтернативных дизайнерских идей.
Одна из концепций включала в себя всплывающее меню у правого края дисплея для отображения времени, уровня сигнала связи, Wi-Fi, заряда батареи, а также уровня яркости и громкости.
Другая предполагала использование чёрного цвета для верхней части экрана, чтобы скрыть вырез, делая его практически невидимым на контрастных OLED-дисплеях.
Но в итоге выбрали Dynamic Island — интерактивный интерфейс, который адаптируется к различным событиям в iOS. Это позволило Apple эффективно интегрировать вырез в интерфейс пользователя, превратив его из потенциального недостатка в уникальную особенность дизайна.
До выпуска Dynamic Island в iPhone, Apple рассматривала несколько альтернативных дизайнерских идей.
Одна из концепций включала в себя всплывающее меню у правого края дисплея для отображения времени, уровня сигнала связи, Wi-Fi, заряда батареи, а также уровня яркости и громкости.
Другая предполагала использование чёрного цвета для верхней части экрана, чтобы скрыть вырез, делая его практически невидимым на контрастных OLED-дисплеях.
Но в итоге выбрали Dynamic Island — интерактивный интерфейс, который адаптируется к различным событиям в iOS. Это позволило Apple эффективно интегрировать вырез в интерфейс пользователя, превратив его из потенциального недостатка в уникальную особенность дизайна.
Идеальный онбординг в IT компанию
Всем привет! Сегодня у нас в гостях - Вадим, iOS разработчик с большим стажем. И мы поговорим про тему онбординга.
Что такое онбо́рдинг? Это знакомство нового сотрудника или клиента с организацией, её продукцией или услугами. Узнаем как измерять эффективность онбординга, плюсы и минусы онбординга, поймем что такое плохой онбординг, а какой хороший.
Всем приятного просмотра.
Ссылка на телеграм канал гостя.
Всем привет! Сегодня у нас в гостях - Вадим, iOS разработчик с большим стажем. И мы поговорим про тему онбординга.
Что такое онбо́рдинг? Это знакомство нового сотрудника или клиента с организацией, её продукцией или услугами. Узнаем как измерять эффективность онбординга, плюсы и минусы онбординга, поймем что такое плохой онбординг, а какой хороший.
Всем приятного просмотра.
Ссылка на телеграм канал гостя.
Continuations для взаимодействия асинхронных задач с синхронным кодом
В Swift были представлены новые функции, которые помогают нам адаптировать старые API в стиле completionhandler к современному асинхронному коду.
Continuations позволяют нам создать обертку над обработчиком завершения (completion handler) и асинхронными функциями, чтобы мы могли обернуть старый код в более современный API. Например, функция withCheckedContinuation() создает новое continuation, которое может запускать любой код, который мы хотим, а затем вызывает resume(returning:), чтобы отправить значение обратно, даже если это часть обработчика завершения (completion handler).
Предлагаю вместе посмотреть на реализацию в данной статье.
#digest
В Swift были представлены новые функции, которые помогают нам адаптировать старые API в стиле completionhandler к современному асинхронному коду.
Continuations позволяют нам создать обертку над обработчиком завершения (completion handler) и асинхронными функциями, чтобы мы могли обернуть старый код в более современный API. Например, функция withCheckedContinuation() создает новое continuation, которое может запускать любой код, который мы хотим, а затем вызывает resume(returning:), чтобы отправить значение обратно, даже если это часть обработчика завершения (completion handler).
Предлагаю вместе посмотреть на реализацию в данной статье.
#digest
Please open Telegram to view this post
VIEW IN TELEGRAM
Оптимальный архитектурный шаблон iOS
В статье описывается оптимальный архитектурный шаблон большого iOS-приложения на Swift, выступающего преимущественно тонким клиентом. Основной упор делается на применение чистой архитектуры. Статья предназначается как новичкам, так и опытным программистам. Для удобства навигации имеется оглавление.
Автор: Олег Бахарев. iOS - тимлид.
В статье описывается оптимальный архитектурный шаблон большого iOS-приложения на Swift, выступающего преимущественно тонким клиентом. Основной упор делается на применение чистой архитектуры. Статья предназначается как новичкам, так и опытным программистам. Для удобства навигации имеется оглавление.
Автор: Олег Бахарев. iOS - тимлид.
Как создать приложение для чата iOS
Используя SwiftUI и Firebase, мы создадим основу для приложения для чата. С его помощью вы сможете добавить функциональность чата в свое приложение. Руководство разбито на следующие разделы:
00:00 Вступление
04:17 Дизайн
07:42 Предположения
08:58 Аутентификация
13:37 Авторизация
23:02 Модель
31:23 Просмотров
47:32 Заключение
Используя SwiftUI и Firebase, мы создадим основу для приложения для чата. С его помощью вы сможете добавить функциональность чата в свое приложение. Руководство разбито на следующие разделы:
00:00 Вступление
04:17 Дизайн
07:42 Предположения
08:58 Аутентификация
13:37 Авторизация
23:02 Модель
31:23 Просмотров
47:32 Заключение
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Дорогие дамы канала, поздравляем вас с 8 марта! Желаю большого счастья, любви и исполнение всех желаний❤️
Так же отдельно хочу поздравить нашу ведущую Екатерину @Neifmetus с женским днём! Катя, всех благ 💥☀️
Так же отдельно хочу поздравить нашу ведущую Екатерину @Neifmetus с женским днём! Катя, всех благ 💥☀️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Обработка URL-адресов Deeplink в SwiftUI
Диплинки ссылки позволяют открывать приложение и переходить в определенное место сразу после запуска. Примером может быть ссылка на рецепт или фильм на основе выбранной ссылки. Вы можете определить целевую страницу на основе метаданных, предоставляемых URL-адресом.
Вы можете использовать модификатор view в SwiftUI или метод AppDelegate для обработки входящих URL-адресов и соответствующей навигации. При разумной настройке вы можете открывать URL-адреса внутри приложения и перемещаться к местам назначения в любом месте приложения.
Настройка, реализация и пример кода в статье.
Диплинки ссылки позволяют открывать приложение и переходить в определенное место сразу после запуска. Примером может быть ссылка на рецепт или фильм на основе выбранной ссылки. Вы можете определить целевую страницу на основе метаданных, предоставляемых URL-адресом.
Вы можете использовать модификатор view в SwiftUI или метод AppDelegate для обработки входящих URL-адресов и соответствующей навигации. При разумной настройке вы можете открывать URL-адреса внутри приложения и перемещаться к местам назначения в любом месте приложения.
Настройка, реализация и пример кода в статье.
Лучшие практики управления состояниями в SwiftUI
Эффективное управление состояниями — ключ к созданию стабильных и отзывчивых приложений в SwiftUI. Ниже приведены некоторые лучшие практики управления состоянием в ваших приложениях SwiftUI:
1. Используйте State и Binding для простых локальных состояний.
2. Для сложных состояний используйте ObservedObject и Published.
3. Используйте EnvironmentObject для совместного использования состояния в несвязанных представлениях.
4. Избегайте больших State переменных.
5. Отложите сложные вычисления и побочные эффекты
Эффективное управление состояниями — ключ к созданию стабильных и отзывчивых приложений в SwiftUI. Ниже приведены некоторые лучшие практики управления состоянием в ваших приложениях SwiftUI:
1. Используйте State и Binding для простых локальных состояний.
2. Для сложных состояний используйте ObservedObject и Published.
3. Используйте EnvironmentObject для совместного использования состояния в несвязанных представлениях.
4. Избегайте больших State переменных.
5. Отложите сложные вычисления и побочные эффекты
Разработка, управляемая тестами (TDD), для исправления ошибок
Test-Driven Development (TDD) — это техника, которая требует, чтобы вы сначала написали тест, прежде чем приступать к реализации решения. Хотя разработчики используют эту методику и в целом во время разработки, есть способ применять ее только для исправления ошибок.
Обнаружение ошибки и так может разочаровать, но обнаружение ошибки, которая повторно возникла, будет еще хуже. Предотвратить повторное появление ошибки после ее устранения — важнейший навык разработчиков.
Разработка, управляемая тестами — это отличная техника, позволяющая увеличить покрытие кода тестами и одновременно повысить качество кода
В статье примеры кода, плюсы и минусы данного подхода.
Test-Driven Development (TDD) — это техника, которая требует, чтобы вы сначала написали тест, прежде чем приступать к реализации решения. Хотя разработчики используют эту методику и в целом во время разработки, есть способ применять ее только для исправления ошибок.
Обнаружение ошибки и так может разочаровать, но обнаружение ошибки, которая повторно возникла, будет еще хуже. Предотвратить повторное появление ошибки после ее устранения — важнейший навык разработчиков.
Разработка, управляемая тестами — это отличная техника, позволяющая увеличить покрытие кода тестами и одновременно повысить качество кода
В статье примеры кода, плюсы и минусы данного подхода.
Что такое состояние гонки (race condition)
Состояние гонки (race condition) — это ситуация, которая возникает в многозадачных или многопоточных программных системах, когда результаты выполнения программы зависят от того, в какой последовательности выполняются инструкции или операции в различных потоках или процессах. Это может привести к непредсказуемому поведению программы или к ошибкам в её выполнении.
Состояние гонки возникает, когда несколько потоков или процессов одновременно пытаются получить доступ к одним и тем же ресурсам (например, переменным памяти, файлам или устройствам ввода-вывода) без синхронизации. При этом результаты операций могут зависеть от порядка их выполнения, что делает поведение программы неопределённым.
Примером состояния гонки может быть ситуация, когда два потока пытаются изменить одну и ту же переменную. Если эти изменения не синхронизированы правильно, результаты могут быть непредсказуемыми, в зависимости от того, какой поток завершит операцию первым.
Для предотвращения состояний гонки часто используются механизмы синхронизации, такие как мьютексы, семафоры, блокировки и атомарные операции, которые гарантируют правильное взаимодействие между потоками или процессами при доступе к общим ресурсам.
#digest
Состояние гонки (race condition) — это ситуация, которая возникает в многозадачных или многопоточных программных системах, когда результаты выполнения программы зависят от того, в какой последовательности выполняются инструкции или операции в различных потоках или процессах. Это может привести к непредсказуемому поведению программы или к ошибкам в её выполнении.
Состояние гонки возникает, когда несколько потоков или процессов одновременно пытаются получить доступ к одним и тем же ресурсам (например, переменным памяти, файлам или устройствам ввода-вывода) без синхронизации. При этом результаты операций могут зависеть от порядка их выполнения, что делает поведение программы неопределённым.
Примером состояния гонки может быть ситуация, когда два потока пытаются изменить одну и ту же переменную. Если эти изменения не синхронизированы правильно, результаты могут быть непредсказуемыми, в зависимости от того, какой поток завершит операцию первым.
Для предотвращения состояний гонки часто используются механизмы синхронизации, такие как мьютексы, семафоры, блокировки и атомарные операции, которые гарантируют правильное взаимодействие между потоками или процессами при доступе к общим ресурсам.
#digest
Swiftfin: видеоплеер Jellyfin для iOS и tvOS
Swiftfin — это современный видеоклиент для медиасервера Jellyfin (от этой же компании — альтернатива проприетарным Emby и Plex, позволяющая передавать медиа с выделенного сервера на устройства конечных пользователей через множество приложений). Плеер написан на Swift, что позволяет максимально использовать возможности VLC для прямого воспроизведения и выглядеть нативно на всех классах устройств Apple.
Swiftfin — это современный видеоклиент для медиасервера Jellyfin (от этой же компании — альтернатива проприетарным Emby и Plex, позволяющая передавать медиа с выделенного сервера на устройства конечных пользователей через множество приложений). Плеер написан на Swift, что позволяет максимально использовать возможности VLC для прямого воспроизведения и выглядеть нативно на всех классах устройств Apple.
JTAppleCalendar: библиотека календаря на Swift
JTAppleCalendar — календарь для iOS на 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 Итог
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 Итог