Hacker Newsnew | past | comments | ask | show | jobs | submit | weiyin's commentslogin

Agreed. This is an issue not just for Safari, but someone can upload a specially crafted app that browses the file system.

In this iteration we are using the OS permission system to isolate users. We are looking into more effective sandbox methods. Security is an ongoing process, and we always take an adversarial point of view when evaluating our system.


Definitely on our to-do list. Stay tuned!


Agreed! We are also working on supporting additional device types (iPad, iPad mini, iPhone 6(+)).


uh... oh boy. you're really pushing the boundaries of our testing... :)


not sure if you care about this one...http://i.imgur.com/OsGo10T.png


No worries, that's a mock location. Thanks!


I think that's the Apple store in San Francisco ;)


Haha, I'm a little surprised since this was the first thing I did. Actually works pretty well.


definitely a possibility :)

we'll check that out, thanks for the heads up.


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.


hi tuscany,

all solid points, and thanks for your support.

we will definitely need to think through abuse, server costs, etc. it's a pretty lean setup but still gotta run on mac hardware :)

weiyin


Hi Michael.

Thanks for taking a look! And sorry our site is having some problems on Firefox. Maybe use Chrome for now until we fix it up.

This service we put together would allow anybody to run iOS simulators in the browser for a whole variety of reasons. For example, a developer can easily send builds to clients/colleagues or even embed the demo in a website or blog post.

Cheers, Weiyin


Thanks for the suggestion, that looks like a cool library. A future goal is to be able to provide higher resolution images to fully show off the high DPI displays.


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


The one piece that puzzles me is how the frames are being captured from the iOS simulator. Are you launching multiples per user account, where each one is a different session at a different portion of the screen, and essentially screenshotting each? Or did you modify the simulator somehow and are hooking in to grab the screen, so that way its irrelevant of their position on screen?

Thanks!


We wrote some custom OS X code to capture frames from individual processes. That way the simulators don't need to be positioned in any way or even visible. Cheers.


(don't see a link to reply under your last comment)

yea, so the incoming keystrokes and mouse movements are managed through some custom OS X code as well.

the specific method we're using is CGEventPostToPSN, more information here: https://developer.apple.com/library/mac/documentation/Carbon...


The other piece of magic you are doing is sending in the keystrokes / mouse movements. If you're running multiple iOS simulators on a Mac, how are the key presses / mouse movements not interfering with other users?


(No reply button under your other comment either)

Thats a pretty sweet API, never seen that before, thanks! I'm going to play around with it a bit to see what it can do!


> 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?


As previously the Head of BD at App.io, I applaud your efforts! Well done! Quite a few ways you can monetise, good luck! :)


Likewise!! Well done guys. Great to see you've grabbed the torch. Good luck and I look forward to following your progress.


Thanks, it means a lot to us coming from you guys!


Can't wait until you figure out h.264 and the MediaSource API ;) You guys are moving at an incredible pace! Very impressed.

ps. I love the new /embed endpoint and iPad support. Keep it coming!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: