SlideShare a Scribd company logo
What is Codename One?
History
2006 2008 2010 2012 2014 2016
The Beginning
Chen Fishein starts the LWUIT
project at Sun Microsystems
with goals of ending device
fragmentation
Open Source
Sun Microsystems Open
sources LWUIT at Java One
A new Beginning
Chen & Shai quit Sun
Microsystems and form
Codename One. The project
has far greater scope and
ambition than LWUIT
100M Installs
Codename One grows &
expands both in scope and
use
Maturity
By January 2017
Codename One had 10
releases, added support for
JavaScript, UWP & Desktop
platforms. The bourgeoning
developer community was
40k strong
What’s Codename One?
✦ Virtual machine for all devices
✦ API for all devices
✦ IDE Plugins to build mobile
applications
✦ Set of tools, simulator, GUI builder,
theme designer
✦ Cloud based build system to abstract
device differences
What’s Codename One?
✦ Virtual machine for all devices
✦ API for all devices
✦ IDE Plugins to build mobile
applications
✦ Set of tools, simulator, GUI builder,
theme designer
✦ Cloud based build system to abstract
device differences
}
What’s Codename One?
✦ Virtual machine for all devices
✦ API for all devices
✦ IDE Plugins to build mobile
applications
✦ Set of tools, simulator, GUI builder,
theme designer
✦ Cloud based build system to abstract
device differences
}
Fun Fact
We came up with the name
Codename One as a placeholder
until we find an actual name
Eventually we kept it because it
makes these distinct tools act as
“one”
Virtual machine for all devices
✦iOS doesn’t support Java & disallows JIT.
Codename One’s open source ParparVM
translates Java bytecode to C code so it can be
compiled with xcode
✦Windows mobile works with a .net VM subset,
Codename One ported iKVM (a Java .net runtime)
so it will work with Universal Windows Platform
✦For web support Codename One uses TeaVM
which translates Java bytecode to JavaScript
API for all devices
✦Common API abstracting mobile device
functionality mainly UI
✦Clearly defined porting layer implemented for all
supported platforms
✦Lightweight UI approach
✦Focus on simplicity, portability & common use
cases
✦Statically linked
IDE Plugins
✦Codename One includes plugins for IntelliJ/IDEA,
NetBeans & Eclipse
✦These plugins hide the complex details of
installing/setting up Codename One
✦They are mostly a thin layer around the tools
Tools
✦Build tools - based on Ant, invoked by IDE for
cloud builds and other capabilities
✦Device Simulator
✦Resource Editor/Designer - provides theming,
localization, image management and old GUI
builder
✦New GUI Builder - standalone GUI builder tool
replacing the old one within the designer
Cloud Build
✦Macs, Windows & Linux machines in the cloud
perform the actual native app build process
✦This is abstracted by the build tools to provide a
unified experience
✦Removes the need to install custom software and
configure it to very specific requirements
✦A major reason Codename One is so simple to
use
Lightweight
Lightweight Frameworks Heavyweight Frameworks
Codename One SWT
Swing AWT
Java FX Xamarin
QT Appcelerator
Lightweight vs. Heavyweight
Lightweight Frameworks Heavyweight Frameworks
Codename One SWT
Swing AWT
Java FX Xamarin
QT Appcelerator
Lightweight vs. Heavyweight
Lightweight Origin
The term “lightweight” was
popularized by the Swing framework
to describe the difference between it
and AWT. Heavyweight widgets in
AWT were a performance problem
as they required OS communication
for every operation
Lightweight Frameworks Heavyweight Frameworks
Draws widgets Native widget for every user widget
Handles widget events & user input Thin API
Layout, theming & all functionality 

is handled by framework
Layout etc. are handled by OS
Framework provides tools Mix of framework tools and OS tools
Lightweight vs. Heavyweight
Lightweight Frameworks Heavyweight Frameworks
Portable Matches OS Conventions
Customizable Performant (debatable)
Consistent (also in performance) Easier to build initially
Easy to use Access to native OS features
Lightweight vs. Heavyweight
Lightweight In Codename One
✦Allows native peer - e.g. Google Maps, Video etc.
✦Lightweight components can reside on top or
below native peers
✦Enables the simulator and thus the cloud build!
✦Performant - uses gaming API’s (e.g. OpenGL) to
get native performance. Performance is
consistent across devices
✦Very customizable
I hope that this presentation:
✦Gave you a sense of Codename One’s origins
✦Gave you a glimpse of the breadth/scope of
Codename One
✦Helped you understand the difference between
Codename One and other tools you are familiar
with
✦Clarified one of the most important aspects of
Codename One: Lightweight architecture
Thank You

More Related Content

What's hot

Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Nokia
 
Eclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBM
Eclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBMEclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBM
Eclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBM
mfrancis
 
PHP And Silverlight - DevDays session
PHP And Silverlight - DevDays sessionPHP And Silverlight - DevDays session
PHP And Silverlight - DevDays session
Maarten Balliauw
 
Framework dynamic par Simone Sivetta
Framework dynamic par Simone SivettaFramework dynamic par Simone Sivetta
Framework dynamic par Simone SivettaCocoaHeads France
 
ACM Gazi Docker?
ACM Gazi Docker?ACM Gazi Docker?
ACM Gazi Docker?
kloia
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
Cloud Native Bangalore
 
ng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshopng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshop
tjvantoll
 
20170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 201720170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 2017
Takayoshi Tanaka
 
Meet qt intro
Meet qt introMeet qt intro
Meet qt intro
ISBVN
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
Waqqas Jabbar
 
Netflix and Containers: Not A Stranger Thing
Netflix and Containers:  Not A Stranger ThingNetflix and Containers:  Not A Stranger Thing
Netflix and Containers: Not A Stranger Thing
aspyker
 
Building custom tools with Docker API & SDK
Building custom tools with Docker API & SDKBuilding custom tools with Docker API & SDK
Building custom tools with Docker API & SDK
Gaurav Gahlot
 
Android
AndroidAndroid
Android
BVP GTUG
 
Gnome on wayland at a glance
Gnome on wayland at a glanceGnome on wayland at a glance
Gnome on wayland at a glance
gnomekr
 
.Net platform .Net core fundamentals
.Net platform .Net core  fundamentals.Net platform .Net core  fundamentals
.Net platform .Net core fundamentals
Hosein Mansouri
 
Hybrid mobile development with Red Hat JBoss developer studio
Hybrid mobile development with Red Hat JBoss developer studioHybrid mobile development with Red Hat JBoss developer studio
Hybrid mobile development with Red Hat JBoss developer studio
Gorkem Ercan
 
Tehran's 1st Android bootcamp - Part2
Tehran's 1st Android bootcamp - Part2Tehran's 1st Android bootcamp - Part2
Tehran's 1st Android bootcamp - Part2
Mohsen Mirhoseini
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Ajeet Singh Raina
 
Liferay UI (R)evolution
Liferay UI (R)evolutionLiferay UI (R)evolution
Liferay UI (R)evolutionZeno Rocha
 

What's hot (20)

Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
 
Eclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBM
Eclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBMEclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBM
Eclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBM
 
PHP And Silverlight - DevDays session
PHP And Silverlight - DevDays sessionPHP And Silverlight - DevDays session
PHP And Silverlight - DevDays session
 
Framework dynamic par Simone Sivetta
Framework dynamic par Simone SivettaFramework dynamic par Simone Sivetta
Framework dynamic par Simone Sivetta
 
ACM Gazi Docker?
ACM Gazi Docker?ACM Gazi Docker?
ACM Gazi Docker?
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
ng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshopng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshop
 
20170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 201720170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 2017
 
Meet qt intro
Meet qt introMeet qt intro
Meet qt intro
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
What's new in ios 7.0
What's new in ios 7.0What's new in ios 7.0
What's new in ios 7.0
 
Netflix and Containers: Not A Stranger Thing
Netflix and Containers:  Not A Stranger ThingNetflix and Containers:  Not A Stranger Thing
Netflix and Containers: Not A Stranger Thing
 
Building custom tools with Docker API & SDK
Building custom tools with Docker API & SDKBuilding custom tools with Docker API & SDK
Building custom tools with Docker API & SDK
 
Android
AndroidAndroid
Android
 
Gnome on wayland at a glance
Gnome on wayland at a glanceGnome on wayland at a glance
Gnome on wayland at a glance
 
.Net platform .Net core fundamentals
.Net platform .Net core  fundamentals.Net platform .Net core  fundamentals
.Net platform .Net core fundamentals
 
Hybrid mobile development with Red Hat JBoss developer studio
Hybrid mobile development with Red Hat JBoss developer studioHybrid mobile development with Red Hat JBoss developer studio
Hybrid mobile development with Red Hat JBoss developer studio
 
Tehran's 1st Android bootcamp - Part2
Tehran's 1st Android bootcamp - Part2Tehran's 1st Android bootcamp - Part2
Tehran's 1st Android bootcamp - Part2
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
 
Liferay UI (R)evolution
Liferay UI (R)evolutionLiferay UI (R)evolution
Liferay UI (R)evolution
 

Viewers also liked

Apple TV in the Classroom
Apple TV in the ClassroomApple TV in the Classroom
Apple TV in the Classroom
chatzopoulosni
 
How To Use The Codename One Sources
How To Use The Codename One SourcesHow To Use The Codename One Sources
How To Use The Codename One Sources
Shai Almog
 
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon KinesisDay 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
Amazon Web Services
 
Pedagogia Cristiana
Pedagogia CristianaPedagogia Cristiana
Pedagogia Cristiana
Joselito Perez
 
Taller sobre estrategias de enseñanza pedagogicas cristiana para niños
Taller sobre estrategias de enseñanza pedagogicas cristiana para niñosTaller sobre estrategias de enseñanza pedagogicas cristiana para niños
Taller sobre estrategias de enseñanza pedagogicas cristiana para niñosUNICA/INTECNA, NICARAGUA
 
Breve resumen de la historia de argentina
Breve resumen de la historia de argentinaBreve resumen de la historia de argentina
Breve resumen de la historia de argentinaMartín Cáceres Jara
 
Building Streaming And Fast Data Applications With Spark, Mesos, Akka, Cassan...
Building Streaming And Fast Data Applications With Spark, Mesos, Akka, Cassan...Building Streaming And Fast Data Applications With Spark, Mesos, Akka, Cassan...
Building Streaming And Fast Data Applications With Spark, Mesos, Akka, Cassan...
Lightbend
 

Viewers also liked (7)

Apple TV in the Classroom
Apple TV in the ClassroomApple TV in the Classroom
Apple TV in the Classroom
 
How To Use The Codename One Sources
How To Use The Codename One SourcesHow To Use The Codename One Sources
How To Use The Codename One Sources
 
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon KinesisDay 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
Day 5 - Real-time Data Processing/Internet of Things (IoT) with Amazon Kinesis
 
Pedagogia Cristiana
Pedagogia CristianaPedagogia Cristiana
Pedagogia Cristiana
 
Taller sobre estrategias de enseñanza pedagogicas cristiana para niños
Taller sobre estrategias de enseñanza pedagogicas cristiana para niñosTaller sobre estrategias de enseñanza pedagogicas cristiana para niños
Taller sobre estrategias de enseñanza pedagogicas cristiana para niños
 
Breve resumen de la historia de argentina
Breve resumen de la historia de argentinaBreve resumen de la historia de argentina
Breve resumen de la historia de argentina
 
Building Streaming And Fast Data Applications With Spark, Mesos, Akka, Cassan...
Building Streaming And Fast Data Applications With Spark, Mesos, Akka, Cassan...Building Streaming And Fast Data Applications With Spark, Mesos, Akka, Cassan...
Building Streaming And Fast Data Applications With Spark, Mesos, Akka, Cassan...
 

Similar to What is codename one

What is Codename One.pdf
What is Codename One.pdfWhat is Codename One.pdf
What is Codename One.pdf
ShaiAlmog1
 
What is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfWhat is Codename One - Transcript.pdf
What is Codename One - Transcript.pdf
ShaiAlmog1
 
Mobile Java
Mobile JavaMobile Java
Mobile Java
Nikita Makarov
 
J2ee strutswithhibernate-140121221332-phpapp01
J2ee strutswithhibernate-140121221332-phpapp01J2ee strutswithhibernate-140121221332-phpapp01
J2ee strutswithhibernate-140121221332-phpapp01
Jay Palit
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
Mohit Belwal
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)
Gergely Kis
 
Java presentation
Java presentationJava presentation
Java presentation
surajdmk
 
Java presentation
Java presentationJava presentation
Java presentationsurajdmk
 
Codename one
Codename oneCodename one
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
Toma Velev
 
Introduction To The Eclipse Platform
Introduction To The Eclipse PlatformIntroduction To The Eclipse Platform
Introduction To The Eclipse Platformciukes
 
TechSearchWeb Tutorials.pdf
TechSearchWeb Tutorials.pdfTechSearchWeb Tutorials.pdf
TechSearchWeb Tutorials.pdf
TechSearchWeb
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile Technologies
Talentica Software
 
Java Programming (M&M)
Java Programming (M&M)Java Programming (M&M)
Java Programming (M&M)
mafffffe19
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Applitools
 
TechSearchWeb.pdf
TechSearchWeb.pdfTechSearchWeb.pdf
TechSearchWeb.pdf
TechSearchWeb
 
Technology Tutorial.pdf
Technology Tutorial.pdfTechnology Tutorial.pdf
Technology Tutorial.pdf
TechSearchWeb
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs Railo
Mohd Safian
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
DevOps.com
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
Manuel Carrasco Moñino
 

Similar to What is codename one (20)

What is Codename One.pdf
What is Codename One.pdfWhat is Codename One.pdf
What is Codename One.pdf
 
What is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfWhat is Codename One - Transcript.pdf
What is Codename One - Transcript.pdf
 
Mobile Java
Mobile JavaMobile Java
Mobile Java
 
J2ee strutswithhibernate-140121221332-phpapp01
J2ee strutswithhibernate-140121221332-phpapp01J2ee strutswithhibernate-140121221332-phpapp01
J2ee strutswithhibernate-140121221332-phpapp01
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)
 
Java presentation
Java presentationJava presentation
Java presentation
 
Java presentation
Java presentationJava presentation
Java presentation
 
Codename one
Codename oneCodename one
Codename one
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
 
Introduction To The Eclipse Platform
Introduction To The Eclipse PlatformIntroduction To The Eclipse Platform
Introduction To The Eclipse Platform
 
TechSearchWeb Tutorials.pdf
TechSearchWeb Tutorials.pdfTechSearchWeb Tutorials.pdf
TechSearchWeb Tutorials.pdf
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile Technologies
 
Java Programming (M&M)
Java Programming (M&M)Java Programming (M&M)
Java Programming (M&M)
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
 
TechSearchWeb.pdf
TechSearchWeb.pdfTechSearchWeb.pdf
TechSearchWeb.pdf
 
Technology Tutorial.pdf
Technology Tutorial.pdfTechnology Tutorial.pdf
Technology Tutorial.pdf
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs Railo
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 

More from Shai Almog

The Duck Talks Back - Secrets of The Debugging Masters
The Duck Talks Back - Secrets of The Debugging MastersThe Duck Talks Back - Secrets of The Debugging Masters
The Duck Talks Back - Secrets of The Debugging Masters
Shai Almog
 
Logging Best Practices - Avoid the rinse repeat CI/CD Process
Logging Best Practices - Avoid the rinse repeat CI/CD ProcessLogging Best Practices - Avoid the rinse repeat CI/CD Process
Logging Best Practices - Avoid the rinse repeat CI/CD Process
Shai Almog
 
Cloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agentsCloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agents
Shai Almog
 
How do i - localization and internationalization (l10n, i18n)
How do i - localization and internationalization (l10n, i18n)How do i - localization and internationalization (l10n, i18n)
How do i - localization and internationalization (l10n, i18n)
Shai Almog
 
How do i - create a native interface
How do i -  create a native interfaceHow do i -  create a native interface
How do i - create a native interface
Shai Almog
 
5 Amazing Features in Codename One 3.7
5 Amazing Features in Codename One 3.75 Amazing Features in Codename One 3.7
5 Amazing Features in Codename One 3.7
Shai Almog
 
Understand Properties in Codename One
Understand Properties in Codename One Understand Properties in Codename One
Understand Properties in Codename One
Shai Almog
 
Codename one Cordova/PhoneGap Support
Codename one Cordova/PhoneGap SupportCodename one Cordova/PhoneGap Support
Codename one Cordova/PhoneGap Support
Shai Almog
 
Public showcase
Public showcasePublic showcase
Public showcase
Shai Almog
 

More from Shai Almog (9)

The Duck Talks Back - Secrets of The Debugging Masters
The Duck Talks Back - Secrets of The Debugging MastersThe Duck Talks Back - Secrets of The Debugging Masters
The Duck Talks Back - Secrets of The Debugging Masters
 
Logging Best Practices - Avoid the rinse repeat CI/CD Process
Logging Best Practices - Avoid the rinse repeat CI/CD ProcessLogging Best Practices - Avoid the rinse repeat CI/CD Process
Logging Best Practices - Avoid the rinse repeat CI/CD Process
 
Cloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agentsCloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agents
 
How do i - localization and internationalization (l10n, i18n)
How do i - localization and internationalization (l10n, i18n)How do i - localization and internationalization (l10n, i18n)
How do i - localization and internationalization (l10n, i18n)
 
How do i - create a native interface
How do i -  create a native interfaceHow do i -  create a native interface
How do i - create a native interface
 
5 Amazing Features in Codename One 3.7
5 Amazing Features in Codename One 3.75 Amazing Features in Codename One 3.7
5 Amazing Features in Codename One 3.7
 
Understand Properties in Codename One
Understand Properties in Codename One Understand Properties in Codename One
Understand Properties in Codename One
 
Codename one Cordova/PhoneGap Support
Codename one Cordova/PhoneGap SupportCodename one Cordova/PhoneGap Support
Codename one Cordova/PhoneGap Support
 
Public showcase
Public showcasePublic showcase
Public showcase
 

What is codename one

  • 2. History 2006 2008 2010 2012 2014 2016 The Beginning Chen Fishein starts the LWUIT project at Sun Microsystems with goals of ending device fragmentation Open Source Sun Microsystems Open sources LWUIT at Java One A new Beginning Chen & Shai quit Sun Microsystems and form Codename One. The project has far greater scope and ambition than LWUIT 100M Installs Codename One grows & expands both in scope and use Maturity By January 2017 Codename One had 10 releases, added support for JavaScript, UWP & Desktop platforms. The bourgeoning developer community was 40k strong
  • 3. What’s Codename One? ✦ Virtual machine for all devices ✦ API for all devices ✦ IDE Plugins to build mobile applications ✦ Set of tools, simulator, GUI builder, theme designer ✦ Cloud based build system to abstract device differences
  • 4. What’s Codename One? ✦ Virtual machine for all devices ✦ API for all devices ✦ IDE Plugins to build mobile applications ✦ Set of tools, simulator, GUI builder, theme designer ✦ Cloud based build system to abstract device differences }
  • 5. What’s Codename One? ✦ Virtual machine for all devices ✦ API for all devices ✦ IDE Plugins to build mobile applications ✦ Set of tools, simulator, GUI builder, theme designer ✦ Cloud based build system to abstract device differences } Fun Fact We came up with the name Codename One as a placeholder until we find an actual name Eventually we kept it because it makes these distinct tools act as “one”
  • 6. Virtual machine for all devices ✦iOS doesn’t support Java & disallows JIT. Codename One’s open source ParparVM translates Java bytecode to C code so it can be compiled with xcode ✦Windows mobile works with a .net VM subset, Codename One ported iKVM (a Java .net runtime) so it will work with Universal Windows Platform ✦For web support Codename One uses TeaVM which translates Java bytecode to JavaScript
  • 7. API for all devices ✦Common API abstracting mobile device functionality mainly UI ✦Clearly defined porting layer implemented for all supported platforms ✦Lightweight UI approach ✦Focus on simplicity, portability & common use cases ✦Statically linked
  • 8. IDE Plugins ✦Codename One includes plugins for IntelliJ/IDEA, NetBeans & Eclipse ✦These plugins hide the complex details of installing/setting up Codename One ✦They are mostly a thin layer around the tools
  • 9. Tools ✦Build tools - based on Ant, invoked by IDE for cloud builds and other capabilities ✦Device Simulator ✦Resource Editor/Designer - provides theming, localization, image management and old GUI builder ✦New GUI Builder - standalone GUI builder tool replacing the old one within the designer
  • 10. Cloud Build ✦Macs, Windows & Linux machines in the cloud perform the actual native app build process ✦This is abstracted by the build tools to provide a unified experience ✦Removes the need to install custom software and configure it to very specific requirements ✦A major reason Codename One is so simple to use
  • 12. Lightweight Frameworks Heavyweight Frameworks Codename One SWT Swing AWT Java FX Xamarin QT Appcelerator Lightweight vs. Heavyweight
  • 13. Lightweight Frameworks Heavyweight Frameworks Codename One SWT Swing AWT Java FX Xamarin QT Appcelerator Lightweight vs. Heavyweight Lightweight Origin The term “lightweight” was popularized by the Swing framework to describe the difference between it and AWT. Heavyweight widgets in AWT were a performance problem as they required OS communication for every operation
  • 14. Lightweight Frameworks Heavyweight Frameworks Draws widgets Native widget for every user widget Handles widget events & user input Thin API Layout, theming & all functionality 
 is handled by framework Layout etc. are handled by OS Framework provides tools Mix of framework tools and OS tools Lightweight vs. Heavyweight
  • 15. Lightweight Frameworks Heavyweight Frameworks Portable Matches OS Conventions Customizable Performant (debatable) Consistent (also in performance) Easier to build initially Easy to use Access to native OS features Lightweight vs. Heavyweight
  • 16. Lightweight In Codename One ✦Allows native peer - e.g. Google Maps, Video etc. ✦Lightweight components can reside on top or below native peers ✦Enables the simulator and thus the cloud build! ✦Performant - uses gaming API’s (e.g. OpenGL) to get native performance. Performance is consistent across devices ✦Very customizable
  • 17. I hope that this presentation: ✦Gave you a sense of Codename One’s origins ✦Gave you a glimpse of the breadth/scope of Codename One ✦Helped you understand the difference between Codename One and other tools you are familiar with ✦Clarified one of the most important aspects of Codename One: Lightweight architecture