Рубрики
Без рубрики

Как кодировать прогрессивный веб-сайт новостей веб-приложения

За последние две недели я работал над личным проектом под названием Global Upvote. Глобальные агрегаты Apvote Agverates Top проголосовали истории через Интернет, суммированные и обновляются каждые шестьдесят секунд. Эта статья сосредоточивается на том, как я смог осуществить Глобальную поддержку для начинающих разработчиков. Я написал

Автор оригинала: James Y Rauhut.

За последние две недели я работал над личным проектом под названием Global Upvote. Глобальные агрегаты Apvote Agverates Top проголосовали истории через Интернет, суммированные и обновляются каждые шестьдесят секунд.

Эта статья сосредоточивается на том, как я смог осуществить Глобальную поддержку для начинающих разработчиков. Я написал отдельную статью о Процесс дизайна за этим Отказ Эти две истории могут показаться полностью отдельными. Но процесс проектирования и развития был глубоко переплетены в реальной жизни.

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

Нахождение данных

В дизайне есть концепция контента – сначала. Content-First Design говорит, что вам нужно спроектировать вокруг контента. Для меня, чтобы сделать это, мне нужно было убедиться, что смогу схватить правильные данные. Прежде чем я начал на любой фактической рабочей работе, я работал с API Reddit и моим узлым сервером.

Я знал, что есть две части контента, которые я хотел поймать из Reddit:

  1. Лучшие сообщения R/Worldnews для своих заголовков
  2. Комментарий пользователя бота, который подвел историю

К счастью, там был отличный узел для API под названием Snoowrap Отказ Было легко использовать и у меня было Получение контента моментально.

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

Я мог бы придержать небольшое количество данных (истории) на моем сервере и обновить его раз в минуту с простым Setinterval Отказ Это прекратило толкать риск нарушать мои пределы API reddit и сокращенным временем загрузки истории, потому что мне не придется пинчать API reddit каждый раз.

Держать его прогрессивным

Хотите знать дешевый, грязный секрет о прогрессивном веб-приложении в реакции? Просто используйте Create-React-App Отказ Вкладчики по этому проекту проделали замечательную работу по добавлению работников услуг в течение почти мгновенных нагрузок и файла манифеста для ваших метаданных, и оптимизация пакета веб-запада. В прошлом мне пришлось много работать для PWA (прогрессивные веб-приложения) и даже написал Учебное пособие на совершенствование их.

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

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

Вторая половина Offline-Mode спасила новые истории на устройство пользователя каждый раз, когда они были выбраны. Это был мой первый раз, используя LocalStorage И я был приятно удивлен, насколько это было легко.

Последний бит PWA для выполнения, улучшал индекс скорости восприятия. Вы можете увидеть эту пользовательскую метрику, открыв Chrome devtools и запускаю Аудит Отказ Чтобы улучшить этот счет, я сделал скелеты, которые появятся, когда государство моего приложения было забрать Отказ

Подключил плагин

Я решил, что хотел, чтобы пользователь мог сэкономить опыт в качестве новой вкладки для Chrome и Firefox. Браузеры в результате чего поддерживают установку домашней страницы. Но это не дает вам контроль над баром URL. Это было важной деталью, потому что пользователь не хочет, чтобы нажать на панель URL каждый раз, когда они открывают новую вкладку.

Я боялся, что собираюсь погрузиться в глубокий конец расширения браузера. Это было то, с кем я не знаком, помимо проверки сетки, чтобы помочь моим визуальным навыкам. Еще раз, это решение оказалось врученным мне на серебряное блюдо. Google включает в себя подобное расширение в их Пример загрузки. Я работал в кратчайшие сроки с Расширение глобального вкладка UPVote Отказ Изменения не были даже необходимы для подачи в магазин Firefox!

Окончательный результат

С точки зрения развития, я любил все разные решения, которые я мог бы собрать для Global Upvote Отказ Эти решения говорят мне, что веб-сообщество становится лучше работать вместе, чтобы сделать опыт развития менее расстраивающим. ACING CHROME DEVTOOLS AUDIT, ранее, расширение Google Lighthouse также получила самую простое, что он когда-либо был.

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

Несколько быстрых вещей следует отметить:

  • Где файлы CSS?! Нет ничего. Я использую Слифовые компоненты Чтобы прикрепить стили непосредственно к их компоненту! Проверьте этот разговор, я дал в IBM о том, почему CSS-in-js безумно хорош: https://vimeo.com/230614037.
  • Где исходный код для расширения вкладок? Проверьте это в отдельном репо для Глобальная вкладка UPVote Отказ
  • Как мне начать работать это локально? Проверьте документацию для Create-React-App Если вы еще не сделали. Много вау Вам также нужен файл под названием Keys.json В корневом каталоге с вашей информацией для Snoowrap Отказ Это должно выглядеть так:
{
  "userAgent": "random-term",
  "clientId": "FromYourRedditAPISettings",
  "clientSecret": "FromYourRedditAPISettings",
  "username": "YourRedditUsername",
  "password": "YourRedditPassword"
}

Я надеюсь, что вам понравился этот случай записи!

Опять же, я написал сестру о том, как разработать этот прогрессивный веб-сайт веб-приложения здесь Отказ

Для получения дополнительной информации: не стесняйтесь связаться со мной по комментариям, Email или @seejamescode Отказ Я работаю в ATX для IBM Design и всегда люблю разговор с сообществом веб-дизайна. Оставьте какие-либо вопросы, которые вы можете иметь, и я постараюсь ответить на них для вас!

Оригинал: “https://www.freecodecamp.org/news/coding-a-newspaper-as-a-freakin-progressive-web-app-e456d4a2b9cd/”