Skip to content

ImMobile, a shell with desktop-like environment

Notifications You must be signed in to change notification settings

basharast/ImMobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


ImMobile Shell
Privacy | Wiki | Lab | Releases

Overview

ImMobile, a shell representing a truly universal environment designed to operate on the first Windows build and deliver a desktop-like experience, read how the project idea started here.

This project is built upon ImGui and C++, focusing on performance and flexibility. ImGui showcases its robust and smooth architecture with a simple statement:

I barely understand 5% of DirectX or drawing pipelines, but with ImGui this project was possible

What Does ImMobile Offer?

To give you a glimpse of its interface, here are some sample images:


Also check video below to explore the main UI

ImMobile UI Walkthrough (YouTube)


Flexible Extensions (Click Here)

Sorting Home Grid (Click Here)


Touch Environment

ImMobile includes a touch resolver to improve the touch experience.

It currently supports up to 2 touch points for the main UI, allowing you to scroll and zoom in/out.

The TouchPad (used for gaming) has a dynamic range of touch points and is not limited to 2.

Touch settings allow users to customize the touch behavior for a better experience.

Additionally, extensions can handle touch points as needed.

Desktop-like Environment

ImMobile offers a desktop-like experience similar to Windows, featuring easy-to-use tools such as a file browser/manager.

These tools enhance the feeling of a standalone environment, reducing interruptions from pickers, popups, and notifications.

ImMobile Extensions

Extensions are designed to expand the capabilities of ImMobile beyond its default functionality.
They can reduce development effort by up to 50% or more, and they run as part of the ImMobile UI engine.

Check out ImmExtension Examples

JSRuntime

ImMobile provides advanced support for extensions and add-ons.
Check out the Extensions Development section for more details.

It also features a JavaScript runtime that enables automation of advanced tasks using JS scripts.

Async Tasks

ImMobile includes an asynchronous task environment to enhance the desktop-like feel.

You can perform multiple tasks without blocking the UI.

A built-in task monitor manages up to 5 queues, allowing smooth, parallel task execution.

GitHub Browser

ImMobile features a simple GitHub browser with Markdown reading support.

You can:

  • Add and browse important repositories
  • Monitor changes
  • Download releases
  • Read release notes

Customizable

You can fully customize the UI, including font management.

The extensions API also allows developers to override parts of the ImMobile UI as needed.

Much More

To make ImMobile as standalone as possible, many tools have been integrated.
See Credits

Included tools:

  • Calculator
  • Hex editor
  • Text editor
  • Package manager
  • Stock viewer
  • Device info viewer

Supported Architectures

  • ARM32
  • ARM64
  • x64
  • x86

For desktop usage, you may notice slight delays on the first few clicks.
After that, performance should be smooth, as the app is primarily optimized for touch.

I’ve done my best to ensure it works well with both touch and mouse input.

Target Audience

Currently, ImMobile is targeted at the Windows Phone community.
While it could be adapted for other platforms, there is no clear motivation for doing so at this time.

Additionally, due to a lack of testing hardware (such as Xbox or ARM64 Surface devices), supporting those platforms would be very difficult at the moment.

Source Code

I do not fully understand the necessity of disclosing the entire project source publicly. While I have no assets to protect, I believe trust is paramount. Consider how many closed-source applications you use daily. If you have concerns regarding trust or clarification, please refrain from using this project.

However, for research and support purposes, I am open to sharing the source with interested parties, such as the creators of ImGui.

Future

ImMobile currently targeting Windows, UWP specificly as explained above,

but the idea can be adopted in universal means (multiple platforms), which need to be worked on from the ground

Acknowledgments

Developed by: Bashar Astifan
ImGui Creator: Omar Cornut
ImGui UWP Contribution: Ahmed Walid
More Credits: Click Here


Libraries Used

BalazsJako (Text editor)Deathstroke (Notifications)dfranx (File manager)Pascal Thomet (Calculator)enkisoftware (Markdown)Evan Pezent (ImPlot)libzip.orgzlib.netpugixml.orgSean Barrett (stb_image)Ben Strasser (csv-parser)Brodie Thiesfield (SimpleIni)Niels Lohmann (JSON)litehtml (Lightweight HTML)bellard (quickjs)quickjs-ng (quickjs)Arthur Benilov (juce_litehtml)Google (gumbo-parser)Gustave Monce (Dynamic DLL)