ImMobile Shell
Privacy |
Wiki |
Lab |
Releases
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
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)
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.
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.
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
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.
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.
ImMobile features a simple GitHub browser with Markdown reading support.
You can:
- Add and browse important repositories
- Monitor changes
- Download releases
- Read release notes
You can fully customize the UI, including font management.
The extensions API also allows developers to override parts of the ImMobile UI as needed.
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
- 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.
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.
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.
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
Developed by: Bashar Astifan
ImGui Creator: Omar Cornut
ImGui UWP Contribution: Ahmed Walid
More Credits: Click Here
BalazsJako (Text editor) • Deathstroke (Notifications) • dfranx (File manager) • Pascal Thomet (Calculator) • enkisoftware (Markdown) • Evan Pezent (ImPlot) • libzip.org • zlib.net • pugixml.org • Sean 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)