MCPcopy Index your code
hub / github.com/crossmob/CrossMobile

github.com/crossmob/CrossMobile @v4.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.0.0 ↗ · + Follow
10,620 symbols 23,273 edges 2,334 files 2,905 documented · 27%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Build Status GitHub

CrossMobile

General information

CrossMobile is a framework that facilitates the development of mobile applications.

The goal of CrossMobile is to be able to write native mobile applications, using Java as the main language and fully recycle the written code. Using a rich iOS API it is possible to write once not only GUI applications, but applications that cover most of mobile aspects, like push notifications, geo location, maps, camera etc. There is no need to write specific code for Android, just follow the iOS API and all will be handled by this framework, with zero manual target fine tuning.

Feature highlights

CrossMobile is not a hybrid solution. It doesn't run code under an invisible web view. What it does is:

  • iOS : transpile code from JVM to Objective C, using an up-to-date version of the XMLVM tool.
  • Android : have a thin compatibility library for the iOS API and pass through all system calls to Android subsystem, removing the Android implementation details from the developer.
  • Desktop : with technologies similar to the Android backend, reuse as much Java code as possible, provide the same experience to the Desktop as a stand-alone Java (JAR based) application.

CrossMobile is a mature project, it is developed for more than 5 years up to now and proved its stability through various commercially published applications.

How to get it

Please go to the download page to download the latest release.

If you want to compile it from source yourself, make sure to have a look at the COMPILE.md file first with info how to get the source code and how to compile it.

History

A human-friendly Release log could be found here, or a detailed ChangeLog here.

Requirements

macOS Windows Linux
Required macOS 10.12.6

Xcode 9.2

Android command line tools 3.5 | Windows 7

Android command line tools 3.5 | x64 distribution

Android command line tools 3.5 | | Recommended | macOS 10.14+

Xcode 11.+

Android Studio 3.5+ | Windows 10 64 bit

Android Studio 3.5+ | x64 distribution

Android Studio 3.5+ |

More information

For more information about CrossMobile, please visit its dedicated site crossmobile.org.

Extension points exported contracts — how you extend this code

UIApplicationDelegate (Interface)
UIApplicationDelegate interface is the delegate responsible for handling events related to UIApplication singleton objec [8 …
cmioslayer/src/main/java/crossmobile/ios/uikit/UIApplicationDelegate.java
Procedure (Interface)
(no doc) [12 implementers]
cmutils/cmutils-tools/src/main/java/org/crossmobile/utils/TimeUtils.java
CrossMobilePlugin (Interface)
(no doc) [5 implementers]
cmutils/cmutils-common/src/main/java/org/crossmobile/bridge/CrossMobilePlugin.java
WebViewBridge (Interface)
(no doc) [6 implementers]
cmioslayer/src/main/java/org/crossmobile/bridge/WebViewBridge.java
ProcedureR (Interface)
(no doc) [12 implementers]
cmutils/cmutils-tools/src/main/java/org/crossmobile/utils/TimeUtils.java
Block3 (Interface)
Block which takes 3 generic arguments and returns a generic value. [1 implementers]
cmutils/cmutils-common/src/main/java/org/robovm/objc/block/Block3.java
SoundPlayer (Interface)
(no doc) [6 implementers]
cmioslayer/src/main/java/org/crossmobile/bind/io/SoundPlayer.java
Active (Interface)
(no doc) [6 implementers]
cmutils/cmutils-tools/src/main/java/org/crossmobile/utils/TreeWalker.java

Core symbols most depended-on inside this repo

get
called by 521
cmutils/cmutils-tools/src/main/java/org/crossmobile/utils/func/UnsafeSupplier.java
getSize
called by 382
cmioslayer/src/main/java/org/crossmobile/bind/graphics/NativeFont.java
system
called by 288
cmioslayer/src/main/java/org/crossmobile/bridge/Native.java
getWidth
called by 273
cmioslayer/src/main/java/org/crossmobile/bind/graphics/NativeBitmap.java
getHeight
called by 245
cmioslayer/src/main/java/org/crossmobile/bind/graphics/NativeBitmap.java
add
called by 224
cmioslayer/src/main/java/org/crossmobile/bind/graphics/anim/Animator.java
notImplemented
called by 206
cmioslayer/src/main/java/org/crossmobile/bridge/SystemBridge.java
getOrigin
called by 188
cmioslayer/src/main/java/crossmobile/ios/mapkit/MKMapRect.java

Shape

Method 7,041
Class 3,385
Interface 174
Enum 17
Function 3

Languages

Java77%
C++23%

Modules by API surface

cmioslayer/src/main/java/crossmobile/ios/uikit/UIView.java199 symbols
cmioslayer/src/main/java/crossmobile/ios/uikit/UIViewController.java126 symbols
cmioslayer/src/main/java/crossmobile/ios/uikit/UIScrollView.java85 symbols
cmioslayer/src/main/java/crossmobile/ios/uikit/UITableView.java73 symbols
cmioslayer/src/main/java/org/crossmobile/support/cassowary/util/IdentityHashDoubleMap.java69 symbols
cmioslayer/src/main/java/crossmobile/ios/uikit/cmViewAnimation.java59 symbols
cmioslayer/src/main/java/crossmobile/ios/coregraphics/CGContext.java58 symbols
cmioslayer/src/main/java/org/crossmobile/backend/android/AndroidMapViewWrapper.java57 symbols
cmioslayer/src/main/java/crossmobile/ios/mapkit/MKMapView.java53 symbols
cmutils/cmutils-tools/src/main/java/org/crossmobile/utils/FileUtils.java50 symbols
cmioslayer/src/main/java/crossmobile/ios/uikit/UIButton.java49 symbols
cmioslayer/src/main/java/crossmobile/ios/uikit/UITableViewCell.java48 symbols

For agents

$ claude mcp add CrossMobile \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact