No, non è corretto, dovresti usare un costruttore e lasciare perdere friend.
Il punto di avere delle classi è quello di poter isolare i dettagli implementativi per offrire un interfaccia uniforme. Ciò ti permette di cambiare l'implementazione senza conseguenze negative sul resto. Friend rompe l' incapsulamento.

È sbagliata anche la divisione in classi. Un app è concettualmente un solo oggetto, non ha senso definire due classi distinte. Al più saranno una figlia dell'altra. Ma in questo caso non ha minimamente senso: Un app non cambia perché è installata o meno. Al massimo aggiungerei un flag nella classe app, ma sono dell'idea che il concetto di installata andrebbe posto nello store e non nell'app.