Embarcadero: Firemonkey OOP
Embarcadero: Firemonkey C++
Best Software Development Companies For November 2021 TopDevelopers.co released the list of the best software development companies after analyzing IT companies to help service seekers with the best options. Over 65% of companies outsource when approaching software development projects. “ – DDIY SAN FRANCISCO, CALIFORNIA, UNITED STATES OF AMERICA, November 23, 2021 /EINPresswire.com/ – Custom […] … Read More
Earlier this year, we introduced support for installing packages in TMS WEB Core for Visual Studio Code. With packages, TMS WEB Core for Visual Studio Code became easily extensible with lots more components for creating web applications.
Together with this introduction, we have also make packages for installing the TMS FNC component family in TMS WEB Core for Visual Studio Code. All FNC components can now be installed & used in TMS WEB Core for Visual Studio Code applications. And this applies both to the trial version as for the full source code based registered version.
Today, we are pleased to inform that also the set of free components offered for TMS WEB Core can also be directly used from TMS WEB Core for Visual Studio Code via new package files included in the component distribution.
This includes a component to open .XLSX files, generate vCalendar files, handle ZIP file, generate a QR code or to use WebRTC libraries OpenTok or Jitsi. In addition, it includes a package to install the jQWidgets Smart HTML elements component set or the Vaadin mobile UI component set and use it from TMS WEB Core for Visual Studio Code.
Learn everything about free components you can now install with packages in this video by Dr. Holger Flick:
If you are a TMS WEB Core enthusiast who already developed custom components, have a look at the TMS WEB Core partner program. Join the program, publish your components and get free TMS WEB Core licenses!
New Jersey, United States, – The Audio Plug-in Software Application Market The study offers information on the revenue, trends, outlook and industry profiles of each vendor. It presents a picture of supply and demand for each end-use market. Regional analysis has been provided in terms of market share, development prospects and key countries. The study […] … Read More
XCELERATE Program Helps BlueFletch Bring Innovative Safety Management Solutions to Rugged Workforce Devices By working with Panasonic, we are able to better provide comprehensive workforce device security management solutions tailored to our customers’ needs and meet today’s market demands. – Richard Makerson, CEO of BlueFletch ATLANTA, GEORGIA, USA, November 16, 2021 /EINPresswire.com/ – BlueFletch, today […] … Read More
Sometimes actions inside an application need their time. From retrieving data from REST service or a database to scanning your hard disk for all files containing images, there are a plethora of things that can be time consuming. In case these tasks are executed in the main thread the application will probably become unresponsive and … Continue reading “Async Tasks in VCL Projects” … Read More
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
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
XData, 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.
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:
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:
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
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
PM, 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
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 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
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.
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
webinar 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
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.
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.
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
Other new features
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.
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.
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.
New Jersey, United States, – The Custom Software Development Services Market The Verified Market Research report is a meticulously conducted study. Experts with proven credentials and high levels within the research fraternity presented an in-depth analysis of the topic, drawing on their unparalleled knowledge of the field and extensive research experience. They offer insightful information […] … Read More