Upload
agimamobile
View
194
Download
0
Embed Size (px)
Citation preview
CHALLENGES
• To create cross-platform mobile business logic library on Java
• To give fully-native interface to developers to interact with it
FEATURES
• Memory management
• Threading
• Namespaces
• Inheritance
• Mapping
• Overloading
• Exceptions
INHERITANCE AND MAPPING
• class -> @interface
• interface -> @protocol
• boolean -> bool
• byte -> char
• …
• Int[] -> PrimitiveIntArray
• Int[][] -> NSArray<PrimitiveIntArray>
• Object -> MTCObject
INHERITANCE ARTIFACT
public Animal getAnimal() { … }
- (MTCAnimal *)getAnimal;
MTC + Animal.getClass().getShortName()
MAPPING EXAMPLE
public String getTestString() {return “Hello, World!”;
}public int[] getGivenArray(int[] array) {
return array;}
- (MTCString *)getTestString;
- (PrimitiveIntArray *)getGivenArray:(PrimitiveIntArray *)array;
OVERLOADING CHALLENGES
public void overload(int a) {…
}public void overload(int[] a) {
…}
- (void)overload:(int)a;
- (void)overload:(PrimitiveIntArray *)a;
OVERLOADING SOLUTION
public void overload(int a) {…
}public void overload(int[] a) {
…}
- (void)overloadWithAint:(int)a;
- (void)overloadWithAintArray:(PrimitiveIntArray *)a;
EXCEPTIONS
public static void throwException() {
throw new NullPointerException(“MTC 2016”);}
+ (void)throwException;…@try {
[MTCCustomClass throwException]} @catch (MTCNullPointerException *e) {
...} @finally { ... }
mobile.agima.ru +7 495 981-01-85 [email protected]
THANK YOU FOR ATTENTION!
Alexander ShitikovHead of mobile development department
facebook.com/shitikov.ap