Android Question [SOLVED] I'm lost : multiple versions of the same app

lemonisdead

Well-Known Member
Licensed User
Longtime User
Hello,
I am lost with the best way of using conditional symbols and AdditionalRes. Please, could you help me or point me to any post I would have missed ?

My need is to generate multiple apps from the same code. Easy in my mind since I saw I will have to have different icons and ProjectAttributes.

At the first time, I have thought to have many #If to change the ApplicationLabel for each version. But perhaps does it exist a more elegant way to do (for example : #If Version1,Version2 ? or Else ?)

At the second time, I have thought about the icons and other bitmaps. And this is what I don't understand. Could I use AdditionalRes to modify my icons ? I guess I would have to point to a separated \res folder. And if this is true, how may I replace the bitmaps inside the \Files folder ?

Perhaps did I not well understood the way to do, I always get an error while trying. Any help is greatly appreciated.
Many thanks
 

sorex

Expert
Licensed User
Longtime User
Why not include them all and use selective bitmap load commands or use a different array with the filenames?
ok, it bloats the apk with unneeded images but since it's another app it's already in a different working folder? you can trash 'm there.

on the other hand...

since most code is the same why not put that in a code module that you access from the different B4A files?
just keep the bare stuff like image references in the B4A.

I would personally use the IF stuff to leave out payed version features or so.
 
Upvote 0

canalrun

Well-Known Member
Licensed User
Longtime User
I find the Conditional Compile along with Custom Build Actions to be extremely powerful. Here is the top 20 or so lines from one of my apps:

B4X:
#Region Module Attributes
  #FullScreen: True
  #IncludeTitle: False
#If FREE
  #ApplicationLabel: xxx
#End If
#If PLUS
  #ApplicationLabel: xxx Plus
#End If
  #VersionCode: 11
  #VersionName: 5.1
  'SupportedOrientations possible values: unspecified, landscape or portrait.
  #SupportedOrientations: landscape
  #CanInstallToExternalStorage: True
  #AdditionalRes: C:\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms
#End Region

#If FREE
  #CustomBuildAction: 1, c:\windows\system32\cmd.exe, /c copy ..\files\xxxicon.png res\drawable\icon.png
 
  #If GOOG
    #CustomBuildAction: 1, c:\windows\system32\cmd.exe, /c copy ..\GoogAmzn\upgoog.html ..\Files\xxxupg.html
    #CustomBuildAction: 1, c:\windows\system32\cmd.exe, /c del /Q ..\objects-goog\*.*
    #CustomBuildAction: 4, c:\windows\system32\robocopy.exe, ..\objects ..\objects-goog
  #End If
  #If AMZN
    #CustomBuildAction: 1, c:\windows\system32\cmd.exe, /c copy ..\GoogAmzn\upamzn.html ..\Files\xxxupg.html
    #CustomBuildAction: 1, c:\windows\system32\cmd.exe, /c del /Q ..\objects-amzn\*.*
    #CustomBuildAction: 4, c:\windows\system32\robocopy.exe, ..\objects ..\objects-amzn
  #End If
#End If
#If PLUS
  #CustomBuildAction: 1, c:\windows\system32\cmd.exe, /c copy ..\files\xxxpicon.png res\drawable\icon.png
  #CustomBuildAction: 1, c:\windows\system32\cmd.exe, /c del ..\Files\xxxupg.html
  #CustomBuildAction: 1, c:\windows\system32\cmd.exe, /c del /Q ..\objects-plus\*.*
  #CustomBuildAction: 4, c:\windows\system32\robocopy.exe, ..\objects ..\objects-plus
#End If







I use Custom Build Actions to select one of two different icons and different HTML files to be used depending on Free versus Plus build. I make a backup copy of the output of a build into a special directory.

Within a Free build I have to modify things further depending on whether it will be uploaded to Google Play or the Amazon Appstore. I use the Conditional Compile symbol G00G or AMZN to select one or the other. I disable a symbol by putting an x in front of it. This lets me disable it while still seeing that the symbol exists.

I found most of this procedure in the various tutorials and examples from Erel.

Barry.
 

Attachments

  • upload_2014-8-6_10-51-15.png
    30.9 KB · Views: 483
Upvote 0

lemonisdead

Well-Known Member
Licensed User
Longtime User
I do thank you Barry. That's absolutely what I was missing. Thanks for having shared this useful example.
 
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…