Adobe Developers Live: personal takeaways
A couple of weeks ago, some of our team members attended the online webinar Adobe Developers Live. Each of the attendees reviewed one talk. You can find all the reviews below.
Headless: GraphQL with Content Fragments
Adobe Experience Manager has many ways to show data that is stored within the repository to its end users. One of the possibilities is the recently introduced sling-based JSON exporter framework. Adobe has now added another way for developers to share content. More specifically, content fragments using GraphQL endpoints.
For content fragments, the strongly typed GraphQL schemas are based on content fragment models and their data types, which can be easily managed by content authors. GraphQL avoids iterative API requests, that would occur with REST, and ensures that the result is limited to the specific requirements. The data can be easily used by mobile applications, single-page applications and every other device capable of making a GraphQL request.
(summary by Jeroen Druwé)
SPA Editor 2.0: add in-context editable content spots to any app
This was a very interesting talk about the state and future of the AEM SPA editor with the 2.0 version coming soon. It combines the best features for developers with the best features for authors, giving the author enough freedom and flexibility to edit content on the PWA while also allowing the developer to indicate which blocks are editable and which aren't.
I am very curious about the future of this approach and how we can use it to make AEM an even better fit for our projects.
(summary by Pieter-Jan Pauwels)
OSGi inside — why we love it and why you don’t really need to care
AEM is using OSGi mainly because of 3 reasons: component/service-based java framework, dynamic updates of configurations & modularity. Luckily, most of the complexity of OSGi can be avoided these days by using the tooling & annotations that are available.
However, it’s still really important to make sure you set up the right imports/ exports and versions for your bundle. The most under-used feature mentioned would be to leverage the dynamic services in OSGi: taking control of whether a service is available or not.
With Java 9 came JPMS, which is supported through OSGi Connect. Even though OSGi supports multiple versions for the same bundle, AEM is setup to not leverage this functionality as it can quickly become complicated.
(summary by Reyn Van de Craats)
PWA: Turn any site into a Progressive Web App
In this session, the speakers explain how any AEM site can be turned into a PWA. This combines both the benefits of Native apps and Web apps to the end-user, such as offline experience, push notifications, cross-platform, etc.
AEM provides this feature out-of-the-box with zero additional configurations needed. You can, however, change lots of settings. The PWA features that AEM provides are the same as any other website that is turned into a PWA. In the background, they still work with manifest.json and service workers, whereas the settings will be displayed in an easy-to-understand UI on your AEM environment.
The whole configuration can be done in a couple of clicks, which was something that really stood out since the demo itself took only 10 minutes, explanation included.
The speakers also explained what the basic features and use cases of a PWA are. Especially the built-in offline functionalities of a PWA are quite interesting. This basically means that, once you’ve downloaded the PWA, you can just use it offline - like any other app on your smartphone - as long as you don’t need interactions with 3rd parties or any API calls off course.
The feature is not entirely ready yet, and there are still a number of improvements to be made (e.g., adding pre-caching pages manually), but we believe this feature will add a strategic advantage to all future AEM projects.
(summary by Caglar Celiköz & Vincent Boden)