Open Source & Free

Integrating SQLite into the Code

Module 5: SQLite and ORM Binding Adding local persistence is only half the job. The bigger question is how the rest of the application reacts to that persistence without turning every screen into a tightly coupled database client. This lesson moves in the right direction by letting the model and the storage abstraction drive updates while the UI stays focused on presentation. Property listeners and deletion events are doing the real work here. They allow the forms to respond to meaningful changes in the data model instead of polling or manually synchronizing every visible element. ...

Codename One

The New Forms

Module 4: UI Design From Scratch The real test of a design system begins when you need screens that were never designed for you. A product rarely stops at the original mockup. It needs detail screens, about pages, contact forms, side menus, and supporting flows that still have to feel like they belong to the same app. ...

Codename One

Threading and the EDT

Module 1: Course Lessons Threading becomes much less mysterious once you separate two different concerns: doing work, and updating the user interface. In Codename One, those two things should not be mixed casually. The UI is driven by the event dispatch thread, usually shortened to EDT, and that thread needs to stay responsive if the application is going to feel smooth. ...

Codename One

Details, Categories and Validation

Module 6: Miscellaneous Features Many products reach a point where the remaining work is not one dramatic feature but a collection of missing pieces that quietly determine whether the app feels complete. This lesson is about that stage. The category flow is a strong example of solving a product problem by reducing UI rather than adding more of it. Instead of introducing a whole separate category-management experience, the app lets categories emerge through dish editing with autocomplete support and cleanup logic behind the scenes. That is a simpler model for both the code and the user. ...

Codename One

Fixing the Checkout Experience

Module 4: UI Design From Scratch A checkout screen is not finished just because it looks good. If users cannot understand what they ordered, change quantities easily, or remove mistakes without friction, the design has failed at the point where clarity matters most. That is the problem this lesson addresses. The earlier checkout design was visually appealing, but it did not give the user a practical way to change the order. That kind of gap is common in mockups. A screen is designed for presentation, then later you discover that a real product still needs editing, correction, and confirmation behaviors that the design never accounted for. ...

Codename One

Understanding Properties

Module 1: Course Lessons Codename One properties are useful when you want one model class to do more than simply hold data. A plain old Java object can represent state just fine, but it does not automatically know how to bind to UI, serialize itself, parse structured input, or describe its own fields at runtime. The properties API exists to make those jobs easier. ...

Codename One

Billing and Global Server

Module 6: Miscellaneous Features Billing screens are often deceptively simple. The form may look like a set of ordinary fields, but the layout, data mapping, and server contract beneath it are doing more work than the visuals suggest. This lesson handles that well by separating the visible editing experience from the way the data is ultimately packaged and sent. The billing form itself is mostly straightforward UI. The more interesting design choice is how the builder’s local application state is combined into the server-facing representation. ...

Codename One

CSS Changes

Module 4: UI Design From Scratch Whenever new screens are added, the styling layer has to catch up. Otherwise the application ends up with correct layouts but mismatched visual language. This lesson is about extending the CSS so the new forms, overlays, and side menu feel like the same product rather than late additions. ...

Codename One

Push Notification

Module 1: Course Lessons Push notification is best understood as a user-notification channel, not as a general-purpose networking layer. It is good for telling a device that something happened and, depending on platform and app state, optionally carrying some payload with that message. It is not something you should design your core application protocol around. ...

Codename One

Code Changes and Summary

Module 4: UI Design From Scratch Once the new screens have been designed, the application still needs the code structure to support them cleanly. This lesson is where the design work turns back into application engineering: model objects, reusable form logic, quantity editing, map integration, HTML content, and the small animation details that make the whole flow feel deliberate. ...

Codename One