Tag Archives: Mobile Apps

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.

Choosing the Right Menu Navigation for your Mobile App

Description :  You will learn Delphi FireMonkey UI design tips and tricks when designing and creating responsive navigation menu.
Objective: How to create Navigation Side Drawer for mobile applications using FireMonkey.
Source: Malcolm Groves, José León and Sarina Dupont’s blog.
Software Versions Supported: Delphi XE4, XE5, XE6,  C++ Builder XE5, XE6, RAD Studio XE5, XE6, Appmethod.
Source Code: Source code can be downloaded from in Malcolm Groves’ Github repository.
Level: All

A common challenge when designing a responsive mobile application is the navigation menu.  There are several navigation menu options such as the Toolbar Only Navigation, the Tabbed Bar Navigation, the Side Drawer Menu, and the App Home Screen Navigation.

Two of the more commonly used navigation menus are the Tabbed Bar navigation (more commonly used in iOS apps) and the Side Drawer navigation which has become fashionable on Android.  The Tabbed bar navigation is a row of tabs along the top or buttons along the bottom of the screen.  This navigation design provides intuitive user experience allowing users to know what are their available options from one screen.  However, the downside to the tabbed bar navigation is that the tabs or buttons takes up valuable real estate on small mobile displays.

The side drawer menu on the other hand, has the  advantage of more screen real estate, but may take away user engagement, if the engaging menu options available to users has been tucked away in the side drawer.

There is an earlier article written by Malcolm Groves on how to design a Facebook-style layout for your mobile app using Delphi XE4 and Delphi XE5. Sarina Dupont has expanded on his blog post with another great article on Creating a Navigation Drawer for your Mobile Application using XE6 and Appmethod.

José León also has a video on how to create a sliding popup menu in Delphi XE5, that will show up when the user clicks a button on the toolbar. The process is very much similar to the drawer and shows you some UI design tricks to get a nice visual result.

Choosing the right Menu Navigation depends largely on users experience.  If most of the user experience takes place in a single view, and the only things such as user setting and options are needed to be accessed in seperate screens, then you should focus on having your main UI nice and clean by tucking away these settings/options in the side drawer menu. However, if your mobile app has multiple views that users will be equally engaged in, then side navigation may not be the best option.

Firemonkey Mobile Master/Detail Database Apps with FireDAC

firedac firemonkey database apps

Description :  Building Mobile Master/Detail Database Applications with FireDAC.
Objective: You will learn how to leverage the FireDAC components and also write cross platform code where required with master/detail data model examples.
Presenter: Marco Cantù, Embarcadero Technologies.
Event:  CodeRage Mobile Session (2013)
Software Versions Supported: Delphi XE5, Delphi XE6, RAD Studio XE6, C++ Builder XE6

Level: Intermediate

FireDAC is a Universal Data Access library/components for developing cross-platform database applications for Delphi and C++ Builder.  FireDAC enables native high-speed direct access to MySQL, SQLite, Oracle, SQL Server, IBM DB2, InterBase, PostgreSQL, Firebird, Informix, SQL Anywhere, Access and more.

Marco Cantù from Embarcadero Technologies does a great job explaining how to use FireDAC components across all of the Delphi target platforms using IBLite and IBToGo. However, FireDAC can be use just the same way with SQLite.

The FireDAC native driver supports SQLite database version 3.0 and later. For a detailed discussion on SQLite usage in FireDAC for a Delphi application, read the “Using SQLite with FireDAC” article.

Using SQLite in your application will require that the sqlite3.dll file be present on your development system. If this file is not present, download sqlite3.dll from http://www.sqlite.org/download.html to your system path (such as C:WindowsSysWOW64 for 64-bit Windows).

For more information on usage of FireDAC in mobile applications  read the “Using FireDAC in Mobile Applications (iOS and Android)” article.

Programming Mobile Devices and Gadgets using Firemonkey


Description :  How to take advantage of programmable and interactive devices and gadgets.
Objective: Learn how to create Delphi and C++ firemonkey apps for mobile devices and gadgets.
Presenter: Jim McKeeth & David Intersimone from Embarcadero.
Event:  RAD-in-Action Webinar
Software Versions Supported: Delphi XE5, Delphi XE6, RAD Studio XE6, C++ Builder XE6
Level: Advance
Source code: Source code for demos in this video is available on Code Central at http://cc.embarcadero.com/item/29699.

Although Delphi XE5 allowed you to create Android apps that ran on Google Glass using firemonkey, Delphi XE6 just made it even easier.  Delphi XE6 comes with a new custom style with Google Glass optimized look and resolution.  It also comes with a Google Glass device designer template.

You can now take full advantage of devices and gadget such as Google Glass (which went on sale in the US about a week ago) and Amazon Fire TV.  Google Glass is a stamp-sized electronic screen mounted on the side of a pair of eyeglass frames. It can record video, access email, provide turn-by-turn driving directions and retrieve information from the web by connecting wirelessly to a user’s phone.  Amazon Fire TV, is an streaming media player similar to the Roku and Apple TV, but android base. You can develop apps including games for the Amazon Fire TV the same way you would for any Android device.  Once your Fire TV app has been tested and is working properly on the Fire TV, it can then be submitted for approval on the Amazon app store.

Jim McKeeth & David Intersimone from Embarcadero did a fantastic job in this video explaining how to create Delphi and C++ firemonkey mobile applications that run/interact with the following devices and gadgets.

  • Google Glass
  • IP Camera and IO Controller
  • Ballistic Chronograph
  • Leap Motion 3D input
  • Z-Wave Home Automation
  • Barcode scanning
  • Emotiv EPOC brain computer interface
  • Philips Hue Wireless LEDs
  • Ouya
  • Kinect
  • And more!

Devices are platforms that can load and execute programs directly, such as an Android phone, iPhone, a tablet or even Google Glass.  A gadget on the other hand is something your program interacts with, like 3D input, a brain-computer interface, or a flying drone.

Effectively Using List Controls in Delphi Firemonkey Mobile Apps for iOS and Android

Delphi Firemonkey ListBox

Description :  The advantages and disadvantages of List controls (TListBox and TListView) and how to use them effectively in your mobile applications for optimal user experience and performance.
Objective: How to effectively use List components in your mobile applications for optimal user experience and performance.
Presenter: Ray Konopka – Raize Software
Event:  CodeRage 8
Software Versions Supported: Delphi XE5, Delphi XE6, RAD Studio XE6, C++ Builder XE6
Level: Intermediate

Firemonkey Application platform in Delphi and C++ Builder provides to major list based controls called TListView and TListBox. TListbox and TListView can be used interchangeable, however for optimization and performance it is better to use TListbox for short list and TListView for longer dynamic list.  Ray Konopka from Raize Software does an excellent job in explaining the differences between the two list controls and their effectiveness in mobile applications (iOS and Android) to ensure optimal user experience and performance.

You can find more information of Delphi/C++ Builder firemonkey TListbox and TListView in the links below.

1. Mobile Tutorial: Using ListBox Components to Display a Table View (iOS and Android).
2. Enabling the Swipe-to-Delete Feature on TListView Items.

Also, take a read of one of our earlier articles on Rad Studio LiveBindings and how to populate FireMonkey ListView component from a TPrototypeBindSource containing some sample data. The tutorial will show you how to add the sample data and how to make the bindings between the prototyping source and the list view component in order to fill the list.

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.