Intro to Liferay: Fundamentals of Liferay Development for Non-tech-savvy Decision-makers
Key takeaways
- Improved decision-making, efficient communication with tech teams, better risk management are key benefits that you can get by understanding Liferay development basics.
- Traditional or OOTB approach to your solution development? Figure out what options are available to you and how to choose the most relevant one.
- Liferay as a Headless platform. Find out how this architectural approach helps publish content from anywhere and across many channels through an application programming interface (API).
- Objects, fragments, themes, widgets, modules, and components are key Liferay development terms that you should understand because they directly impact the digital experiences your organization delivers. Discover their essence and application use cases.
A certain level of confusion may arise when you start thinking about reasons why you, as a non-tech-savvy decision-maker, should cover Liferay development basics. You may wonder why you would need to understand development-related aspects, like architectural approaches, the concept of headless development, notions of Liferay modules and objects, the benefits of no-code and low-code development, and many others. To bring you closer to the answer, we must quote Norman Osborn, a fictional character from the Spider-Man universe. Unexpected right? Well, he said in a very humble way, “I am something of a scientist myself.” You may ask, what does it have to do with Liferay development fundamentals?
Well, being tech-savvy and knowledgeable about basic development terms empowers business owners to play a more active role in technology decision-making, enhance communication with tech teams, contribute to strategic planning efforts, mitigate risks, and make informed decisions. So, to achieve these goals, our advice is “to be something of a developer yourself.” Joe McKendrick, author and independent IT analyst, writes in his article for Forbes, “Industry leaders I have approached over the past several months on this question concur that tech-savvy is now part of leadership roles and is just as important as being business-savvy.”
So, if you are actively involved in technology strategy, customer experience management, and digital transformation initiatives and want to understand Liferay better, this blog post is for you as we explore Liferay development fundamentals to help you understand the intricacies of this platform.
Liferay development 101: key terms, concepts, and approaches
Before exploring key notions of Liferay development in detail, we suggest checking out points that explain the essence of the platform so you can form a general image of its main characteristics.
- It’s an open-source platform that highly focuses on following proven standards instead of reinventing them.
- It’s built on Java EE and heavily uses OSGi and several other popular technologies for the Java Platform.
- It is based on a modular architecture and facilitates following a modular development approach when building your solution.
- You can create your own web applications, intranets, extranets, portals, and other solutions on top of it.
- Liferay DXP is all about reusing. It provides reusable components, ensuring faster and more cost-efficient development.
Overall, Liferay is designed to help developers, content managers, and system administrators handle app development and content setup faster by providing them with a baseline set of features like customizable templates, pre-built tools, and extensive configuration options. Liferay offers two main development approaches:
- Traditional approach to development. It presupposes building custom solutions using Liferay’s development framework.
- OOTB approach. It presupposes the usage of Liferay features and capabilities to create digital experiences quickly.
Your choice should depend on how you’re deploying Liferay, what you’re building, and what resources are at your disposal. We recommend starting with Liferay’s low/no-code options (OOTB approach), which use headless APIs, Objects, and various kinds of Client Extensions. They are compatible with both Liferay Cloud and self-hosted cases, and they make upgrading easier by integrating only with public APIs that are unlikely to change. Low-code and no-code approaches help you speed up the development and deployment of your apps, cut IT expenses since it reduces the necessity for large development teams, and empower non-tech employees to handle content creation and management.
However, while such an approach offers speed and efficiency, it lacks the customization depth that you need for the implementation of more complex business requirements.
In this case, if you need custom development that cannot be done with the OOTB approach, and you’re self-hosted, or on Liferay PaaS, we suggest you follow the traditional approach by deploying code to Liferay itself to extend its functionality, customize its look and feel, or build an entirely new product, which, in turn, is more time and cost-consuming.
Check out our detailed guide to Liferay DXP to learn more about its use cases, advantages and capabilities that make it one of the top DXP solutions in the market.
Regardless of your choice, Liferay supports businesses and developers and makes it easier and faster to develop an application. It helps create applications that look, feel, and perform as you expect them to. With that in mind, let’s explore key Liferay development concepts.
Architecture
The first important thing to know is that Liferay DXP architecture comprises the following components:
- Core. It provides a runtime environment for handling services, UI components, and customizations. It’s the foundation of your solution and Liferay’s built-in frameworks, which are used for the solution’s configuration, security, file management, localization, search, segmentation, personalization, and more.
- Services. Business logic is implemented in services deployed to the component runtime environment. Built-in Core services and framework services operate on models such as users, roles, web content, etc. New functionality can be introduced through models and through custom services.
- UI. The UI components help build and manage content, and it consists of the DXP application for managing portals, sites, users, and widgets, themes (plugins for styling sites), and applications (widgets that provide deployed services). Liferay DXP can also be used “headless” (without the UI), which will be explained in detail below.
In turn, the Liferay’s architecture satisfies the following requirements:
- Uses development standards
- Facilitates swapping components
- Starts fast and performs well
- Its runtime is easy to configure and inspect
- The Core supports UI and service deployments and orchestrates connecting them together.
Headless architecture
As we mentioned above, Liferay offers a headless approach to architecture development. This means Liferay decouples the presentation layer and content, giving you the best of both a traditional CMS and headless architecture in one platform. With a headless architecture, content can be published from anywhere across many channels through APIs. By utilizing an API, front-end developers can build as many heads as they want.
Such an approach ensures seamless content delivery across multiple channels and greater flexibility. A headless approach works well for solutions that require great speed, high availability, and simple scaling. Additionally, it’s relevant to use it when you need extensive customization and integration with external corporate systems. A headless platform is superior for managing multichannel digital experiences. Finally, it is better to use it when there is a requirement to use many third-party integrations.
Modules
All new applications, extensions, and customizations built on Liferay are built modularly. A module is a single unit of distribution and deployment in a modular architecture. It includes the following components: code (Java classes and resources), build scripts. (Gradle files for building and deploying the module), and metadata (defines the module and specifies its capabilities).
Think of them as ready-made components that can be seamlessly integrated into your digital platform without the need for extensive development work. These modules serve various purposes, such as adding new functionalities like calendars, document management systems, or social collaboration tools, without starting from scratch. They help save time and resources that you would spend on custom development. These modules are designed to be modular and reusable, allowing developers to easily integrate them into their Liferay environment to enhance its functionality.
Objects
With Liferay Objects, you can develop apps without having to code or deploy modules. Each app built with Objects is integrated with Liferay’s core frameworks, so you can promptly develop and manage flexible solutions that adapt Liferay DXP to your business needs. They provide a user-friendly UI for developing custom solutions that meet your business needs without writing code.
Components
In Liferay, components refer to modular units of functionality that can be added to pages or apps to improve their capabilities. They are typically reusable and can be customized or configured to meet specific requirements. Examples of Liferay components include portlets, widgets, fragments, templates, and layouts, each serving a particular purpose in developing dynamic web experiences. They can be easily dragged and dropped onto pages using Liferay’s page editor, helping you create complex layouts and apps without extensive coding or development effort.
Custom Widgets & Themes
Widgets are full-fledged web applications that must be deployed to a Liferay instance. These widgets provide a way to create customized web experiences for users. Liferay DXP provides OOTB widgets with vast functionality, such as Message Boards, Wiki, etc. You can develop custom Java-based widgets or use Objects.
A Liferay Theme is the overall look and feel of your web solution. Themes are a combination of CSS, JavaScript, HTML, and FreeMarker templates. If default themes don’t meet your requirements precisely, you can create your own custom UI for your site. Liferay DXP provides several tools and environments that you can use to create themes:
- Theme Builder Gradle Plugin
- The Liferay Theme Generator
- Developer Studio
- Blade CLI’s Theme Template
Liferay has its own set of base themes, called styled and unstyled that create the default UI you see at first start. The styled theme inherits from the unstyled theme, and simply adds some additional styling on top. These same base themes are used to create a custom theme.
Fragments
Page fragments are extensible and reusable drag-and-drop components for creating content pages. They are built using HTML, CSS, and JavaScript and provide both structure and functionality to your pages. Liferay provides a wide range of OOTB fragments, but you can still design custom fragments that meet your specific requirements.
Client extensions
When you want to modify Liferay, either by adjusting its UI or by calling functions outside of Liferay, you should use a client extension (CX). They extend Liferay without having to deploy code directly to Liferay. You can deploy them to any Liferay environment (i.e., self-hosted or Liferay Cloud).
Client extensions are more flexible and easier to apply to environments after an upgrade since they depend only on APIs that rarely change between versions. You can also create them using whatever technologies you want to apply because they run outside of Liferay and integrate with objects with no extra code required to connect them.
Client extensions and remote apps enable the extension of Liferay’s core functionality through the integration of external apps and customizations. They facilitate the integration of custom features or 3rd-party apps without modifying the core Liferay environment and offer improved user experience through platform simplified customization.
Wrapping up
As you can see, Liferay is a multifaceted system that resembles a constructor, offering a wide range of pre-built tools for businesses to design their solutions quickly and cost-efficiently. Even though it may seem that knowing development fundamentals isn’t of great importance to a decision-maker, grasping the basics is still crucial to making informed choices and effectively communicating with development teams.
Understanding architectural approaches, headless development, notions of objects, themes, and other Liferay development aspects can empower you to handle your company’s digital presence more effectively and collaborate with tech teams. So, whether you’re planning to build a customer portal, an internal collaboration platform, a robust e-commerce solution, or any other Liferay-based solution, and you need guidance in Liferay DXP development, don’t hesitate to contact us, and we’ll help with your digital experience journey.
FAQ
What is Liferay development, and why is it important to know its basics for non-tech decision-makers?
Liferay development involves creating and customizing digital experiences using the Liferay platform. Non-tech decision-makers should understand it to align business goals with technical capabilities and drive effective digital strategies.
What are the main components of Liferay development?
The main components include architecture, objects, fragments, components, widgets, themes, modules, services, and APIs, which collectively enable the creation and customization of digital experiences within the Liferay platform.
What level of technical expertise is required for Liferay development?
While technical expertise can enhance the development process, non-tech decision-makers can still oversee and guide Liferay projects by understanding basic development concepts and collaborating effectively with development teams.
How can Liferay product development support our business objectives?
Liferay development can support business objectives by enabling the creation of personalized customer experiences, enhancing employee productivity, facilitating seamless collaboration, and driving digital transformation initiatives aligned with organizational goals.