java on ios yes you can n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Java on ios ? yes you can ! PowerPoint Presentation
Download Presentation
Java on ios ? yes you can !

Loading in 2 Seconds...

play fullscreen
1 / 23

Java on ios ? yes you can ! - PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on

Java on ios ? yes you can !. Niklas Therning / @ ntherning Henric Müller / @ henricmuller Trillian Mobile AB r obovm.com. The RoboVM Project. Goal: Java on iOS and other JVM languages: Scala , Groovy , Clojure, … Open -source since Jan 2013 github.com/robovm

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Java on ios ? yes you can !' - finian


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
java on ios yes you can

Java on ios?yesyoucan!

Niklas Therning / @ntherning

Henric Müller / @henricmuller

Trillian Mobile AB

robovm.com

the robovm project
The RoboVM Project
  • Goal: Java on iOS
    • andother JVM languages: Scala,Groovy,Clojure, …
  • Open-sourcesinceJan 2013
  • github.com/robovm
  • License allows closed source apps
  • www.robovm.com / @robovm
robovm features
RoboVM Features
  • Java bytecodetomachinecode
    • AheadOfTime, no interpreter, no JIT
    • Fastapps
  • Runtimeclassesbased on Android
    • java.*, javax.*, etcincl. I/O, reflection
  • Supports 3rd party JAR files
  • Supports standard JNI(static)
robovm features1
RoboVM Features
  • Bindings for nativeiOS APIs
    • Full access to hardware, services, UI, etc
robovm features2
RoboVM Features
  • Integrateswithpopular Java tools
  • sbt
  • Leiningen
robovm is
RoboVM is …

… not an AndroidtoiOSappconverter

… not a Java toObj-C source translator

… not only for games*

* (Though it worksgreat for games too!)

current status
Current Status
  • 100+ apps in App Store
  • Thousandsofusers
  • 1.0 scheduled for late 2014
1 0 alpha 2 just released
1.0 Alpha 2 just released!

λ

Introduces lambdas and default methods

slide9
Showcase:

ContractRPunch clock for contractors

cross platform app development
Cross-platformappdevelopment

Option #1 – Native UI

cross platform app development option 1 native ui
Cross-platformappdevelopmentOption #1 – Native UI
  • Pros
    • UserExperience
    • Performance
  • Cons
    • Less codereuse
    • Learning curve – API/tooldifferences
cross platform app development option 1 native ui1
Cross-platformappdevelopmentOption #1 – Native UI

Usepatternstomaximizecodereuse

MVC

MVVM

Controller

Controller

Viewmodel

Viewmodel

View

View

Model

Model

View

View

Model

Model

slide13
3 separatemodules

Core

(model)

Android

iOS

slide14
Common modelcode:

publicclassClientModel{

publicClientcreate() { … }

publicintcount() { … }

publicClient get(intindex) { … }

slide15

UITableViewCellgetRowCell(UITableViewtableView, NSIndexPathindexPath) {

UITableViewCellcell = tableView.dequeueReusableCell("cell");

if(cell == null) {

cell= newUITableViewCell(UITableViewCellStyle.Value1, "cell");

cell.setAccessoryType(UITableViewCellAccessoryType.DisclosureIndicator);

}

Clientclient = clientModel.get((int) indexPath.getRow());

cell.getTextLabel().setText(client.getName());

returncell;

}

iOSspecific UI code:

slide16

publicViewgetView(int position, ViewconvertView, ViewGroupparent) {

Viewview= convertView;

if (convertView== null) {

view= inflater.inflate(android.R.layout.simple_list_item_1, parent, false);

}

Clientclient = clientModel.get(position);

TextViewtext= (TextView) view.findViewById(android.R.id.text1);

text.setText(client.getName());

returnview;

}

Androidspecific UI code:

cross platform app development1
Cross-platformappdevelopment

Option #2 – Cross Platform UI

JavaFX from the OpenJFXproject

cross platform app development option 2 cross platform ui
Cross-platformappdevelopmentOption #2 – Cross Platform UI
  • Pros
    • Close to 100% codereuse
  • Cons
    • UserExperience
    • Performance
slide21
ContractR and othersamplescan be found at

github.com/robovm/robovm-samples

commercial licenses
Commercial Licenses
  • Launch late 2014
  • Standard Java debugger support
  • Support options

Open source version still letsyoudevelopamazingapps for freewithout limitations!

slide23
?

Check outwww.robovm.com and follow @robovm