<?xml version="1.0" encoding="UTF-8"?>
<record
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
    xmlns="http://www.loc.gov/MARC21/slim">

  <leader>02985cam a22003615a 4500</leader>
  <datafield tag="999" ind1=" " ind2=" ">
    <subfield code="c">26902</subfield>
    <subfield code="d">26874</subfield>
  </datafield>
  <controlfield tag="001">20555353</controlfield>
  <controlfield tag="005">20181029131437.0</controlfield>
  <controlfield tag="008">180625s2017    caua   frb    001 0 eng d</controlfield>
  <datafield tag="010" ind1=" " ind2=" ">
    <subfield code="a">  2018302626</subfield>
  </datafield>
  <datafield tag="015" ind1=" " ind2=" ">
    <subfield code="a">GBB761421</subfield>
    <subfield code="2">bnb</subfield>
  </datafield>
  <datafield tag="016" ind1="7" ind2=" ">
    <subfield code="a">018286766</subfield>
    <subfield code="2">Uk</subfield>
  </datafield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">9781491961650  (paperback)</subfield>
  </datafield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">1491961651  (paperback)</subfield>
  </datafield>
  <datafield tag="035" ind1=" " ind2=" ">
    <subfield code="a">(OCoLC)ocn956340441</subfield>
  </datafield>
  <datafield tag="040" ind1=" " ind2=" ">
    <subfield code="a">YDXCP</subfield>
    <subfield code="b">eng</subfield>
    <subfield code="c">YDXCP</subfield>
    <subfield code="d">BDX</subfield>
    <subfield code="d">OCLCQ</subfield>
    <subfield code="d">KL8</subfield>
    <subfield code="d">BTCTA</subfield>
    <subfield code="d">SXP</subfield>
    <subfield code="d">JRZ</subfield>
    <subfield code="d">JTH</subfield>
    <subfield code="d">CLE</subfield>
    <subfield code="d">GP5</subfield>
    <subfield code="d">EQO</subfield>
    <subfield code="d">IGA</subfield>
    <subfield code="d">OCLCF</subfield>
    <subfield code="d">DLC</subfield>
    <subfield code="d">EG-ScBUE</subfield>
  </datafield>
  <datafield tag="042" ind1=" " ind2=" ">
    <subfield code="a">lccopycat</subfield>
  </datafield>
  <datafield tag="082" ind1="0" ind2="4">
    <subfield code="a">005.3</subfield>
    <subfield code="b">ATE</subfield>
    <subfield code="2">22</subfield>
  </datafield>
  <datafield tag="100" ind1="1" ind2=" ">
    <subfield code="a">Ater, Tal.</subfield>
    <subfield code="9">41839</subfield>
  </datafield>
  <datafield tag="245" ind1="1" ind2="0">
    <subfield code="a">Building progressive web apps :</subfield>
    <subfield code="b">bringing the power of native to the browser /</subfield>
    <subfield code="c">Tal Ater.</subfield>
  </datafield>
  <datafield tag="250" ind1=" " ind2=" ">
    <subfield code="a">1st ed.</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="a">Sebastopol, CA :</subfield>
    <subfield code="b">O'Reilly Media,</subfield>
    <subfield code="c">2017.</subfield>
  </datafield>
  <datafield tag="300" ind1=" " ind2=" ">
    <subfield code="a">xvi, 268 p. :</subfield>
    <subfield code="b">ill. ;</subfield>
    <subfield code="c">24 cm.</subfield>
  </datafield>
  <datafield tag="504" ind1=" " ind2=" ">
    <subfield code="a">Includes bibliographical references and index.</subfield>
  </datafield>
  <datafield tag="505" ind1="0" ind2="0">
    <subfield code="t">Introducing progressive web apps --</subfield>
    <subfield code="t">Your first service worker --</subfield>
    <subfield code="t">The CacheStorage API --</subfield>
    <subfield code="t">Service worker lifecycle and cache management --</subfield>
    <subfield code="t">Embracing offline-first --</subfield>
    <subfield code="t">Storing data locally with IndexedDB --</subfield>
    <subfield code="t">Ensuring offline functionality with background sync --</subfield>
    <subfield code="t">Service worker to page communication with post messages --</subfield>
    <subfield code="t">Grabbing homescreen real estae with installable web apps --</subfield>
    <subfield code="t">Reach out with push notifications --</subfield>
    <subfield code="t">Progressive web app UX --</subfield>
    <subfield code="t">What's next for PWAs --</subfield>
    <subfield code="t">Service workers: a great opportunity to adopt ES2015 --</subfield>
    <subfield code="t">Full-page interstitials or: How learned to hate the door slam --</subfield>
    <subfield code="t">CORS versus No-Cors.</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">Move over native apps. New progressive web apps have capabilities that will soon make you obsolete. With this hands-on guide, web developers and business execs will learn how--and why--to develop web apps that take advantage of features that have so far been exclusive to native apps. Features that include fast load times, push notifications, offline access, homescreen shortcuts, and an entirely app-like experience. By leveraging the latest browser APIs, progressive web apps combine all of the benefits of native apps, while avoiding their issues. Throughout the book, author Tal Ater shows you how to improve a simple website for the fictional Gotham Imperial Hotel into a modern progressive web app. Plus:Understand how service workers work, and use them to create sites that launch in an instant, regardless of the user's internet connection. Create full-screen web apps that launch from the phone's homescreen just like native apps. Re-engage users with push notifications, even days after they have left your site. Embrace offline-first and build web apps that gracefully handle loss of connectivity. Explore new UX opportunities and challenges presented by progressive web apps.</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="7">
    <subfield code="a">Application software</subfield>
    <subfield code="x">Development.</subfield>
    <subfield code="2">BUEsh</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="7">
    <subfield code="a">Web applications</subfield>
    <subfield code="x">Development.</subfield>
    <subfield code="2">BUEsh</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="7">
    <subfield code="a">Mobile apps</subfield>
    <subfield code="x">Development.</subfield>
    <subfield code="2">BUEsh</subfield>
  </datafield>
  <datafield tag="651" ind1=" " ind2=" ">
    <subfield code="2">BUEsh</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="b">COMSCI</subfield>
    <subfield code="b">GGEN</subfield>
    <subfield code="c">October2018</subfield>
  </datafield>
  <datafield tag="655" ind1=" " ind2=" ">
    <subfield code="v">Reading book</subfield>
  </datafield>
  <datafield tag="942" ind1=" " ind2=" ">
    <subfield code="2">ddc</subfield>
  </datafield>
  <datafield tag="952" ind1=" " ind2=" ">
    <subfield code="0">0</subfield>
    <subfield code="1">0</subfield>
    <subfield code="2">ddc</subfield>
    <subfield code="4">0</subfield>
    <subfield code="7">0</subfield>
    <subfield code="8">Baccah</subfield>
    <subfield code="a">MAIN</subfield>
    <subfield code="b">MAIN</subfield>
    <subfield code="c">1ST</subfield>
    <subfield code="d">2018-10-29</subfield>
    <subfield code="e">Purchase</subfield>
    <subfield code="g">750.00</subfield>
    <subfield code="l">2</subfield>
    <subfield code="m">61</subfield>
    <subfield code="o">005.3 ATE</subfield>
    <subfield code="p">000043674</subfield>
    <subfield code="r">2025-07-15 00:00:00</subfield>
    <subfield code="s">2018-11-03</subfield>
    <subfield code="y">BB</subfield>
  </datafield>
</record>
