Remote Screen Sharing in realtime like SharedView, TeamViewer - windows

What technologies would I need to know to write an app like the now defunct Microsoft SharedView or something like TeamViewer? Any way to do it with a browser and not need a client app?
I'm a .NET developer, but figure I'd need to know C++ or driver stuff?
How would you stream the users desktop to another user? How do you even capture it in realtime?
I can imagine how you could take screenshots of the desktop and transfer them, but how do you capture live video of the screen of application and stream it to another user.
There are many apps that do this: Skype, GotoMeeting, TeamViewer, SharedView, Citrix, logmein, etc. but I'd like to write my own.
How would I get this to work on Windows, tablets, droids, etc...?

The browser seems to be a good platform for this, but there are some limitations
1 - flash doesn't work at all on IOS, and is not widely available on android.
2- Webrtc works with chrome, firefox and opera on mac/pc/linux, and with firefox/chrome on android. There's librairies to use webrtc from an IOS native app(in objective C). Screen Sharing on the other hand only works with chrome (pc/mac/linux). There's a work in progress in firefox.
3- Installation of browser plugins will be hard if not impossible on various platforms, but it can open some possibility : on chrome and firefox you can make them with javascript. For example a javascript extention can share a tab in chrome.
Using javascript you can stream from a desktop to any other desktop / android.

Related

How to do a Flutter Firebase app for both Mobile and Desktop at the same time

I see many samples and videos on how to do firebase for mobile and they call this "multiplatform". However, I don't see much on the desktop. There is one video on firebase flutter Windows by using a web and it seems to work. However, I do not see any tutorials for both mobile and desktop. Firebase would be a great example on syncing between desktop and mobile. We have such an app in development right now. Desktop development is new, but I'm surprised how little there is.
There is a library called firebase_dart, but the documentation seems weak.
The package firedart with the video listed above works in both desktop (linux and android without much modification..
What needed to be modified?
I had difficulty with the button on the very top of the phone, so I
added a sized box.
I had difficulty with debugPrint or print so I
added a Text widget with the results (to string).
That also worked.
Although I would like to not use fluent_ui, it does work for both desktop and mobile. I'm not sure what to do with realtime db, but I think I can make the firedart work for user sync between mobile and desktop.
It would be better if I could get firebase_dart to work.
https://www.youtube.com/watch?v=Tw7L2NkhwPc

How mobile Firefox addon can recieve information from it's Desktop version? (if both are logged in)

I want to be able to close tabs on my mobile Firefox, while using Desktop version of Firefox. I thought Tab-sync would make it work, but it doesn't. So now I'm on the quest to fix it with an extension.
I have thought about using sync area of storage (https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/sync) but it's not supported on Android.
Do I have to build some external service to send command from Desktop version to that service and then use Mobile Firefox extension to do the polling or there is a better way to utilize fact that I'm logged on both of these devices.
Any ideas please?

Share screen of Microsoft Windows 10 apps using webrtc

When a Windows 10 computer wants to share some of its screens using webrtc protocol (firefox navigator), a list of the windows that can be shared appears. In this list, only "normal" applications appears, not the one related to "apps". By example, spotify window appears, but OneNote window is not listed.
It seems (?) webrtc screen share is not compatible with UWP apps.
Knows someone a way to share the screen of an app via webrtc ?
Note: following link allows to reproduce this issue:
https://mozilla.github.io/webrtc-landing/gum_test.html
you do not need share anything, just push "window" and see the list of windows that appears.
I believe Chromium (the open source version - not sure about Chrome) faces the same problem as UWP requires to use a new Win 10 API which shows it's own window selector. And then obviously that selector doesn't work on other problems. So it's a common problem on Win 10, with no known good solution as far as I can tell.

I want to be an Appetize.io(or Browserstack) in China. Should I learn about open source projects or knowledge?

Appetize.io or Browserstack.com can't access it normally in China, so I want to implement a tool myself. Like Appetize (or Browserstack), I can use my different versions of mobile devices to debug my webpage online, but I don't know where to start. Thank you.
Look at the Network Activity tab of Chrome Dev Tools while you are on the demo page for Appetize.io. You will see a bunch of JPEG images being streamed to the browser as you interact with the device "screen" on the browser. Most likely an emulator/simulator is fired up in the backend and screenshots are taken at regular intervals and streamed to the browser.
That would be a good start. The next thing to look at would be how to capture input (typing and screen taps) on the browser and then "execute" those type/taps on the emulator in the backend.

Chromecast home screen development options?

I've been reading through Google's Chromecast developer documentation and I can't seem to find any developer docs that discuss how to develop customizations for the Chromecast home screen, such as HTML overlays, etc.
There are Chromecast apps available that do show stuff on the Chromecast home screen, such as Dashboard Cast, https://play.google.com/store/apps/details?id=com.rir.dashboardcast&hl=en.
Does anyone know what approaches can be used with the Receiver API to allow this?
You cannot customize the home screen (backdrop); users can change what sort of feeds (images) can be used to be shown there. You, as a developer, do not have control over that and if it seems that some developers have customized that, in reality they have not; they are running an app there (like any other chromecast app).

Resources