JAVA ON IOS? YES YOU CAN! Niklas Therning Henric Müller Trillian Mobile AB robovm.com.

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Advertisements

SYDJS July What is HaXe? Multi-platform language Open source ( Community driven Version 2.07 (around since 2005) Single syntax for.
Alpha Anywhere Product Roadmap and Overview
Chapter FourModern Programming Languages1 Language Systems.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
Rapid Game Development with Corona SDK - Altaf Rehmani.
JDK, Jan Pettersen Nytun - HiA 1 The Java Programming Environment: The programmer write source code with a text editor. The programmer write source code.
JETT 2003 Java.compareTo(C++). JAVA Java Platform consists of 4 parts: –Java Language –Java API –Java class format –Java Virtual Machine.
Data Structure and Algorithm 1 Yingcai Xiao. You Me The Course (
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
MOBILE APP DEVELOPMENT Presented by Md. Zakaria Chowdhury CEO, Webcraft Bangladesh Director, Sylhet IT Academy.
Microsoft Evangelist Presentation September 13, 2012.
The PhoneGap History Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
Mobile Development with Xamarin Mark Allan Ranyart
Introducing Xamarin 2.0 Introducing Xamarin 2.0 Michael Hutchinson
Esri International User Conference | San Diego, CA Technical Workshops | ArcGIS Runtime Euan Cameron Mary Harvey Ralf Gottschalk Road Ahead.
UFCFX5-15-3Mobile Device Development UFCFX Mobile Device Development An Introduction to the Module.
Java Introduction 劉登榮 Deng-Rung Liu 87/7/15. Outline 4 History 4 Why Java? 4 Java Concept 4 Java in Real World 4 Language Overview 4 Java Performance!?
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Do not redistribute. Adobe Gaming SDK Casual Connect Europe 2013 Tom Krcha.
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Java Mobile Apps with GWT & PhoneGap Josh Marinacci, webOS Developer Advocate.
Introducing NativeScript [Pavel Kolev Software Telerik: a Progress company]
Developing Cross-Platform Applications with Visual Studio 2015
Developer TECH REFRESH 15 Junho 2015 #pttechrefres h Strategies for Developing Cross-Platform Applications Dinis Vieira.
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
The Basics of Javadoc Presented By: Wes Toland. Outline  Overview  Background  Environment  Features Javadoc Comment Format Javadoc Program HTML API.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Ex3 Preview, Swing tutorial Ex1 review Amit Shabtay.
Understanding Xamarin Development Matt
Introduction to Java The Java Platform, The Java Language, JDK, Eclipse Svetlin Nakov Technical Trainer Software University
LANGUAGE SYSTEMS Chapter Four Modern Programming Languages 1.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
The Java Platform, The Java Language, JDK, IntelliJ
The way of hybrid mobile development Hybrid Mobile Applications Telerik Software Academy
Game on! With Nativescript
TITANIUM DEVELOPMENT SERVICES MOBILMINDZ TITANIUM DEVELOPMENT PORTFOLIO
1 Android Development Lean and mean introduction Based on a presentation by Mihail L. Sichitiu.
Top 12 Frameworks for Android App Development
Created by Presented by James Schultz Titanium. What is Titanium? An open, extensible development environment for creating beautiful native apps across.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
NativeScript – Open source platform to build Native iOS/Android Apps.
By SPEC INDIA. TestComplete – An Introduction An automated testing tool by SmartBear – TestComplete is a comprehensive product with umpteen features and.
/DEV/TM #1 Building Cross-Platform Apps with Xamarin and MvvmCross Flavius-Radu DEMIAN.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Your Host & Speaker Shahed Chowdhuri Sr. Technical Microsoft Technology Areas Enterprise Web/Software Development Game Development Mobile.
JavaFX on Mobile and Embedded: Status and Future Plans
School of Engineering and Information and Communication Technology KIT305/KIT607 Mobile Application Development Android OS –Permissions (cont.), Fragments,
#SummitNow Alfresco Mobile SDKs in Action 06 November, 2013 Mike Hatfield Lead Engineer Mobile Apps, Alfresco.
Guide To Develop Mobile Apps With Titanium. Agenda Overview Installation of Platform SDKs Pros of Appcelerator Titanium Cons of Appcelerator Titanium.
Working in a Mobile App Development Environment Lesson 2.
PhoneGap Cross-Platform Development Company India
Ankit Asthana Senior Program Manager Visual C++ for Cross-Platform Mobile Development using Visual Studio 2015.
Computer System Structures
Introduction to Xamarin C# Everywhere
Microsoft Evangelist Presentation
5/15/2018 5:43 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Apache Cordova Overview
Introduction Enosis Learning.
Microsoft Virtual Academy
Introduction Enosis Learning.
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Build /23/2019 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Java Programming Introduction
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
ENIAC – the first computer
Android Platform, Android App Basic Components
Popular Programming Languages for Mobile Apps In recent years, Mobile App development industry has gained huge popularity as more and more people are.
Presentation transcript:

JAVA ON IOS? YES YOU CAN! Niklas Therning Henric Müller Trillian Mobile AB robovm.com

Goal: Java on iOS – and other JVM languages: Scala, Groovy, Clojure, … Open-source since Jan 2013 github.com/robovm License allows closed source apps THE ROBOVM PROJECT

ROBOVM FEATURES Java bytecode to machine code –Ahead Of Time, no interpreter, no JIT –Fast apps Runtime classes based on Android –java.*, javax.*, etc incl. I/O, reflection Supports 3rd party JAR files Supports standard JNI (static)

ROBOVM FEATURES Bindings for native iOS APIs –Full access to hardware, services, UI, etc

ROBOVM FEATURES Integrates with popular Java tools Leiningen sbt

ROBOVM IS … … not an Android to iOS app converter … not a Java to Obj-C source translator … not only for games* * (Though it works great for games too!)

CURRENT STATUS 100+ apps in App Store Thousands of users 1.0 scheduled for late 2014

1.0 ALPHA 2 JUST RELEASED! λ Introduces lambdas and default methods

Showcase: ContractR Punch clock for contractors

CROSS-PLATFORM APP DEVELOPMENT Option #1 – Native UI

CROSS-PLATFORM APP DEVELOPMENT Option #1 – Native UI Pros –User Experience –Performance Cons –Less code reuse –Learning curve – API/tool differences

CROSS-PLATFORM APP DEVELOPMENT Option #1 – Native UI Use patterns to maximize code reuse Controller ViewModel View model ViewModel Controller ViewModel View model ViewModel MVC MVVM

3 separate modules Core (model) iOS Android

Common model code: public class ClientModel { public Client create() { … } public int count() { … } public Client get(int index) { … } …

UITableViewCell getRowCell(UITableView tableView, NSIndexPath indexPath) { UITableViewCell cell = tableView.dequeueReusableCell("cell"); if (cell == null) { cell = new UITableViewCell(UITableViewCellStyle.Value1, "cell"); cell.setAccessoryType(UITableViewCellAccessoryType.DisclosureIndicator); } Client client = clientModel.get((int) indexPath.getRow()); cell.getTextLabel().setText(client.getName()); return cell; } iOS specific UI code:

public View getView(int position, View convertView, ViewGroup parent) { View view= convertView; if (convertView== null) { view = inflater.inflate(android.R.layout.simple_list_item_1, parent, false); } Client client = clientModel.get(position); TextView text= (TextView) view.findViewById(android.R.id.text1); text.setText(client.getName()); return view; } Android specific UI code:

DEMO #1 CROSS-PLATFORM APP DEVELOPMENT Option #1 – Native UI

CROSS-PLATFORM APP DEVELOPMENT Option #2 – Cross Platform UI JavaFX from the OpenJFX project

CROSS-PLATFORM APP DEVELOPMENT Option #2 – Cross Platform UI Pros –Close to 100% code reuse Cons –User Experience –Performance

DEMO #2 CROSS-PLATFORM APP DEVELOPMENT Option #2 – Cross Platform UI

ContractR and other samples can be found at github.com/robovm/robovm-samples

COMMERCIAL LICENSES Launch late 2014 Standard Java debugger support Support options Open source version still lets you develop amazing apps for free without limitations!

? Check out and