Appmethod app development
August 20, 2015 —
BarryK
I have been checking out app-creation tools for awhile, as I have for quite some time been thinking of moving away from OS development into app development -- perhaps creating a "killer app".
I posted about some dev tools here:
http://bkhome.org/news/201507/so-many-cross-platform-app-developers.html
...in particular, I like Smartface. Very simple to use, supports Android and iOS targets. Its main big feature is can develop for iOS without needing a Mac.
Coding is in Javascript, with the limitations that go with that, such as needing a runtime interpreter and having fairly sandboxed functionality (cannot use Smartface to create some types of hardware apps, such as a battery status monitor).
I had a very brief look at WINDEV Mobile. Really put off by their advertising -- unprofessional, even a bit sleazy.
Right now I am evaluating Appmethod, and I am liking it. Here is the site:
http://www.appmethod.com/
Fascinating -- the company is Embarcadero, and they purchased Borland many years ago. Ah Borland, I have fond memories of their products. Loved their Turbo Assembler. Borland has been off my radar since the 90s, well, it is very pleasant to see C++Builder etc still going strong:
http://www.embarcadero.com/
Appmethod is Embarcadero's latest creation. I am running it right now, and have my phone plugged in via USB cable, with a simple app created by Appmethod running on it.
I was most intrigued to learn that Appmethod apps are compiled down to the machine code. None of that Java bytecode stuff. Coding is in Object Pascal or C++, and in the case of Android, a .so shared library has to be created -- in other words, Android is designed for apps written in Java, and a little bit of trickiness is required to run a real compiled app.
But of course, compiled means speed.
Installing
Installing Appmethod, I discovered it is wise to let the installer also install the Android SDK and NDK. Although Appmethod can use them if pre-installed, I found this difficult to setup, so did a complete reinstall and just accepted the defaults.
Appmethod runs on Windows 7 or later. App can be created for Android, iOS, Windows and Mac.
This is one sophisticated product! Huge learning curve, but it will do everything a developer would want.
Framework
Appmethod has Firemonkey UI, so the one UI can be created for multiple targets. So, the native Android UI functions are not being used, however Appmethod does seem to do a good job of setting the look-and-feel to match the target platform.
Pricing
Now to price... the first 30 days are free, after that, Appmethod will only create Android apps, and only using C++.
That is a very good deal, and I congratulate Embarcadero for being so generous. It appears the free version is mostly uncrippled.
Down the track though, if I decided to use this product, I would probably want to create my apps to run on multiple platforms (no Linux unfortunately), so would go for purchasing:
http://www.appmethod.com/pricing
...35 US Dollars per month, so that becomes 420 Dollars per year. Actually, quite reasonable, compared with the others out there.
Comments
How times have changed! There would have been a time when I would have turned my nose up at a product like Appmethod.Here is the reason. These are sizes of a simple .apk (Android package file), with just a few widgets (a button, label, etc):
App Inventor 1.5MB
Appmethod 6.5MB
LiveCode 10MB
That is both interesting and shocking. I haven't checked, but it is likely that a simple .apk created with Android Studio would also be about 1.5MB.
The reason that Appmethod and LiveCode APKs are so big is they have their own frameworks.
The thing is though, that size is going to grow slowly after that. So a moderately complex app created with Appmethod might not be much bigger than 6.5MB.
I first realised this bloat when I signed up to Google Play Store several months ago, and started downloading apps. Why, I wondered, is this very simple app several MB?!!!
Quoting:
Appmethod apps compile down to machine code for best performance. This is different than other Android apps that are developed with Java that compile down to Dalvik bytecode and then run on the Dalvik virtual machine.
...from here:
http://docwiki.appmethod.com/appmethod/1.16/topics/en/Android_Devices_Supported_for_Application_Development
QtCreator is hailed as a similar product, however it's preference for using QML does not really qualify the claim that it creates "native" apps.
But then, it depends how you define "native". QML code is going to have to be interpreted at runtime. Canonical's description of QML apps as "first class native apps" in Ubuntu Touch is to me very misleading.
Interesting, that link states that Appmethod only supports Android 4.0.3 (Ice Cream Sandwich, API-15) or later.
Also, armv7 only, x86-based phones are left out in the cold.
I am using a password manager on my Android phone. This app is also available for iOS, Windows and Mac.
The author does not reveal what tool was used to develop this app, which leaves me wondering about some aspects of it's security.
The bottom line is that a truly compiled app is the most secure. Quoting:
Many app development vendors use Java, JavaScript and WebKit runtimes which are notorious hacker targets presenting inherent security risks on mobile devices. Embarcadero RAD Studio allows for true native app development, so your code runs directly on the device, reducing the risk of being targeted by third party attacks.
...from here:
http://www.embarcadero.com/products/rad-studio/security
The link also comments on the security weaknesses of Java, that Appmethod completely avoids.
I followed these instructions to create a "Hello World" GUI Win32 app for Windows:
http://docwiki.appmethod.com/appmethod/1.16/topics/en/Creating_Your_First_FireMonkey_Application_for_Desktop_Platforms_%28C%2B%2B%29
The .exe is 163KB. Quite good, I think it has debugging symbols in it, don't know how to take them out. Um, I think it built without debugging symbols.
I wonder about the size of a console app?
Again, I don't know if that has debugging symbols.
But, I didn't realise until I tried to run one on a different PC, that they need DLLs, the one I tried needed about an extra 2MB (uncompressed) of DLLs (Dynamic Link Libraries).
http://bkhome.org/news/201509/appmethod-saga-coming-to-end.html
Tags: general