<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<div class="PlainText">Many thanks to all contributors for the feedback.<br>
<br>
I just need to develop a Bluetooth App for Android devices only (with some WiFi network transfer also).<br>
<br>
I did try Eclipse with ADT some years ago and was very disappointed with the UI designer so gave up. I understand that Android Studio has a completely new UI designer so I will give that a try.<br>
<br>
--- Original Message ---<br>
<br>
From: "Jolyon Smith" <jsmith@deltics.co.nz><br>
Sent: January 22, 2015 7:17 PM<br>
To: "NZ Borland Developers Group - Delphi List" <delphi@listserver.123.net.nz><br>
Subject: Re: [DUG] XE7 and Android Development<br>
<br>
</div>
<div>
<div dir="ltr">@David Brennan - I don't see how you reach the conclusion that XE7 + FireMonkey makes sense "if you have an existing code base", given that if you aren't already developing in FMX then that existing codebase is almost certainly VCL and given
all the observations you made about how utterly UN-re-usable your existing VCL code base was in your case.<br>
<br>
The pre-amble seems to point to the exact opposite conclusion. No ?<br>
<br>
For Eric, I would ask why you are interested in using Delphi for this ?<br>
<br>
If it is to exploit existing VCL code, then you have little chance of realising any benefit without an awful lot of work (perhaps even more than starting from scratch with an alternative tool/tech).<br>
<br>
If you seek to leverage familiarity with Delphi to fully exploit any and all Android devices, I suspect you will be similarly disappointed both because the Android support is simply not complete as well as because "Delphi for Android" is a quite different animal
than the Delphi you are used to. You might as well learn Java or apply any knowledge you may have of C# with Xamarin.
<div><br>
</div>
<div><br>
</div>
<div>Or, if you simply wish to continue using Pascal, you could look at RemObjects Oxygene (also previously known as Delphi Prism, in it's .NET garb as re-branded by Embarcadero for a time).<br>
<br>
I developed a very simple app in Oxygene for Android, iOS and WinPhone. In all three cases the app was developed using Oxygene (ObjectPascal with knobs on) but compiles to genuine, platform native binaries (i.e indistinguishable from those produced by Android
Studio, Xcode or Visual Studio). <br>
<br>
The Android version is here if you are curious:</div>
<div><br>
<a href="https://play.google.com/store/apps/details?id=itchbox.txt2park&hl=en">https://play.google.com/store/apps/details?id=itchbox.txt2park&hl=en</a><br>
<br>
<br>
The downside of the Oxygene approach (as some see it) is that you have to learn how to develop for each platform since there is no comprehensive cross platform abstraction library (although there is a library - Sugar - which makes a certain amount of re-use
possible at the RTL layer - sharing common string manipulation routines etc etc).<br>
<br>
But imho this platform specific aspect of the approach is absolutely NOT a downside for any serious mobile developer as you will quickly realise when you come to appreciate the differences between the platforms and learn how to write apps properly that look
and behave properly on each platform, instead of taking a "one size fits all" approach.<br>
<br>
</div>
<div>It also means that you are learning those platforms and if necessary can apply that knowledge directly to development using the platform native tool chains.<br>
<br>
i.e. With my simple app I have learned how to program a (simple, VERY simple) SMS sender app for Android, iOS and Windows Phone. I happened to use Pascal, but what I learned about the platforms is just as directly applicable in Java, Objective-C or C# (respectively).
It also means that you can *learn* from people with expertise in the framework even if they are using other languages.<br>
<br>
It is worth mentioning that all 3 versions of the app were developed in just one weekend even though there was zero code re-use between them. The app is essentially 100% UI, and each platform works completely differently when it comes to the SMS APi's so there
was no real chance for useful code re-use in such an app anyway.<br>
<br>
Actually, there were 6 apps in total since I also learned the advertising API's and controls appropriate for each platform (again, different in each case) and created two separate versions of the app for each platform, one free/ad supported, the other paid
for with no ads. <br>
<br>
Creating the 3 ad supported apps was another weekend. :)</div>
<div><br>
<br>
But Oxygene also is not hosted on Linux, being a Visual Studio plug-in (it is also supported by the free VS Community Edition, so there's no extra cost for using VS "Pro" any more).<br>
<br>
However RemObjects are also working on "Fire", an OS X hosted IDE (still not Linux but at least also Unix based) for all their languages, since they also provide their own C# compiler as well as 'Silver' - a.k.a Apple Swift. All three languages support all
platforms: Java/Android, iOS/OS X, .NET/WPhone.</div>
<div><br>
<div><br>
</div>
<div>Just my $2 (it was going to be 2c but thought I'd better protect it against future inflation). :)</div>
<div><br>
</div>
</div>
</div>
<div class="x_gmail_extra"><br>
<div class="x_gmail_quote">On 22 January 2015 at 16:29, David Brennan <span dir="ltr">
<<a href="mailto:dugdavid@dbsolutions.co.nz" target="_blank">dugdavid@dbsolutions.co.nz</a>></span> wrote:<br>
<blockquote class="x_gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div lang="EN-NZ">
<div>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d">We created an Android app in XE6 using a moderate amount of code from one of our big Delphi projects. It went OK and we successfully demonstrated the app
on phones at a trade show recently, people liked the app. During development we had a few annoyances with how Firemonkey behaved but in general it wasn’t too bad.<u></u><u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d"><u></u> <u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d">However getting our existing code (even units with no forms/frames) to work was a bigger issue than expected. We did it in a development branch were we
hacked things a moderate amount to get uses clauses and everything to compile with ifdefs, commenting stuff out, etc. A surprising amount of basic classes such as TPoint, TRect, etc (I think if I am remembering correctly) are not available in Firemonkey so
we had to do quite a bit of hacking. As a result the ‘hacked’ development branch can’t be used to compile VCL apps and will be thrown out (effectively it was a prototype). The next step is for us to refactor our code properly to allow us to cross compile between
VCL and Firemonkey with a minimum of ifdefs. This will be a reasonable sized project so it is waiting while other more valuable projects are being worked on.<u></u><u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d"><u></u> <u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d">Based on that fairly limited experience we believe Firemonkey to be viable for serious apps and we think it makes good sense if you have an existing code
base which you want to cross compile between Windows and Android/iOS. Whether Firemonkey is the best choice for someone who doesn’t need to cross compile is a different matter, you get some benefits from prior Delphi experience but the controls, designer and
some RTL portions are different so you still have a bit of a learning curve.<u></u><u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d"><u></u> <u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d">Cheers,<u></u><u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d">David.<u></u><u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d"><u></u><u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d"><u></u> <u></u></span></p>
<p class="x_MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none; border-top:solid #b5c4df 1.0pt; padding:3.0pt 0cm 0cm 0cm">
<p class="x_MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt; font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt; font-family:"Tahoma","sans-serif"">
<a href="mailto:delphi-bounces@listserver.123.net.nz" target="_blank">delphi-bounces@listserver.123.net.nz</a> [mailto:<a href="mailto:delphi-bounces@listserver.123.net.nz" target="_blank">delphi-bounces@listserver.123.net.nz</a>]
<b>On Behalf Of </b>Eric A<br>
<b>Sent:</b> Thursday, 22 January 2015 3:15 p.m.<br>
<b>To:</b> <a href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a><br>
<b>Subject:</b> [DUG] XE7 and Android Development<u></u><u></u></span></p>
</div>
</div>
<div>
<div class="x_h5">
<p class="x_MsoNormal"><u></u> <u></u></p>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri","sans-serif"">Has anyone in the DUG :<u></u><u></u></span></p>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri","sans-serif"">a) done serious Android device development using XE?<u></u><u></u></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri","sans-serif"">b) installed and used XE7, particularly for Android apps?<u></u><u></u></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri","sans-serif"">If not XE, what are people using/recommending as the best development platform for Android app development? (would be nice if it could be hosted on Linux, but not essential).<u></u><u></u></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
</div>
<div>
<p class="x_MsoNormal"><span style="font-family:"Calibri","sans-serif"">Eric<u></u><u></u></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@listserver.123.net.nz">delphi@listserver.123.net.nz</a><br>
Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>
Unsubscribe: send an email to <a href="mailto:delphi-request@listserver.123.net.nz">
delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe<br>
</blockquote>
</div>
<br>
</div>
</div>
</body>
</html>