GENERO Web Apps and DB Sync EAP

Early Access Program (EAP)
January 6th

Share the Article

Irving, Texas – December 19th, 2024 – Dear Customers, Four Js is pleased to announce the opening of the Genero Web Apps and DB Sync Early Access Program (EAP) on January 6th, 2025.

GENERO WEB APPS

Offline-Ready Applications for Access from Anywhere.

The Genero Web Apps (GWA) empower users to run lightweight, offline-ready applications directly within a browser — no server connection needed. Perfect for challenging environments like remote areas or industrial spaces, GWA keeps data flowing smoothly even when connectivity is limited.

KEY BENEFITS

  • True Offline Functionality: Built-in SQLite database stores data locally syncing with the server when a connection is available.
  • Simple Deployment: Applications can be packaged, downloaded, and deployed using a GAS or web server without the need for app store approvals, cutting delays and streamlining updates.
  • Multi-Platform: Genero Web Apps applications work seamlessly across desktop, mobile, and webbook platforms, providing flexibility for any device.
  • Seamless User Experience Across Devices: Genero Web Apps behaves like a native app, supporting users with offline capabilities across desktop, iOS, Android, and more.

SERVER CONNECTION

Your applications work perfectly offline, nevertheless you can get or synchronize your data on your server.
  • via REST web services,
  • via REST database synchronization service,
  • via “runOnServer” Front Call: Execute Server-Side code with Remote Display.

PRACTICAL USE CASES

  • Reliable Offline Workflows: Ideal for scenarios like remote data entry, inventory management in warehouses, or on-site field operations where connectivity is intermittent.
  • High scalability: No permanent server connection. The workload is offline in the browser and scales to millions of connections (e.g. Offline ordering to the server when local data entry is completed).

DB SYNC

Powerful Database Synchronization for Offline Environments.

DB Sync equips users with a high-level database synchronization service that efficiently reconciles local data with a central server, making it ideal for applications operating offline. Whether gathering data in no-network zones, industrial areas, or buildings with signal interference, DB Sync keeps data safe and ready to sync whenever connectivity is restored.

KEY BENEFITS

  • Smart Sync Control: Easily configure specific tables, data filters, and synchronization strategies for each app, ensuring efficient data handling.
  • Advanced Conflict Management: Built with optimistic concurrency control, DB Sync gracefully manages concurrent data changes.
  • Designed for Offline-First Environments: Engineered to support reliable operation in low-connectivity settings, DB Sync allows users to work offline and then sync their data seamlessly.

PRACTICAL USE CASES

  • Field Operations and Remote Workflows: DB Sync enables robust offline data capture for field services, warehousing, and inspections in areas with limited or no connectivity.
  • Resilient Data Collection Systems: Ideal for applications like inventory management or site assessments where consistent, reliable data capture is critical, even without network access.

Ready to start?

Join the EAP now! Discover how Genero Web Apps and DB Sync can transform your offline operations.

Best Regards,
The Four Js Development Team

Frequently Asked Questions

What is an EAP?

Early Access Programs (EAP) provide early versions of our software for developers to test with their applications and influence its new features prior to General availability (GA).

The EAP is your opportunity to influence the future release. You can use the EAP to:
  • Ennsure your application upgrades to the latest release with minimal effort.
  • Verify new features can be used immediately in your application.
The minimum expectations are that you:
  • Download the EAP packages.
  • Modify your code base if necessary per the Upgrade Guides and provide feedback if there are errors.
  • Verify your application compiles and provide feedback if it does not.
  • Perform basic testing of your application to ensure that it still runs as expected and provide feedback if it no longer works as it previously worked.
What we would like is:
  • Perform full QA testing of your application and provide feedback where the program no longer works as it did before.
  • Fully evaluate and provide feedback on any feature we have introduced.
  • Monitor and provide feedback on issues reported by other EAP participants.
The biggest risk is that something new breaks your code. This is not our intent, but it can happen. During an EAP, we have options available to us to resolve conflicts: If you only discover a conflict after the official release, you may have to wait until a maintenance release for the issue to be resolved, or we may decide that it is the future path for the product and that you have to amend your code if you wish to upgrade to this release. In addition, when you go to use a new feature, you may find that you are restricted in its use because it is missing a feature that is important to you. It is much more difficult for us to make changes after a release has occurred.  With a maintenance release:
  • We do not want to force users to edit 4gl code in order to install a maintenance release.
  • We do not want to force users to compile 4gl code as part of installing a maintenance release.
  • We do not want to force the concurrent installation of two or more of our products as part of a maintenance release.
The best time for us to make changes is in the EAP period prior to the GA release. Think about this real-world example: Consider Genero’s two base.StringTokenizer methods. Why two methods? Feedback about ‘what happens if the delimiter is escaped’ or the ‘case of empty tokens’ was received after the base.StringTokenizer.create method was released.  We could not change this method to add two extra parameters; that would break anyone’s code that used it. We had to create a second method (base.StringTokenizer.createExt) to handle those cases, when perhaps the optimal solution would have been to have a single method.