[Estimated Reading Time: 3 minutes]

Jim McKeeth is getting all excited about being able to develop for Google Glass using Delphi XE5. I’m pleased for him, I really am. It must be a huge relief that Delphi for Android can actually target this Android device.

Of course, the very fact that there was any doubt and the fact that the doubts proving unfounded is cause for such celebration should itself be a cause for concern for anyone contemplating FireMonkey as a platform for Android development in the future.

But I am sure any concerns and doubts about supporting particular Android devices are misplaced.

After all, the real point of FireMonkey is that you can write your application once and then run it on any of the supported platforms. *1 *2 *3 *4 *5 *6

But Delphi with Mobile Add-On*7 developers must be super excited to know that they can also run their FireMonkey code on the Apple i….. oh. Oh well, there’s always the Microsoft Win…… um.

Ok, so wearable technology is an Android specific technology. For now at least.

A lucky thing then that it is not one of those platform specific technologies that FireMonkey cannot reach, which might perhaps explain the excitement I suppose.

At least Apple have committed to creating any wearable technology they may have in mind in a manner that FireMonkey can be supported on. Um… haven’t they ? Well, it’s not as if Apple are known for taking a proprietary approach and even if they do I’m sure if Embarcadero ask them nicely…

Meanwhile Embarcadero are utterly failing to let people know that Delphi is the best Win32/Win64 tool bar none although with the recent neglect the Windows 8 support is at risk of falling dangerously behind and conceding even that advantage to others.

Sure Windows 8 may not be important right now. For a while Vista support wasn’t important either. Then along came Windows 7 and a lot of what was previously “Vista support” suddenly became “Windows 7 support” and was very important indeed.

But instead of keeping Delphi relevant in this area where it has always held it’s head high, Embarcadero have all but excised any mention of Windows from their marketing of Delphi *8 and are simply passively betting Delphi‘s future on Windows becoming less relevant. Whether that will prove a smart decision only time will tell, but I do still question whether it is wise in the meantime to draw attention to Delphi‘s shortcomings in the area where they have chosen to position it by expressing delight and surprise when their product simply does what they advertise and have been selling it as doing.

Delphi for Android creating an app to run on Android really shouldn’t be worth talking about in such terms, let alone cause for excitement. I don’t think any other tools vendors – for Android or otherwise – would be so surprised or pleased that their product simply does what it is supposed to do.

Footnotes

*1minimum hardware requirements apply

*2minimum FireMonkey runtime requirements apply

*3may require visual themes not available for your version of FireMonkey

*4may require upgrade to current version of Delphi

*5may require “add-on” pack(s) which may or may not yet have been announced

*6may require upgrade to current version of any add-on pack(s)

*7does not include all mobile platforms

*8how about a game of “Where’s Wally” ? Try to find the mentions of “Windows” on that page. There are only two, not including the page title, which I’ll give you for free just in case your particular browser shows the page title in a tab caption in which case you may never see it without resorting to view the page source. And no cheating by using “Find on page” either. πŸ˜‰

27 thoughts on “Delphi for Android Supports Android!”

  1. I have to laugh! Is nothing Embarcadero’s employees do or say beyond your criticism? I like a lot of what you write and actually lean the same way many times as I’m heading more toward Oxygene for cross-platform development, but I read JM’s article more as confirmation of XE5’s Android capability for yet another device than great relief after the fear it would not. Indeed, isn’t there a new API with Glass? Wouldn’t there naturally be a question from Delphi programmers–or perhaps even some Oxygene programmers? This is actually a very exciting and (I believe) pertinent article for those exploring that platform with Delphi.

    Less than two months ago, soon after iOS 7 came out, people were asking RemObjects if Oxygene supported it. The answer was yes, of course (at least for 32-bit), because of their native approach. But Marc blogged about it and was, of course, excited to be able to announce that fact. I don’t remember you picking on him for explaining the obvious.

    The point is, whenever there is something new, programmers will tend to want assurance that their development tool will support it. And even if it’s obvious, it’s still nice to also see some sample code, an example that helps get them started and perhaps something they can show their boss to help promote an idea–or even to keep Delphi!

    1. I don’t criticise everything Embarcadero say but they do say an awful lot that moves me to be critical these days. Ahd I don’t go seeking these things out. This is another example of a post that they (and, to be fair, others) have been promoting in the various social feeds, further emphasising, I presume, just how gosh-darned pleased they are about it. Which is what is so damned depressing.

      confirmation of XE5β€²s Android capability for yet another device

      Exactly. “Confirmation”. Which is only needed if there is any question that a device may not be supported. With FireMonkey even the latest devices have this question hanging over them.

      Yes there is a new API with Glass. Just as there are a whole host of API’s that together form the Android SDK. With an Android development tool that is a first class citizen in the SDK environment there is no question over whether it can be supported – it’s just another Java API. Move along. Nothing to see here. Business as usual.

      With Glass and FireMonkey, if Google had chosen to implement only a subset of the SDK on that Android device (particularly if they had not included the NativeActivity wrapper for NDK applications), then FireMonkey would have been dead in the water as far as that device and any of it’s API’s were concerned.

      You yourself highlight the difference between RemObjects Oxygene and Delphi in the nature of their posts in this area.

      With Oxygene some people were apparently asking the question whether iOS 7 would be supported. We don’t know who was asking or why. Perhaps they were Delphi users increasingly accustomed to going cap-in-hand (actually, with a bag of gold, not a cap) to their tool vendor to be able to support new API’s and platform features.

      Or perhaps it did simply reflect the fact that RemObjects hadn’t said much or anything specifically because nothing really needed to be said. In any event, the answer when it came was not in the form of a blog post getting all excited about the fact that they had managed to compile for an iOS 7 device when they weren’t sure if they would be able to, but simply “Yes, of course“.

      The whole tone of Marc’s blog on the matter was very matter of fact and was actually focussed more on providing an update on the timeline for the support for the truly new aspects of the new devices (64-bit hardware).

      It is in stark contrast to Jim’s post which starts with an admission that he did not know whether it was even going to be possible before he started:

      the question I really wanted to know is if I could develop for it with Delphi XE5. Turns out the answer is Yes.

      And this is only one example of the persistent atmosphere of doubt that will hang over any development for Android undertaken using Delphi. Are you at all interested in developing apps specifically to take advantage of the Samsung Galaxy S Pen SDK ? More pertinently, do you have potential users/customers who may want this ?

      With an Android development tool fully integrated in the SDK ecosystem – such as but not only Oxygene – the only question is “how do I get started ?

      With Delphi for XE5 you always has to start from the question “Is it even possible?” and I suspect that in the specific example of the S-Pen SDK, the answer is actually a firm and resounding “No“.

      1. “I don’t criticise everything Embarcadero say…” Right and just to clarify, I didn’t say you do, I simply implied that there seems to be nothing they say you can’t find fault with. Just an observation that shadows your writing overall.

        One other point I’d like to respond to is that you mention (a couple of times now) that Jim starts off in serious doubt about the capabilities of XE5 and this “new” device. Could it be that he was simply stating a question he had heard as a starting point to the article? I viewed it as a style of writing, a way of hooking the reader. Often I go searching the internet to see how to do something and I have a question in my mind. When I find an article that starts with that very question, I immediately feel I’ve found exactly what I was looking for and read the article. Personally, I’d rather offer Jim the benefit of the doubt in this instance and assume he already knew the answer but was phrasing it in a manner that would appeal to those with the same question. A different approach than what Marc took in his blog, but not deplorable. (In fact Jim’s could be viewed as more helpful because his actually had a example with screen shots!)

        1. We can only go on what he wrote. However you might wish to excuse the opening paragraph by grasping for literary license, the post also concludes with an exclamation as to how exciting the day is as a result of this achievement. Complete with an exclamation mark.

          As much as I might be said to criticise everything Embarcadero say, and indeed claiming to read their minds at times, it is at least odd that others have to find excuses for what they say or how they say it and read far more between the lines to do so. πŸ˜‰

          Again, the difference between Jim’s post and Marc’s is that Marc was talking about something new. An entirely new version of a supported platform. Jim was simply showing off that Delphi for Android actually does run on Android. And not even the latest version.

          I have the Android 4.4 (Kit-Kat) SDK installed for use by my Oxygene compiler. Right now. Nobody is posting about how exciting that is because it isn’t actually that exciting for a piece of software to work as it should. Unless, of course, you had a reasonable fear or expectation that it wouldn’t.

          Jim was excited and pleased just to get a working app for Android 4.0.4 out of Delphi.

          Sure, the hardware might be new but there was nothing new about the platform SDK required to get apps running on that hardware. Or shouldn’t have been. Clearly that was a concern that Jim needed to address.

          My social feeds are notable for not being pumped with RemObjects showing that Oxygene for Cocoa also runs on the new Cocoa hardware just released by Apple. It just works. And nobody would expect any less, let alone get excited about it. About the hardware, yes – maybe. πŸ™‚

          The whole point is that a product doing what it says it does (nothing spectacular, just “working”) should not be remarkable. Let alone require pictoral evidence. πŸ™‚

          1. Maybe it is exciting to some people so you should just accept that and not try and speak for everyone because you didn’t find it exciting!

            Turn your Delphi feeds off!

            1. Some people have disappointingly low expectations.

              I can’t turn my Delphi feeds off while I am still a Delphi user and I am. I do wish I could filter out all the FireMonkey crap. And I use the term “crap” advisedly. As inadequate as FireMonkey may be, Delphi and the VCL is still a great Windows development tool you know. But perhaps you don’t. Embarcadero are keeping pretty quiet about that these days. πŸ˜‰

              1. Dude I think you might be better to invest in therapy. You come across like a jilted lover of Delphi with a serious axe to grind. Give it a rest. Maybe step away from the whining a bit. You’ll honestly feel better for it.

              2. I feel fine. Thanks for the concern. πŸ˜‰

                You should perhaps stop worrying about other people and focus on yourself for a bit. Maybe ? I don’t know. Of course I don’t. I don’t know you. But then you don’t know me either but that didn’t stop you from adopting the role of my own personal life coach. So as long as we’re all telling each other what’s best for them my advice is as good as anyone’s I think. No ? πŸ˜‰

                But just on the off-chance, do you have any comments to offer on my Smoketest posts ?

                Or about ADB WINLOG ?

                Or create order issues in different Delphi versions ?

                Use of threads in simple animations ?

                Or Widget implementation using Oxygene ?

                Or Service implementation using Oxygene ?

                Or thread synchronization techniques using Windows messaging in Delphi ?

                Just to pick some topics from the last month.

                No ? Nothing ?

                Oh. OK. Just the self-appointed life coach it is then. You use Delphi for that do you ? πŸ™‚

  2. I would have to say that the doubt you speak of was probably more driven by the naysayers criticising the approach EMBT took, and that his article can be used to contrast those views. While I personally do think that the NDK approach might be a little less device adaptable versus an JDK approach, it was however EMBT’s entire goal for native support for all “supported” platforms.

    Also, I think you might yet again be making an assumption on EMBT staff’s intentions. No?

    Regarding the marketing. I think the point is just that EMBT have been heavily focusing their marketing on “what is new” in their product. I think the limited mention of Windows support was just for that reason. As you can see in all their presentations when they make mention of platform support they mention all platforms equally.

    1. If the doubt wasn’t real then it is even more puzzling why the post should be couched in terms that gave the clear impression that there was any doubt at all. Jim’s opening paragraph seems quite clear that he didn’t know/wasn’t sure whether what he was trying to do was going to be possible.

      As for the notion that Windows is pushed to the background solely to allow emphasis on the new platforms, this is partly true I think, but not for the rosy reasons you think.

      After all, with XE2 (Mac and iOS support introduced) Windows was still the prominent platform in the marketing of that release. Mac and iOS were mentioned, but Windows was still notably present and top of the platform list.

      Even with XE4 where iOS was the headline feature, Windows was still heavily present to an extent unrecognisable in the positioning of XE5. (It’s hard to find any mention of XE3 now. Which is perhaps understandable – it was after all little more than crank of the handle of the Delphi Money Machine for Embarcadero. A tug on the udder of the Delphi Cash Cow, if you like). πŸ™‚

      So what’s different with XE5 ?

      This time around they’ve pitched their tent on “Mobile is the future“, that’s what.

      And Windows presents a huge problem for them on this ground because they now have absolutely zero support for Windows’ mobile platforms. No Windows Phone. No Windows RT.

      They can talk about Android apps and hide behind plausible deniability for not mentioning the fact that you can’t develop services or widgets. They don’t have to explain this in their blurb. They can just wait for the disappointed customers to complain and then argue with an entirely straight face that they never said you could develop Android services or widgets, only apps. And sorry, there’s no money back guarantee. You had a 30 day trial to find this out. Tough tits if you didn’t find out soon enough.

      But if they mention Windows in marketing materials making such great play of mobile platforms, they would be forced to make it clear what “Windows” does not mean in relation to “mobile”.

      I imagine that Embarcadero are getting very nervous about the level of interest that Nokia’s entry level Windows phones are getting. In some parts of the world Windows Phone is now the fastest growing platform (and not the irrelevant back-waters you might expect). If Microsoft manage to turn around the Windows Phone and RT situations in the way that they did with Windows 7 and the Vista mis-step, then Embarcadero – and their customers – could be in all sorts of trouble.

      The problem being that if (imho when) FireMonkey hits the skids, Embarcadero have made it so important that it will take Delphi with it.

  3. “Meanwhile Embarcadero are utterly failing to let people know that Delphi is the best Win32/Win64 tool…although with the recent neglect…at risk of falling dangerously behind…”

    Yes. How can I trust to this new Delphi if they can not keep core Delphi product competitive?

  4. Emb told they will support Blackberry before Windows Phone (which sales share in Europe got past the 10% marker last quarter), didn’t it? The reason is they know there’s no way FM application could look native on WP unless you write them for that platform only – too many differences with other UIs design.
    Anyway Windows RT is not for mobile devices only. It’s the API for Windows 8 “modern UI” (aka Metro) applications on Windows 8 x86 as well. They are more useful on touch devices, yet that’s what makes tiles work, and even on an x86 PC they can be useful. No way to develop them with Delphi anyway (I’m writing this on a Surface 2 Pro…)
    Meanwhile the Windows compiler and RTL are being crippled…. if Emb isn’t successul in the mobile space it will find itslef with its best product no longer appealing even on its “native” platform. Obtaing the worst of both worlds…

  5. I think we all nedd to separate some things.

    There are two possible ways of developing for any device: first would be supporting native platform (the way Oxygene does) where you just use Pascal (or any other) language and everything else is highly platform specific, and another approach is to use some cross-platform framework (like Qt or FireMonkey).

    I can see both approaches as valid and which one you will choose can largely depend on project you have on your hands.
    Some projects will simply demand native platform approach, and for some you can move faster with cross-platform frameworks.

    It is important to note that with each approach there is some price to pay. Whether that price is acceptable and under what conditions that is another question.

    We have Oxygene that is good example of native platform approach. For anyone that wants to take this route Oxygene is excelent choice.

    On the other hand there are FireMonkey and Delphi mobile compilers. The fact that FireMonkey is a piece of crap, and that Delphi mobile compilers have failed to provide more compatibility with existing code (that should be one of their major selling points) doesn’t invalidate the fact that using cross-platform frameworks can be more desireable option for some projects. Unfortunately, if you want to go that route there are no quality solutions using Pascal language, at least I think so, because I haven’t yet explored what FPC has to offer.

    1. Indeed, the problem isn’t intrinsically in the cross-platform approach, but that approach does have problems. The test is how a particular framework addresses those platform specifics which cannot be addressed in the cross-platform architecture. Some frameworks accommodate this.

      FireMonkey simply chooses to ignore any such platform specifics and hope that people don’t notice or don’t know enough about the platforms to realise how important the shortcomings are (this latter ignorance is actually something that Embarcadero seem guilty of themselves).

      It’s frankly laughable that the company that produced FireMonkey is using the “Top 5 Mistakes” white-paper that they are. If you read that white-paper you would be forgiven for thinking that it was produced by a company competing with FireMonkey, not selling it.

  6. I always read your articles with a smirk on my face as you find yet another reason to slam Embarcadero into the ground for something you don’t agree with. But there’s an increasing sense from the comments being left on your last few blogs that you’re starting to be on your own.

    And you don’t have to convince anyone of what you say, I accept that; we write to inform, educate and sometimes provoke. But recently your articles have become a vendetta during which you pick a few words from a blog or press release, over-analyse them and twist them out of context.

    OK, yes I’m frustrated with some elements of how they’re conducting themselves these days (e.g. XE5 upgrade pricing as I blogged about before and agreed with you on), but really, if you don’t like a part of Delphi, and you don’t use it (as you said you use Oxygene not Firemonkey), then just ignore it. Don’t comment on it. I don’t use Delphi for Mac development, so will not comment on its suitability. What’s the point in hammering a part of the development tool that you’re not going to use? When many of us are using it happily.

    I’ve used Delphi for 20 years, currently using XE4 for Windows & iOS development and have been extremely happy with the results. It’s enabled me to use code from my Delphi Win32 code base that has been in the field for many years, and deliver that functionality to a well supported mobile device.

    Well, I guess you provoked me this time.

    1. It’s a very small group of people who choose to go to extreme lengths to defend Embarcadero in face of really quite light (if persistent) criticism that tend to dominate the comments. As well as some who express support in the comments (there are some) others email me directly to express their support but for their own reasons choose to do so privately.

      Unlike some blogs which only allow supportive comments I always approve all comments on my blog. Both policies risk creating a skewed view of the support garnered by the posts.

      This is a personal blog. I write what I am moved to write about, including opinion pieces. But I do wonder if you read all my posts or just selectively pick out the critical ones (it might interest you to know that those critical posts consistently attract more traffic than the technical ones), because “recently”, to use your own timeframe, most posts have been technical and informative in nature with only a handful of critical posts.

      I comment on the failings of FireMonkey because if everyone simply ignores the harm that it is doing to Delphi then Delphi as a whole will end up suffering and I am still a Delphi user. Just not one inclined to be a FireMonkey sycophant. πŸ™‚

      If Embarcadero were actively developing Delphi in the Win32/Win64 VCL arena then there would be no problem. But this area, where Delphi (for now) remains a leading product, is being neglected as Embarcadero position themselves and the product around the fatally flawed FireMonkey. The result being that when FireMonkey fails – as it will to one extent or another – it will take the good parts of Delphi down with it.

      I don’t think it is yet too late for some sense to prevail, and even if it is I do not want to have to look back in years to come and think that I could and should have spoken up but didn’t.

  7. For the record though, I agree about the Windows Phone part. It’s growing rapidly in Europe (do they care about that?). but then, they’re just one of a growing list of app developers and software/hardware vendors that are ignoring this platform at their peril.

    1. Indeed. But there is a difference between choosing to ignore something and rejecting it, actively pursuing a path which gives you no option to renew interest in it later if you wish.

      The problems with FireMonkey are not ones of focus but of intrinsic, technical, architectural suitability. It get’s away with it on iOS, excuses the shortcomings on Android by placing greater emphasis on compatibility with iOS and hopes that Windows (mobile) will just go away.

  8. Ohhh another one? Man… I’m done with your blog. It got really, but REALLY boring! Life is short! Spend this energy in something pleasant!

    1. I really don’t understand why people find it so difficult to accept that someone would choose to post their personal opinion on what is their personal blog.

      You don’t want to read my blog ? Fine. That’s your choice. But you will miss some good stuff imho. Your loss.

      What I post on it ? That’s my choice. You don’t have to read it all.

      If you cannot exercise your own judgement and choose to read only those posts that interest you and ignore those that don’t, that is your loss not mine. Ironically, this exact advice is given to me by others, in order that I avoid being moved to post opinions that will disturb their own blissful existence as a consequence of their not being able to follow their own advice.

      Some of these people even live in countries that pride themselves on supporting free speech. I know. Amazing isn’t it ?!

      1. I suspect that you are misunderstanding the issue people have with some elements of your blog. I certainly don’t have an issue with you posting your personal opinion. I do have an issue with you repeatedly criticising things outside your control and that you’ve admitted you don’t and won’t use anyway such as FireMonkey and Delphi for mobile.

        If you aren’t interested in using it, then that is your choice but those people who do don’t need you criticising them, their choice or something you won’t use as I don’t see any benefit to that. You want people to exercise their own judgement and choose what to read and yet you don’t seem to want to exercise your own judgement on what technology you write about that you don’t like and won’t even use.

        I’m happy reading your blog posts on technical information whether Delphi or Oxygene as I have both. But nit picking, personal attacks, etc and dismantling other blogs on technology you won’t use seems a waste of your time and that of your readers when that time could be spent on other topics. Especially, when you don’t focus the same intensity on your technology of choice for mobile, Oxygene which is perceived as a lack of balance in your writing.

        1. Like it or not, Delphi’s fate is increasingly tied to FireMonkey now. Concerns about FireMonkey are concerns about Delphi.

          Also worth stating is that the time spent on those pieces is negligible. It hardly dominates my interest or time to the extent that concerns about how I spend my time seems to occupy others.

          “Balance” is a bogus argument. You cannot invent complaints about X just to equalise the number of complaints about Y if you don’t have things in X to complain about. Perhaps you have things to complain about in Oxygene or RemObjects that I have not yet come across ? Why not write about them on your blog ?

          At the end of the day, it is my time and how I choose to spend it is up to me. As heart-warming as it might be to think that there are people who are concerned that my life be as rich and full as possible (it already is, thanks for asking) this isn’t actually what lies behind such concern. They just don’t like what they choose to read. For they surely chose to read it. I certainly can’t make them.

      2. I’m sorry if you don’t like my personal opinion about your personal blog, but I think that if you made it public you want people to read it, right? And if you let readers comment about it, that’s because you want our opinion about it, correct? So that was mine. Of course you have all the rights to remove it. I’m just saying that I’m done with it because IMO, Delphi does not need another blog like that from the hater guy or gal (BTW someone with some real psychiatric issues. Not your case though).

  9. I don’t see the problem. My understanding of Android is: Something that has been developed for Android doesn’t run on any Android device per se. There are requirements like a minimum Android version to be installed on the device and sometimes also some special hardware requirements that might prevent the installation and execution of an Android app on any device.
    So for me it was good to get this official confirmation from Embarcadero that the Android support in Delphi also includes Google Glass. To be honest, I didn’t expect that Delphi for Android would do that.

    1. I didn’t expect that Delphi for Android would do that.

      And that is exactly the problem. A Java developer (including Oxygene for Java) using the Android SDK doesn’t have any such doubts. And it’s not just “exotic” hardware like Glass. I saw a recent post in the Embarcadero Forums where someone was asking whether Delphi for Android apps would/could run on a Nexus 5. Nobody could answer “of course”. Even people who had access to the device specs had to admit that the only way to be sure was to know someone who had actually done it.

  10. This is very frustrating. According to device “specs”, FireMonkey apps should run on my Motorola Photon. But they don’t. And no one knows why. At least, no one has spoken up.

    Then again, I had a very difficult time finding out which specific processor the Samsung Galaxy Tab 3 uses. You’d think Samsung’s page on tech specs would specify. But no, all we get is “1.7 GHz dual core processor”. πŸ™ I was all set to buy one, when I discovered posts from other device owners confirming that FireMonkey apps do not run on the device. And not a single post where someone had it working.

    I love Delphi. And I love mobile. I for one would love to see the two work well together, even if I’m not a fan of FireMonkey development. (If I had a blog, I’d complain about the confusion of when to use properties to change UI elements and when to modify the style.)

Comments are closed.