4

I published an application which was developed in Delphi XE8 with the Firemonkey Framework and Object Pascal. Application size is 8MB. When application is installed, size will be 40MB and greater. I know this application is complicated and there are 3500 lines+ codes in project. If I compile an empty project, size is still same with the complex project.

Is there any solution for decreasing application size?

Abdullah Ilgaz
  • 719
  • 1
  • 17
  • 39
  • Did you remember to create a release build? – Jens Borrisholt Nov 02 '15 at 06:51
  • 5
    Yes, I created release build and release configurations. In the **Project Options > Provisioning** page, I tried **Application - Development** and **Application Store** too. Also I changed the Target to **Release configuration - Android Platform**. – Abdullah Ilgaz Nov 02 '15 at 06:55
  • Did you remove RTTI? - http://stackoverflow.com/questions/4025070/shrinking-exe-by-removing-rtti – mjn Nov 02 '15 at 06:56
  • 4
    I don't have any `{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}` in my projects. There is only one: `{$R *.res}` where located in ProjectName.dpr file. Should I remove it? – Abdullah Ilgaz Nov 02 '15 at 07:01
  • 3500 lines is small. FMX apps are just very large. Nothing you can do short of using better tools. – David Heffernan Nov 02 '15 at 07:03
  • Okay. But I want to ask one more question. All these problems with Firemonkey is just about Platform Assistant? or integrating our codes to multi platforms? – Abdullah Ilgaz Nov 02 '15 at 07:06
  • Size is not only matter of lines, it's depend of what components and units are used in your project. – RepeatUntil Nov 02 '15 at 07:08
  • All problems? You only mention application size here. What other problems do you have? – David Heffernan Nov 02 '15 at 07:09
  • Dear David, Sorry about that :) I meant I have many but I asked only one. I've been using VCL many years but I'm new in Firemonkey. **TStringGrid** has big lag, also sometimes my application is stuck on screen and I can't do anything without closing it. There is no touch available when it runs. – Abdullah Ilgaz Nov 02 '15 at 07:18
  • Also my apps always use SQL Server databases which means I needed to use .NET Web Services and WCF too. Every project I developed in FMX using webservices and I have to increase running perfomance but application is slow. – Abdullah Ilgaz Nov 02 '15 at 07:20
  • @AbdulrahmanAljehani I'm using basic components. There is no 3rd party components. I just made child components whose parent components are stock fmx and vcl components. – Abdullah Ilgaz Nov 02 '15 at 07:26
  • I don't think these comments are the right place to get into all the other problems with your program – David Heffernan Nov 02 '15 at 08:14
  • @DavidHeffernan I'll ask my questions to community too. Hope all will be solved. By the way Thank you so much for helping and answering me. – Abdullah Ilgaz Nov 02 '15 at 08:34

1 Answers1

13

There is no such thing as a Hello World application with Firemonkey. It ships with a minimum functionality (the Framework). You can compile an application without it but you have to build all the functionality yourself. The power of Firemonkey is it's cross platform design and single codebase. You answered your own question in that you added a bunch of functionality and the size did not go up much. You could add 50,000 lines of code and the size won't change much either.

Anatomy OF A Firemonkey Framework Multi Platform App

FMXExpress
  • 1,246
  • 8
  • 10