{"id":8531,"date":"2014-06-24T09:52:08","date_gmt":"2014-06-24T08:52:08","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/?p=8531"},"modified":"2014-06-24T09:52:08","modified_gmt":"2014-06-24T08:52:08","slug":"embarcadero-appmethod-another-route-to-cross-platform-mobile-now-with-c-support","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/8531-embarcadero-appmethod-another-route-to-cross-platform-mobile-now-with-c-support.html","title":{"rendered":"Embarcadero AppMethod: another route to cross-platform mobile, now with C++ support"},"content":{"rendered":"<p>Embarcadero has updated <a href=\"http:\/\/www.appmethod.com\/\" target=\"_blank\">AppMethod<\/a>, its IDE for cross-platform mobile and desktop applications. The IDE now supports C++, and as a special offer, you can develop Android phone \u201cfree forever\u201d, according to the web site.<\/p>\n<p>AppMethod is none other than our old friend Delphi, combined with the FireMonkey cross-platform framework. The difference between AppMethod and the older RAD Studio product line (current version is XE6) is twofold:<\/p>\n<p>1. AppMethod does not include the VCL, the Delphi framework for Windows applications. It does let you develop for Windows or Mac OS X using FireMonkey.<\/p>\n<p>2. You can buy RAD Studio outright with a perpetual license, from \u00a31342.00 plus VAT for a new user (RAD Studio Professional). AppMethod is only available on subscription.<\/p>\n<p>AppMethod pricing is per developer per platform per year. Currently this is \u00a3179.83 plus VAT for individuals (very small businesses up to a maximum of 5 employees in the entire organisation) or \u00a3600 for larger businesses (a rather large premium).<\/p>\n<p>C++ support is new in AppMethod 1.14 and supports all target platforms except the iOS Simulator (an annoying limitation). It supports ARC (Automatic Reference Counting) on Android as well as iOS. Mac OS X is supported from 10.8 (Mountain Lion) and up.<\/p>\n<p>There are also a few changes in FireMonkey. You can load HTML into the TWebBrowser component using LoadFromStrings. There is a new date picker component. <\/p>\n<p>Another new feature is in the RTL (run time library). Called App Tethering, it lets applications communicate with each other, for example using TCP. These can be apps on the same device or remote apps. Once paired, apps can run remote actions and share standard data types and streams.<\/p>\n<p>There are also updates to push notifications for iOS and Android, Google Glass support, updated OpenGL and DirectX support on Windows, and more: see <a href=\"http:\/\/docwiki.appmethod.com\/appmethod\/1.14\/topics\/en\/What%27s_New\" target=\"_blank\">here<\/a> for the complete documentation of what is new.<\/p>\n<h3>A Quick Hands-on<\/h3>\n<p>I installed the latest AppMethod on Windows 8. The install warns that AppMethod cannot co-exist with RAD Studio XE6, presumably because it is essentially the same thing re-wrapped. The product name is relatively new, but there is plenty of old stuff under the covers. AppMethod still has a dependency on JSharp, Microsoft\u2019s Java implementation for .NET. Java code in the IDE dating back to who knows when?<\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image5.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image_thumb5.png\" width=\"404\" height=\"319\" \/><\/a><\/p>\n<p>There is a 10-field dialog conforming paths for Android tools, which is a reminder of how many moving parts there are here. It is more complex that most Android development environments because it uses the NDK (Native Development Kit) as well as the usual SDK.<\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image6.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image_thumb6.png\" width=\"404\" height=\"322\" \/><\/a><\/p>\n<p>Once up and running, you can start a new project such as a FireMonkey mobile application:<\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image7.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image_thumb7.png\" width=\"404\" height=\"307\" \/><\/a><\/p>\n<p>and then you are in an IDE which would not be entirely unfamiliar to a Delphi user in 1995 (or I suppose, a C++ Builder user in 1997) \u2013 I am not saying this is a bad thing, though the IDE feels dated in comparison to Microsoft\u2019s Visual Studio.<\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image8.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image_thumb8.png\" width=\"404\" height=\"237\" \/><\/a><\/p>\n<p>After coming from a spell of development with XAML it feels odd to have a form builder that defaults to xy layout, but layout managers are available:<\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image9.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image_thumb9.png\" width=\"376\" height=\"267\" \/><\/a><\/p>\n<p>Compile and run, and after the usual slow initialization of the Android emulator, the app appeared.<\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image10.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2014\/06\/image_thumb10.png\" width=\"404\" height=\"196\" \/><\/a><\/p>\n<h3>Why AppMethod?<\/h3>\n<p>In the crowded world of cross-platform mobile development, why use AppMethod?<\/p>\n<p>Embarcadero makes a big play of its native development, though it is \u201cnative\u201d in respect of code execution but not in GUI fidelity since by default visual controls are custom-drawn by the framework. This is in contrast to <a href=\"http:\/\/www.xamarin.com\" target=\"_blank\">Xamarin<\/a> (the obvious alternative for developers from a Windows background) which does no custom drawing but only uses native controls; however for raw performance AppMethod may have the edge (I have not done comparisons).<\/p>\n<p>Delphi developers should also look at RemObjects <a href=\"http:\/\/www.remobjects.com\/elements\/oxygene\/\" target=\"_blank\">Oxygene<\/a> which also uses a Delphi-like language but is hosted in Visual Studio and, like Xamarin, uses native UI components.<\/p>\n<p>The AppMethod approach does make sense if you prioritise maximum code-sharing over getting exactly the right look and feel for each supported platform, and need better performance or more capability than HTML and JavaScript can get you. There is no support for Windows Phone though; if that is in your plans, Xamarin or HTML and JavaScript development is a better fit.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Embarcadero has updated AppMethod, its IDE for cross-platform mobile and desktop applications. The IDE now supports C++, and as a special offer, you can develop Android phone \u201cfree forever\u201d, according to the web site. AppMethod is none other than our old friend Delphi, combined with the FireMonkey cross-platform framework. The difference between AppMethod and the &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/8531-embarcadero-appmethod-another-route-to-cross-platform-mobile-now-with-c-support.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Embarcadero AppMethod: another route to cross-platform mobile, now with C++ support<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,8,31,67,80],"tags":[143,236,318,363,499],"class_list":["post-8531","post","type-post","status-publish","format-standard","hentry","category-android","category-apple","category-embarcadero","category-professional","category-software-development","tag-android","tag-c","tag-delphi","tag-embarcadero","tag-ios"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/8531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=8531"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/8531\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=8531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=8531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=8531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}