Инжиниринг больше про людей, чем про технологии
Многие инженеры недооценивают важность навыков общения с людьми. Они начинают изучать программирование и полагают, что будут просто кодить весь день и им не придется ни с кем общаться. На самом деле все обстоит иначе. Инженерное дело - одна из самых дружелюбных сфер деятельности. Все дело в хорошем сотрудничестве, согласованности, командной работе и помощи друг другу.
Многие инженеры недооценивают важность навыков общения с людьми. Они начинают изучать программирование и полагают, что будут просто кодить весь день и им не придется ни с кем общаться. На самом деле все обстоит иначе. Инженерное дело - одна из самых дружелюбных сфер деятельности. Все дело в хорошем сотрудничестве, согласованности, командной работе и помощи друг другу.
Всем привет!
Мы отсняли для вас большое количество выпусков и скоро их будем выпускать. Один из них уже в пятницу.
1. Процесс онбординга
2. Подготовка к собеседованиям через Outtalent
3. Senior Androind делает фичу в iOS проекте
И еще много чего интересного. Всем спасибо🙂🔥
Мы отсняли для вас большое количество выпусков и скоро их будем выпускать. Один из них уже в пятницу.
1. Процесс онбординга
2. Подготовка к собеседованиям через Outtalent
3. Senior Androind делает фичу в iOS проекте
И еще много чего интересного. Всем спасибо🙂🔥
Инсайдеры показали ранние версии 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. Полностью настраиваемый, с настройками ячеек и общего вида, горизонтальным и вертикальным режимом, изменяемыми заголовками, выбором диапазонов и всем прочим.
В пятницу в Москве в концертном зале «Крокус Сити Холл» произошел чудовищный теракт.
Мы глубоко скорбим и выражаем соболезнования семьям погибших и пострадавших в результате этой трагедии.
В ближайшее время мы не будем публиковать материалы.
Берегите себя и своих близких.
Мы глубоко скорбим и выражаем соболезнования семьям погибших и пострадавших в результате этой трагедии.
В ближайшее время мы не будем публиковать материалы.
Берегите себя и своих близких.