Successfully reported this slideshow.
Your SlideShare is downloading. ×

Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mobile applications.

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 24 Ad

Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mobile applications.

Download to read offline

We will discuss how to build your application on the top of cross-platform technologies using advantages of few languages. We will deep review UI and business logic and think how to make a bridge between them.

We will discuss how to build your application on the top of cross-platform technologies using advantages of few languages. We will deep review UI and business logic and think how to make a bridge between them.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Viewers also liked (20)

Advertisement

Similar to Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mobile applications. (20)

More from Mobile Trends (20)

Advertisement

Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mobile applications.

  1. 1. CROSS-PLATFORM MOBILE DEVELOPMENT Alexander Shitikov Head of mobile development department
  2. 2. HYBRID APPLICATIONS
  3. 3. TECHNOLOGIES
  4. 4. BUSINESS LOGIC Shared logic for each platform
  5. 5. BUSINESS LOGIC
  6. 6. BUSINESS LOGIC
  7. 7. JAVA AS THE BRIDGE
  8. 8. CHALLENGES • To create cross-platform mobile business logic library on Java • To give fully-native interface to developers to interact with it
  9. 9. SOLUTION • RoboVM • Objective-C JNI wrapper generator
  10. 10. FEATURES • Memory management • Threading • Namespaces • Inheritance • Mapping • Overloading • Exceptions
  11. 11. MEMORY MANAGEMENT • Java object from native • Native object from java
  12. 12. THREADING • Control by java • Control by native
  13. 13. NAMESPACES java.lang.String -> MTCString Problem: pl.mobiletrends.String -> MTCString
  14. 14. NAMESPACES java.lang.String -> java_lang_String
  15. 15. NAMESPACES java.lang.String -> JavaLangString
  16. 16. NAMESPACES java.lang.String -> MTCJLString
  17. 17. INHERITANCE AND MAPPING • class -> @interface • interface -> @protocol • boolean -> bool • byte -> char • … • Int[] -> PrimitiveIntArray • Int[][] -> NSArray<PrimitiveIntArray> • Object -> MTCObject
  18. 18. INHERITANCE ARTIFACT public Animal getAnimal() { … } - (MTCAnimal *)getAnimal; MTC + Animal.getClass().getShortName()
  19. 19. MAPPING EXAMPLE public String getTestString() { return “Hello, World!”; } public int[] getGivenArray(int[] array) { return array; } - (MTCString *)getTestString; - (PrimitiveIntArray *)getGivenArray:(P rimitiveIntArray *)array;
  20. 20. OVERLOADING CHALLENGES public void overload(int a) { … } public void overload(int[] a) { … } - (void)overload:(int)a; - (void)overload:(PrimitiveIntArray *)a;
  21. 21. OVERLOADING SOLUTION public void overload(int a) { … } public void overload(int[] a) { … } - (void)overloadWithAint:(int)a; - (void)overloadWithAintArray:(Primiti veIntArray *)a;
  22. 22. EXCEPTIONS public static void throwException() { throw new NullPointerException (“MTC 2016”); } + (void)throwException; … @try { [MTCCustomClass throwException] } @catch (MTCNullPointerException *e) { ... } @finally { ... }
  23. 23. PROJECT STATUS March-April 2016 alpha version
  24. 24. mobile.agima.ru +7 495 981-01-85 info@mobile.agima.ru THANK YOU FOR ATTENTION! Alexander Shitikov Head of mobile development department facebook.com/shitikov.ap

×