Codename One is a development platform that allows developers to write mobile apps once and deploy them across multiple platforms including iOS, Android, Windows and the web. It uses a lightweight UI approach where most widgets are drawn by Codename One rather than using native widgets. This allows apps to look and behave consistently across platforms. Codename One includes tools like a GUI builder, theme designer and device simulator. It also uses a cloud build system so developers do not need platform-specific machines to build apps, improving accessibility. The platform includes virtual machines that translate Java bytecode to native platforms to enable cross-platform functionality.
Introduction to Docker and Containers- Learning SimpleSandeep Hijam
This small free E-book talks about what docker and containers are. Also I believe every reader can easily understand the underlying principle without technical jargon
Introduction to Android
The Android Platform, Understanding Android Market, Layers of Android, Intent of Android Development, Types of Android Components, Mapping Applications to Processes, Creating
an Android Application.
Android’s Development Environment: Introduction to Android SDK, Exploring Android Development Environment and Building Android Application in Eclipse, Android Emulator
and User Interfaces, Working with Views, Using Resources, and Understanding and Exploring Android Manifest File.
When to choose and avoid react native for mobile app developmentFullestop
The trend of using apps is now very common among citizens. React Native is the latest technology used by top companies in the world. The best part of that technology is, it is backed by social media giants i.e. Facebook. We at Fullestop always trying to become one step ahead in the field of app development. It has many features and its popularity clearly shows that it would become the solution for all your problems regarding app development. We deliver the best react native experience as we are the top react native app development company. Kindly visit the site to know more.
Why big organizations like tesla, facebook, walmart, skype are using react na...MoonTechnolabsPvtLtd
The creators of Facebook laid the foundation of React Native – an astonishingly powerful and effective system that developers all over the world swear by. It gave brands like Instagram, Airbnb, Skype, Walmart, Wix, Tesla, SoundCloud, and many others the wings they needed to fly. These brands released world-renowned apps that everyone is using these days. React Native is an exciting open-source framework that’s the most favored choice for the development of both Android and iOS applications.
Developers Guide To The Galaxy 8th editionMarco Tabor
Completely updated and extended edition of this non-commercial overview on mobile technologies and development approaches. Helpful for developers and decision makers without technical background.
We can know about what is mobile application. Especially we can know about Hybrid Mobile Application.
Hybrid mobile Application's Overview information and few thing about Native and Web mobile applications.
Mobile app development is the key focal point of the apps that are empowering our #lives. Usually an Android App Developer uses Android Studio (the official l#IDE for app development), Kotlin, and XML, and an iOS App Developer uses #Swift (the official IDE). These apps are called Native apps and have the best possible compatibility with their respective #OS, but they are a bit costly, and developing them is a bit time consuming process. Pixel Values Technolabs help you to build native mobile and web apps across all the #platforms, economical and time saving.
#AppDevelopment #MobileAppDevelopment #MobileAppDevelopmentFramework2022 #Technology #Trends #Development #TechTrends #MobileAppDevelopers #AppDevelopers
Introduction to Docker and Containers- Learning SimpleSandeep Hijam
This small free E-book talks about what docker and containers are. Also I believe every reader can easily understand the underlying principle without technical jargon
Introduction to Android
The Android Platform, Understanding Android Market, Layers of Android, Intent of Android Development, Types of Android Components, Mapping Applications to Processes, Creating
an Android Application.
Android’s Development Environment: Introduction to Android SDK, Exploring Android Development Environment and Building Android Application in Eclipse, Android Emulator
and User Interfaces, Working with Views, Using Resources, and Understanding and Exploring Android Manifest File.
When to choose and avoid react native for mobile app developmentFullestop
The trend of using apps is now very common among citizens. React Native is the latest technology used by top companies in the world. The best part of that technology is, it is backed by social media giants i.e. Facebook. We at Fullestop always trying to become one step ahead in the field of app development. It has many features and its popularity clearly shows that it would become the solution for all your problems regarding app development. We deliver the best react native experience as we are the top react native app development company. Kindly visit the site to know more.
Why big organizations like tesla, facebook, walmart, skype are using react na...MoonTechnolabsPvtLtd
The creators of Facebook laid the foundation of React Native – an astonishingly powerful and effective system that developers all over the world swear by. It gave brands like Instagram, Airbnb, Skype, Walmart, Wix, Tesla, SoundCloud, and many others the wings they needed to fly. These brands released world-renowned apps that everyone is using these days. React Native is an exciting open-source framework that’s the most favored choice for the development of both Android and iOS applications.
Developers Guide To The Galaxy 8th editionMarco Tabor
Completely updated and extended edition of this non-commercial overview on mobile technologies and development approaches. Helpful for developers and decision makers without technical background.
We can know about what is mobile application. Especially we can know about Hybrid Mobile Application.
Hybrid mobile Application's Overview information and few thing about Native and Web mobile applications.
Mobile app development is the key focal point of the apps that are empowering our #lives. Usually an Android App Developer uses Android Studio (the official l#IDE for app development), Kotlin, and XML, and an iOS App Developer uses #Swift (the official IDE). These apps are called Native apps and have the best possible compatibility with their respective #OS, but they are a bit costly, and developing them is a bit time consuming process. Pixel Values Technolabs help you to build native mobile and web apps across all the #platforms, economical and time saving.
#AppDevelopment #MobileAppDevelopment #MobileAppDevelopmentFramework2022 #Technology #Trends #Development #TechTrends #MobileAppDevelopers #AppDevelopers
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
What is Codename One - Transcript.pdf
1. What is Codename One?
In this video I’m going to explain “what is Codename One” but I’m going to take the scenic route… I’m going to go through the full history of our platform and I’m going
to explain the underlying technology. How it works. What makes it different from other tools at least at a high level. If you want a 3 minute hello world video this isn’t it, go
to the download section of Codename One dot com and check out the 3 minute videos there. Here I try to go deeper.
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
Let’s start with the historic timeline of Codename One.
First there was LWUIT, Chen started this project at Sun Microsystems back in 2006-2007 with the goal of write once run anywhere that actually works for mobile phones.
Back then there were only J2ME & RIM platforms and device fragmentation was a major problem. The standards were implemented poorly by the various vendors and
they were very hard to use. So Chen took inspiration from Swing which was the leading GUI API on the desktop and adapted those concepts to mobile.
LWUIT was open sourced by Sun at JavaOne 2008. It became a huge success and was the top open source mobile project from Sun Microsystems but as LWUIT
succeeded JavaME was dying. We had ports of LWUIT running on Android, RIM and the iPhone but we couldn’t support or publish them. This was due to company
bureaucracy that didn’t improve as Oracle purchased Sun Microsystems.
In late 2011 we quit Sun and formed Codename One. We made a clean break from LWUIT by moving to a different package space and remodeling a lot of the API’s with
a focus on smartphones. We ported everything to iOS, Android and other platforms. The big change was a change in concept. LWUIT was mostly a UI kit. Codename
One was a completely inclusive environment that includes everything from the IDE plugin to the virtual machine, GUI builder and all the surrounding API’s. Codename
One had a far larger and more ambitious scope than LWUIT.
This proved successful at least on a technical level as more than 100M apps were installed on devices relatively quickly and on a very diverse set of device types.
As the platform matured we expanded the scope of Codename One further and today we target not just Android & iOS. We target Universal Windows Platform which is
the Microsoft standard for unified apps on Arm & intel. We target JavaScript which allows you to compile the Java applications into a JavaScript application including
threads and everything so it can run in the browser. We even support desktop development which started as a curiosity due to user requirements and has picked up so
3. ✦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?
}
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”
So I gave all of that background but still didn’t get to “what the hell is it?”. The problem is that it’s so big and hard to explain so lets break it into 6 pieces and I’ll go over
each one of these pieces in great detail soon.
First: It’s a virtual machine for all devices. The virtual machine is the environment that lets Java run on the device in a portable way.
It’s an API for all devices. The Application Programming Interface provides us with functionality that is distilled commonality from the various devices.
It’s an IDE plugin. In fact this is the only piece of Codename One you actually need. By installing the IDE plugin we automatically deliver everything else on the list
It’s a set of tools from device simulators to theme designer, GUI builder etc. Those are delivered within the plugin but deserve their own bullet as they are technically the
same regardless of the IDE you use.
The cloud based system is the most confusing part. No, you don’t need the cloud to run a Codename One app. The resulting app is native. However, to build iOS apps
you need a Mac and xcode which is Apples development tool. To build a Windows UWP application you need a Windows machine and Visual Studio which is Microsofts
development tool. Well, we have Macs and Windows and Linux machines in the cloud. We seamlessly translate your Java bytecode to native projects and compile them
using the official tools such as xcode then return the binary directly to you so you can install it on your phone or upload it to apple, Microsoft, google etc. Cool right?
Here’s a fun fact. When we started pitching the company to investors we just stuck Codename One in the slides as a placeholder and investors liked it. We later on came
up with the “idea” that these 6 different pieces constitute “one” product for “one code base” and that made sense as a company name.
4. 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 UWP 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
But first lets start with the more in depth explanation of our VM’s. We currently have 3 virtual machines that we work with. Android has it’s own native Java support and
we just use that. For desktop we use standard Java too. iOS doesn’t have a virtual machine and doesn’t allow JIT compilation which is a common practice in most virtual
machines.
Furthermore, historic attempts to build iOS virtual machines ran into issues of size and into problems with Apples frequent changes to their development toolchain. Our
open source Parpar VM solves this problem by avoiding compilation. It translates Java bytecode to C which is one of the officially supported languages in iOS and much
faster than Objective-C or Swift. We can then compile this C code using Apples compiler which guarantees that every change Apple makes will be easy to adapt to.
This isn’t just a “theoretical claim”. Since we released our VM Apple migrated from 32 bit to 64 bit and added support for bitcode compilation. All of these worked out of
the box with ParparVM with no change from us. Even native developers struggled with some of those changes which were mostly seamless to Codename One
developers.
ParparVM is very performant and can reach C levels of performance in some cases. It also produces a very small binary clocking under 5mb for applications which is
very small for an iOS app. Similar attempts at JVM’s often produce binaries that exceed the 100mb limit… One of the cool things you can do with ParparVM is run the
code using Apples xcode and debug or profile on the device. This is a very powerful way to discover things about the application and work with native OS code.
The UWP port uses iKVM which is a project that brought Java bytecode support to .net. Initially this project didn’t work with UWP but we worked with community
members to update iKVM and published our iKVM fork as open source. This again means that we use native .net support when building windows applications.
The web port uses a 3rd party VM called TeaVM. This VM is very efficient at translating bytecode to JavaScript and can produce very small binaries when compared to
similar technologies. We stripped out support for some JVM classes and as a result apps can be loaded with no cache within seconds. The VM supports threads by
breaking down the code in very creative ways which keeps the code very efficient.
5. 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
The Codename One Application Programming Interface is a single set of API’s that abstracts common device functionality you would expect to have on a mobile phone.
This includes everything from widgets to camera, media, files, networking etc.
The trick with the API is our internal porting layer which is very clearly defined and relatively thin. That means 97% of Codename One’s code is in Java and this makes it
more consistent to developers across platforms.
The user interface uses a lightweight UI approach which is a common term used to define Swing widgets. you might recall that Codename One was heavily inspired by
Swing…
Lightweight UI means Codename One draws most of its widgets itself and uses the native platform mostly as a canvas and event handling environment. I’ll discuss this
more in depth later on…
The API tries to be simple and unified so it does the “right thing” when possible. We can do that because the API is statically linked. That means that when an app is
compiled our API becomes a part of the application. This means that if we change the API it will never impact apps in production. This isn’t true for native OS API’s who
need to change very carefully so they won’t break applications that might rely on edge case functionality.
6. 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
Codename One ships plugins for the 3 top Java IDE’s specifically IntelliJ, Eclipse and NetBeans.
The plugin literally includes everything that’s a part of Codename One. Since the build happens in the cloud servers you don’t need to install native OS tools or anything
like that.
Essentially the plugins are relatively “stupid” as they mostly invoke Ant and our tools such as the simulator etc. This is a good thing. I use NetBeans as I’m used to it from
my years at Sun. However, almost everything I do here is identical if you do it in Eclipse or IntelliJ.
Recently we started making them even “dumber” by moving the settings from the IDE specific settings UI to the Codename One Settings tool which is common between
all 3 IDE’s. This allowed us to move much faster.
7. 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
The tools include 4 major groups. The first is the group of build tools which is really the ant script you have in the project and some extensions for that.
The device simulator includes skins representing various device types that you can download dynamically. It also includes a lot of additional functionality to test device
behavior such as network monitor, performance analyzer, component inspector etc.
The resource editor also known as the Codename One Designer is our workhorse tool dating back to the days of LWUIT. It allows you to theme the application, localize it,
manage builtin images and even included the old GUI builder of Codename One.
The new GUI builder is far more powerful and more closely matches common Java GUI builders in terms of functionality and technology.
8. 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
I’ve discussed the cloud build before but it’s important enough to recap. We have Macs, Windows and Linux machines that do the build for you. This is more than just
having the build platforms. Setting up the native environments and all the prerequisites for a proper build is a nightmare. The cloud build servers essentially mask this
whole process completely. Notice that we have an offline build feature that allows you to skip the cloud build but we don’t recommend that. It’s mostly for government or
highly regulated industries where the word cloud is a synonym to “no management approval”. In those cases offline build becomes a lesser of two evils.
The cloud is mostly abstracted, you just right click the project and send a build. Everything else is seamless thanks to the tie in between the build tools and the build
severs.
You don’t need to install anything other than the plugin. Not for Android or iOS. You can work with Mac, Windows or Linux and everything should “just work”.
This is a huge contributor to the seamlessness and simplicity of Codename One that allows you to get started “right away”.
9. Lightweight Frameworks Heavyweight Frameworks
Codename One SWT
Swing AWT
Java FX Xamarin
QT Appcelerator
Lightweight vs. Heavyweight
Codename One’s UI uses a lightweight UI approach which is a common term used to define Swing widgets.
As I mentioned before Codename One draws most of its widgets itself and uses the native platform mostly as a canvas and event handling environment.
Lightweight frameworks are very common especially in Java where Swing and JavaFX are both lightweight. QT is another example of a lightweight framework.
Heavyweight frameworks include SWT and AWT from the Java side of the fence and other common tools such as Xamarin, Appcelerator etc.
10. 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
As I mentioned before lightweight frameworks draw their own widgets. A native framework needs to have a native widget for every API. That might not sound like a big
deal but platforms have very nuanced differences in threads, events etc. This means very nuanced bugs on the heavyweight framework side. In fact many heavyweight
frameworks don’t define themselves as write once run anywhere tools since that is so hard to accomplish with this architecture.
A lightweight architecture is really complex internally. Codename One is a hugely complex API developed for over a decade. Heavyweight API’s tend to be smaller and
thinner wrappers around the native OS code. For the developer that means running more into OS differences since the framework doesn’t really hide them from you.
Layout, theming, translation and localization are all really hard to do in a portable way. Heavyweight frameworks make you copy data to native OS structures and formats.
They make you maintain images in the native OS locations which is radically different between iOS and Android. In lightweight framework this is all portable.
The tools of lightweight frameworks are generally all inclusive which is usually not the case for heavyweight frameworks. This isn’t always true for all cases but it’s a very
common concept. This becomes obvious with hardware requirements where heavyweight frameworks require a Mac for iOS development. That isn’t true for Codename
One. The cloud build works thanks to the lightweight architecture as the simulator can have better fidelity.
11. Lightweight Frameworks Heavyweight Frameworks
Portable Matches OS Conventions
Customizable Performant (debatable)
Consistent (also in performance) Consistent with OS
Easy to use Access to native OS features
Lightweight vs. Heavyweight
So lets compare concrete advantages of lightweight vs. heavyweight.
Lightweight allows for extreme portability where what you see in the desktop simulator becomes a closer facsimile of what you will see in the device.
It also gives you far more control as most of the code is written in Java you can override almost any behavior in a very portable way. So lightweight is far more
customizable. The flip side is that heavyweight can be more performant in some cases. That’s debatable as performance is a very complex beast. I find that caching is by
far the most important performance optimization and it’s also very portable. Usually code that is slow on Android will be slow on iOS so a smart optimization will work
well for a lightweight framework.
That essentially means you get a more consistent result overall. Bugs are very portable too and so a fix in iOS will often fix an issue for the Android version as well. The
heavyweight widget approach will have better consistency with the native OS. For instance in a Samsung customized device the buttons might match Samsungs styling
more closely. I’m not sure that’s an advantage. When I program my button to have a specific color I want it to keep that color and behavior. I don’t want a device
manufacturer or OS vendor to change the look of my application after the fact.
In general lightweight frameworks are MUCH easier to use as they are simpler. In some cases native code in the heavyweight approach is easier but this isn’t as true with
Codename One where heavyweight widgets can be integrated with lightweight widgets… Codename One is still a lightweight framework but if you need a complex
heavyweight widget such as Google Maps you can just embed it into a Codename One application and it will work across platforms consistently!
12. Lightweight In Codename One
✦Allows native peer - e.g. Google Maps, Video etc.
✦Lightweight components can reside on top or
below native peers
✦Performant - uses gaming API’s (e.g. OpenGL) to
get native performance. Performance is
consistent across devices
✦Very customizable
Which brings us to this. Codename One supports native interfaces, that allows you to invoke native code from Java and that native code can create an Android view or
iOS UIView etc which you can just add into the component hierarchy.
One of the cool things we allow is z-ordering of native widgets which means you can add a google map and add lightweight components that reside on top of that map
such as components representing cars, landmarks etc.
The Codename One lightweight API is VERY performant. E.g in iOS it is implemented on top of Open GL.
The lightweight API is VERY customizable, you can literally override the paint behavior of every component or place a drawing region and just draw on top of
everything…