Last week instead of being out on the road, we had two one day workshops hosted in the Maidenhead office of Embarcadero. The purpose of these days were to provide a Kick Start for developers new to XE4 or those hands on and produce their first iOS applications. It was great to see a mix of people who have Macs already for developing Mac and iOS applications with Delphi, but also a lot of fun with a few VM’s running on a mac at the front for those without one to connect onto.
Through the day we covered remote debugging with the PAServer, followed some delphi programming tutorials from DocWiki, created sample SOAP servers and clients working on Windows, Mac and iOS and also looked at building our first Delphi DataSnap application. Rather a lot for a single day, but it was great fun.
It was also good to see a number of new faces at the event with a good number of attendees new to Delphi, coming mainly Java or .Net backgrounds. However, my favourite demo of the two day actually came at the end when William Rennison showed me the project he has been completing for his GCSE assessments, I wonder with his new skills learned, how long it will be before we see that running from an iPad into the AppStore
I’m sure we will have some more sessions like these in the future, make sure you subscribe to Developer Direct @EMBTDDirect and keep an eye on the events page for Delphi and C++ Builder programming sessions.
If you want to learn more from the experts: Then don’t forget CodeRage starts TODAY!! Register NowPosted by Stephen Ball on June 18th, 2013 under Delphi, Events | Comment now »
Embarcadero is working hard to support Delphi in education in South Africa (as well as else where). Earlier this year, Computer Science and ICT in South Africa got a boost when Embarcadero engaged with schools and academic institutions to get access to the programming tools they need to deliver the curriculum.
We have had a lot of support from a number of people in terms of making this possible, but someone we have been working closely with for a while is Bertie Buitendag, Lecturer in the Department of Computer Science, Faculty of ICT at TUT university. This week Bertie has been running some well attended teacher training based on the CAPS IT for Grade 11 students.
One of the key reasons teachers in South Africa continue to use Delphi, and are moving back to Delphi Programming again is that they want to make computer sciences enjoyable, simple and fun. Delphi really helps this in a number of ways; including having a friendly easy to read language, full object orientated notations, but most importantly by having a compiler!
The benefit of having a compiler is key in encouraging students to take up and stick with programming. Without a compiler it is hard for students to understand where errors are being made. Sounds a small thing, but makes a massive difference and has a huge impact on writing code where you can quickly see where there are errors and help address them. If you compare that to Python or Java Script, your soon understand what a benefit a proper compiler brings.
Thanks to Bertie for the approval to post this image, and congratulations on such a well organised event.
Other events in South Africa?
This event is also being followed up with an IT Workshop being run this weekend that I have the pleasure of presenting at; "Limpopo Embarcadero Delphi IT Schools Workshop". The event is primarily for Grade 11 / 12 students and teachers, but we also have some grade 10 students attending as well. In total around 200 students and teachers will be attending. So watch out for more on that soon.
For our wide community, and those who were also lucky enough to get into our sold out event in Johannesburg and Cape Town next week. Look forward to seeing you then on Monday Tuesday.Posted by Stephen Ball on April 10th, 2013 under Delphi, Events | 1 Comment »
A few weeks back we had a great discussion on Developer Direct titled "Mind your language(s) - vital expressions you need to know" - the replay for this will be available soon from the Developer Direct Season 3 playlist on YouTube.
One part of the language we covered in this session talked about class helpers and it reminded me of a video I recorded earlier this year as part of the Business Display Engine series. As we start to see all this really interesting material about native iOS development with Delphi it made me think about how I’ve used Class Helpers in the past with remote applications.
One thing I have found very useful when developing applications has been the ability to use class helpers to add functionality to objects that I have imported from external locations. Imagine being able to add your own methods to a simple SOAP object that you have imported from a 3rd party web service. Could be something as simple as a custom sort or a method to return a validation result based on data on the object. (ie has all data been entered correctly?) Well you can do exactly that with Class Helpers without having to change the code you import from the WSDL and whats better, if you have to re-import the WSDL, you are reasonably well protected from having to do any of the work again, as the class helper just links to the new version of the base class.
We also now have in XE3 record helpers as well, really extending this functionality again.
What I love about them, is that just like Interfaces, generics, RTTI etc.. there are a number of Delphi language features that have been around for a long time, that will just work with iOS. There is loads of non trivial code that is out there, that will just work onto iOS (e.g. Marco blogged from last weeks Developer Direct about code from Delphi 2010 for linking to twitter that just recompiled and ran on iOS
Anyway, enjoy the video. How are you using them?Posted by Stephen Ball on March 18th, 2013 under Business Display Demo, Delphi, FireMonkey | 1 Comment »
Its amazing when I attend events all around the world how often people tell me about how they have been using Delphi for the same application they are producing for many years. The shelf life of code and the ability for Delphi to adapt to different needs over the years has seen Delphi in a range of different applications that want to benefit from REAL code running natively.
One thing that is a constant over time is change; if its user requirements, new operating system, new protocols for communication, Delphi Developers have had great capabilities over the years that have constantly been growing with modern technologies, changes that have always had great backward compatibility at their heart, a small but major reason why the shelf life of code and total cost of ownership is so much lower with Delphi. I know that certainly has kept my bosses happy over time.
I myself have written and had running applications supporting multiple currencies, languages, hardware devices etc collecting millions of pounds, euros, dollars a month directly from different banking systems supporting the back end processing of a number of blue chip companies (and smaller independents). Key things that helped me succeed was the ability to quickly prototype build and react to end user needs. This has often required connecting to multiple data sources quickly - something delphi does simply and easily - although I’ve always preferred InterBase as my database of choice as the software houses I’ve worked in have not had specialist DBA’s.
One major feature of Delphi that I’ve exploited in the past has been its ability to share "code behind" units between different versions. Having my class factories, business logic etc as shared code that could compile for use in Delphi 5, Delphi 7, and Delphi 2009 applications enabled me to migrate the application code in a controlled manner and at the same time offer new features quickly. Indeed, I had web services written in Delphi 2009 using the same units of code for the business logic of a legacy Delphi 5 application. This allowed a quick to market route for providing access into the business engine that was used by a range of web technologies. This also had the benefit of allowing a controlled approach to updating the core user facing application, without the latter being rushed through due to the need to get new features into the business engine.
This kind of flexibility has really made a big commercial difference to me over the years, and this year is likely to be the biggest in Delphi’s history, the ability to take the same code and have it compile and work on even more platforms is going to be amazing, and even though there will potentially be more changes, the fact they will be well managed is going to show again how the value of code written in Delphi just keeps going and going…
If you want to see what’s coming soon for Delphi, join the product team at the Delphi Mobile Preview Webinar next Thursday (7 days after Valentine’s day), February 21, 2013. The mobile preview webinar will take place three times to cover the planet Earth:
Delphi and RAD Studio Mobile Preview Webinar
Thursday, February 21, 2013
6:00AM PST / 9:00AM EST / 14:00 UTC
11:00AM PST / 2:00PM EST / 19:00 UTC
5:00PM PST / 8:00PM EST /
12:00PM 22-Feb Australia EDT
The new Delphi and RAD Studio development solution for iOS is coming soon. Now is a great time to get started on the path toward multi-device application development across Windows, Mac, iOS and then Android.
Register and join the fun next Thursday at http://forms.embarcadero.com/forms/AMUSCA1302RADMobilePreviewWebinar2-21Posted by Stephen Ball on February 14th, 2013 under Delphi, Events | 3 Comments »
One thing we often hear about good practice when coding is to be DRY (Don’t Repeat Yourself). This means we only have the code in one location. If we find an issue or want to improve functionality, we can update it, and everywhere that uses that code will also be improved. Happy Days!
With that in mind when adding a custom dialog form to the Business Display Demo that is always going to be used in the same way (i.e. Created, passed a list of paramaters, gets a result from the user and returns it and free’s the created form) a Class Methods is really helpful way to wrap this functionality up with the class. Class methods exist along with the class declaration; they don’t require an instance of the class to be called (which is really handy as you can then call them all in one line of code).
The golden rule with a class method is that they should take in, create and use everything they need to perform the logic they contain.
Anyway. that should be enough to get you going. Time to watch this short video (under 4 minutes) and see how they are used in the demo.Posted by Stephen Ball on January 18th, 2013 under Business Display Demo, Delphi | 1 Comment »
In the last video we looked at the Custom Object Editor that we created using RTTI and FireMonkey Styles. In this video we are going to look at taking this form, and moving it to another project. We will touch on Interfaces and using Interfaces to define a contract that, when we want to use it, we implement on whatever class wishes to support the interface; We also touch on Object Attributes and how they are used by they Custom Object Editor to define another type of contract that allows the editor to learn about an object at run time and change its behaviour accordingly.Business Display Demo, Delphi | 1 Comment »
In my last blog post we started by looking at how to get the business display demo project as a favourite project. In this video we are going to now jump into looking at FireMonkey styles in action and how they can be used to help build a dynamic user interface, with a little help from an advanced topic area, RTTI (Run Time Type Information)
My Next blog will look at how we can extract this from the demo project into a new project and talks further about the attributes and interfaces used along the way. Until then, Happy Coding!Posted by Stephen Ball on January 10th, 2013 under Business Display Demo, Delphi | 1 Comment »
I’m regularly asked when presenting around the world for something a little fuller than a "hello world" demo. (guess I’m not the only one who likes to pick up things from code example demo’s). For those who were able to join me at my CodeRage session you would have seen exactly that!
I’ve written a demo that uses a number of the technologies within XE3, from DataSnap backend tested with unit tests, through to FireMonkey making cool use of Styles in the front end with RTTI to create dynamic object editors (with a little help from custom attributes against object properties)
The demo is based around a typical business need; showing data in the sales office, but with some flexibility to make it fit for multiple different scenarios.
Over the coming months I will be producing a number of short videos for beginner, intermediate and advanced level developers based on this code looking at different language features, IDE features etc. If there is anything in there you want covered, just drop me an email and I’ll try my best to add it to my schedule.
To start you off, download the code and then watch the first video on how to make this a favour project in your IDE welcome page
Happy coding!!!Posted by Stephen Ball on January 9th, 2013 under Business Display Demo, C++ Builder, Delphi | 2 Comments »
Having had a few questions around using LiveTiles with Windows 8, I have decided to record a video showing you exactly how to setup and run the steps defined for installing LiveTimes onto Windows 8. These steps are fully documented at docwiki (as you will see in the video)
The link to the URL used in this video is http://docwiki.embarcadero.com/RADStudio/XE3/en/Setting_Up_Your_Environment_for_Developing_Live_Tiles_for_Metropolis_UI
Happy coding!Posted by Stephen Ball on December 14th, 2012 under C++ Builder, Delphi | 1 Comment »
I’m just finishing in Rome from another great FireMonkey session (in partnership with BitTime). Before I leave for the airport, I wanted to remind everyone that tomorrow we are running in 3 time zone a great Windows 8 session looking at what is new in Windows 8 and how to get your Delphi and C++ Builder applications running there today.
Join me for this free session tomorrow by registering on the link below. See you there!!Uncategorized | 1 Comment »