#1 2017-06-17 16:31:30

Coonoo
Member
Registered: 2017-06-17
Posts: 6

Using Android (FMX) - SynCommon.pas

This library uses the "Contnrs" library. But this is not allowed. So the library can't be compiled. Please change this to "System.Generics.Collections".
After that, the creation of the objects should be changed too.

Offline

#2 2017-06-17 16:32:35

Coonoo
Member
Registered: 2017-06-17
Posts: 6

Re: Using Android (FMX) - SynCommon.pas

Please change this for all libraries

Offline

#3 2017-06-18 10:18:27

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,659
Website

Re: Using Android (FMX) - SynCommon.pas

No, I'm sorry your expectations are wrong.
See https://synopse.info/forum/viewtopic.ph … 348#p24348

We support Win32 and Win64 with all versions of the Delphi compiler, starting from Delphi 6 up to latest 10.2 Tokyo.
But we won't support the NextGen / ARC compiler in mORMot - at cleast in the closed forseeing future.
ARC is breaking compatibility at code level, and the Delphi Linux platform is so expensive and inefficient that we focus on FPC for server cross-platform support.
Thanks to FPC, you can compile clients and servers for Linux x86, Linux x64, Linux Arm32, Linux Arm64, Darwin/OSX, and even Android...
If anyone is willing to spend hours debugging and making the main mORMot units work with ARC, we will eventually merge the patches, for sure.
But we don't have the need to support those new Delphi platforms for server side, on our side. We won't lost time on it. For no benefit.

Offline

#4 2017-06-19 18:53:45

turrican
Member
From: Barcelona
Registered: 2015-06-05
Posts: 94
Website

Re: Using Android (FMX) - SynCommon.pas

Amen,

Don't waste your time with bloated Embarca$$$ro Linux Compiler. Use FPC instead.

Offline

#5 2017-06-20 17:02:04

Coonoo
Member
Registered: 2017-06-17
Posts: 6

Re: Using Android (FMX) - SynCommon.pas

Oh. Thanks for the hints :-) I'am playing around with mORMot and tried to build an Delphi Android client app.

Ok. I did not know this, and tried to use these units. The first I found out is, that in the unit "SynCrossPlatformREST" the nullable types are not there:

  TNullableInteger  = type variant;
  TNullableBoolean  = type variant;
  TNullableFloat    = type variant;
  TNullableCurrency = type variant;
  TNullableDateTime = type variant;
  TNullableTimeLog  = type variant;
  TNullableUTF8Text = type variant;

Please add @ab :-)

And then I did not understand, how the Interfaces has to be used. I think the IServiceAbstract Interface should be used (a small sample would be great as for using without interface (Calculator), which is added in SynCrossPlatformREST).

But the biggest main missing thing for me is the fact, that no WebSocket connection can be used. PLEASE - I need this :-)) This is because I need the callback functionality, which is really a great thing in mORMot.

Until now I build a small server (windows) and a small client (windows) as samples for me to understand the mORMot basics better :-)
Both works fine including Dataset on client side - but the clientdataset has the problem that (mORMotMidasVCL.ToClientDataSet) the ApplyUpdates button of the DBNavigator (VCL) is never been enabled. Also calling "ApplyUpdates" does not change any data (SQLite) on the server side.
But adding and changing records on client side is possible. Is the issue on my side, or is the class not finished yet, or... ?

Offline

#6 2017-06-20 17:57:52

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,659
Website

Re: Using Android (FMX) - SynCommon.pas

So two feature requests for SynCrossPlatform:
1. nullable variant types
2. WebSockets client

For interfaces to be used, see https://synopse.info/files/html/Synopse … DE_TITL_86
In short: you create the interface, then implement it using a class on the server, and create a fake implementation at runtime filling an interface variable on the client (Win32/Win64 for Delphi, or all supported platforms for FPC).

I do not use ToClientDataSet in practice, but you may try from sample "17 - TClientDataset use" to find out how it works.
In fact, I don't use TDataSet as such, but use an interface and fill the VCL/FMX/LCL components from the interface method fields.

Offline

Board footer

Powered by FluxBB