Получи случайную криптовалюту за регистрацию!

iOS Dev

Логотип телеграм канала @ios_career — iOS Dev I
Логотип телеграм канала @ios_career — iOS Dev
Адрес канала: @ios_career
Категории: Технологии
Язык: Русский
Количество подписчиков: 5.08K
Описание канала:

🍏Канал об iOS-разработке, необычных подходах и решениях.
⭐️ Подготовка к собеседованиям.
⭐️ Архитектуры и алгоритмы.
⭐️ Статьи, обновления Swift и iOS.
⭐️ Код. Много кода.
👨‍💻Любые вопросы:
Виктор Грушевский (@Viktorianec)
#ios #mobile #swift

Рейтинги и Отзывы

2.50

2 отзыва

Оценить канал ios_career и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

1


Последние сообщения 2

2022-08-26 11:13:57
Как приостановить Task в Swift?

Структура Task в Swift имеет статический метод sleep(), который приводит к приостановке текущей задачи по крайней мере на некоторое количество наносекунд.

Речь идёт именно о наносекундах: нужно написать 1_000_000_000, чтобы получить 1 секунду.

Для этого нужно вызвать Task.sleep() с помощью await, так как это приведет к приостановке задачи, и вам также нужно использовать try, потому что sleep() приведёт к ошибке в случае, если task будет отменён.

Важное уточнение

Вызов Task.sleep() заставит текущую задачу «спать» по крайней мере столько времени, сколько вы запросили.

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

Использование наносекунд немного неуклюже, но на данный момент у Swift нет альтернативы.

Кстати! В отличие от Thread.sleep(), Task.sleep() не блокирует поток, позволяя ему взять дополнительную работу из других мест, если потребуется.

@iOS Dev
1.6K viewsedited  08:13
Открыть/Комментировать
2022-08-25 16:52:59 Что представляет собой процесс собеседования в Netflix?
Джорданна Квок поделилась опытом управления командой мобильных разработчиков в Netflix в интервью Полу Хадсону, о принципах найма и о многом другом

Ниже основные тезисы из интервью на случай, если вы решитесь попытать свои силы:

В команде Джорданны в Netflix не задают вопросов с LeetCode, и в целом на собеседовании стараются избегать головоломок, анализа сложности и т. д. Причина в том, что они не используют это в повседневной работе.

Зато можно спросить, что такое коллекции? Что представляет собой многопоточность? Вам нужно загрузить, я не знаю, 10 изображений — как вы убедитесь, что они правильно закэшированы? Такие вещи представляют собой настоящие проблемы, с которыми все инженеры будут сталкиваться изо дня в день в Netflix, поэтому именно такие вопросы мы будем задавать на большинстве технических собеседований.

GCD, управление памятью и тому подобное, в целом основы iOS — то, что хотелось бы услышать от кандидатов.

Намного полезнее тестовое задание. Так как оно лучше отразит, что вы на самом деле испытаете на рабочем месте. Потому что вы получите открытый вопрос, например, «создать приложение, которое что-то делает».

Даже если что-то не получается, мы делаем все возможное, чтобы дать обратную связь.

Мы нанимали людей на их второе или третье собеседование, поэтому я просто хочу сказать, что это не значит, что если вы не прошли в первый раз, это не значит, что вы не получите роль в будущем.
Терпение и труд всё перетрут?

Что я думаю об этом?

Те процессы, о которых рассказала Джордана, выглядят более чем разумными. Особенно интересна позиция про алгоритмические секции, хотя Netflix и входит в тот самый FAANG, компании из которого славятся своим харкдором.

Пусть алгоритмы не являются краеугольным камнем, но это совершенно не означает, что их не нужно учить.

@iOS Dev — об алгоритмах мы ещё поговорим
1.7K viewsedited  13:52
Открыть/Комментировать
2022-08-25 10:20:42
Прокачиваем push-уведомления для iOS: Rich Push Notifications
Узнайте, как изменять и улучшать push-уведомления до того, как они будут представлены пользователю

Push-уведомления позволяют приложениям передавать оповещения пользователям — даже если они не используют устройство активно.

Хотя уведомления уже показывают полезную информацию, их истинная мощь проявляется в Rich Notifications.

Rich Notifications позволяют перехватывать notification payload и дают вам возможность их оформления в соответствии с потребностями пользователя.

Это позволяет отображать кастомный UI, который может включать в себя и действия с кнопками.

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

@iOS Dev
1.6K viewsedited  07:20
Открыть/Комментировать
2022-08-24 09:15:51
Что такое phyllotaxis или как повторить анимацию в Wallet и Lock Screen в iOS 16
Оговорюсь, я как и прежде не использую Swift UI в проде, и наверняка код можно сделать чище

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

Время нового факта

Филлотаксис — одна из природных загадок, известная со времён Леонардо да Винчи. Название с древнегреческого — «расположение листьев».

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

Если сосчитать количество однотипных спиралей на поверхности, то с большой вероятностью мы получим одну из пар, образованных двумя соседними числами Фибоначчи.

Спасибо математикам за псевдокод:

n = caseIndex
base_angle = pi*(1+sqrt(5))
r = sqrt(n)
theta = n*base_angle
x = r*cos(theta)
y = r*sin(theta)

Для упрощения терминологии: n это индекс семечка (у нас это просто кружок, baseAngle некий стартовый угол, r - радиус, x и y — позиции, на которые мы должны поместить наше семечко).

Что ж, попробуем повторить природное явление с помощью Swift!

Создадим GeometryReader, proxy.size будет размером поля. xCenter и yCenter - координаты центра, от которых я отталкивался.

Радиус можно рассчитать по следующей формуле let radius:Double = maxWidth * sqrt(Double(i)). maxWidth это ширина семечка (тех, что ближе к краю поля).

Заполяем поле с помощью CircleInside в зависимости от максимального количества "семечек" внутри поля.

И небольшой эффект анимации: scaleEffect и rotationEffect по тапу.

В итоге получится то, что вы видите на гифке.

Свой код я залил на Github, можете изменять его так, как захотите.

@iOS Dev — решаю загадки Да Винчи на Swift.
1.7K viewsedited  06:15
Открыть/Комментировать
2022-08-23 10:38:43
Пример реализации автозаполнения пароля для приложения iOS

Функция Password Autofill позволяет пользователям входить в одну и ту же учетную запись на разных устройствах без необходимости запоминать учетные данные.

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

Когда в какой-то момент они запускают нативное приложение для доступа к той же учетной записи, приложение предлагает учетные данные, сохраненные для веб-сайта, в строке пароля QuickType.

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

Чтобы корректно рализовать эту фичу в приложении для iOS, необходимо выполнить следующие шаги:

Настройка связанных доменов приложения (associated domains).

Установка правильного типа автозаполнения для соответствующих полей.

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

@iOS Dev
1.7K views07:38
Открыть/Комментировать
2022-08-22 10:16:39
Продвинутые эффекты для тени UIView с использованием shadowPath

В этой статье рассматриваются необычные подходы к использованию теней.

Подробно разбирается, зачем нужно каждое из свойств: shadowColor, shadowOffset, shadowOpacity, shadowPath и shadowRadius, а также их комбинации.

Кроме этого демонстрируется, как можно использовать UIBezierPath применительно к тени для создания интересного эффекта.

@iOS Dev
1.8K views07:16
Открыть/Комментировать
2022-08-20 08:37:17
Полное руководство по UICollectionView с примерами на Swift
Узнайте, как использовать UICollectionView с многократно используемыми компонентами UIKit и шаблоном MVVM.

Автор рассказывает о двух подходах к созданию и настройке UICollectionView, а также приводит аргументы за использование кода, а не Interface Builder.

Кроме этого, он делится своим фреймворком

Кстати, рекомендую посмотреть видео Apple о продвинутых пользовательских интерфейсах.

@iOS Dev
2.2K views05:37
Открыть/Комментировать
2022-08-19 15:10:15
Каково работать в команде, которая преследует амбициозную цель – развивать свой продукт в составе суперприложения?

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

Вас ждут на Weekend Offer в команды Почты и Облака Mail.ru. Вместе с ними вы будете строить удобную инфраструктуру, создавать высоконагруженный сервис с 1M RPS, решать уникальные задачи по работе с файлами и многое другое.

С 22 августа до 2 сентября подавайте заявку, а 3 и 4 сентября тимлиды команд расскажут о своей работе, ответят на все ваши вопросы и проведут собеседования, чтобы в воскресение вечером выбрать лучших кандидатов и сделать им оффер. Не упустите возможность!
1.9K views12:10
Открыть/Комментировать
2022-08-19 10:02:34 Как бы мог выглядеть iOS-разработчик в разных стилях живописи или как мне дали доступ к DALL·E. Часть 3 — архив.
На случай, если вам понадобится аватарка (без всяких вотермарок)

В архиве все картинки по разделам, сгенерированные Dall-E по разделам:

Ренессанс.

Классицизм.

Романтизм.

Импрессионизм.

Экспрессионизм.

Авангардизм.

@iOS Dev
1.9K viewsedited  07:02
Открыть/Комментировать
2022-08-19 10:00:00
Как бы мог выглядеть iOS-разработчик в разных стилях живописи или как мне дали доступ к DALL·E. Часть 2!
Всегда знал, что у iOS-разработчиков есть тяга к необычным вещам

Я своё слово держу, а раз вы такие крутые — то кроме авангардизма, я добавил ещё запросы и для импрессионизма с экспрессионизмом. Ну а почему бы и нет?

@iOS Dev — ниже будет ещё один бонус.
1.8K viewsedited  07:00
Открыть/Комментировать