📱iOS-разработчик ВК Видео (senior)
VK Видео — это видеоплатформа и стриминговый сервис. В компании будут доступны авторские инструменты по созданию контента для блогеров (видеоредактор, камера, сервис монетизации), а для их пользователей — уникальный контент. В планах стать площадкой №1 для размещения контента в Рунете.
🎯Задачи:
📌Разрабатывать приложение ВКонтакте (продукт видео) под IOS;
📌Создавать новый функционал продукта, реализовывать UX-эксперименты;
📌Следить за работоспособностью сервиса и устранять технический долг;
📌Взаимодействовать с командой менеджеров, дизайнеров, аналитиков и тестировщиков;
📌Принимать участие в планировании, обсуждении проектов.
🔥Требования:
💎Отличное знание Objective-С и Swift;
💎Хорошие знания системных фреймворков iOS и гайдлайны Apple;
💎Знание классических алгоритмов и структуры данных;
💎Навыки профилирования;
💎Опыт работы с аудио или видео на мобильных устройствах (желательно);
💎Активное участие в код-ревью.
🛠 Стек:
⚙️ Swift, Objective-С;
Минимальная версия iOS 14.
🤩Почему у них круто:
✔️Экспертное комьюнити IOS;
✔️ДМС для сотрудника и его детей с первого месяца работы;
✔️100%-ная оплата больничного в течение 30 дней;
✔️Компенсация занятий спортом;
✔️Компенсация питания.
И многое другое, скорее пиши в рекрутеру - @lona736
Ссылка на вакансию: https://team.vk.company/vacancy/26519/
VK Видео — это видеоплатформа и стриминговый сервис. В компании будут доступны авторские инструменты по созданию контента для блогеров (видеоредактор, камера, сервис монетизации), а для их пользователей — уникальный контент. В планах стать площадкой №1 для размещения контента в Рунете.
🎯Задачи:
📌Разрабатывать приложение ВКонтакте (продукт видео) под IOS;
📌Создавать новый функционал продукта, реализовывать UX-эксперименты;
📌Следить за работоспособностью сервиса и устранять технический долг;
📌Взаимодействовать с командой менеджеров, дизайнеров, аналитиков и тестировщиков;
📌Принимать участие в планировании, обсуждении проектов.
🔥Требования:
💎Отличное знание Objective-С и Swift;
💎Хорошие знания системных фреймворков iOS и гайдлайны Apple;
💎Знание классических алгоритмов и структуры данных;
💎Навыки профилирования;
💎Опыт работы с аудио или видео на мобильных устройствах (желательно);
💎Активное участие в код-ревью.
🛠 Стек:
⚙️ Swift, Objective-С;
Минимальная версия iOS 14.
🤩Почему у них круто:
✔️Экспертное комьюнити IOS;
✔️ДМС для сотрудника и его детей с первого месяца работы;
✔️100%-ная оплата больничного в течение 30 дней;
✔️Компенсация занятий спортом;
✔️Компенсация питания.
И многое другое, скорее пиши в рекрутеру - @lona736
Ссылка на вакансию: https://team.vk.company/vacancy/26519/
🤡118🔥8👎7👍4🤬1🕊1
Правила работы с MainActor
В одной из сессий на WWDC 2022 говорилось, что компилятор гарантирует выполнение кода с атрибутом MainActor на главном потоке. На самом деле, это не так. Все осложняется тем, что нормальной документации пока тоже не завезли, и единственный доступный источник информации – пропозалы про акторы.
Автор статьи пробует задокументировать известную ему информацию про то, как работает атрибут MainActor, и в каких случаях он игнорируется.
В одной из сессий на WWDC 2022 говорилось, что компилятор гарантирует выполнение кода с атрибутом MainActor на главном потоке. На самом деле, это не так. Все осложняется тем, что нормальной документации пока тоже не завезли, и единственный доступный источник информации – пропозалы про акторы.
Автор статьи пробует задокументировать известную ему информацию про то, как работает атрибут MainActor, и в каких случаях он игнорируется.
👍27🤡24
Симулятор HomeKit устройств
- У Apple есть отдельное приложение, которое позволяет симулировать практически любое умное устройство: лампочки, сенсоры, камеры, дверные замки.
- Приложение HomeKit Accessory Simulator входит в состав Additional Tools for Xcode.
- Симулятор позволяет настраивать различные характеристики устройств. Например, для лампочки можно подкрутить цветовую температуру и яркость.
Перевод на русский язык
- У Apple есть отдельное приложение, которое позволяет симулировать практически любое умное устройство: лампочки, сенсоры, камеры, дверные замки.
- Приложение HomeKit Accessory Simulator входит в состав Additional Tools for Xcode.
- Симулятор позволяет настраивать различные характеристики устройств. Например, для лампочки можно подкрутить цветовую температуру и яркость.
Перевод на русский язык
🔥24👍14❤🔥1🤡1
Обновление библиотеки SwiftUI Navigation от PointFree
Доработанный подход к навигации – одна из ключевых фичей будущего релиза TCA 1.0. На пути к нему команда PointFree обновила свою навигационную библиотеку. В релизе две ключевые фичи:
🚏Работа с навигационным стеком
⚠️Новые API для алертов и диалогов
Перевод на русский язык
Доработанный подход к навигации – одна из ключевых фичей будущего релиза TCA 1.0. На пути к нему команда PointFree обновила свою навигационную библиотеку. В релизе две ключевые фичи:
🚏Работа с навигационным стеком
⚠️Новые API для алертов и диалогов
Перевод на русский язык
🔥22👎7🤡4👍3
Рассказ об участии в контесте Telegram
Недавно закончился очередной контест Telegram, в котором надо было реализовать медиаредактор. Один из участников конкурса написал по итогам статью, в которой рассказал про:
🏞Реализацию галереи фото пользователя
🛠Медиаредактор: выбор цвета, пипетку и анимации
➰Отрисовку линий без PencilKit
🎨Работу с текстом и реализацию различных эффектов
Недавно закончился очередной контест Telegram, в котором надо было реализовать медиаредактор. Один из участников конкурса написал по итогам статью, в которой рассказал про:
🏞Реализацию галереи фото пользователя
🛠Медиаредактор: выбор цвета, пипетку и анимации
➰Отрисовку линий без PencilKit
🎨Работу с текстом и реализацию различных эффектов
👏23👍13🤡11🔥4❤2🌚1
График с частичным закрашиванием области на Swift Charts
В статье разбирается, как с помощью Swift Charts собрать график, показывающий изменение индекса ультрафиолета в течение дня. Ключевые особенности графика:
- Область графика закрашивается градиентом в зависимости от уровня УФ
- Кривая графика тоже окрашена градиентом
- Текущее время отображается вертикальной линией поверх графика
- Часть графика, относящаяся к прошедшему периоду времени, затемняется
В статье разбирается, как с помощью Swift Charts собрать график, показывающий изменение индекса ультрафиолета в течение дня. Ключевые особенности графика:
- Область графика закрашивается градиентом в зависимости от уровня УФ
- Кривая графика тоже окрашена градиентом
- Текущее время отображается вертикальной линией поверх графика
- Часть графика, относящаяся к прошедшему периоду времени, затемняется
👍21🤡6🌚1
Скидки на плейлисты iOS Crew
Мы с командой запустили распродажу всех плейлистов Подлодки под Черную пятницу. Скидка накопительная, больше плейлистов – больше скидон. Вот несколько особенно крутых, которые рекомендую вам посмотреть:
🏎️Перфоманс и профайлинг с кучей воркшопов по разным инструментам и практикам
🌈Анимации: серия воркшопов от простых к самым сложным визуальным эффектам
🤯iOS под капотом: хардкорнейшие сессии про кишки iOS SDK, компилятора и билд системы
🧱Techlead Crew: Проектируем с нуля – для тех, кто хочет вкачать свои архитектурные навыки
Я опоздал рассказать вам про акцию, поэтому лучше поспешить – мы закроем ее уже завтра.
👉Магазин плейлистов
Мы с командой запустили распродажу всех плейлистов Подлодки под Черную пятницу. Скидка накопительная, больше плейлистов – больше скидон. Вот несколько особенно крутых, которые рекомендую вам посмотреть:
🏎️Перфоманс и профайлинг с кучей воркшопов по разным инструментам и практикам
🌈Анимации: серия воркшопов от простых к самым сложным визуальным эффектам
🤯iOS под капотом: хардкорнейшие сессии про кишки iOS SDK, компилятора и билд системы
🧱Techlead Crew: Проектируем с нуля – для тех, кто хочет вкачать свои архитектурные навыки
Я опоздал рассказать вам про акцию, поэтому лучше поспешить – мы закроем ее уже завтра.
👉Магазин плейлистов
🤡46👍4🔥2
Скрытие информации Lock Screen Widgets в заблокированном устройстве
- Пользователь может запретить всем lock screen виджетам отображать информацию на заблокированном экране устройства. Но эта настройка довольно глубоко спрятана, а для некоторых типов приложений приватность – критична.
- Чтобы всегда скрывать информацию, нужно сделать две вещи – подкрутить Entitlements в приложении, добавив специальный флаг, и добавить виджету модификатор privacySensitive.
Перевод на русский язык
- Пользователь может запретить всем lock screen виджетам отображать информацию на заблокированном экране устройства. Но эта настройка довольно глубоко спрятана, а для некоторых типов приложений приватность – критична.
- Чтобы всегда скрывать информацию, нужно сделать две вещи – подкрутить Entitlements в приложении, добавив специальный флаг, и добавить виджету модификатор privacySensitive.
Перевод на русский язык
👍16
This media is not supported in your browser
VIEW IN TELEGRAM
iOS на YaTalks: уже 3 и 4 декабря
На YaTalks, традиционной конференции Яндекса для IT-комьюнити, один из треков посвятили mobile. В нем будет несколько докладов про iOS:
— Умная камера: как встроить в iOS приложение распознавание текста для незрячих.
— Подводные камни локализации iOS-приложений.
— Как iOS анализирует наше здоровье: HealthKit, ResearchKit, CareKit, Activity и какие датчики это считывают.
Кроме докладов организаторы YaTalks подготовили множество других форматов: дискуссии, дебаты, питчинг опенсорс-проектов, рэндом-кофе и индивидуальные консультации с экспертами. Скучно точно не будет.
Зарегистрироваться
На YaTalks, традиционной конференции Яндекса для IT-комьюнити, один из треков посвятили mobile. В нем будет несколько докладов про iOS:
— Умная камера: как встроить в iOS приложение распознавание текста для незрячих.
— Подводные камни локализации iOS-приложений.
— Как iOS анализирует наше здоровье: HealthKit, ResearchKit, CareKit, Activity и какие датчики это считывают.
Кроме докладов организаторы YaTalks подготовили множество других форматов: дискуссии, дебаты, питчинг опенсорс-проектов, рэндом-кофе и индивидуальные консультации с экспертами. Скучно точно не будет.
Зарегистрироваться
🤡33🔥16👍2👎2
Протокол Layout в SwiftUI: кэширование
- SwiftUI умеет автоматически кешировать часть расчетов кастомного лэйаута, но гораздо эффективнее разобраться с кэшированием самостоятельно.
- У протокола Layout есть две функции – makeCache и updateCache, которые позволяют управлять состоянием закешированных расчетов.
- Кэш можно обновлять в функциях sizeThatFits и placeSubviews.
Перевод на русский язык
- SwiftUI умеет автоматически кешировать часть расчетов кастомного лэйаута, но гораздо эффективнее разобраться с кэшированием самостоятельно.
- У протокола Layout есть две функции – makeCache и updateCache, которые позволяют управлять состоянием закешированных расчетов.
- Кэш можно обновлять в функциях sizeThatFits и placeSubviews.
Перевод на русский язык
👍22😁3
Консультации с экспертами по работе с App Store
До 8 декабря Apple проводит консультации разработчиков со своими экспертами по различным аспектам работы с App Store: продвижению, оформлению страницы, работе с TestFlight. Формат – презентация по теме и Q&A после нее.
До 8 декабря Apple проводит консультации разработчиков со своими экспертами по различным аспектам работы с App Store: продвижению, оформлению страницы, работе с TestFlight. Формат – презентация по теме и Q&A после нее.
👍7👎2
Подборка материалов от Apple про продвижение приложения в App Store
За последний год команда Apple потратила много сил на то, чтобы улучшить документацию в областях, не связанных непосредственно с написанием кода. Один из таких обновленных разделов – статьи про работу с App Store.
👀 Страница приложения и поисковая оптимизация (кастомные лендинги приложений, тестирование страниц, получение фичеринга)
💰Бизнес и аналитика (снижение комиссии до 15%, сравнение бизнес-моделей, бандлинг)
🤩User Engagement (локализация, советы по онбордингу, работа с обновлениями)
За последний год команда Apple потратила много сил на то, чтобы улучшить документацию в областях, не связанных непосредственно с написанием кода. Один из таких обновленных разделов – статьи про работу с App Store.
👀 Страница приложения и поисковая оптимизация (кастомные лендинги приложений, тестирование страниц, получение фичеринга)
💰Бизнес и аналитика (снижение комиссии до 15%, сравнение бизнес-моделей, бандлинг)
🤩User Engagement (локализация, советы по онбордингу, работа с обновлениями)
🔥9🤡3
Тред иконок приложений, сгенерированных Midjourney
Прогресс нейронок, генерирующих иллюстрации, сделал более доступными и красивые иконки для ваших пет-проектов. Посмотрите, какая красота получается!
Прогресс нейронок, генерирующих иллюстрации, сделал более доступными и красивые иконки для ваших пет-проектов. Посмотрите, какая красота получается!
👍74❤17❤🔥8🔥5
Модификатор clipped() в SwiftUI не влияет на hit test
- clipped() прячет контент вьюшки, находящийся за пределами ее границ. Но невидимая часть вьюшки все равно продолжает принимать на себя все нажатия, а компоненты, находящиеся под ней, невозможно нажать.
- Чтобы это исправить, используйте дополнительно другой модификатор – contentShape(). Он определяет hit testing area для компонента.
Перевод на русский язык
- clipped() прячет контент вьюшки, находящийся за пределами ее границ. Но невидимая часть вьюшки все равно продолжает принимать на себя все нажатия, а компоненты, находящиеся под ней, невозможно нажать.
- Чтобы это исправить, используйте дополнительно другой модификатор – contentShape(). Он определяет hit testing area для компонента.
Перевод на русский язык
👍41🤯16😁4
Статистика по использованию различных размеров Dynamic Size шрифта
David Smith поделился статистикой из своих приложений, которая должна быть +/- репрезентативна – у него миллионы пользователей. Ожидаемо, больше всего у L, но удивляет популярность размера XS.
David Smith поделился статистикой из своих приложений, которая должна быть +/- репрезентативна – у него миллионы пользователей. Ожидаемо, больше всего у L, но удивляет популярность размера XS.
👍17👎2
Настройка окружений с помощью .xcconfig
Если в вашем проекте много значений, которые вы меняете в зависимости от окружения, например, локального, тестового и продакшн, можно значительно упростить работу с ними, положив их в .xcconfig, откуда затем использовать в Info.plist и в коде.
Перевод на русский язык
Если в вашем проекте много значений, которые вы меняете в зависимости от окружения, например, локального, тестового и продакшн, можно значительно упростить работу с ними, положив их в .xcconfig, откуда затем использовать в Info.plist и в коде.
Перевод на русский язык
👍23🤡2🔥1
Media is too big
VIEW IN TELEGRAM
Пример использования UIScreenshotServiceDelegate
UIScreenshotServiceDelegate – API, который позволяет переопределить поведение приложения при снятии скриншота. Подумайте о том, в каких сценариях пользователь скриншотит ваше приложение, и попробуйте подготовить контент так, чтобы им было удобнее пользоваться. Например, в MindNode таким образом можно легко экспортнуть майндмэп в PDF и пошарить его с кем-нибудь.
UIScreenshotServiceDelegate – API, который позволяет переопределить поведение приложения при снятии скриншота. Подумайте о том, в каких сценариях пользователь скриншотит ваше приложение, и попробуйте подготовить контент так, чтобы им было удобнее пользоваться. Например, в MindNode таким образом можно легко экспортнуть майндмэп в PDF и пошарить его с кем-нибудь.
👍23❤🔥3🔥2