Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 4, 2025

PWAs cannot access native haptic feedback APIs. This adds a native iOS/Android app using Expo that provides tactile feedback on navigation controls.

Implementation

New app at apps/expo-mobile/:

  • Connection screen with persistent server URL (AsyncStorage)
  • Demo control screen with step list and navigation
  • Haptic feedback integration using expo-haptics:
    • Medium impact on Next/Previous buttons
    • Light impact on step selection
const handleTriggerNext = async () => {
  await Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Medium);
  await onTriggerNext();
  setTimeout(() => onRefresh(), REFRESH_DELAY_MS);
};

Core modules:

  • src/hooks/useApi.ts - API communication with 5s polling (optimized for mobile battery)
  • src/screens/DemoScreen.tsx - Main UI with haptic-enabled navigation
  • src/screens/ConnectionScreen.tsx - Server connection interface
  • src/contexts/BringToFrontContext.tsx - Shared state management

Infrastructure:

  • NX workspace integration via project.json
  • Expo SDK 54, React Native 0.81, TypeScript 5.9
  • Dependencies: expo-haptics, @react-native-async-storage/async-storage

Key differences from PWA

Feature PWA Mobile
Haptic feedback ✅ Native
Storage localStorage AsyncStorage
Polling interval 3s 5s (battery optimized)
UI Tailwind CSS React Native StyleSheet

Updated root README to document remote control options.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • cdp.expo.dev
    • Triggering command: create-expo-app (dns block)
  • cloud.nx.app

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>[Feature] Create an Expo mobile app (iOS & Android) with haptic touch for navigation buttons</issue_title>
<issue_description>Is your feature request related to a problem? Please describe.
Currently, the PWA app in this repository (see: apps/pwa) does not support haptic touch feedback for navigation (next/previous buttons). Haptic feedback is not available via PWAs but can be offered via a native mobile application.

Describe the solution you'd like
Develop a new Expo mobile app that can run on both iOS and Android platforms. The app should replicate the logic and core functionality of the existing PWA app (found at apps/pwa), but introduce haptic touch support for the next and previous navigation buttons to enhance the user experience.

Describe alternatives you've considered

  • Sticking with the current PWA app, but it cannot provide haptic touch due to platform limitations.
  • Exploring other frameworks, but Expo gives convenient support for cross-platform mobile apps.

Additional context
Creating this app will allow further exploration of mobile-specific features, such as haptic feedback, which are not possible in web/PWA environments. See logic and implementation in the existing PWA (apps/pwa) for reference.</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@coderabbitai
Copy link

coderabbitai bot commented Nov 4, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Nov 4, 2025

Deploying demo-time with  Cloudflare Pages  Cloudflare Pages

Latest commit: 1341f1c
Status: ✅  Deploy successful!
Preview URL: https://29fe4692.demo-time.pages.dev
Branch Preview URL: https://copilot-create-expo-mobile-a.demo-time.pages.dev

View logs

@sonarqubecloud
Copy link

sonarqubecloud bot commented Nov 4, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@sonarqubecloud
Copy link

sonarqubecloud bot commented Nov 4, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Copilot AI changed the title [WIP] Create Expo mobile app with haptic touch for navigation buttons Add Expo mobile app with haptic feedback for remote presentation control Nov 4, 2025
Copilot AI requested a review from estruyf November 4, 2025 12:47
@sonarqubecloud
Copy link

sonarqubecloud bot commented Nov 4, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
20.1% Duplication on New Code (required ≤ 3%)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants