Come separare la logica di costruzione e runtime in iOS?

3

Ho letto il libro del codice pulito di Robert Martin in cui suggerisce di separare un processo di avvio / costruzione dei programmi dalla sua logica di runtime.

In Java (il linguaggio utilizzato dal libro) ciò comporta lo spostamento di tutti gli aspetti della costruzione in main e la progettazione del resto del sistema presupponendo che tutti gli oggetti siano stati costruiti e cablati in modo appropriato senza alcuna conoscenza del main.

Come posso applicare questo allo sviluppo di iOS?

Il mio pensiero immediato è di costruire tutta la mia logica e i miei modelli di business all'interno della funzione AppDelegate didFinishLaunchingWithOptions . Anche se non sono sicuro che questa sia la funzione giusta da usare e se sia fattibile o saggio tentare di configurare ViewControllers, la mia app userà tutto in un unico posto.

    
posta Declan McKenna 12.04.2018 - 14:09
fonte

2 risposte

1

Dai un'occhiata a questo ciclo di vita di iOS . Non ho mai letto Clean Code, ma suggerirei di attenermi a un pattern MVC / MVVM per iOS. iOS dovrebbe fare la maggior parte del processo di avvio / costruzione pesante a cui credo si riferisca Robert.

La tua logica di business verrà inserita nei rispettivi controller (nota che l'ho fatto non ho letto quel link ho appena afferrato il primo hit di google)

e MVVM ... Full disclosure Sono un po 'obsoleto sulle best practice native di iOS da quando ho migrato ai framework ... Ionic / React Native / etc ...

    
risposta data 14.04.2018 - 05:39
fonte
1

Non funziona così. La maggior parte del lavoro viene eseguita direttamente o indirettamente nei controller della vista. Non si creano i controller di visualizzazione all'avvio dell'app, ma quando sono necessari. E il vero lavoro è fatto in viewDidLoad. E i ViewControllers vengono distrutti quando non sono più necessari.

Un sacco di lavoro è fatto in Singletons, e vengono creati quando sono necessari. A volte ci sono Singletons la cui esistenza è necessaria, li crei in appDidFinishLaunching. Singletons rimangono vivi per sempre.

Non si presuppone che tutti gli oggetti siano stati creati. Non lo si può supporre perché molti oggetti non verranno mai creati. Puoi creare oggetti quando ne hai bisogno.

    
risposta data 15.04.2018 - 15:31
fonte

Leggi altre domande sui tag