# pwa

Published articles for pwa.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How to Accept Payments in a Progressive Web App (PWA)

DevFeed: [How to Accept Payments in a Progressive Web App (PWA)](<https://devfeed.tech/articles/how-to-accept-payments-in-a-progressive-web-app-pwa-9542.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/accept-payments-pwa/>)

Author: Ayush Agarwal

Published: 2026-03-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [PWA](<https://devfeed.tech/topics/pwa.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [app-store](<https://devfeed.tech/tags/app-store.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [payment-processing](<https://devfeed.tech/tags/payment-processing.md>), [payments](<https://devfeed.tech/tags/payments.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [saas](<https://devfeed.tech/tags/saas.md>), [subscriptions](<https://devfeed.tech/tags/subscriptions.md>), [tax](<https://devfeed.tech/tags/tax.md>), [web-app](<https://devfeed.tech/tags/web-app.md>)

### AI overview

This guide explains how to add payment processing to a Progressive Web App using Dodo Payments. It covers web checkout, subscription states, and tax compliance for global SaaS distribution.

### Source excerpt

Guide to adding payment processing to Progressive Web Apps. Avoid app store fees, use web checkout, and handle subscriptions with automatic tax compliance.

## Smart photo organization through privacy-first, on-device AI

DevFeed: [Smart photo organization through privacy-first, on-device AI](<https://devfeed.tech/articles/smart-photo-organization-through-privacy-first-on-device-ai-16636.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2025/10/privacy-first-on-device-ai>)

Author: Cynthia Wang

Published: 2025-10-15T08:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [On-device AI](<https://devfeed.tech/topics/on-device-ai.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-logic](<https://devfeed.tech/tags/ai-logic.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [hybrid-inference](<https://devfeed.tech/tags/hybrid-inference.md>), [on-device](<https://devfeed.tech/tags/on-device.md>), [on-device-ai](<https://devfeed.tech/tags/on-device-ai.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [web](<https://devfeed.tech/tags/web.md>), [web-browser](<https://devfeed.tech/tags/web-browser.md>)

### AI overview

This Firebase tutorial explains how to build a privacy-focused photo organization progressive web app using on-device AI. It describes running a local model in the browser so photos remain on the user's device and can be analyzed offline, with Firebase AI Logic SDKs detecting and caching compatible models such as Gemini Nano and providing a fallback approach for other browsers.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Apple's Dispute With the EU Over DMA Compliance and Browser Competition

DevFeed: [Apple's Dispute With the EU Over DMA Compliance and Browser Competition](<https://devfeed.tech/articles/apple-s-antitrust-playbook-26556.md>)

Original publisher: [Read original article](<https://infrequently.org/2025/09/apples-antitrust-playbook/>)

Author: Alex Russell

Published: 2025-09-25T00:00:00Z

Content type: opinion

Language: en

Sources: [Alex Russell](<https://devfeed.tech/sources/alex-russell.md>)

Topics: [browser](<https://devfeed.tech/topics/browser.md>), [Security](<https://devfeed.tech/topics/security.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [push-notification](<https://devfeed.tech/topics/push-notification.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [browser](<https://devfeed.tech/tags/browser.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [competition](<https://devfeed.tech/tags/competition.md>), [dma](<https://devfeed.tech/tags/dma.md>), [eu](<https://devfeed.tech/tags/eu.md>), [geofencing](<https://devfeed.tech/tags/geofencing.md>), [ios](<https://devfeed.tech/tags/ios.md>), [iphone](<https://devfeed.tech/tags/iphone.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [push-notification](<https://devfeed.tech/tags/push-notification.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [security](<https://devfeed.tech/tags/security.md>), [webdev](<https://devfeed.tech/tags/webdev.md>)

### AI overview

The article argues that Apple is misrepresenting the European Union's enforcement of the Digital Markets Act and shifting responsibility for its own compliance decisions onto regulators. It focuses on alleged barriers affecting browser competition on iOS, including geofencing, restricted PWA and Push Notification APIs, SDK bugs, and difficult development entitlements.

### Source excerpt

Contents Lies by Any Other Name Great Artists Steal Dear Tech Reporters: Access Is Not A Beat This blog is failing on several levels. First, September 2025 is putting the "frequent" in "infrequently", much to my chagrin. Second, my professional mission is to make a web that's better for everyone, not to tear Apple down. But just when I thought I was out, they pull me back in. Over the past 24 hours, Cupertino has played the hits from its iPhone-era anti-user, anti-business, anti-rule-of-law power trip. To recap: Apple sent a demand that the EU give up on DMA enforcement in a petulant and utterly misleading press release that mostly served to catalogue Apple's own failures to comply. Cupertino's kept astroturf outfit -- ACT | The App Association -- penned unhinged misinformation for consumption by US regulatory types (h/t Damien Geradin). The EC then called Apple's bluff. Make no mistake about what's going on: Apple is claiming that the EU is forcing Apple to adopt interpretations of the DMA that no other party has, which the EC itself has not backed, and which are "forcing" Apple to avoid shipping features in the EU. Or, put another way, Apple wants to launder the consequences of its own anticompetitive, anti-user choices through a credulous tech press. The goal is to frame regulators for Apple's own deeds. Lies by Any Other Name If this smells like bullshit, that's because it is. Apple tried similar ploys last year when it sprung a blatant attempt to kill PWAs on the EU as a price for having the temerity to regulate. The plan, it seemed then, was to adopt an exotic reading of the DMA and frame the EC for killing PWAs. What Apple's attempting now is even more brazen, particularly after 16+ months of serial non-compliance since the DMA came into force (h/t OWA). Remember that: Apple's browser, and by extension every iOS browser, fails on basic security and privacy controls, putting users at risk constantly. Apple serially misrepresents this situation to anyone who will

## Apply blur to iOS status bar in PWA

DevFeed: [Apply blur to iOS status bar in PWA](<https://devfeed.tech/articles/apply-blur-to-ios-status-bar-in-pwa-37332.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/pwa-ios-status-bar-blur/>)

Author: Stanko

Published: 2025-04-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [PWA](<https://devfeed.tech/topics/pwa.md>), [CSS](<https://devfeed.tech/topics/css.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [background](<https://devfeed.tech/tags/background.md>), [code](<https://devfeed.tech/tags/code.md>), [css](<https://devfeed.tech/tags/css.md>), [ios](<https://devfeed.tech/tags/ios.md>), [pwa](<https://devfeed.tech/tags/pwa.md>)

### AI overview

This tutorial describes a CSS-based workaround for applying a blurred overlay to the iOS status bar area in a standalone PWA. The workaround uses a fixed element positioned outside the viewport and backdrop filtering, but an August 2026 update states that it no longer works on recent iOS versions because of WebKit changes.

### Source excerpt

Update August 2026: This workaround no longer works on recent iOS versions. WebKit changed how standalone PWAs handle the status bar area. The fixed overlay positioned outside the viewport no longer renders under the status bar. I haven't found a workaround for this yet. If you find a solution please let me know. On my current project, I'm making a Progressive Web App (PWA) and I was really annoyed that the status bar on iOS was completely transparentAlthough the option is called black-translucent. When the content scrolls behind it, it blends with the status bar elements, and it doesn't look great. I couldn't find a native solution, so I tried using CSS instead. To my surprise, my idea worked on the first try. Here is my solution next to the default iOS status bar: After applying the CSS solutionDefault If you are impatient, feel free to jump to the demo. The solution # I think the solution is pretty simple - a fixed div that covers the status bar area and applies a blur effect to the background. But there's a catch, the div needs to be positioned outside of the viewport. Here is the code, HTML first: <div class="statusbar"></div> and the CSS: body { --bg-color: 186 230 253; background-color: rgb(var(--bg-color)); } .statusbar { position: fixed; left: 0; right: 0; top: -80px; height: 80px; overflow: hidden; z-index: 100; } .statusbar::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 150%; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); background-color: rgb(var(--bg-color) / 0.6); } The CSS can be even simpler - we can remove the ::before element and just apply the blur to the .statusbar element itself. But this gives a nicer, more natural blur effect - check Josh Comeau's blog post in which he explains it in detail. Demo # You can check the live demo, just remember that you'll need an iOS device to see the effect. Not just that - for the effect to be visible, you'll need to add the app to your home screen. If you don't w

## A vanilla Rails stack is plenty

DevFeed: [A vanilla Rails stack is plenty](<https://devfeed.tech/articles/a-vanilla-rails-stack-is-plenty-33494.md>)

Original publisher: [Read original article](<https://dev.37signals.com/a-vanilla-rails-stack-is-plenty/>)

Author: Jorge Manrubia

Published: 2024-12-12T18:00:00Z

Content type: opinion

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Hotwire](<https://devfeed.tech/topics/hotwire.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Stimulus](<https://devfeed.tech/topics/stimulus.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [frameworks](<https://devfeed.tech/tags/frameworks.md>), [hotwire](<https://devfeed.tech/tags/hotwire.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [stimulus](<https://devfeed.tech/tags/stimulus.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

The article recommends a vanilla Rails 8 stack with minimal Ruby and JavaScript dependencies, server-rendered views, Hotwire, import maps, standard CSS, relational-database-backed services, Minitest, PWAs, and Kamal deployment. It presents this approach as 37signals' balance of productivity, user experience, and long-term maintainability.

### Source excerpt

Minimal dependencies, maximum productivity. Staying vanilla pays long term dividends for your Rails apps.

## Apple's iOS 17.4 Changes Threaten Progressive Web App Features in the EU

DevFeed: [Apple's iOS 17.4 Changes Threaten Progressive Web App Features in the EU](<https://devfeed.tech/articles/home-screen-advantage-26541.md>)

Original publisher: [Read original article](<https://infrequently.org/2024/02/home-screen-advantage/>)

Author: Alex Russell

Published: 2024-02-25T00:00:00Z

Content type: opinion

Language: en

Sources: [Alex Russell](<https://devfeed.tech/sources/alex-russell.md>)

Topics: [PWA](<https://devfeed.tech/topics/pwa.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Web](<https://devfeed.tech/topics/web.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [competition](<https://devfeed.tech/tags/competition.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [device-apis](<https://devfeed.tech/tags/device-apis.md>), [dma](<https://devfeed.tech/tags/dma.md>), [geofencing](<https://devfeed.tech/tags/geofencing.md>), [ios](<https://devfeed.tech/tags/ios.md>), [push-notifications](<https://devfeed.tech/tags/push-notifications.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [shortcuts](<https://devfeed.tech/tags/shortcuts.md>), [web](<https://devfeed.tech/tags/web.md>), [webdev](<https://devfeed.tech/tags/webdev.md>)

### AI overview

The article argues that Apple's iOS 17.4 changes in the EU will restrict progressive web app capabilities, including storage, push notifications, app-like interfaces, and device APIs. It contrasts the threatened changes with continued PWA support on Windows and Android and frames them as a response to the EU Digital Markets Act.

### Source excerpt

Update: OWA is out with an open letter appealing to Apple to do better. If you care about the future of the web, I encourage you to sign it, particularly if you live in the EU or build products for the common market. After weeks of confusion and chaos, Apple's plan to kneecap the web has crept into view, menacing a PWApocalypse as the March 6th deadline approaches for compliance with the EU's Digital Markets Act (DMA). The view from Cupertino. The DMA requires Apple to open the iPhone to competing app stores, and its lopsided proposal for "enabling" them is getting most of the press. But Apple knows it has native stores right where it wants them. Cupertino's noxious requirements will take years to litigate. Meanwhile, potential competitors are only that. But Cupertino can't delay the DMA's other mandate: real browsers, downloaded from Apple's own app store. Since it can't bar them outright, it's trying to raise costs on competitors and lower their potential to disrupt Apple's cozy monopoly. How? By geofencing browser choice and kneecapping web apps, all while gaslighting users about who is breaking their web apps. The immediate impact of iOS 17.4 in the EU will be broken apps and lost data, affecting schools, governments, startups, gamers, and anyone else with the temerity to look outside the one true app store for even a second. None of this is required by the DMA, as demonstrated by continuing presence of PWAs and the important features they enable on Windows and Android, both of which are in the same regulatory boat. The data loss will be catastrophic for many, as will the removal of foundational features. Here's what the landscape looks like today vs. what Apple is threatening: PWA Capability Windows Android iOS 17.3 iOS 17.4 App-like UI ✅ ✅ ✅ ❌ Settings Integration ✅ ✅ ✅ ❌ Reliable Storage ✅ ✅ ✅ ❌ Push Notifications ✅ ✅ ✅ ❌ Icon Badging ✅ ✅ ✅ ❌ Share-to PWA ✅ ✅ ❌ ❌ App Shortcuts ✅ ✅ ❌ ❌ Device APIs ✅ ✅ ❌ ❌ Apple's support for powerful web apps wasn't stellar, b

## Testing with Accessibility Scanner

DevFeed: [Testing with Accessibility Scanner](<https://devfeed.tech/articles/testing-with-accessibility-scanner-38474.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2024-02-16/testing-with-accessibility-scanner/>)

Author: Eevis Panula

Published: 2024-02-16T03:38:54.088000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [App](<https://devfeed.tech/topics/app.md>), [Google Play](<https://devfeed.tech/topics/google-play.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>), [React Native](<https://devfeed.tech/topics/react-native.md>), [PWA](<https://devfeed.tech/topics/pwa.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessibility-testing](<https://devfeed.tech/tags/accessibility-testing.md>), [android](<https://devfeed.tech/tags/android.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [google-play](<https://devfeed.tech/tags/google-play.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [test-automation](<https://devfeed.tech/tags/test-automation.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This tutorial explains how to use Accessibility Scanner for semi-automated accessibility testing of Android apps. The tool can identify issues involving content labels, touch target size, clickable items, and text and image contrast, but it cannot detect every accessibility problem, so manual testing remains necessary. It can be used with native Android apps, Flutter and React Native apps, and PWAs.

### Source excerpt

When I talk about accessibility with Android developers, I often hear that some easy-to-use tests should automatically catch every possible accessibility issue. And I get it. That would make the whole topic of accessibility so much easier and straightforward. But the truth is that automated testing only catches some things. Studies suggest that the maximum percentage of caught accessibility issues is 40-50%. Deque, the company that develops the aXe accessibility tool, claims that the number is 57% in their study of automated accessibility tools. These studies have been performed with websites, but based on my experience, I have no reason to believe that the number would be higher on Android. So manual testing is always needed. But for that 40-57% (or whatever the exact number is on Android accessibility testing), there are some tools to use. One of them is Accessibility Scanner, and in this blog post, I'll discuss how to test your app with it. Let's start with what it is. What Is Accessibility Scanner Accessibility Scanner is a helpful tool for semi-automated accessibility testing. It's an app which can catch issues from the following categories: Content labels Touch target size Clickable items Text and image contrast It also suggests how to fix some of its findings and provides more info about the issues. However, it does not find every possible accessibility issue and thus does not guarantee the accessibility of your app. Manual testing is still needed. I keep saying this because I've seen these claims so many times that "Well, our test automation didn't find any accessibility issues, so our app is accessible". One great thing is that you can use Accessibility Scanner with any Android app - it can be a native Android app or built with cross-platform technologies such as Flutter or React Native. Or it can even be a PWA - Progressive Web App. Using Accessibility Scanner Installation To use the Accessibility Scanner, you must first download it from Google Play: Acces

## How competing browsers and Progressive Web Apps could challenge mobile app stores

DevFeed: [How competing browsers and Progressive Web Apps could challenge mobile app stores](<https://devfeed.tech/articles/why-are-tech-reporters-sleeping-on-the-biggest-app-store-story-26540.md>)

Original publisher: [Read original article](<https://infrequently.org/2024/01/the-web-is-the-app-store/>)

Author: Alex Russell

Published: 2024-01-01T00:00:00Z

Content type: opinion

Language: en

Sources: [Alex Russell](<https://devfeed.tech/sources/alex-russell.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Web app](<https://devfeed.tech/topics/webapp.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [app-store](<https://devfeed.tech/tags/app-store.md>), [apple](<https://devfeed.tech/tags/apple.md>), [apps](<https://devfeed.tech/tags/apps.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [competition](<https://devfeed.tech/tags/competition.md>), [google](<https://devfeed.tech/tags/google.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [web-app](<https://devfeed.tech/tags/web-app.md>), [web-apps](<https://devfeed.tech/tags/web-apps.md>)

### AI overview

The article argues that regulatory pressure opening mobile ecosystems to competing browsers could enable Progressive Web Apps to become an alternative to native app stores. It says browser access to essential APIs, app portability, and web-based discovery could weaken Apple and Google's control over mobile distribution.

### Source excerpt

The tech news is chockablock1 with antitrust rumblings and slow-motion happenings. Eagle-eyed press coverage, regulatory reports, and legal discovery have comprehensively documented the shady dealings of Apple and Google's app stores. Pressure for change has built to an unsustainable level. Something's gotta give. This is the backdrop to the biggest app store story nobody is writing about: on pain of steep fines, gatekeepers are opening up to competing browsers. This, in turn, will enable competitors to replace app stores with directories of Progressive Web Apps. Capable browsers that expose web app installation and powerful features to developers can kickstart app portability, breaking open the mobile duopoly. But you'd never know it reading Wired or The Verge. Contents The Buried Lede Disruption Disrupted Green Shoots A New Hope With shockingly few exceptions, coverage of app store regulation assumes the answer to crummy, extractive native app stores is other native app stores. This unexamined framing shapes hundreds of pieces covering regulatory events, including by web-friendly authors. The tech press almost universally fails to mention the web as a substitute for native apps and fail to inform readers of its potential to disrupt app stores. As Cory Doctorow observed: "An app is just a web-page wrapped in enough IP to make it a crime to defend yourself against corporate predation." The implication is clear: browsers unchained can do to mobile what the web did to desktop, where more than 70% of daily "jobs to be done" happen on the web. Replacing mobile app stores will look different than the web's path to desktop centrality, but the enablers are waiting in the wings. It has gone largely unreported that Progressive Web Apps (PWAs) have been held back by Apple and Google denying competing browsers access to essential APIs.2 Thankfully, regulators haven't been waiting on the press to explain the situation. Recent interventions into mobile ecosystems include require

## Safari 16.4 Adds Long-Delayed Web Platform Features

DevFeed: [Safari 16.4 Adds Long-Delayed Web Platform Features](<https://devfeed.tech/articles/safari-16-4-is-an-admission-26538.md>)

Original publisher: [Read original article](<https://infrequently.org/2023/02/safari-16-4-is-an-admission/>)

Author: Alex Russell

Published: 2023-02-22T00:00:00Z

Content type: opinion

Language: en

Sources: [Alex Russell](<https://devfeed.tech/sources/alex-russell.md>)

Topics: [WebKit](<https://devfeed.tech/topics/webkit.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Web platform](<https://devfeed.tech/topics/web-platform.md>), [PWA](<https://devfeed.tech/topics/pwa.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [competition](<https://devfeed.tech/tags/competition.md>), [components](<https://devfeed.tech/tags/components.md>), [compression](<https://devfeed.tech/tags/compression.md>), [css](<https://devfeed.tech/tags/css.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [reporting](<https://devfeed.tech/tags/reporting.md>), [safari](<https://devfeed.tech/tags/safari.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [webdev](<https://devfeed.tech/tags/webdev.md>), [webrtc](<https://devfeed.tech/tags/webrtc.md>)

### AI overview

This commentary reviews Safari 16.4's web-platform additions, including PWA, Web Components, CSS, Web Codecs, WASM SIMD, compression, reporting, Canvas, and WebRTC changes. It argues that many features arrived years after Chromium implementations and notes some improvements remain limited to macOS and iPadOS.

### Source excerpt

If you're a web developer not living under a rock, you probably saw last week's big Safari 16.4 reveal. There's much to cheer, but we need to talk about why this mega-release is happening now, and what it means for the future. Contents WebKit's Roaring Twenties Good Things Come In Sixes What Changed? Headcount Is Destiny Early Innings But first, the list! WebKit's Roaring Twenties Apple's summary combines dozens of minor fixes with several big-ticket items. Here's an overview of the most notable features, prefixed with the year they shipped in Chromium: 2015: Web Push for iOS (but only for installed PWAs) 2020: PWA Badging API (for unread counts) and id support (making updates smoother) 2015: PWA installation for third-party browsers (but not to parity with "Smart Banners") A bevy of Web Components features, many of which Apple had held up in standards bodies for years1, including: 2019: Constructable Stylesheets (important for performance) 2019: Form participation and default ARIA role 2021: Declarative Shadow DOM for "SSR" Myriad small CSS improvements and animation fixes, but also: 2018: CSS Typed OM for faster styling from JavaScript 2020: CSS Custom Properties can now be animated 2019: <iframe> lazy loading 2017: Clear-Site-Data for Service Worker use at scale 2021: Web Codecs for video (but not audio) 2021: WASM SIMD for better ML and games 2020: Compression Streams 2018: Reporting API (for learning about crashes and metrics reporting) 2020: Screen Orientation & Screen Wake Lock APIs (critical for games) 2018: Offscreen Canvas (but only 2D, which isn't what folks really need) Critical usability and quality fixes for WebRTC A number of improvements look promising, but remain exclusive to macOS and iPadOS: Fullscreen API fixes AVIF and AV1 support The lack of iOS support for Fullscreen API on <canvas> elements continues to harm game makers; likewise, the lack of AVIF and AV1 holds back media and streaming businesses. Regardless, Safari 16.4 is astonishingly dens

## Manipulating Screen Brightness on iOS and Android with Ionic React

DevFeed: [Manipulating Screen Brightness on iOS and Android with Ionic React](<https://devfeed.tech/articles/who-turned-on-the-lights-19126.md>)

Original publisher: [Read original article](<https://medium.com/rbi-tech/who-turned-on-the-lights-579c12fda6b?source=rss----904782439303---4>)

Author: Alejandra Del Valle

Published: 2020-08-20T19:06:20Z

Content type: tutorial

Language: en

Sources: [RBI Tech](<https://devfeed.tech/sources/rbi-tech.md>)

Topics: [Ionic](<https://devfeed.tech/topics/ionic.md>), [React](<https://devfeed.tech/topics/react.md>), [React Hooks](<https://devfeed.tech/topics/react-hooks.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [components](<https://devfeed.tech/tags/components.md>), [development](<https://devfeed.tech/tags/development.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ionic](<https://devfeed.tech/tags/ionic.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [react](<https://devfeed.tech/tags/react.md>), [react-hooks](<https://devfeed.tech/tags/react-hooks.md>)

### AI overview

This tutorial discusses controlling screen brightness on iOS and Android using Ionic React and Ionic React Hooks, including the package's Capacitor API wrappers and support for shared-codebase applications across mobile, desktop, and PWA targets.

### Source excerpt

Manipulating Screen Brightness on iOS and Android Devices Undoubtedly one of the most annoying side effects our phones have is its ability to change screen brightness dynamically. Whether it's a setting enabled on your device to automatically adjust brightness based on your environment, or an app you downloaded manipulates it based on its needs, sometimes it's just out of your control. Maybe you're an avid digital content creator and having your screen brightness at its max is to help your content be "pixel-perfect" and edited just the way you want. Maybe you're visiting a store and need to scan your screen to quickly and easily pay for something without fumbling through your wallet or purse. Or, maybe you're at a show or at home for a movie night and having your screen brightness as low as possible is important to one, not blind you, and two, not blind your neighbors. Whatever the backstory, it's important for the apps we use to consider how we use our phones in our day-to-day lives to create a seamless experience that users will enjoy. Let's look at how we can help with this experience in native development using Ionic React with Ionic React Hooks (recently renamed to React Hooks for Capacitor). Keep reading if you have basic experience with React and React Hooks. If not, I would suggest getting familiar with React and then hop back on over! Why Ionic React? Short answer? Ionic React is ultimately just... React. Music to my ears. Ionic React is also built using web components, making it compatible with a multitude of web libraries and supports iOS, Android, Desktop, and PWA (i.e. progressive web apps) all by using one shared codebase (I'm hearing music again...). Ionic React Hooks Re-introduced Ionic announced their launch of Ionic React Hooks back in December of 2019. It has recently been renamed and moved to the Capacitor Community org -- @capacitor-community/react-hooks. This package provides a collection of wrappers around Capacitor APIs along with a few other Ioni

## Codename One 6.0 "Chat" is now Live

DevFeed: [Codename One 6.0 "Chat" is now Live](<https://devfeed.tech/articles/codename-one-6-0-chat-is-now-live-19258.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/codename-one-6-0-chat-live/>)

Author: Shai Almog

Published: 2019-02-26T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Universal Windows Platform](<https://devfeed.tech/topics/uwp.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [push-notification](<https://devfeed.tech/topics/push-notification.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [ci](<https://devfeed.tech/topics/ci.md>)

Tags: [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [push-notification](<https://devfeed.tech/tags/push-notification.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [release](<https://devfeed.tech/tags/release.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Codename One 6.0, nicknamed Chat, introduces Codename One Build, migrates cloud builds to Xcode 10.1, adds VM and Switch API changes, and implements reply push notifications. Codename One is an open-source mobile platform for Java and Kotlin developers.

### Source excerpt

We are thrilled to announce the release of Codename One 6.0 - Chat. Codename One is an open source "Write Once Run Anywhere" mobile platform for Java and Kotlin developers! With this release we introduced Codename One Build which is one of the biggest overhauls to the Codename One workflow since its inception. We also refined and updated many underlying technologies e.g. the xcode 10.1 migration, WKWebView support, push replies, badges on Android and much more.

## Install on Home Screen

DevFeed: [Install on Home Screen](<https://devfeed.tech/articles/install-on-home-screen-19331.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/install-home-screen/>)

Author: Shai Almog

Published: 2018-12-03T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [PWA](<https://devfeed.tech/topics/pwa.md>), [Web](<https://devfeed.tech/topics/web.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [guards](<https://devfeed.tech/tags/guards.md>), [hints](<https://devfeed.tech/tags/hints.md>), [install](<https://devfeed.tech/tags/install.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [screen](<https://devfeed.tech/tags/screen.md>), [web](<https://devfeed.tech/tags/web.md>), [web-apps](<https://devfeed.tech/tags/web-apps.md>)

### AI overview

This tutorial explains how Progressive Web Apps can be installed on a device home screen. It discusses the need for explicit browser installation prompts because desktop, mobile, and web platforms behave differently, and notes that the prompt is shown only once to avoid duplicate prompts.

### Source excerpt

We talked about our support for Progressive Web Apps before. We added quite a few enhancements since that support was introduced and it's a pretty powerful feature. Personally I consider it a killer feature, even if Google decides to ban your account you can still distribute your app. One of the cool features is the seamlessness. Most of the functionality "just works". However, there are some cases where we need explicit hints due to the different behavior of desktop/mobile and web.

## Codename One 4.0 "Taxi" is now Live

DevFeed: [Codename One 4.0 "Taxi" is now Live](<https://devfeed.tech/articles/codename-one-4-0-taxi-is-now-live-19256.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/codename-one-4-0-taxi-live/>)

Author: Shai Almog

Published: 2018-03-19T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Java](<https://devfeed.tech/topics/java.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [ios](<https://devfeed.tech/tags/ios.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [release](<https://devfeed.tech/tags/release.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Codename One 4.0, nicknamed Taxi, is an open-source mobile development release for Java and Kotlin developers. It adds Progressive Web App support, new device skins, updated iOS build tools, and improvements to native components, stability, unit testing, and continuous integration.

### Source excerpt

We are thrilled to announce the release of Codename One 4.0 - Taxi. Codename One is an open source "Write Once Run Anywhere" mobile solution for Java & Kotlin developers! This new release overhauled the way Codename One is updated, added support for Progressive Web Apps (PWA's), overhauled device skins & updated the backend iOS build tools. A major focus of this release is better support for peer (native) components, stability, unit testing and continuous integration.

## Progressive Web Apps

DevFeed: [Progressive Web Apps](<https://devfeed.tech/articles/progressive-web-apps-19450.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/progressive-web-apps/>)

Author: Steve Hannah

Published: 2018-01-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [PWA](<https://devfeed.tech/topics/pwa.md>), [Web app](<https://devfeed.tech/topics/webapp.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Android](<https://devfeed.tech/topics/android.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [manifest](<https://devfeed.tech/tags/manifest.md>), [offline](<https://devfeed.tech/tags/offline.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This article explains how Codename One apps can be deployed as Progressive Web Apps. It describes browser access, home-screen installation, offline behavior, native-app installation prompts, and customization of the web app manifest through build hints.

### Source excerpt

PWAs (Progressive Web Apps) are an extremely hot topic right now, and Codename One apps are very well suited to being deployed this way. In case you haven't been following the PWA buzz, the idea is that it's a web app that behaves like a native app. When they are first loaded in a user's browser, they behave like a normal responsive web app, but users can install them to their home screen just like native apps. At which point, they can behave as "offline-first" apps. Parts of this have been available for quite some time, but the concept of PWA brings a lot of little things under a single umbrella.

## PWAs with Polymer: a checklist

DevFeed: [PWAs with Polymer: a checklist](<https://devfeed.tech/articles/pwas-with-polymer-a-checklist-35537.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/polymer-pwa-checklist/>)

Author: Monica Dinculescu

Published: 2017-07-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [PWA](<https://devfeed.tech/topics/pwa.md>), [Web app](<https://devfeed.tech/topics/webapp.md>), [Web Components](<https://devfeed.tech/topics/web-components.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Caching](<https://devfeed.tech/topics/caching.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [components](<https://devfeed.tech/tags/components.md>), [html](<https://devfeed.tech/tags/html.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [web-app](<https://devfeed.tech/tags/web-app.md>)

### AI overview

A practical checklist for turning a Polymer-based web app into a progressive web app. It covers generating icons, adding a manifest, bundling with Polymer CLI, registering a Service Worker, handling first paint and fallback content, and rendering without JavaScript. The article also describes a case study showing how these steps improved a Lighthouse score.

### Source excerpt

The Meownica Web App Workflow™ goes like this: Write bad code until the file is too long Refactor that code into some web components Repeat steps 1-2 until done Realize you forgot to do the PWA dance, so your app is scoring 45 on Lighthouse Make it into a PWA by doing basically the same steps every time. I'm not joking about step 5. It's all a bunch of fairly simple boilerplate and party tricks, that I copy paste from a couple of apps. This time I decided to make them into a checklist. This checklist is keen on the polymer cli, because I usually write apps that use Polymer. If you don't, you can replace the polymer cli with your favourite bundler/service-worker generator! If you just want the checklist, here it is. If you want to see how I made this checklist and how the Lighthouse score improved as I checked more items off, jump to the case-study! Checklist Step by step 1. 📝 Add a manifest.json 2. 🏃 Bundle with the Polymer CLI 3. 🤖 Add a Service Worker 4. 🎨 Fix first paint 🆗 🆒 Checklist generate icons (sizes: 48x48, 96x96, 144x144, 192x192, 512x512) [example] add a manifest.json [example] add the rest of the manifesty things to your index.html [example] add the polymer cli: npm install -g polymer-cli add a polymer.json [example] run polymer build register your Service Worker [example]. If you have a complicated app setup or caching strategy, you might want to generate a sw-precache-config.js file. add fallback content while your main element is updating [example]. As a general rule, I try to match this fallback content very closely to what the first paint of the element will actually be, so that there's no visual jank make sure that your page renders something without JavaScript [example] Provided your app isn't outrageously big (think: the only thing that will make loading 10MB of JavaScript up front better, is not loading 10MB of JavaScript), this should help put you somewhere in the green scores on Lighthouse. Step by step So, here's the post-game analysis of wh

## AppShip3000: A Firebase Game

DevFeed: [AppShip3000: A Firebase Game](<https://devfeed.tech/articles/appship3000-a-firebase-game-16209.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2017/07/appship3000-firebase-game>)

Author: Abe Haskins

Published: 2017-07-07T00:00:00Z

Content type: article

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Google](<https://devfeed.tech/topics/google.md>), [App](<https://devfeed.tech/topics/app.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [Database](<https://devfeed.tech/topics/database.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [case-study](<https://devfeed.tech/tags/case-study.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [database](<https://devfeed.tech/tags/database.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [games](<https://devfeed.tech/tags/games.md>), [google](<https://devfeed.tech/tags/google.md>), [google-i-o](<https://devfeed.tech/tags/google-i-o.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [leaderboard](<https://devfeed.tech/tags/leaderboard.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [realtime-database](<https://devfeed.tech/tags/realtime-database.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>)

### AI overview

The Firebase team describes AppShip3000, a collaborative trivia rocket game built to test Firebase at Google I/O 2017. The game uses Firebase Authentication, Cloud Functions, Realtime Database, and a progressive web app to manage sign-in, game associations, trivia questions, leaderboards, and rocket-flight images.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Why Traditional Pageview Tracking Fails for Modern Web Applications

DevFeed: [Why Traditional Pageview Tracking Fails for Modern Web Applications](<https://devfeed.tech/articles/how-we-track-pageviews-is-all-wrong-29507.md>)

Original publisher: [Read original article](<https://philipwalton.com/articles/how-we-track-pageviews-is-all-wrong/>)

Published: 2017-04-11T17:46:25Z

Content type: opinion

Language: en

Sources: [Philip Walton](<https://devfeed.tech/sources/philip-walton.md>)

Topics: [Web](<https://devfeed.tech/topics/web.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [PWA](<https://devfeed.tech/topics/pwa.md>), [browser](<https://devfeed.tech/topics/browser.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [browser](<https://devfeed.tech/tags/browser.md>), [data](<https://devfeed.tech/tags/data.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [pwa](<https://devfeed.tech/tags/pwa.md>), [web-app](<https://devfeed.tech/tags/web-app.md>)

### AI overview

The article argues that traditional analytics tools produce unrealistic pageview data for modern websites because they equate pageviews with full page loads. It examines Gmail, single-page applications, and progressive web apps as examples where users can interact with changing or offline content without reloading the page.

### Source excerpt

All analytics tools I know of track pageviews in a way that--to put it bluntly--simply doesn't work for a growing number of websites today and is completely incompatible with the direction the web is heading.