More thoughts on Appmethod
September 01, 2015 —
BarryK
I have been posting recently about Appmethod:
http://bkhome.org/news/201508/firemonkey-links.html
http://bkhome.org/news/201508/convert-object-pascal-to-c.html
http://bkhome.org/news/201508/appmethod-looking-good.html
http://bkhome.org/news/201508/appmethod-app-development.html
I am continuing to be impressed with how powerful it is, but I have run into some issues:
No markup-text view
This really took me by surprise. All modern UI frameworks support rendering of some kind of text markup. Even Win32 back in the 90's supported Rich Text. GTK supports basic HTML tags.
So, I was most disappointed to discover that Firemonkey (the UI framework in Appmethod) does not support any kind of text markup.
There is a third-party product, I think only for iOS.
FireDAC UI framework
This is supposed to be a good thing. A database can be managed via components that are dropped onto a form (design window) just like the widget layout designer.
I have run into issues with it however, and right now I am going to do some research to find out how to manage my SQLite database at low-level code-only -- because I know what I want to do is actually quite simple and easy to do at the code level.
Note that I am criticizing FireDAC, but I am a beginner, fumbling around, and perhaps someone with more Appmethod experience will be more happy with using it.
Rendering on different platforms
This one is to be expected I suppose, to an extent anyway. I am designing a simple app, testing it on Windows 7 and on my phone.
I have learned that it is absolutely essential to test on the actual device, as there are surprises. Generally, the UI looks as expected in Windows, but then try it on the phone, and hey, some weird things happen!
Size
Of course, this is one of the biggest criticisms. The app I am developing has grown to a 10MB .apk, but 33MB installed. Obviously the files are compressed inside the .apk.
But once installed, in the Setup -> apps section in my phone, I can compare installed sizes, and my app is up there with the biggest.
But then, download size is the main thing of concern to potential buyers, and 10MB is similar to most others.
Now, a plus-point:
Version control
As I mentioned, Appmethod is very sophisticated. Even has version control built-in. I can see exactly what changes I made since any previous time/day, can roll back if desired.
One code-base
I should make this comment, as it is the nicest feature, the main reason one would use Appmethod, despite the bloat.
It is very nice to create just the one app and see it run on Windows and Android (and potentially iOS and Mac).
There are some deployment differences, and so far I have managed theses easily. One example, a #define test is required to set path for files that an app can read/write/create (very restricted in Android).
FireMonkey links
August 29, 2015 —
BarryK
FireMonkey is the UI framework used in Appmethod, also in other app-creation tools from Embarcadero.
The official docs are here:
http://docwiki.appmethod.com/appmethod/1.16/topics/en/FireMonkey_Application_Platform
Here are other sites:
http://www.fmxuniversity.com/
http://www.firemonkeyx.com/
http://www.fmxexpress.com/
http://firemonkeytutorial.com/
http://www.tindex.net/FireMonkey/
http://www.torry.net/
Some of those sites look as though they are "backed" by Embarcadero. Some look very dated.
They also are mostly Delphi and Object Pascal centric (Delphi is another app creation tool from Embarcadero, with a very long history).
Tags: general
C++ textbook
August 29, 2015 —
BarryK
I borrowed a couple of C++ books from my local library, however, as I am "really getting into it", decided to buy one.
A book that looks really good is "C++ Primer Plus", 6th Edition, 1200 pages.
Amazon.com has it for US$30, but that is the original printing in 2011. Apparently, there was a reprint in 2012 with typos and other errors fixed, still the 6th Edition.
It costs, I think, about US$17 to post to Australia.
So, hunting for the 2012 reprint, I found it selling cheaply here in Australia, for AU$48 (+ $3 Express Post):
http://www.bookware.com.au/cgi-bin/bookware/9780321776402
That would be one of the cheap reprints in Asia.
The one published by Pearson in the USA is selling here for considerably more (hmm, and it is only the 2011 edition):
http://www.bookworld.com.au/books/c-primer-plus-stephen-prata/p/9780321776402
I have ordered the book from Bookware.
Convert Object Pascal to C++
August 27, 2015 —
BarryK
I worked through this example app that uses a SQLite database:
http://docwiki.appmethod.com/appmethod/1.16/topics/en/Mobile_Tutorial:_Using_FireDAC_and_SQLite_%28iOS_and_Android%29
Some of the code is obscure, however, I do hope to eventually grasp what is going on.
I have made some mods to the example, one of which is to have a 'blob' datatype in one column of the database.
But then, I did not know how to convert text into blob format for storing in the database. Then found this:
http://www.fmxexpress.com/read-and-write-a-blob-field-using-firedac-with-firemonkey-on-android-and-ios/
FMX is an ancronym for Firemonkey, the UI framework used by Appmethod. http://www.fmxexpress.com is a very interesting site, lots of examples, but it shows the Delphi heritage and most code is in Object Pascal.
The blob-read-write code is also in Object Pascal, however I found a converter:
http://compilers.iecc.com/comparch/article/09-11-056
...downloading it now. It's a Windows executable.
SQLite and Android NDK
August 27, 2015 —
BarryK
I would like to learn how to do stuff with the Android Native Development Kit (NDK). This is what Appmethod makes use of to bypass using Java.
This looks like a nice way to start learning:
http://www.roman10.net/how-to-compile-sqlite-for-android-using-ndk/
Some convenient build scripts have been posted:
https://github.com/stockrt/sqlite3-android
There is a special version of SQLIte, named SEE, that supports encryption of the database:
https://www.sqlite.org/see/doc/trunk/www/readme.wiki
...SEE is not free though. Can't find a price anywhere.
Appmethod looking good
August 24, 2015 —
BarryK
I posted recently about Appmethod:
http://bkhome.org/news/201508/appmethod-app-development.html
I am getting stuck into learning how to use it. Reckon it will take several months before I can rate myself as a competent app developer.
I want to use Sqlite for an app that I plan to develop, and checked out some requirements that I need. Sqlite supports searching of binary blobs in fields, one tick. Appmethod supports encryption of Sqlite database files, another tick.
Appmethod supports coding in Object Pascal or C++, and I will go with the latter. I only understand basic C coding, so right now getting stuck into learning C++.
My laptop still has the original Windows 7 Home Premium. Did an update, but I'm not going to update to Windows 10, not for awhile anyway.
Haven't used Windows for ages, and it is ok, except rather puzzling all the hard drive activity. I am doing nothing, no applications running, and the hard drive activity light keeps flashing on, never stops -- what on earth is Windows doing?!!!
Anyway, lots of fun!
Remix mini countdown
August 20, 2015 —
BarryK
1,379,888 US Dollars raised, and nine days to go:
https://www.kickstarter.com/projects/1123481999/remix-mini-the-worlds-first-true-android-pc
It will be interesting to see if there is a rush of pledges in the last few days.
Tags: general
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.