Tag: firemonkey

(FTFT), Google Inc. (NASDAQ: GOOGL) – DevTeam.Space: A solution for remote software development

Alexey Semeney is the Founder and CEO of DevTeam.Space, a company that provides software development solutions on a global scale. The CEO points out that DevTeam.Space is not a traditional software development agency or an independent platform, but rather something new. DevTeam.Space is a community of 62 expert development teams. Each development team has 10 to 50 developers and specializes in a particular technology stack. These specialists can meet various software development needs including website and mobile application development, blockchain solutions, fintech applications (NASDAQ: FTFT), and even game development for companies of all sizes. Other products for customers include R&D prototypes for field testing that could potentially impact many lives in the healthcare industry. Mr Semeney describes a project for a hospital that asked the company to build a technological prototype using infrared scanners to create a solution that would identify the movements of patients who had been in a coma for a long time. This system would help the hospital raise the alarm for the medical staff. “DevTeam.Space has completed over 150 projects since 2016, and we’re just getting started. Says Semeney. The agile process powered by AI The CEO explains that a software development process centers around different programming languages, people and tools just like any other project. “As humans we can be forgetful, but we don’t want human error to impact the communication or the delays we have,” says Semeney. “For this reason, we have developed a proprietary, AI-driven agile product development process that helps manage developers. It sends automated updates and follow-ups, performs task management actions, and educates customers and developers to make sure all procedures are up to date and everyone is on the same page. To accomplish tasks efficiently, specialists from each team collaborate on projects and follow a specific process to achieve predetermined deadlines. The advantage of having a community of specialized development teams is that the company is not limited in any task, while maintaining the highest standards. If there is a need for a specific developer, the account manager can assign someone from another team with relevant expertise. In addition to this, DevTeamSpace assigns dedicated technical account managers to help clients manage developers. Product development process Typically, independent developers don’t have specific processes. They manage multiple projects, which makes them difficult to hire and even more difficult to manage. On the other hand, large companies can afford to assign less experienced developers and often do. The solution for DevTeam.Space is to hire expert developers who are intrinsically motivated. After working in Silicon Valley, the CEO observed that highly skilled developers prefer to work in small teams in order to feel the impact of their work within a company. Not to mention the benefits of small teams working together to push towards a common goal. Ethics of DevTeam.Space DevTeam.Space is founded on ethical communication, transparency and accountability. Although developers meet face to face to collaborate in the office, the team hired is distant from the end customer. This means that the customer is dependent on the ethics of the employees of the company. DevTeam.Space is adamant in hiring approved developers who can communicate every step of the development process. That said, the CEO maintains that meeting clients face-to-face is not a necessary part of the hiring process. “Face-to-face meetings for regular business communication will eventually become obsolete,” explains Semeney. “It’s great to be in the same office as we fill in the gaps in tasks through informal communication. When working remotely, it’s much more efficient to have a well-defined process for clients and developers to communicate. The DevTeam.Space developer community is responsive and ready to go the extra mile. It is not necessary to spend time traveling and meeting. We respect our customers’ time and use this time to create high quality software products. More limited in choosing a developer Hiring locally to meet face to face has many limitations. DevTeam.Space has a form of structured communication, so that the client spends less time and energy clarifying tasks. This eliminates the need to hire locally, which is usually limited to a handful of options, unless you live in a big city like Los Angeles. This can lead to a backlog and loss of talent for companies, not to mention above-market prices based on the high demand in the region, the exact challenge of Silicon Valley. Find DevTeam.Space via a Google (NASDAQ: GOOGL), searching for a blog or article, and scheduling a call simplifies the process. DevTeam.Space serves customers from all major developed geographies, proving that this system works. For more information visit: https://www.devteam.space/. Development teammail@devteam.space Image by StockSnap from Pixabay © 2021 Benzinga.com. Benzinga does not provide investment advice. All rights reserved. Source link
Read More

Delphi 10.4 [PAClient Error] Error: E0776 error: exportArchive: Provisioning profile "**" doesn’t include signing certificate "Apple Distribution: **"

At dev Apple portal i create all certificate: my iOs distribute AppId Provision Profile In XCode I create simple app with the same BundleID. And i see certificate normaly. But Delphi 10.4 dont see signing certificate. [PAClient Error] Error: E0776 2021-11-01 18:58:12.370 xcodebuild[16327:1202645] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/hj/f9ghw_0517zbkpp54l0fzk6w0000gn/T/AA.BB.CCCCCCC_2021-11-01_18-58-12.370.xcdistributionlogs'. [PAClient Error] Error: E0776 error: exportArchive: Provisioning profile "*******_PP" doesn't include signing certificate "Apple Distribution: MYNAME (G1234567890)". [PAClient Error] Error: E0776 Error Domain=IDEProfileQualificationErrorDomain Code=5 "Provisioning profile "*******_PP" doesn't include signing certificate "Apple Distribution: MYNAME (G1234567890)"." UserInfo={NSLocalizedDescription=Provisioning profile "*******_PP" doesn't include signing certificate "Apple Distribution: MYNAME (G1234567890)"., IDEDistributionIssueSeverity=3, IDEProfileQualificationError_MissingCerts={( [PAClient Error] Error: E0776 <DVTSigningCertificate: 0x7fe14de74960; name='Apple Distribution: MYNAME (G1234567890)', hash='3A30204A02891B49500BF2B2F2DD9*********', serialNumber='<DVTSigningCertificateSerialNumber: 0x*********>', certificateKinds='( [PAClient Error] Error: E0776 "1.2.840.113635.", [PAClient Error] Error: E0776 "1.2.840.113635." [PAClient Error] Error: E0776 ), issueDate='2021-10-29 12:18:01 +0000''> [PAClient Error] Error: E0776 )}, IDEProfileQualificationError_Profile=<IDEEmbeddedProvisioningProfile 0x7fe148d05850: name: *******_PP, UUID: *******-cc92-4ef6-9f94-a021d4a3c6d8, teamName: MYNAME, teamIdentifierPrefixes: ( [PAClient Error] Error: E0776 G1234567890 [PAClient Error] Error: E0776 ), entitlements: { [PAClient Error] Error: E0776 "application-identifier" = "G1234567890.AA.BB.CCCCCCC"; [PAClient Error] Error: E0776 "beta-reports-active" = 1; [PAClient Error] Error: E0776 "com.apple.developer.team-identifier" = G1234567890; [PAClient Error] Error: E0776 "get-task-allow" = 0; [PAClient Error] Error: E0776 "keychain-access-groups" = ( [PAClient Error] Error: E0776 "G1234567890.*", [PAClient Error] Error: E0776 "com.apple.token" [PAClient Error] Error: E0776 ); [PAClient Error] Error: E0776 }, appIdentifierName: *******, applicationIdentifierPrefixes: ( [PAClient Error] Error: E0776 G1234567890 ****** [PAClient Error] Error: E0776 ** EXPORT FAILED **
Read More

How to delete a database record linked to a listview item?

I built a multi-device app using FireMonkey. I have a ListView Live-Binded to a DB. Both synched by *. It all works normally until I left wipe an item to delete. The item can be deleted, but the DB record is not. So following Doug Rudd advice, implemented following code to store DBID and locate the deleting Item. procedure TPassPlus.LinkListControlToField1FilledListItem(Sender: TObject; const AEditor: IBindListEditorItem); begin (AEditor.CurrentObject as TListItem).Tag := DB_Table.FieldByName('DBID').AsInteger; end; myDBID:= ListView1.Selected.Tag.ToString; if DB_Table.Locate('DBID',myDBID,[]) then DB_Table.delete; It worked well to delete the DB record. However, when ListView1DeletingItem event finished, it generated a 'Argument out of range' error, which can be traced into TPresentedListView.DoDeleteItem event. It looks like, when DB record deleted, Listview has deleted the correspoding item, so when ListView1DeletingItem event finished, ListView has nothing to delete. What is the solution? I was trying to decouple the link between the DB and Listview at runtime so I can delete the record and re-link the two. I tried following code as a test. procedure TPassPlus.ListView1DeletingItem(Sender: TObject; AIndex: Integer; var ACanDelete: Boolean); begin ListView1.BeginUpdate; BindSourceDB1.DataSource.DataSet.close; //or LinkListControlToField1.Active:=false; ListView1.EndUpdate; end; On either case, it will produce 'Argument out of range' error. I think LiveBinding suppose to bridge UI and Dataset, Deleting an item of Listview natually should delete the bound data record. If not, what is the point of using LiveBinding? No wonder so many negative comments on LiveBiding. It cannot implement some basic UI-Data binding function. Correct me if I am wrong.
Read More

Change the style of Firemonkey Listview item button at runtime

I want to change the style of an Accessory button in ListView Item. I'm using a Custom style (Jet style) that is shipped with RAD Studio. The Accessory Button has 2 style objects. The style names as follows : one is normal(accessorymore), and the other is when the item is selected(accessorymoreselected). Now, the style changes if the Listview item is selected. However, I disabled the selection in the Listview. I want to change the style of when I press the Accessory button itself. I've Added a custom png image named Selected.png for the accessorymoreselected style by utilizing the Bitmap designer using the source link property of the StyleObject. On the ListViewItemClickEx Event : TListView(ListView1.Items[ItemIndex].View.FindObject('Acc')).StyleLookup := 'Selected.png'; I get an Access violation. How to properly change the style of the accessory button if clicked ?
Read More

Custom Software Development Services Market Size, Forecast 2028

New Jersey, United States, – The Custom Software Development Services Market The report provides a basic overview of the industry, including definitions and classifications. Market analysis is provided for the international markets including development trends, competitive landscape analysis, and key regions development status. The study gives a complex examination of its applications, including a detailed […] … Read More

Read More

Listbox does not show the changes made to the Dataset

I have a FMX ComboBox connected through LiveBindings to a ClientDataset. Everything works fine, until I needed to filter the data from the ClientDataset. After applying the filter, ComboBox.Items and ComboBox.ListItems are ok, i.e., it is the data contained in the filtered ClientDataset. But the data that the ComboBox listbox shows is always the same: the data that the ClientDataset contained the first time the listbox was displayed. procedure TForm14.Button1Click(Sender: TObject); begin LinkFillControlToField1.Active := False; ClientDataset1.Filter := 'TYPE = ''N'''; Clientdataset1.Filtered := not ClientDataset1.Filtered; // Deactivate and Reactivate the link is necessary to refresh the data LinkFillControlToField1.Active := True; end; In that code I change the filter to the ClientDataset and I deactivate the LinkFillControlToField and after applying the filter I activate it again to refresh the data. It works without problems with TListBox and other controls, but not with a TComboBox, although ComboBox.Items and ComboBox.ListItems do contain the correct data, but it is not the one shown in the combobox listbox. Is there a way to solve this, using LiveBindings ? I have looked for properties and methods of the ComboBox (Repaint for example), the LinkFillControlToField and the BindSourceDB, but nothing has worked for me. I use Delphi 10.4 Update 2, Firemonkey Windows application (32 or 64) running on Windows 10. TIA., Ricardo
Read More

Thriller: a story to go from idea to live web app in less than 5 working days

This is a different article. It’s a little bit
longer than usual.

It’s the story of how a software developer team, working together, using wonderful & highly productive
development tools
, made an idea become real in less than 5 working days.

It’s the story of how TMS Software, using Embarcadero
Delphi 11, TMS Web Core
and TMS
, made an unexpected and time-constrained request from Embarcadero to
create RADoween, a cloud app available on nearly every platform around. In less than 5 working days!

We hope you enjoy the ride.


The start

Oct 14 at 16:24
, Bruno Fierens received
an email from Embarcadero General Manager Atanas Popov with a “quick idea” to
create a web app that can be used to organise a contest for Halloween fun pics.
Basically the app needs to provide the capability to send pictures, show a list
of pictures and let people vote for the nicest pictures. 

Bruno saw this email only a bit later this
same day at around 18:00 and replied:

And yes, only a few minutes later, on Oct 14 18:23, Bruno learned that the
web app had to be live on Oct 21,
that is 5 working days later and that technically we basically had a free
choice for the needs for hosting and back-end:

Realizing the immense
challenge this would be if Bruno accepted to create this web app, Bruno
immediately reached out an hour later to colleague and architect of our REST
back-end server product TMS XData, Wagner Landgraf:

 Over a Whatsapp call this Thursday night of Oct 14, Wagner and Bruno first of all
discussed if it was feasible at all to allocate on such a short term the time
and resources to create this project and also importantly, what could be the
potential benefit for the TMS team to accept this somewhat unusual challenge.
Bruno and Wagner agreed that this was clearly a risk to deliver this in such an
incredibly short time, that if this challenge was successfully handled, it
would be a very nice demonstration of the productivity that Delphi developers
can have with Delphi and the TMS products. And finally, when hard challenges
are given, Bruno and Wagner share that competitive spirit to prove we can do
the impossible. But having become a bit older (and wiser?), Bruno and Wagner
decided to leave the call with the decision to ask  Atanas commitment that there could be a nice
promotional action around it for Delphi 11 & TMS tools and at least sleep
one night over it before making a final decision.

Friday Oct 15th, Bruno wakes up and
finds the email with the confirmation from Atanas about the commitments. So,
now there isn’t much time left for doubts, sometimes in life, one just has to
jump and with this in mind Bruno leaves home for the office and first thing is
having a meeting with the whole Belgian team to inform them about the story
that crossed our path.

Given the extensive experience with TMS WEB
Core from our colleague Bradley Velghe with developing the TMS Web Academy, we decided in the
meeting that Bradley would be the main developer for the front-end with TMS WEB
Core. Bruno would supervise and other colleagues standby in case technical
issues arise in specific corners.

After this meeting, on Friday 15th, 10:15 AM (5:15 AM in Brazil) Wagner received this
message from Bruno, with the final OK to do the project. He also provided a
draft with the technical specifications of the XData backend server to be done:

The development

As there was not a minute to waste, Bradley
and Bruno immediately got to work to bring the app to life all from the Delphi
11 IDE. We decided we need:

  • a form to take the picture, select the picture, collect information and
    submit it 
  • a form to see the submission
  • a form for admin purposes to delete inappropriate submissions

Bruno, Bradley and Tünde brainstormed about
what could be the approach to show the submissions. We decided on a
mobile-first approach (as people will most likely take the picture with the
smartphone anyway) and for the submission list, a sort of Instagram like

So we added a couple of controls to the submit

  • A few edit controls and comboboxes
  • A file picker for the users who
    want to select and submit a picture
  • A control to access the device
    camera and take a picture
  • And most importantly a picture
    preview component


Swiftly, we arrived at the conclusion that the
TWebContinuousScrollControl would be by far the most suitable and flexible
control to show the submissions in a scrollable list. The advantage that TWebContinuousScrollControl brings is that one can define the number of
entries to load at once and it will automatically load additional entries as
the user scrolls through the list.

While building these forms without any kind of
layout so far is done in a matter of hours on Friday, it is very limiting to
not have a backend yet for testing submitting info and for getting submission
information. Given Wagner works in a different timezone, we decided to quickly
create a small local mockup REST API backend based on Datasnap from the
Embarcadero Delphi 11 IDE. We basically reused an existing Datasnap server and
extended it with the REST API endpoints needed to perform submitting an entry
and to retrieve entries. Bruno brought this mockup backend to life also in a
couple of hours so that Bradley could already start testing against it.

Conclusion at the end of Friday Oct 15 Belgian
time was that we could capture information with a picture file and submit it and
navigate to a second page and show the submitted entries.

After the office hours started in Brazil,
Wagner finally started the first iteration with team in Belgium, after 2 PM (9 AM in Brazil):

While the definitive XData server was in the
works in Brazil, the team in Belgium continued the frontend development using a
mockup server copied and pasted from some random old server project they had,
adding the endpoints the faster they could.

Less than two
hours later
, the first version of the XData server with the first endpoint
was provided, including the
SwaggerUI from which the team in Belgium could not only list and
see all the endpoints documented, but also test the endpoints right away, from the

Minutes later, after quickly exchanging some
technical details, Bruno made an interesting remark:

This shows how flexible (and productive) XData
is. The team was not only bringing the project to life at light speed, but in
the specific case of the backend, it would be desired that instead of using
XData “default” routing, the XData server should mock the exact
endpoints of the mockup server (same URL, same parameters in query, same JSON
format), to prevent the Web Core team to spend time adapting the web app for
different endpoints. And that is what was done, very fast.


Then, at 5:32
, the XData server was
completed, feature-wise, with source code available for the WEB Core team:

While the XData server source code was
available for the Web Core team, and they could compile and run at their side,
they were so focused on frontend development that they simply continued to work
with the mockup server.

It was then decided to make the XData server
available online already, so the frontend team could easily ditch the mockup
server and develop using the real, in production RADoween server.

The XData server source code was cleaned up,
reviewed, and deployed to an AWS EC2 instance behind a production Traefik edge
proxy, at the final URL endpoint, using SSL encryption. At 10h23 PM Brazilian
time, at the end of the same day the
development started
, the RADoween server was up, online and running:


And then comes the magical moment… In the car
industry, bringing the chassis and frame of the car together is called
“the marriage”. So, bringing the front-end and back-end together is a
kind of similar experience in web app development and we call it as such the
marriage between front-end and back-end.

On Saturday morning Oct 16, Bruno basically swapped the base URL on localhost of the
mockup server with the live hosted XData base URL and magically, the basic web app
started working right-away. A wonderful feeling!


No time to waste in the weekend

About 12 working hours later after the
kick-off of the Thriller project, Bruno also integrated the TWebCamera
component to allow pictures to come from the device camera source as well.

At Oct 16, 7:09 Brazil time, Bruno sent the
very first picture taken from the camera to Wagner.


 Still on Saturday Oct 16, Wagner made the
remark that it would not be safe for the server to accept images of any size,
it could easily fill the cloud storage completely, besides using too much

The server should clearly reject images bigger
than a specified size, but what size should be enough? The client app could not
ask for the user to “reduce their picture size”. So besides limiting
the image size, server-side, for security, the app should also somehow reduce
the image size client-side already.

Of course, this remark from Wagner made very
much sense. On Saturday afternoon, Bruno cannot resist spending the afternoon
with a bicycle ride, even when the pressure of the project is so high.

So, on Sunday morning Oct 17, Bruno takes the
remark from Wagner seriously and starts working on the detection of the picture
payload size and when it is higher than 1MB, automatically reduce the image
size in the web client application. This crucial part was  added to the project in the morning of Sunday
Oct 17.


A new working week with 3 days to go

On Monday morning Oct 18, Bruno and Bradley
quickly summarized the next steps to do:

  • Add support to choose the device
  • Add the voting capability 

Add the admin page to delete inappropriate
entries. As Tünde in the Belgian team had most expertise with building the
TWebCamera component in TMS WEB Core, Tünde was asked to create the web camera
selection handling separately.

Bruno worked on the admin page to delete
entries and Bradley worked on voting, sorting, submission entry validation and
so many more small but necessary things in the app.

Before the end of Oct 18, the camera selection
work from Tünde was brought together with the submit page, the admin page was
added and could be opened from the app

We wanted to add the capability to view a
single submission and allow the user to share his entry via a variety of
channels, typically done with the share sheet on a mobile device. So, Wagner
was asked to add another REST API endpoint to retrieve single entry details.
And in the submission list, Bruno wanted to add the capability to sort up/down
by votes, names and by timestamp of submission. The same day, Wagner added the
parameters to the endpoint to retrieve the entry list to include sorting.

By the end of the 3rd working day, the app was more or
less fully functional but had nothing special yet for layout, graphics, look
& feel:

Bare UI in the first prototypes

2 days left for UI

The quote, “There is never a second chance for
a first impression” applies to software as well. These days, users have come to
expect nice looking and inspiring user interfaces and on top of this, it needs
to look good on all possible screen sizes of devices where a browser is

So, Bootstrap was used to create the
responsive design together with some custom CSS and graphics for the final UI.
This UI was created in a HTML template. TMS WEB Core offers a unique mechanism
to bind HTML elements from a template to controls. This enables a graphics
designer to focus on the HTML & CSS to create the look & feel while the
developer can focus on the page control logic. Fortunately, Bradley has
experience with both TMS WEB Core coding and Bootstrap, HTML, CSS.


Go live

With just a few iterations, Bradley put together the UI in just 2 days,
assisted with testing, did final polishing and this is the look of the app when
it went live in the afternoon of Oct 21:

Submission form, here used to submit a selected
picture from the local drive.

Screen with list of submissions. Click the
pumpkin to like the picture, or share your submissions with others by clicking
on the button to show the device share sheet:

You can take a sneak peek at the working application in this video:


Curious to know all the details of how the
coding was done for the RADoween app, both the front-end with TMS WEB Core and
the back-end with TMS XData? Join us on a live
via the
TMS WebAcademy on Nov 4 at 4PM UTC (17h00 CET) where your hosts
Bruno, Wagner and Bradley will guide you through all technical details and show
you how you can create a similar app in a record time.

 Subscribe here for the webinar: https://www.tmssoftware.com/site/tmswebacademy.asp?id=122 

As a bonus, during this webinar, you will get the link to the GitHub repository
where you will find the full source code
for both the web client app and the REST server.

To prepare to play with this source code
yourself as we publish it, make sure you already have TMS WEB Core and TMS XData installed
in your Embarcadero Delphi 11 IDE!
You can download a fully functional trial version of TMS WEB Core here: https://www.tmssoftware.com/site/tmswebcore.asp
and a fully functional trial version of TMS Business Subscription with TMS
XData here: https://www.tmssoftware.com/site/xdata.asp

Read More

Read More

C++Builder: Generated code is not removed when component is deleted

I just installed Embarcadero C++Builder 10.4 Community Edition. I created a new VCL-applcation and added some components TButton and TLabel to the form. To the button I added an OnClick event: //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Button1->Caption = "Hej!"; } //--------------------------------------------------------------------------- When I delete the button in the designer, the generated code is not deleted. From Delphi 10.4 I know,that the generated code is removed. Is this generally not working in C++Builder and do I need to remove the code manually? I also tried a FMX application, it does not work either.
Read More

The much anticipated TMS WEB Core v1.9 is released

For this new release of TMS WEB Core v1.9, we let us inspire by the extra-ordinary nature of the Italian place Sentina along the coast of the Adriatic sea. It is along this coast that in 1955 the famous Mille Miglia race was happening and that inspires the entire cycle of releases of TMS WEB Core. After the wonderful place Sirolo we chose for v1.8, we believe Sentina is equally beautiful. 

TMS WEB Core v1.9 Miletus highlights

As many TMS WEB Core users know meanwhile, it also brings cross platform development based on web technology via the Miletus technology. That means that you can create from TMS WEB Core a desktop cross platform application that will have a GUI built with HTML5/CSS3 and can be deployed as single EXE executable on Windows, macOS and Linux. In the area of Miletus, the two highlights for TMS WEB Core v1.9 are that from now on we support macOS ARM based CPUs as well as Raspberry Pi OS desktop apps. 


So, from your favorite Delphi IDE, you can create a Miletus executable and do XCOPY deployment to your Apple device (with M1 CPU or Intel CPU) as well as to your Raspberry Pi device. The interesting part for Raspberry Pi is that there are also new components to let you take advantage of the hardware extensions connected to your Raspberry Pi via i²c, SPI, UART or GPIO.
See for yourself in this video from colleague & evangelist Dr. Holger Flick:

or read all the details about it in this blog

TMS WEB Core v1.9 framework highlights

Of course, TMS WEB Core v1.9 means much more than adding these two new Miletus targets. Also on the framework side we did numerous improvements and brought several new features.

New Bootstrap 5 project type

One of the immediately noticeable new features is the new Bootstrap 5 enabled web client application template. From the Delphi IDE, simply select this type and the IDE will create for you a ready to use Bootstrap 5 enabled app, including the deployment of the minimum Bootstrap JavaScript and CSS file. When you drop components on the forms in the Bootstrap 5 project, these components will be initialized with class settings to match preferred Bootstrap 5 CSS classes. We think this will help you gain more productivity than ever.

Other new features

  • New :
    TWebEdit.SpellCheck property added
  • New :
    TWebHttpRequest GetSize() method & OnProgress event added
  • New :
    TWebMainMenu & TWebPopupMenu: Menu Item Hint displayed when hovering
  • New :
    WEBLib.Diagnostics unit added with TStopWatch record
  • New :
    Runtime form creation demo added
  • New :
    Published Title,Text,URL properties for TWebShare + Execute function
  • New :
    ShowPicture, FontHoverColor, DragColor property added for TWebFileUpload
  • New : Demo
    for Google Recaptcha added  

Other than this, there are under the hood numerous component, RTL, library and compiler enhancements that will improve your day to day development job for creating web client applications with TMS WEB Core.

Get started!

If your customers ask for apps without deployment complexities, that are always up to date, that can be installed from mobile devices without the friction of app-stores and that can take advantage of a rich availability of modern & nice-looking GUIs made with HTML5 and CSS3 on any device with a modern browser, … dive into the world of TMS WEB Core now. You can download your free and not functionally limited trial version of TMS WEB Core from the product page.
Note also that when you prefer to develop directly on a Apple mac machine or Linux desktop, we also have TMS WEB Core for Visual Studio Code that can directly run from these platforms.

Dive a step deeper into the framework by learning from the TMS WEB Core book you can purchase via Amazon.

or follow the TMS WEB Core training course at Landgraf.dev.

Be in touch!

Of course, our team is devoted on continuing this fantastic voyage for offering web development capabilities to Delphi developers and we love to learn from your experiences every day and hear what you wish in future versions. Help us steer the direction for TMS WEB Core by expressing where you feel you can still be more productive, what additional tools and components you love to see coming, what you would wish to see in the area of binding to a back-end. Our team is listening via our usual support channels.

Read More

Read More

Why do I get an ANR when I close my android App with a service and a TMultiView in drawer-mode

my Delphi android app has a sticky service running all the time, and I uses a TMultiView in drawer mode. When I close both the service and the app, I now almost everytime get an ANR after 2-4 minutes, and while waiting on the ANR (the app isn't visible) I can't start the app, it only shows the splash screen. But if I changes the mode for the TMultiView to Panel, I have no problems when closing the app. I think it startet when I was upgrading to Delphi 11, but I am not sure. I tried to make a simple test, but it unfortunately only gets an ANR every 5-10 times I close the app, but here is the code for the test: interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Controls.Presentation, FMX.MultiView, System.Android.Service, Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers; type TForm1 = class(TForm) mltvw1: TMultiView; btn1: TButton; procedure btn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private FService: TLocalServiceConnection; procedure ServiceConnected(const ALocalService: TAndroidBaseService); public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.btn1Click(Sender: TObject); begin Close; end; procedure TForm1.FormCreate(Sender: TObject); //var // LIntent: JIntent; begin FService := TLocalServiceConnection.Create; FService.OnConnected := ServiceConnected; // LIntent := TJIntent.Create; // LIntent.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString('com.embarcadero.services.ServiceTest')); // TAndroidHelper.Activity.startService(LIntent); FService.BindService('ServiceTest'); end; procedure TForm1.FormDestroy(Sender: TObject); begin FService.LocalService.JavaService.stopSelf end; procedure TForm1.ServiceConnected(const ALocalService: TAndroidBaseService); begin end; end. And the service interface uses System.SysUtils, System.Classes, System.Android.Service, AndroidApi.JNI.GraphicsContentViewText, Androidapi.JNI.Os, Androidapi.JNI.App; type TDM = class(TAndroidService) function AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; private { Private declarations } public { Public declarations } end; var DM: TDM; implementation {%CLASSGROUP 'FMX.Controls.TControl'} {$R *.dfm} function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin Result := TJService.JavaClass.START_STICKY; end; end.
Read More

Delphi Android service crash when add FMX.types declaration

I have Delphi 11 Alexandria, and I've recreated the simple demo to "make an Android Service". It works fine when I run it on my Android phone, so now I want to add more complexity to the service by adding a TTimer component to the TDataModule, but when I add the TTimer then the app crashes when started. Then I remove the TTimer component from the TDataModule and run again, but the app crashes again. If I then remove the declaration of FMX.Types from the service (it was added when I put the TTimer on the TDataModule), then the app run fine again. Why is it not possible to add FMX.Types into an Android service? Is it not possible to use TTimer in an Android service?
Read More

Software development trends for 2021 ⋆ the Costa Rica news

The Corona disaster was certainly a huge deal for the world. There has been a huge loss in all sectors. To overcome the peril, many companies have had to adopt digital measurement, which has become the only survival guide for these sectors. It has become the only means of communication between people. To say that the IT industries had to come up with a strategy to reverse the drawbacks of the calamity to help other industries out of the abyss of the dilemma. At this point, the world has never witnessed the need for technological innovation. Businesses are totally dependent on the IT industry to help them overcome the situation by developing and designing more and more applications that tend to improve operational performance and customer experience. TRICK: Receive our latest content in join our newsletter. Do not miss news that matters in Costa Rica. Click here. 2020 has seen the miraculous development of innovative ideas and concepts and as of now in 2021, the demand for these innovations is still in high demand. Here are some development trends that are helping the organization to become more competitive. AI / Artificial Intelligence As of today, who hasn’t heard of AI? It’s the hottest innovative breakthrough the world has ever seen. The invention of this particular idea is extremely transformative. Many web development platforms have applied artificial intelligence in certain areas to improve the speed and ease of developing an application or web page. Using AI allows them to work faster than before and without errors. Merging AI into the development process helps developers check the code so they don’t get stuck during the development phase. It provides the developer with just-in-time support, guidance and knowledge on the platform, so there is no pause during production. To put it in layman’s terms, it works like a teacher for the developer. Keep tabs on their progress and give plausible advice whenever the developer gets stuck in an irreversible situation. Costa Rica legalizes medicinal marijuana RPA / Automation of robotic processes RPA is a software technology that is gaining popularity in the business sector. It facilitates the creation, deployment and automation of software that can mimic human action. Like understanding what’s on the screen, navigating the system, and identifying and extracting useful information. It can also be done by humans, but these are mundane tasks that take a long time. Although he can perform the task at a faster and more constant rate than humans. A human being bored by repeating the same task over and over again, which leads to unproductive results. A robot does not object to the task given to it, because it is the only thing it has been programmed to perform. PWA / Progressive Web Applications PWAs are extremely popular these days. It highlights the benefits of websites and mobile apps by providing the user with a streamlined experience without using a separate app. User experience is the same as an integrated app on mobile and desktop without having to download additional files or update errors. These applications are developed by applying JavaScript, HTML and CSS. One can use this application on any platform using web browser. This app can also work without any internet connection and they are incredibly light, a single progressive web app is about the size of 1 megabit. How to attract good luck in your life CI / CD: Continuous integration / Continuous delivery Continuous integration and continuous delivery is a process during software development. While CI ensures that changes made to encodings by multiple engineers are integrated into a single point of connection which is the software project, CD promotes all changes that have been made as well as bug fixes, with ease and efficiency. In this way, the IT team can speed up the software development process. This allows development companies to complete the project quickly while saving time and money. It is one of the remarkable trends in business software that is gaining insignificant popularity to this day. Rapid prototyping is a method that allows IT companies to come up with a software prototype during the planning phase of a project. In doing so, it helps businesses spot the flaws, drawbacks, flaws, and weaknesses of a product. This helps to minimize the costs involved in product development. The whole purpose of rapid prototyping is to turn ideas into a scalable prototype of a product that is given to customers to test the user experience. It helps in the development process by eliminating errors in the development phase and acting on them quickly to improve. It is a useful software trend adopted by several IT companies to make the development of a project error free. Digital transformation facilitators A digital transformation tool makes it possible to synchronize, integrate, visualize and analyze data to finally understand all the information at a single point in the database. It can be used to develop new value-added services as well as to update old traditional software and applications. This is the process by which the platform converts traditional analog to digital. With digital transformation, new ideas will flourish, but it is necessary to have the Mechanism to transform them into conclusive benefits. There is immense pressure from the organization to digitize everything. The speed of implementation is therefore critical. To meet growing demands, companies need to deliver effective tools to start a faster innovation cycle and enable a higher level of organizational flexibility. Low-code development is becoming preferable by many IT industries. This is another growing trend in software development that has successfully carved out a place for itself in the ever-changing software trends. A low-code development platform allows the developer to develop software through a visual interface in which in the past most application software was developed using traditional hand-coded computer programming. It only needs encodings in certain situations where it becomes necessary. It helps the developer to write application software faster than before. Since it only needs a few encodings to be integrated. Future-proof applications New applications are released daily nowadays, but for existing applications, companies find it difficult to rewrite encodings and redesign the interface because it is time consuming and resource intensive. This means that new apps are getting ahead of the competition, which is also not good for business. To solve this dilemma, companies are investing in platforms and tools that can help them stay put even as technology changes rapidly. That’s what the future-proof apps mean. However, it is not possible for an app to go without an update to stay up to date. Therefore, in addition to the tools and the platform, companies must follow strict principles and strategies so that the application lasts longer without updating. A trend is the popularity of a particular thing at any given time. This can change overnight, however, by amassing all the facts and information, we can say with certainty that these software development trends will last for a long time, but it is inevitable that the emergence of new trends is highly possible. With the rapid evolution of technology, it is undeniable that whatever the trends are, they will be beneficial for human beings. SP LIKE THIS ARTICLE ? Sign up for our newsletter and we’ll send you updates of our latest contents as soon as they are available. Click here. Source link
Read More

FMX: Does TBitmap.SetSize initialise the pixels?

With the following code, will the pixels be initialised to zero (fully transparent), or is there a chance that some random memory will be left in the image? Bmp := TBitmap.Create; Bmp.SetSize(400, 400); Of course I can use Bmp.Clear(0) to make sure it's cleared, but I don't want to if not necessary. It does seem though that on at least some computers SetSize does not initialise the pixels. This would be surprising since I'm sure that the equivalent function in VCL does. Of course the Embarcadero documentation for SetSize doesn't mention this. I'm using Delphi 10.4 and building for Windows 32bit.
Read More

Why Unity Software’s Business Model Has a Built-In Competitive Advantage

Not all business models are created equal and Unity software (NYSE: U) has a pretty interesting one. Simply put, the business allows creators to start their journey and then only profits if those creators are successful. It costs Unity little to do so, but allows it to take advantage of the uplift. In this video by Motley Fool Behind-the-Scenes Pass, recorded on October 11, Fool contributors Jon Quast and Jose Najarro as well as analyst Sanmeet Deo explain in more detail how this business model works in Unity’s favor. Jon Quest: It’s a company that I don’t know much about and I was eagerly waiting for someone like you to break it down like this. I really appreciate this. One thing I wanted to point out, I did a bit of homework before I came on the show today, and I just wanted to point out, you pointed out the different revenue segments for Unity. And the operating segment, so that’s after a game or whatever has been released, they provide that service to those developers on an ongoing basis from there, that’s actually the biggest part. of activity in the second quarter of 2021. I just did the math, 67% of almost all of their revenue came from the operating segment. What I also found very interesting is that operating solutions, according to the S-1, generate revenue primarily through usage-based models. While the creative segment of the business is a subscription, the operations segment is a usage-based model, which I find very interesting when you think about it from a potential perspective. We spoke on the show before about how mobile gaming is the only part of the video game industry that is actually growing. So, by being a usage-based model, Unity empowers these game developers, and once one of them becomes successful, that’s a pure benefit to Unity. They are not limited by the defined subscription that they integrated them with, they can integrate many game developers and potentially benefit from one of those that ends up being a successful mobile game. I just thought it was an interesting aspect. I don’t know if this is the right take or not. It was my point of view. José Najarro: Definitely, Jon, and I think that’s something the CEO mentioned. He creates this one, which the designer, the creator of the game and Unity have the same goal. If their game performs well, Unity will benefit, as will the game developer. That’s what drives Unity to, “Hey, make sure we have the best products for you, make sure we are able to provide the best services to your customers because if your game is working well then we are going to do well, you are going to come back, you are going to make another hit game, this hit game is going to do well and we are going to see that kind of growth. ” That’s a good point you brought up there, Jon. Deo Sanmeet: Unity is definitely the one I watched and I really like it too. This is the one I own personally, the one I followed. One of the things that really excites me about this company is the optionality in terms of, right now it’s primarily a game engine and it makes most of its money and business from mobile games and solutions. creative and also what Jon was saying was, the use-based model, which gives them so many benefits as they grow older. But they burst into these other verticals of architecture, the automobile, the cinema. I like to compare Unity because it’s almost the software, the operating system for AR, VR, and the Metaverse. That’s all you want to create based on those things. Right now, it’s almost a duopoly between Unity and Unreal. For people who may not know, Unreal Engine is made by Epic Games, who are the creators of Fortnite. One thing I came across in my research in terms of competition … this advantage of Unity is that it is low code and easy to learn and is used a lot in smaller, mobile games. , while Unreal is a bit harder to learn, it’s a bit more complicated. It’s also been used for a lot of what they call AAA game titles, which are the big titles we think of. What’s interesting about Unity is that they offer their software subscription plan for free to anyone with less than $ 100,000 in income, so students and young people or young creators, or developers are looking for. to learn software like Udemy where you can learn how to use it and then you can just get the software yourself and start creating. Unity really wants to capture this developer from the moment they get interested and start, until the moment they could potentially become their own developer or team of developers or start their own development company. It’s very focused on the content economy and empowering content, or should I say more in that sense, the developer community, allowing them to learn their software, use their software, grow with their software, and they both develop together. Very interesting there in terms of structure compared to Unreal and how their strategy differs a bit about that. It’s a huge market. I think Dave said it’s a $ 29 billion TAM [total addressable market] and growing. As we said, mobile gaming is the fastest growing gaming segment. One thing I also love about this company is that we’ve talked about it a lot, again I keep saying the convergence of movies and games and everything in between. Everything is going to come together, what are you going to use to make it come together? Something like Unity is like the operating system for all of these things. I don’t know if you also know that Zuckerberg, from Facebook Fame, [laughs] wanted to buy Unity, I think it was in 2015. Because he saw it as a key platform or core technology for the metaverse. He actually wrote a recently released memo explaining why he wanted to buy Unity and where he was going. If I can find this, I will definitely pass it on. But that says a lot when Mark Zuckerberg was interested in buying from you and now given that Facebook is monitoring its own initiative and metaverse goal. It’s a really exciting business. Thank you for presenting this. Other questions about Unity or? Quarter: I just wanted to point out something you just said Sanmeet, and that’s how they get new developers onboard. There is no charge below a certain amount of income. It is a company with 79% gross margin. I talked about it on The grade earlier today, the optionality is better when the asymmetries are large. What I mean by that is when there is little downside to doing something, but great upside potential, it’s an asymmetry of optionality that is in favor of investors. With 79% gross margin, it’s a low cost thing to offer this to someone. But since this is a usage-based model, the upward asymmetry is very favorable to investors. I really like that about the business model. This article represents the opinion of the author, who may disagree with the “official” recommendation position of a premium Motley Fool consulting service. We are heterogeneous! Questioning an investment thesis – even one of our own – helps us all to think critically about investing and make decisions that help us become smarter, happier, and richer. Source link
Read More