Mapping Objective-C API to Java
Spoorthi Marina D SilvaOral Defence Date:
Tuesday, May 29, 2012 - 11:00Location:
Professors Arno Puder and Barry Levine
The recent growth in the smartphone industry has led to a rise in demand for mobile applications. iOS, being one of the leading mobile platforms in the world, has attracted a large number of mobile application developers. Objective-C is the programming language that Apple supports for development of iOS applications. However, Apple has its own restrictions with regard to the use of virtual machines in iOS, which imposes limitations on developers who intend to develop applications in Java. Using XMLVM - a cross compiler tool-chain which cross compiles byte code instructions to Objective-C code, we can overcome this restriction imposed by Apple. With the success of iOS, the number of APIs have increased significantly, with the API size almost doubling since its release. Providing support in Java to all of the available APIs in iOS is a challenge, considering the growing size of the API. Since Objective-C and Java belong to two different object models, mapping the iOS APIs to Java APIs puts forward some of the challenges which are discussed in this work. In this project, we try to automate the process of mapping the APIs from iOS to Java such that introduction of new APIs does not require any user interaction to provide Java support. Along with this, we also try to automate the process of generating the bridge code required for communication between iOS and Java objects. Using the generated APIs and the bridge code, we were able to develop, run and test several iOS applications, using Java.