C++ Builder Multi-Device application with Platform APIs
C++ Builder Multi-Device application provides three levels of development: ⦁ Components (VCL and FMX)⦁ Common Libraries (RTL).⦁ Platform APIs (iOS, Android, Mac OS) In this post we will discuss and show how to use the Platform APIs (iOS, Android, Mac OS). Specifically, we’ll look at how to use the iOS APIs to obtain Apple iOS device information for the Operating System (OS) version, the OS name and the iOS device type. Some refer to this as being able to ‘Touch the Metal’ of the device, meaning having access to the low level APIs of the device. The C++ Builder Run Time Library (RTL) includes a number of header files that provide C++ interfaces to the iOS frameworks written in Objective-C. And C++ Builder has the same for Android for the Java Libraries for Android, to allow you to access the APIs of the Android Java libraries from your native C++ code. For Apple IOS, using C++ Builder, these units are scoped with iOSapi and are installed by default in your installation folder \include\ios\rtl. For Example: The complete list of these units are listed on this C++ Builder DocWiki page iOS Objective-C Frameworks (iOSapi) The C++ Builder FireMonkey framework relies on some of these units. For help on these iOS APIs, you can see the Apple documentation at iOS Developer Library To get to the iOS device information we need, we will need to use the iOS Objective-C Framework for: iOSapi.UIKit.hpp Note: The iOSapi.UIKit.hpp also includes the iOSapi.Foundation.hpp and the Macapi.Helpers (Macapi.ObjectiveC.hpp): 123 #define Iosapi_UikitHPP#include <iOSapi.Foundation.hpp>#include <Macapi.ObjectiveC.hpp> Here are steps to create a C++ Builder Multi-Device application to display Apple iOS device information for the Operating System (OS) version, the OS name and the iOS device type: Create a new C++ Builder Multi-Device application, BLANK. Target Platform = iOS 64-bit. Save Project in a new Folder, such as /Projects/CppiOSDeviceInfo Use Project | Options | Deployment | Provisioning, to select your Apple Provisioning Profile and your Developer Certificate: 4. Use Project | Options | Application | Version Info | to enter your unique Application Identifier for the CFBundleIdentifier: Q4X27M46Z4.$(ModuleName) 5. In our C++ Builder Multi-Device iOS application, we will include this one header file: #include <iOSapi.UIKit.hpp> 1234 #include <fmx.h>#include <iOSapi.UIkit.hpp> // iOS Device information#pragma hdrstop#include “uMain.h” 6. For the User Interface (UI), create a UI that look like this: 7. To create this UI, follow these steps: On your Blank form in your new C++ Builder Multi-Device application: a. Add a Toolbar, property Align = Top. b. On the Toolbar, add a Button, Align = Right. Button Name = btnGetDeviceInfo. StyleLookup = refreshtoolbuttonbordered. c. On the Toolbar, add a Label, Align = Contents. Label->Text = Device Information d. To display the iOS Device information we will use a ListBox. Add ListBox to the form. Align = Top. e. To the ListBox, add three (3) ListBoxItems, to display the OS version, the OS name and the iOS device type. To do this, in the Structure Pane, Right-click on ListBox1, Items Editor, Select ListBoxItem from the dropdown, Click Add item button 3 times. Rename ListBoxItem’s TEXT values as OS Name:, Device Type:, and OS Version, and ListBoxItem.Name = lbOSName , lbDeviceType, and lbOSVersion , respectively. 8. You can now double-click on the button for GetDeviceInfo and for it’s OnClick Event Handler, and you can use the functions and methods in the iOSapi UIKit header file to get OS information from our iOS device. 9. First, in your C++ Builder IDE, lets look at the iOSapi.UIKit.hpp header file. In the IDE Editor, select the iOSapi.UIKit.hpp | Right-Click | Open File At Cursor. This should open the iOSapi.UIKit.hpp header file in the Editor. 10. Looking at the “Methods Insite” dropdown, […]
