Planby 2.0 + React: реализация расписаний, временной шкалы и музыки

Planby 2.0 + React: реализация расписаний, временной шкалы и музыки

12 мая 2022 г.

Здравствуйте, читатели!


Сегодня я хотел бы коснуться некоторых интересных тем, таких как платформы веб-приложений Tv Online и VOD, которые в последнее время становятся очень популярными на рынке, что приводит к увеличению спроса на определенные функции, такие как EPG 🚀.


Краткое введение


Planby — это компонент для быстрой реализации EPG, расписаний, музыкальных событий, таймлайнов и многих других идей. Он использует настраиваемое виртуальное представление, которое позволяет вам работать с действительно большим объемом данных. Компонент имеет простой API, который можно легко интегрировать с другими сторонними библиотеками пользовательского интерфейса. Тема компонента настраивается в соответствии с потребностями дизайна приложения.




Что такое временная шкала на основе электронной программы передач?


EPG — это ярлык для Электронной программы передач. Он обычно используется в приложениях TV Online и VOD. В веб-разработке это новая функция, набирающая популярность 🚀.


  • Это система, которая предоставляет пользователям все доступные прошлые, текущие и будущие программы вещания от данного поставщика сигнала.

  • Это позволяет вам получить текущую программу на данный день и показывает содержимое до 7 дней вперед.

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

  • Он содержит дополнительные функции, такие как напоминание, расписание записи, списки избранных каналов и отображение сведений о транслируемых программах.

Описание


Работая в течение многих лет над веб-приложениями Tv Online и VOD, я понял, что нет хороших или плохих решений для реализации EPG. Я бы сказал, что это нишевая функция для веб-разработки, которая наиболее популярна в приложениях для Android TV и т. д. Я видел и проанализировал ряд веб-сайтов, на которых были реализованы их EPG, и понял, что это действительно интересная тема, с которой можно поработать. 😄.


Наиболее важной вещью в этом типе функций является производительность по сравнению с действительно большими данными на веб-сайте. Приложения сталкиваются с несколькими проблемами, такими как обновление, перемещение, прокрутка EPG и взаимодействие с контентом. Иногда приложение реализует EPG в виде списка, который можно прокручивать по оси Y, но прокручивать по оси X; вам нужно нажимать на кнопки слева и справа, что утомительно и не очень хорошо для UX 😕.


Кроме того, иногда на сайте отсутствуют многие параметры взаимодействия с EPG, такие как рейтинг, выбор любимых каналов, RTL и т. д., поскольку они вызывают проблемы с производительностью. Еще одна проблема, с которой я часто сталкиваюсь, заключается в том, что приложение слишком часто запрашивает данные, пока я прокручиваю EPG. Хранение всех программ без какой-либо оптимизации на странице может привести к ужасным замедлениям работы приложения, что в итоге приведет к падению браузера. Позиционирование всех программ в макете кажется простым, но иногда также может быть проблематичным и принимать форму затемнения или отсутствия контента. Суть EPG в том, что он должен быть быстрым. В общем, EPG для Интернета — действительно проблематичная тема.


Planby — решение


Вот тут-то и приходит на помощь Planby 😍. Компонент создан с нуля, с помощью React и Typescript, с использованием минимального количества ресурсов. Он использует настраиваемое виртуальное представление, которое позволяет вам работать с действительно большим объемом данных. Он показывает только видимые программы и каналы в пользовательском интерфейсе и размещает все элементы в соответствии с часами на временной шкале и назначенными каналами. Если у ресурса есть программа затемнения или в его EPG нет контента, в этом конкретном случае проблем нет, потому что компоненты могут немедленно исправить эту проблему и рассчитать позиционирование.


Planby имеет простой интерфейс и включает в себя все необходимые функции, такие как боковая панель, временная шкала, макет и обновление программ в реальном времени. Кроме того, есть дополнительная функция, позволяющая скрыть любой элемент, который вы не хотите включать в макет. Компонент имеет действительно простой API, который позволяет вам реализовывать свои собственные элементы вместе с вашими предпочтениями. Вы можете использовать компоненты стиля Planby для разработки основных функций или создания пользовательских стилей в соответствии с выбранным дизайном. Вы можете легко интегрироваться со своим приложением функций, таким как календарь, параметры рейтинга, избранное, прокрутка, кнопки «Сейчас», расписание записи, догоняющий контент и т. д., а также любые компоненты сторонних библиотек пользовательского интерфейса. Более того, ведется работа над поддержкой функций RTL!🔥


Принимая во внимание всю информацию, упомянутую выше, вы можете быстро и просто настроить EPG.


Если вы хотите узнать больше, вы можете прочитать документацию в GitHub repo. Пакет доступен на npm.


Быстрый старт


```javascript


пряжа добавить планбай


или


план установки npmот


Использование


```javascript


импортировать {useEpg, Epg, Layout} из 'planby';


константные каналы = React.useMemo(


логотип: «https://via.placeholder.com»,


UUID: '10339a4b-7c48-40ab-abad-f3bcaf95d9fa',


const epg = React.useMemo(


каналUuid: '30f5ff1c-1346-480a-8047-a999dd908c1e',


описание:


'Ut anim nisi consequat minim deserunt...',


идентификатор: 'b67ccaa3-3dd2-4121-8256-33dbddc7f0e6',


изображение: «https://via.placeholder.com»,


с: "2022-02-02T23:50:00",


до: "2022-02-02T00:55:00",


заголовок: 'Заголовок',


константа {


получитьEpgProps,


getLayoutProps


} = useEpg({


ЭПГ,


каналы,


startDate: '2022/02/02', // или 2022-02-02T00:00:00


возврат (


<дел>




<Макет


{...getLayoutProps()}





Объявление размера родительского компонента может вычислить и настроить измерение компонента.


Если вы хотите установить свой собственный диапазон времени, вам нужно добавить время в реквизиты startDate и endDate.


```javascript


константа {


получитьEpgProps,


получитьLayoutProps,


} = useEpg({


ЭПГ,


каналы,


startDate: '2022-02-02T10:00:00',


endDate: '2022-02-02T20:00:00',


ширина: 1200,


высота: 600


возврат (


<дел>



<Макет


{...getLayoutProps()}




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


```javascript


импорт {


использоватьEpg,


Эпг,


Макет,


ПрограммаБокс,


ПрограммаКонтент,


ПрограммаФлекс,


стек программ,


Название программы,


Текст программы,


ПрограммаИзображение,


использованиеПрограмма,


Программа,


Пункт программы


} от "планбы";


const Item = ({program,...rest }: ProgramItem) => {


const {styles, formatTime, isLive, isMinWidth} = useProgram({program,...rest});


const {данные} = программа;


const {изображение, заголовок, так как, до } = данные;


const с момента времени = формат времени (с);


consttilTime = форматВремя(до);


возврат (



<Содержимое программы


ширина = {стили. ширина}


isLive={isLive}


<Программная гибкость>


{isLive && isMinWidth && }


<Программный стек>


{название


<Программный текст>


{свремени} - {до времени}







приложение функции () {


константа {


получитьEpgProps,


получитьLayoutProps,


} = useEpg({


ЭПГ,


каналы,


startDate: '2022/02/02', // или 2022-02-02T00:00:00


возврат (


<дел>




<Макет


{...getLayoutProps()}


renderProgram={({ программа,...остальное }) => (






экспортировать приложение по умолчанию;


Вот и вся установка! 🚀



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE