Tag Archives: Mac OS

Using Model-View-ViewModel (MVVM) in Delphi FireMonkey

Description: How to use Model-View-ViewModel (MVVM) in Delphi (Separating Logic from UI) for maintainability, testability and dependability.
Objective:  Making your application more maintainable, unit-testable, and multi-device capable.
Presenter:  Malcolm Groves from Embarcadero, Jeffrey Lefebvre – Skyline Aviation Software.
Software Versions Supported:  All versions.
Event: CodeRage 7 & 8
Level: Intermediate

Code re-usability and faster product delivery time are two of the many benefits of Rapid Application Development (RAD) IDEs such as RAD Studio and Appmethod.  However on the down side, RAD methodology which allows for minimal planning in favor of rapid prototyping can compromise best coding practises. Poor or no project planning for scalability can compromise software quality, especially in areas of maintainability, testability and dependability.

Code re-usability can be applied at various levels.  There are re-usable visual controls and components at the User Interface (UI) level.  FireMonkey controls, not only allow for reuse in multiple projects on the same platform, but across multiple platforms (Android, iOS, Mac OS and Windows).  As software projects expands (like they normally do), a well designed project should account for scaling and loosely coupled libraries that can be reused and easily tested. This reusing of libraries is at the model and business logic level.

One of the design patterns that accomplishes reusability and testability by separating logic from UI is the Model–view–controller (MVC).   MVC  designs software application into three interconnected parts:  the model (application data, business rules, logic and functions), the view (output representation — User Interface) and  controller which connects the model to the view by accepting input and converting them to commands for the model or view.


In the following video, Malcolm Groves from Embarcadero discusses how to use Model-View-ViewModel (MVVM) in Delphi.  The MVVM architectural pattern originated from Microsoft  and is largely based on the model–view–controller (MVC) pattern.  MVVM is a specific implementation targeted at UI development platforms with event-driven programming such as Windows Presentation Foundation (WPF) and FireMonkey.


Jeffrey Lefebvre from Skyline Aviation Software also did a great session on maintainable code – Separating Logic from UI. He discusses techniques for creating new applications with logic separated from UI and tips on transplanting logic from UI into its own units.

Creating Custom Delphi FireMonkey Components

Description : How to create custom components for the FireMonkey application platform.
Objective:  To enhance your mobile and desktop applications by creating custom reusable FireMonkey controls.
Presenter: Ray Konopka from Raize Software
Software Versions Supported: Delphi XE5 / XE6, RAD Studio XE5 / XE6.
Event: CodeRage 8
Level: Intermediate

Rapid application development (RAD) software solutions such as Delphi and C++ Builder uses a component-based framework that significantly reduces software development time.  RAD Studio FireMonkey components-based framework not only allows for faster delivery, more reliable systems (due to previously tested components), reusability and increase in productivity, but allows developers to target multi-device platforms (Android, iOS, Mac, Windows) from one codebase.

While RAD Studio (Delphi/C++ Builder) includes a wide range of FireMonkey components, there are often times when the base controls that comes with FireMonkey are insufficient. In the following video, Ray Konopka of Raize Software demonstrates how to enhance your mobile and desktop applications by creating custom reusable FireMonkey Components.

Read more on creating FireMonkey components on Embarcadero’s website.  Also, download Mitov Software free open source library OpenWire .  OpenWire library allows writing advanced VCL and FireMonkey components for rapid codeless application development.

Using Delphi FireMonkey to Integrate with Popular REST API

Description :  You will learn how to use Delphi FireMonkey REST client library to create desktop and mobile clients which integrate with popular web sites.
Objective: How to create REST clients and work with OAUTH authentication.
Presenter: Marco Cantù from Embarcadero and Olaf Monien (Developer Experts, LLC)
Software Versions Supported: Delphi XE5 / XE6, RAD Studio XE5 / XE6.
Event: CodeRage 8
Level: All

Representational State Transfer REST (sometimes spelled “ReST”) is an alternative to Web Services (SOAP, WSDL, etc.) and RPC (Remote Procedure Calls).  REST is an architecture style for designing networked applications using HTTP protocol.  Some advantages of REST is that it is fast, simple and lightweight compared to CORBA, RPC and SOAP.

RESTful applications use HTTP requests to post data (create/update), read data (queries) and delete data.  In spite of REST simplicity, it is fully-featured and can accomplish the same things as other Web Services.

A new REST client library was added in RAD Studio XE5.  Delphi and C++ Builder developers can now integrate with popular REST APIs, such as Facebook, Twitter, Flickr, Dropbox and many more.  A TAuthenticator components was also added in Delphi XE5 for OAUTH authentication.  Take a look at the following videos by Marco Cantù from Embarcadero and Olaf Monien (Developer Experts, LLC) at CodeRage 8, as they explain how to use the new REST client library in RAD Studio XE5.

The New REST Client Library by Marco Cantù from Embarcadero

The New REST Client Library, Dive into the Details by Olaf Monien (Developer Experts, LLC)

Other interesting examples of integrating Delphi FireMonkey REST client library, would be Sarina DuPont (Product Manager RAD Studio) article on “Feeling the Beat with REST“.  She explains in her article, how to create a mobile app that integrates with Beats API.  The article shows an example app that allows users to search for an artist by name and then return the list of available audio tracks.  Also check out Daniele Spinetti of bit Time Software article on how to Access Marvel Developer API with Delphi XE6.

How to Configure iOS and Android Environments to Compile, Run and Debug FireMonkey Apps.

Description :  You will learn how to configure Configure iOS and Android environments for compiling and debugging applications written in Firemonkey.
Objective: To configure iOS and Android environments for use with FireMonkey.
Presenter: David I, Embarcadero Technologies.
Software Versions Supported: Delphi XE5 / XE6, RAD Studio XE5 / XE6.
Level: All
Download: RAD Studio XE6 PAServer 14.0 Package for Mac

One of the major features about FireMonkey is its Cross-platform abstraction layer for OS features which gives developers the ability to create multi-device, true native apps for Windows, Mac, iOS and Android all from one code base.  Some of you may be wondering how is this possible when Rad Studio (Delphi / C++ Builder)  Integrated Development Environment (IDE) only runs on a Windows machine.  This is because Delphi/C++ Builder comes with many pre-declared Object Pascal APIs that interfaces with Mac OS X, iOS and Android APIs. While working in RAD Studio IDE on your windows machine,  the IDE allows developers to access these APIs properties and methods from their code.  The IDE also simulates the look and feel of these API components/objects on screen in design mode. However, in order to compile, run and test your Android and iOS applications, you will need access to their native environment.

While an Android environment (Android device or emulator) can be installed and accessed on a Windows machine, the same is not true for Mac OS X/iOS.  You will need a Mac computer with XCode IDE and Embarcadero’s  platform assistant server (PAServer)  installed.  The PAServer is a command-line application that lets RAD Studio interact with that system, to compile, run and debug cross platform (Mac OS X/iOS in this case) applications remotely.  The following video will give you step-by-step instructions on how to configure your development environment for compiling and debugging applications for Mac OS X and iOS with Delphi XE6, C++Builder XE6 and RAD Studio XE6.  You can also read  “How to Set Up Your Development Environment on the Mac (iOS)” article for more detailed instructions.

In this second video, you will learn how to configure your development environment using your Windows PC, for running, compiling and debugging Android applications. You can also read  “Set Up Your Development Environment on Windows PC (Android)” article for more detailed instructions.

Backend as a Service (BaaS) applications using FireMonkey

Description: How to build connected multi-device apps using Backend as a Service (BaaS).
Objective: Learn how to use BaaS in your application to  gain easy access to common services in the cloud without having to build or maintain the backend services yourself.
Presenter: David Intersimone, Embarcadero.
Event:  RAD in Action
Software Versions Supported: Delphi XE6, C++ Builder XE6, RAD Studio XE6
Level: All

One of the cool new features in RAD Studio XE6 is Backend as a Service (BaaS).  BaaS, also known as “mobile backend as a service” (MBaaS), provides mobile app developers with a way to link their applications to backend cloud storage and APIs exposed by back end applications.  It does this, while also providing features such as push notifications, user management, and integration with social networking services.  RAD Studio XE6 BaaS integrates with leading BaaS providers which includes support for Kinvey and Parse out of the box.

With BaaS, you get easy access to common services in the cloud such as

  • Build multi-device service based applications using the FireMonkey and VCL frameworks
  • Use push notifications to engage your users on any device or platform
  • Access data and object storage in the cloud
  • Provide application and storage security with user authentication
  • Work with popular BaaS providers including Kinvey and Parse using a component based API

In this RAD in Action webinar video, David I explains how to  gain easy access to common services in the cloud without having to build or maintain the back-end services yourself.

Also, check out Sarina DuPont’s Blog for several articles on BaaS.

Java student builds 3D Othello Delphi FireMonkey game in 3 days

Daniel Messias is a 17 year old student who has been programming in Java for couple years.  He has written a 3D Othello game using Delphi FireMonkey in only 3 days.  For those of us who are not familiar with the game, Othello is a 2 players board game played on an 8×8 uncheckered board.  There are 64 identical game pieces called disks (often spelled “discs”), which are dark on one side and light on the other.  Players take turns placing disks on the board with their assigned color facing up.

Daniel transitioned his skills from Java over to Delphi Firemonkey from articles on docwiki.embarcadero.com.  The transitioned was exceptionally quick.  In a video with Stephen Ball from Embarcadero, he explains in his own words how Delphi really makes learning programming easy and cool.

Othello app can run on iOS, Android, Windows and Mac OS from the same code base. The app is also available on Nokia’s App Store. Head over to Stephen Ball’s blog to read the full article and to download the source code.

For other Delphi FireMonkey games you can visit the games section of our website.  There is also an earlier posting on this site that you may enjoy reading “Developing A Simple Mobile Game With Delphi FireMonkey“.

Designing Common UI for iOS & Android using Delphi Firemonkey

Preferred Mobile UI Components

Description :  You will learn how to quickly build stunning native #ios and Android apps that follow key mobile UI and UX design paradigms, and adheres to Apple and Google UI guidelines.
Objective: Help make your app stand out in the marketplace.
Presenter: Sarian DuPont, Sr. Product Manager for RAD Studio at Embarcadero.
Event:  CodeRage 8
Software Versions Supported: Delphi XE5, Delphi xe6, RAD Studio XE6, C++ Builder XE6
Level: Intermediate

Designing Common UI for iOS & Android using Delphi Firemonkey is an excellent Tutorial by Sarina DuPont,  Sr. Product Manager for RAD Studio at Embarcadero.

She discusses how best practices does not only apply to coding, but to beautiful elegant UI coupled with a great user experience.  She explains how best practices are the key to making successful applications.  Making your app stand out is critical to having a customer choose your mobile app from the hundreds of thousands of applications in the iOS App Store and Google Play.

Delphi firemonkey cross platform capabilities gives developers leverage for  a common design that  can be share across multiple devices you want to support. In this session you will  learn how to quickly build stunning native iOS and Android apps which follows key mobile UI and UX design paradigms, and also adheres to Apple and Google UI guidelines.  This will help make your app stand out in the marketplace.