Home Features Docs Blog Support GitHub

Developing Taxi sample iOS part using existing Java library (dot.jar)

(dizo) #1

I have a Taxi service Java library (dot jar), so how to develop a Taxi sample iOS part using this library.

(dizo) #2

These steps for adding MOE and Java library to an Xcode project but I need steps for developing Taxi sample ios part using the Java library
To add MOE 1.3 (and your Java library) to an Xcode project, you have to follow these steps:

  1. Create a new MOE project (e.g. with your Java IDE’s New MOE Project)
  2. Replace the generated Xcode project in the MOE project with your existing project. If your project uses Xcode workspaces, you will need to adjust the build.gradle file accordingly, in particular set the following values:
moe {
     xcode {
         project 'path/to/main.xcodeproj'
         mainTarget '<Main Target>'
         testTarget '<Test Target>'
         // New values added
         workspace 'path/to/xcworkspace'
         mainScheme '<Main Scheme Name>'
         testScheme '<Test Scheme Name>'
  1. Open the adjusted MOE project in your Java IDE and run the Multi-OS Engine Actions > Inject/Refresh Xcode Project Settings action to add the MOE specific changes to the your Xcode project. This is the equivalent of pod install . (In case of using a workspace with multiple projects this must be the main project e.g. the one where you ran pod install ).
  2. You need to initialize MOE VM on application startup. You should replace the usual UIApplicationMain() call in your main method with a call to moevm() (see the Xcode project that is generated by MOE).
  3. You need to add the MOE.Main.Class property to your App’s Info.plist. This property contains a fully qualified Java class name that has a static main() method. This main method will be called by moevm() after the VM startup is complete.
  4. You can keep this main class very simple, e.g. just call UIApplicationMain with the name of your UIApplicationDelegate class implemented in ObjC or Swift:
   public class Main {
      public static void main(String[] args) {
          UIKit.UIApplicationMain(0, null, null, "YourAppDelegateWrittenInObjC");
  1. Add your common library to your build.gradle as a dependency. Also add the appropriate rules in proguard.append.cfg so your library is not thrown out by ProGuard.

(dizo) #3

If someone knows the answer please help us with thanks

(Eugene) #4

What is the issue? You just need to add that .jar as a dependency in your gradle build script. There are many tutorials for gradle that cover that

(dizo) #5

I have a common module (java library) and need developing ios app using the library how??