One Ring to Rule Them All

One of the reasons I am such a big fan of Delphi is you can build 80% of your application on Windows, then for the last 20% you work with devices. Sure it’s not hot reload, but arguably it’s just as efficient, especially with 3 second compile speeds in a RAD environment.

When you’re ready to deploy to a device, simply activate the target platform:

You have to keep in mind cross-platform differences whilst developing, but there are abstractions to help with that. You’ll most likely also have to customize the screens later for the different form factors, but again the Delphi tooling helps with that.

I’m currently building an XMMP client library and my sample app works fine on Windows and MacOS, but I was curious if it would work on Android without modification:

It worked perfectly! That’s pretty amazing.

Of course, I’ll need to manage permissions later, but during early development, no code change is required at all. In this example, I’m connecting to an Openfire server; there’s one other person online as reflected in the roster.

I’m using Indy’s IdTcpClient. The XML/XMPP Parser I wrote. Everything else is standard FMX.

Embarcadero has a treasure in FMX. I think it’s among the best cross-platform frameworks and I hope it keeps evolving aggressively. For help with FMX, visit the Delphi Developer Group.

One thought on “One Ring to Rule Them All

  1. I Couldn’t agree more :),
    IMO Embarcadero just need to tune up the perfomance in Android, it’s a litle slow. But I’m using alcinoe lib and things are mush better now.

    Liked by 1 person

Leave a Reply to José Manuel Morango Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s