Skip to content

Commit

Permalink
add desktop app announcement
Browse files Browse the repository at this point in the history
  • Loading branch information
yume-chan committed Jun 5, 2024
1 parent 967bc8c commit 4220dd6
Show file tree
Hide file tree
Showing 12 changed files with 94 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"cSpell.words": ["Fullscreen", "Miracast", "PPSSPP"],
"cSpell.words": ["Fullscreen", "Miracast", "PPSSPP", "Scrcpy", "wirelessly"],
"prettier.documentSelectors": ["**/*.svg"],
"prettier.enableDebugLogs": true,
"prettier.configPath": "./.prettierrc"
Expand Down
Binary file added blog/2024-06-05-desktop-app/auto.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/2024-06-05-desktop-app/context-menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/2024-06-05-desktop-app/footer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/2024-06-05-desktop-app/guide.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions blog/2024-06-05-desktop-app/image-caption.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import React from 'react';

export default function ImageCaption(props: { width: number, src: string, caption: string }) {
return (
<figure>
<img style={{ display: 'block', margin: 'auto', maxWidth: props.width }} src={props.src} alt={props.caption} />
<figcaption style={{ marginTop: 4, textAlign: 'center', opacity: 0.8 }}>{props.caption}</figcaption>
</figure>
)
}
82 changes: 82 additions & 0 deletions blog/2024-06-05-desktop-app/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
authors: simon
---

import ImageCaption from './image-caption'

# Desktop App (beta) released

We are happy to announce the beta release of the Tango Desktop App. The app is available for Windows, macOS, and Linux.

The desktop app is a simple, system-tray only app that starts Google ADB and forwards the connection to Tango Web App. You can still use your favorite browser to access Tango Web App, and the desktop app will automatically connect to it.

{/* truncate */}

## Slim and fast

The desktop app sits in the system tray and only shows a menu when you right-click on it.

It's built with Rust, so it's small (10MB with ADB bundled), fast, and uses very little (around 4MB) memory.

We really don't want to add another 200MB Electron app to your system which uses 1GB of memory!

<ImageCaption width={213} src={require('./context-menu.png').default} caption="Context menu"/>

When the Web app is connected to the Desktop app, it will display an indicator in the footer:

<ImageCaption width={329} src={require('./footer.png').default} caption="Web app footer"/>

## Wireless Connection

Android has supported wireless debugging for a long time, but it uses TCP connections, which is not supported by Web APIs. The desktop app can bridge the TCP connection to WebSocket, so the Web App can connect to devices wirelessly.

Tango Desktop app supports both the new Wireless Debugging feature added in Android 11 and the old ADB over Wi-Fi (TCP/IP mode), with full visual guidance to help you set up the connection.

To add wireless devices, first navigate to the "Add Device" page (https://app.tangoapp.dev/guide), then select the "Wireless" option:

<ImageCaption width={700} src={require('./guide.png').default} caption="Guide page"/>

Then you can choose one of the following methods to pair your device:

<ImageCaption width={700} src={require('./qr-code.png').default} caption="Pair device by scanning QR code"/>

<ImageCaption width={700} src={require('./auto.png').default} caption="Automatically search for devices in pairing mode"/>

If the automatic method doesn't work, you can also enter the IP address, port, and pairing code manually:

<ImageCaption width={700} src={require('./manual.png').default} caption="Enter IP address, port and pairing code manually"/>

To add ADB over Wi-Fi devices, choose the "Wireless (legacy)" option in the "Add Device" page, then there will be two options:

<ImageCaption width={700} src={require('./legacy-enable.png').default} caption="Connect over USB and automatically enable ADB over Wi-Fi"/>

<ImageCaption width={700} src={require('./legacy-connect.png').default} caption="Connect to devices with ADB over Wi-Fi already enabled"/>

## Plug and play

In the Web app, each device has to be added manually, and when USB configuration changes, it needs to be added again. The desktop app can automatically connect to all devices, including USB devices, Wireless Debugging devices, and Android Emulators.

## Enhanced Compatibility

The desktop app connects to devices using ADB, which means it can be used alongside other ADB tools like Android Studio, Scrcpy, etc.

With the desktop app, you can also use Tango in browsers that don't support WebUSB, like Safari and Firefox, although the screen mirroring feature will not work because they lack the necessary APIs.

## Download

You can download the desktop app from https://app.tangoapp.dev/download. Because the Web app is cached in your browser, you might need to wait a few minutes for the new version to be updated.

## Future Plans

Here are some features we are considering:

* Add fallback decoders for Safari and Firefox to enable screen mirroring.
* Add a standalone version that doesn't require a browser. It will use the built-in browser engine on each platform (WebView2 for Windows, WebKit for Linux, and WKWebView for macOS) so it can still be slim and fast.

## Open Source

The desktop app is open source, you can find the source code on [GitHub](https://github.com/tango-adb/bridge-rs). We welcome contributions and pull requests!

## Conclusion

The desktop app is still in beta, we'd love to hear your feedback and suggestions! You can file issues on GitHub, or join our [Discord server](https://discord.gg/26k3ttC2PN) to chat with us.
Binary file added blog/2024-06-05-desktop-app/legacy-connect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/2024-06-05-desktop-app/legacy-enable.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/2024-06-05-desktop-app/manual.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/2024-06-05-desktop-app/qr-code.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@ const config = {
'https://github.com/tango-adb/help-center/tree/main/',
},
blog: {
blogSidebarCount: 0,
showReadingTime: true,
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
Expand Down

0 comments on commit 4220dd6

Please sign in to comment.