Giter Club home page Giter Club logo

iremote's Introduction

iRemote Suite

iRemote is remote control application for manipulating desktop workstations using mobile device over WiFi. The application allows simulating keyboard and/or mouse input of any kind. Key feature of iRemote Suite is screen sharing capability.

iRemote Suite features:

  • Desktop screen sharing with zooming support.
  • Image quality is configurable.
  • Mouse control (mouse movement, mouse clicks, tap-to-click, scrolling).
  • Keyboard control.
  • Master volume control.
  • Fully-functional shell access.
  • Authorization feature.

Supported desktop platforms:

  • Mac OS X 10.6 or above (Intel only).
  • Windows XP / Windows Vista / Windows 7 / Windows 8.

Supported mobile platforms:

  • iOS 6.0+.
  • Android 2.3+.

Major iRemote releases:

This neat story was timed to the submission of Android build to Google Play:
http://blog.scientific-soft.com/2011/04/08/android-story-of-iremote/

Internals and Repository Structure

Not much have changed since the moment when this article on iRemote architecture was published. It gives good overview of how desktop and mobile applications are organized.
http://iremote.mobi/internals

Desktop application is built in QT (http://qt-project.org/). Mobile apps are native. Among other 3rd Party dependencies (full list can be found here REPO/doc/License/LIBS.txt) there is another project of mine, which actually preceded iRemote. Common Kit library (https://github.com/egorpushkin/common-kit) powers iRemote object model and networking on iOS and desktop platforms.

This repository contains most materials related to the project:
    /art - Icons, splash screens, etc.
    /doc - Project related documentation, EULA, manuals and some other materials can be found here.
    /dev - Contains mobile and desktop application source and 3rd party dependencies (or references to it).

You will notice that repository history does not go all the way back to the origins of the project. The repository was cleaned up when the decision was made to make the source public. For the most part cleanup was related to removing resources and demos that could not be published due to licensing limitations.

Code Style and Techniques

Not a lot to say here, but still I want to make a note that now I add underscore ("_") in the beginning of member variables and no longer use Camel notation for method names :)

iOS client was shipped prior to background support was introduced in iOS. We could not even dream about ARC and other cool things back then.

iRemote was ported to Android shortly after Honeycomb was released. In those dark days there were still users asking not to leave 1.5 overboard. This should shed light on some UX-level decisions made at that point.

Experimental

These are some of iRemote features that were implemented (at least partially) but were not shipped.

Smart Frame Buffer

The SFB technology was designed to allow streaming the entire screen (rather than just seeing a portion of it) in an efficient way. Tablet users were supposed to be primary consumers of this technology.
https://github.com/egorpushkin/iremote/tree/feature/rpc_sfb

iPad Support in Universal iOS Application

iRemote for iOS was transformed into universal application and iPad UI was prototyped around SFB technology. iPad application is about 90% complete at this point.
https://github.com/egorpushkin/iremote/tree/feature/ipad

Media Streaming from Desktop

Simple media streaming server was integrated into Remote PC allowing remotely connected client to browse workstation file system and stream any content supported by native WebView control.

License

iRemote source code is available under MIT license.
http://opensource.org/licenses/MIT

References

Project Page - http://iremote.mobi
iOS - https://itunes.apple.com/app/iremote-suite/id312222737?mt=8
Android - https://play.google.com/store/apps/details?id=com.scientificsoft.iremote.android.iremote

About the Author

iRemote project was brought to life by Egor Pushkin. Refer to resources listed below to get a better sense of my activities and interests. In two words my recent efforts are directed towards architecting connected systems (specifically in mobile area) with focus on cross-platform development methodologies, modern communication paradigms and highly automated workflows.

LinkedIn - https://www.linkedin.com/in/egorpushkin
Twitter - https://twitter.com/egorpushkin
Blog - http://blog.scientific-soft.com/

iremote's People

Contributors

egorpushkin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.