Why sometimes you *want* to to have your DFM files stored as binary

b.gif

Delphi Component/Tool vendors have to support a truckload of Delphi and C++ Builder versions which can be a pain: they have to work around problems in Delphi and C++ Builder versions that have long been abandoned by Borland/CodeGear/Embarcadero/Idera/… This means that sometimes the Delphi Component/Tool vendors have to work around stuff in a way normal applications vendors […] … Read More

Read More

Cool App Winner: EarMaster for iPad

Cool App Winner: EarMaster for iPad

Our new cool app contest winner is EarMaster for iPad. It is developed with Delphi and shares much of its code with the desktop versions that run on macOS and Windows. EarMaster is all about musical training.


 [YoutubeButton url=’https://www.youtube.com/watch?v=G27pXDQbcvQ’]
Overview video
 
EarMaster for iPad is an iPad app for musical training: sight singing, sight reading, rhythm training, music theory and ear training (hearing intervals, chords, etc). With almost 3000 lessons made by music teachers covering the full range from beginners to professional musicians playing any instrument.

[YoutubeButton url=’https://www.youtube.com/watch?v=91Bh-JCYKkM’]
Technology video
 
As a comprehensive consumer grade app, it both contains a lot of functionality and uses many different technologies. Despite that it is very advanced a lot of effort went into making it as simple and intuitive as possible. It has a 100% native feeling and follows the Apple GUI guidelines as close as possible.
  • It is made entirely with native components (TMS iCL), though with a few custom FMX components mixed in (musical instrument controls).
  • It features audio recording and audio playback, Midi input and Midi output, Instrument sound sampler, and many other technologies – all made with the native iOS frameworks (AudioUnit, CoreMidi, etc).
  • It includes Pitch detection of microphone recording drawing realtime pitch curve on Musical staff
  • Uses a custom UITableView native component with custom cells and expandable sections.
  • Multiple custom TrueType fonts
  • HTTPS Cloud syncing (towards our own developed cloud server running on Google Cloud)

Besides FireMonkey and TMS iCL it also uses SQLite, SSL, In-App purchases, XML and Indy components in the app. The IDE extensions CnPack and MMX were also very valuable.

Hans Lavdal Jakobsen developed the app over two years, and he loves Delphi . . . .

We choose Delphi because it allows us to create a true native iOS app, with a GUI using native components, and still share 97% of the source code with other platforms. If you develop a multi-platform app, Delphi is simply the fastest way to go.

-Hans Lavdal Jakobsen, Managing Director and Lead Developer of EarMaster ApS

And his customers love the app . . .

Fabulous! – ***** – from Put them lights out!, 4th Jun 2016, USA

This app is truly a standout among all the many ear training ones out there. Nothing else compares to this one. They’ve taken their already great desktop version and made improvements and put it all on the iPad. The beginner’s course is new and really good. I like the way it progresses in steps so you don’t have to figure out what to work on. Also the pitch detection is great, so you can hum or sing the notes and check your melodic dictation. 

(5 star review from iOS App Store)

The app was released in 5 languages (English, Chinese, Spanish, French and German) and peaked as the #11 most popular non-game app worldwide. EarMaster App is featured on the Discovery Network channel this Friday 7-7:30 AM EST (26th August). It is a special “Back to School” edition of the Newswatch TV show with the tech guru Scott Steinberg.

  

 

Read More

Read More

If you need to know underlying information on Delphi versions

b.gif

Since I’m not that fast at updating List-Delphi-Installed-Packages.ps1 [WayBack] (which I should rename into something containing the word Version in it), here are some useful links to stay up-to-date: delphi-dev-shell-tools/uDelphiVersions.pas at master · RRUZ/delphi-dev-shell-tools [WayBack] TDelphiVersions DelphiVersionsNames DelphiRegPaths PAClientProfilesPaths knowledge about the .dproj/.bdsproj and .goupproj formats knowledge how to map .dproj to Delphi versions PAClient profiles (that use PAServer […] … Read More

Read More

Movie #116 – Fractals, Parallel Programing, Code Optimization and Cross Platform

Movie #116 – Fractals, Parallel Programing, Code Optimization and Cross Platform

This was a talk that I did for the ADUG Winter Symposium (4-Aug-2016) in Sydney. In it I build a cross-platform (Windows/Android) application for calculating fractals. It’s on fractals, code optimizations and parallel programming. The images and details about the super-computers is from Wikipedia and the fractal zoom animation in the beginning is https://youtu.be/a26UXXVQAHg.  Watch this presentation on YouTube, it’s 85 minutes long – so grab some popcorn.  I’ll make the source code available shortly.

Read More

Read More

Product Roadmap August 2016

roadmap2016.png

In February, we provided a detailed view of our Product Roadmap and we committed to update this Roadmap every six months to provide our many customers with good visibility into what is to come. As requested by many of you, we are moving to more updates and one larger release per year. 

We have an exciting plan* that we will continue to fine tune to reflect customer and MVP requirements and input. One change from before is RAD Studio 10.1 Berlin Update 2 that will provide required support for Windows 10 Anniversary Edition, with specific support for the Windows Desktop Bridge, also known as Centennial. This update will also include new Win10 Anniversary Styles and UX controls.

While we continue to make excellent progress on Godzilla, we want to keep up-to-date with Microsoft developments.  To further expand our Windows 10 support, Update 2 will also include new Windows 10 Anniversary Edition styles and user interface controls.

As it was already discussed, the plan is to go back to a yearly release cycle, and offer 2 or 3 updates with additional features and support for new versions of the operating systems released during that time frame. This is an overall view of the roadmap, followed by some detailed comments by the three RAD Studio Product Managers: Marco, David, and Sarina.

* Features are not committed until completed and released. All of the features mentioned in this article are subject to change, due to technical reasons or changes in priorities.

More Details from Marco 

Marco focuses on the Delphi language and personality, Delphi RTL, the VCL, Database and Web Technologies, and RAD Server

Over the last couple of years, we have made tremendous progress with Delphi. As I speak with many MVPs and customers, I find that many new features incorporated in Seattle and Berlin are not so well known, starting with the extensive support for WinRT APIs on Windows 10. We delivered Windows 10 support for VCL in a timely way and plan to continue working in this direction, supporting new features in Windows 10 Anniversary Edition, as described earlier. 

The most exciting new feature on the roadmap is the coming Linux support, which we’ll soon start previewing. Having the ability of taking your server side code (Apache extensions, console applications, WebBroker projects, DataSnap server, RAD Server modules, custom middle-tier architectures), keep your data access components and deploy on Linux on-premise machines or cloud instances, will open up new possibilities for Delphi developers — and C++Builder ones as well.

In the meantime we won’t forget improving the Delphi language. The main feature coming is support for nullable types, but we are also considering a rather long list of enhancements to the syntax, somehow minor changes that will improve the way you write code, its readability and expressiveness. 

Here are some more roadmap details focused on Delphi, VCL and RAD Server:

Berlin Update 2

  • Windows Desktop Bridge (aka Centennial) deployment support, for building APPX files directly from the IDE, in a similar way of our mobile deployment support
  • QuickEdit properties, making it faster to do everyday tasks in the VCL designer, by providing rapid access to the most commonly used properties of standard controls
  • New Windows 10 CalendarView VCL control, matching the UX of the native WinRT calendar view controls (but entirely written in VCL code)
  • New VCL Styles for Windows 10 Anniversary Edition 

Godzilla

  • Delivering Delphi compiler and RTL for Linux Server 64bit
  • Integrated delivery of Konopka Controls
  • Further overhaul of VCL visual design experience, with the inclusion of designers from Konopka Controls in the core VCL design experience
  • New Windows 10 VCL controls including date and time pickers and additional customized panels
  • FireDAC Linux support and drivers update on all platforms, for a large numbers of supported database engines
  • Large-memory enable standalone Delphi compilers
  • The Linux version of RAD Server, with Apache integration, along with the ability to create Linux RAD Server API modules in Delphi and C++, some RAD Server Console UI enhancements and the Multi-Tenancy Capability

Godzilla Updates

  • Quality and performance improvements
  • New VCL controls under evaluation
  • Improved code migration tools
  • For RAD Server, ActiveDirectory support for login and AD synchronization for accounts, plus Kerberos authentication for clients

Carnival

  • Apple macOS 64-bit compiler and toolchain
  • Delphi language support for Nullable types
  • Delphi language syntax enhancements

Carnival Updates

  • Quality and performance improvements
  • Further Windows 10 support

More Details from David

David focuses on the C++ language, including compilers and linkers, on the multi-platform debuggers, and the RAD Studio IDE

We have some great plans for C++Builder over the next couple of releases that I believe will make C++ readers very happy. We have been focusing on platform support recently, such as with the Linux Server work making its debut in Godzilla. That gives us great support for solving practical user needs – providing cross-platform support natively, compiling natively at all levels, with the same UI and other frameworks. No-one else is doing that to the level we do.  But the cost of focusing on that has been lagging on C++ language support and so from our strong platform foundation, we’re now going to improve that.

We plan to upgrade our Clang-based compilers to be based on Clang 3.9, and that will start with the Windows compilers with other platforms added soon after. In addition, we’re going to remain up to date with Clang: each release we will have compilers based very close to the head stable version of Clang.  That means we – and you our customers – can have your cake and eat it too: not only will you have better cross-platform support and cross-platform frameworks than other IDEs, but the C++ language support will be right up there as well.

We also want to open up a little bit from the closed silo we sometimes have with our IDE, and we’re starting this by looking into CMake support for our compilers, and also some degree of IDE integration. Let me know what you think here – we are evaluating what to support, and it’s not limited to only CMake. As well as tools, we’re also considering many of the common C++ libraries. Feedback on all of these is welcome.

Finally, we have some great plans for our debuggers, with ongoing work to start using LLDB on more platforms and improve its integration with our extensions and IDE. We want to end up using LLDB on many if not all platforms where we also use Clang and LLVM.

As some smaller but very important details, in Berlin’s Update 2, we will deliver rename refactoring for C++, which should be very useful. We’re also actively improving our IDE features, such as code completion, and the linker. Both these are things that we hear need work, and so we will focus on. All up I think we have some very nice items to deliver soon that will make long-time users happy, and some great features coming over the next year.

Berlin Update 2

  • Rename refactoring
  • Properties support in Win64 C++ debugger

Godzilla

  • Delivering Linux Server 64

Godzilla Updates

  • CMake support: inbuilt support for bcc32c and bcc64 in CMake itself (we will work with them, and/or write patches); some IDE support, extent to be decided
  • Upgrading to Clang 3.9
    • Win64 and Win32 initially
    • Full C++17 support
    • Other platforms over next few releases
    • Plan to stay constantly up to date with Clang – not fall behind like with Clang 3.3. End goal is all platforms rolling forward just behind the Clang head.

Carnival

  • Significant debugger improvements for iOS64, OSX64 – use LLDB on these platforms with basic BCC extensions and Delphi support
  • Further Clang 3.9 / 3.x platforms

Ongoing, and Carnival Future

  • Improved LLDB support – full extension, Delphi support; use on more platforms (iOS64, OSX64, Win64, Win32…)
  • Ongoing linker work

More Details from Sarina

Sarina focuses on FireMonkey, the components libraries UX and styles, the installation experience, plus demos and documentation

Over the last couple of years, we have added a lot of great features to the FireMonkey framework. This includes the FireUI Multi-Device Designer, Behavior Services, FireUI Live Preview, native controls and many other features and enhancements that enable our customers to quickly build applications for multiple form factors and target platforms. One of the key themes in the FireMonkey roadmap is the expansion of our native controls support. We currently have Z-Order support on both iOS and Windows, and support native presentation for various UI controls on both platforms.

As you can see in our FireMonkey roadmap below, we have plans to extend our Z-Order support to both Android and Mac OS. As part of our roadmap, we are also planning on adding native presentation support for a range of UI controls on both Android and Mac OS. I think you will like the new native rendering support for TGrid on iOS which will be introduced in Update 1. Grid like layouts are popular in tablet applications given the additional screen real estate. They also offer a very flexible UI for enterprise apps where a table like layout may be preferred and features like column reordering, column resizing and text input are often required. I provided a sneak peek in a recent blog post.

Berlin Update 1

  • Native presentation support for TGrid on iOS
  • FireMonkey bug fixes 

Berlin Update 2

  • New FireMonkey styles for Windows 10 Anniversary Edition 
  • FireMonkey bug fixes 
  • Deployment support for latest versions of supported operating systems 

Godzilla

  • FireMonkey native rendering support for Android, Phase 1: Z-Order Manager
  • FireMonkey refactoring work 
  • Deployment support for latest versions of supported operating systems 
  • Radiant Shapes component library
  • Various FireMonkey enhancements 

Godzilla Updates

  • FireMonkey native rendering support for Android, Phase 2 & 3 : Native presentation for various UI controls, including TEdit, TMemo etc.
  • Additional FireMonkey styles
  • Update advertising component to support additional advertising services
  • FireMonkey bug fixes 

Carnival

  • Native presentation for additional UI controls on Android
  • FireMonkey native rendering support for Mac OS, Phase 1: FireMonkey Z-Order Manager
  • FireMonkey native rendering support for Mac OS, Phase 2: Native presentation for various UI controls, including TEdit and TMemo
  • Additional FireMonkey controls, including platform specific controls
  • Deployment support for latest versions of supported operating systems 
  • FireMonkey maps support on Desktop

Carnival Updates

  • Native presentation support for additional UI controls on Mac OS (TListView, TGrid etc.)
  • Native presentation support for additional UI controls on iOS, Android and Windows 
  • FireMonkey bug fixes and other enhancements  

We are excited about the current RAD Studio roadmap and what lies ahead. We know the plans don’t cover everything you are expecting, but rest assured there will be many other features delivered along with the main ones highlighted in this document. It is also possible that some of the features will be delivered earlier than listed above. 

If you have specific questions or feedback,  please let us know, reaching any of the PM over email. You can also log ideas and feature requests at quality.embarcadero.com.

These plans and roadmap represent our intentions as of this date, but our development plans and priorities are subject to change. Accordingly, we can’t offer any commitments or other forms of assurance that we’ll ultimately release any or all of the above-described products on the schedule or in the order described, or at all. These general indications of development schedules or “product roadmaps” should not be interpreted or construed as any form of a commitment, and our customers’ rights to upgrades, updates, enhancements and other maintenance releases will be set forth only in the applicable software license agreement. 

 

Read More

Read More