Live data from Hacker News

Show HN: Run dedicated iOS Simulators in the browser

appetize.io

11–20 of 69 posts

Re: Show HN: Run dedicated iOS Simulators in the browser

#11

This is really cool! The "video" quality is pretty bad though. From what I can see, the app streams base64 encoded JPEGs via WebSockets and draws them in a Canvas. The overhead of sending complete images costs a lot of bandwidth. You may want to look into jsmpeg for live streaming: https://github.com/phoboslab/jsmpeg

Why not use WebRTC for streaming the video?

You don't even need to go that complicated. A WebM stream over HTTP is pretty easy and would work well for this.

Re: Show HN: Run dedicated iOS Simulators in the browser

#12

This is really cool! The "video" quality is pretty bad though. From what I can see, the app streams base64 encoded JPEGs via WebSockets and draws them in a Canvas. The overhead of sending complete images costs a lot of bandwidth. You may want to look into jsmpeg for live streaming: https://github.com/phoboslab/jsmpeg

We've actually experimented with jsmpeg for this type of thing. The problem we ran into was that jsmpeg seemed to require every frame from ffmpeg. If the browser or network slowed, the feed would fall behind the simulation, leading to several seconds of latency when interacting.

We'd love to use it and appreciate your hard work though. Do you have any ideas on how that problem can be solved?

Re: Show HN: Run dedicated iOS Simulators in the browser

#13
post #2

Hi, thanks for checking us out. We're happy to answer any questions in the comments. Some of you may be familiar with app.io's demo pages service which was discontinued in August. We loved using their service and we thought it'd be a blast building a replacement. Technologies used: node, socket.io, mongodb, html5 canvas

I understand those are the web technologies, but how is this being run in the back? Tons of mac servers, with multiple IOS simulators on each? One running per user on the mac? Custom software to control and pass through to the socket?

Care to shed any light as to an overview on how the backend works? I've always been curious since I first saw App.io

Re: Show HN: Run dedicated iOS Simulators in the browser

#14
post #13
post #2

Hi, thanks for checking us out. We're happy to answer any questions in the comments. Some of you may be familiar with app.io's demo pages service which was discontinued in August. We loved using their service and we thought it'd be a blast building a replacement. Technologies used: node, socket.io, mongodb, html5 canvas

I understand those are the web technologies, but how is this being run in the back? Tons of mac servers, with multiple IOS simulators on each? One running per user on the mac? Custom software to control and pass through to the socket? Care to shed any light as to an overview on how the backend works? I've always been curious since I first saw App.io

> Tons of mac servers, with multiple IOS simulators on each?

Maybe a modified iOS Simulator binary that can run hundreds of instances on a single powerful server, would be my best bet.

Re: Show HN: Run dedicated iOS Simulators in the browser

#15

Earlier quoted context omitted.

Why not use WebRTC for streaming the video?

You don't even need to go that complicated. A WebM stream over HTTP is pretty easy and would work well for this.

we did some testing using compressed video, but ended up finding single frames to be more performant. also, the setup can handle much higher framerate and quality but we've kept things fairly lean for the demo :) can easily handle 15fps w/ high quality images. thanks again for the questions and comments.

Re: Show HN: Run dedicated iOS Simulators in the browser

#16

Earlier quoted context omitted.

Why not use WebRTC for streaming the video?

You don't even need to go that complicated. A WebM stream over HTTP is pretty easy and would work well for this.

It's worth noting that Chrome Remote Desktop uses VP8 (which is the video codec used in WebM):

http://googleblog.blogspot.com/2012/05/next-step-in-chrome-o...

If you're having performance issues with it, you just have the video codec tuned wrong.

Re: Show HN: Run dedicated iOS Simulators in the browser

#18
post #13
post #2

Hi, thanks for checking us out. We're happy to answer any questions in the comments. Some of you may be familiar with app.io's demo pages service which was discontinued in August. We loved using their service and we thought it'd be a blast building a replacement. Technologies used: node, socket.io, mongodb, html5 canvas

I understand those are the web technologies, but how is this being run in the back? Tons of mac servers, with multiple IOS simulators on each? One running per user on the mac? Custom software to control and pass through to the socket? Care to shed any light as to an overview on how the backend works? I've always been curious since I first saw App.io

Hey B-n-c, You are pretty much spot on with everything you mentioned.

Apparently app.io had some setup w/ VMs running on lightweight hypervisors (https://macstadium.com/casestudies), but we found we didn't have to have all that overhead to run multiple simulators per machine.

And you're exactly right about the small piece of custom code to pass controls and send frames. We're big fans of socket.io - pretty powerful stuff!

Happy to answer follow-ups if we missed something.

Thanks, weiyin

Re: Show HN: Run dedicated iOS Simulators in the browser

#19
post #14
post #13

Earlier quoted context omitted.

I understand those are the web technologies, but how is this being run in the back? Tons of mac servers, with multiple IOS simulators on each? One running per user on the mac? Custom software to control and pass through to the socket? Care to shed any light as to an overview on how the backend works? I've always been curious since I first saw App.io

> Tons of mac servers, with multiple IOS simulators on each? Maybe a modified iOS Simulator binary that can run hundreds of instances on a single powerful server, would be my best bet.

Maybe, but then launching multiples and capturing the screen of them to send off through the sockets seems like there must be something in between. I wonder if its able to see where the session windows are on the screen and screenshotting them to send through, or if they somehow hooked directly in to pull the screen?
Post reply on HN