Cactus kan uw bedrijf helpen voordeel te halen uit AI via “StartAI”, het AI-programma van Agoria en Vlaio

iOS best practices, deel 3: architectuur

Als vervolg op Deel 2: Swift Codestijl

Geloof nooit in ‘laten we het snel doen en het dan opnieuw bedenken’.

Laten we het hebben over algemene architectuurontwerppatronen.

We zijn begonnen met VIPER-ontwerp. Waarom?
Het is de beste gewoonte om uw systeem op te delen in een heleboel kleine blokken met één verantwoordelijkheid – het is eenvoudig en kost niet veel tijd.
Veel mensen schrijven theoretisch materiaal over VIPER en suggereren dat een ontwikkelingsproces met schone architectuur veel tijd kost.

Maar het is niet waar.

Waarom?

  • Ten eerste– We kunnen veel herbruikbare code genereren met Generamba-codegenerator en onze eigen sjablonen. *In onze volgende artikelen zullen we ontdekken hoe u met Generamba kunt werken.
  • Ten tweede– Als we met VIPER werken, ontwikkelen we onze applicatie volgens de S.O.L.I.D.-principes. Dit betekent dat elk onderdeel één verantwoordelijkheid heeft. Componenten zijn afhankelijk van abstracties. Code is afhankelijk van klassen – ze worden in moduleconfigurators geïnjecteerd. Hierdoor beschikken we over een flexibel systeem dat snel kan worden uitgebreid en aangepast.
  • Ten derde– Al onze modules hebben een uitstekende codedekkingskwaliteit. Dit betekent dat we de mogelijkheid hebben om onze codegeuren/bugs tijdens de ontwikkeling te detecteren en deze vóór de QA-ronde op te lossen. Ook dit levert een aanzienlijke tijdsbesparing op.

Oké, laten we elk onderdeel ontdekken.

IOS architecture
VIPER — Schone architectuur
  • Bekijk– Dit is een UIViewController, die mogelijkheden heeft om gebruikersinteractie te bekijken en af te handelen. View heeft 2 protocollen.
    Bekijk invoer – geïmplementeerd in View Layer en aangeroepen vanuit Presenter Layer.
    *Toon informatie over weergave, g. toonVooruitgang()
    Uitvoer bekijken – geïmplementeerd in Presenter Layer en aangeroepen vanuit View Layer.
    *Informeer presentator over gebruikersacties, bijv. addNewItem()
  • Presentator– Dit is een klasse die communiceert met View, Router en Interactor met behulp van de volgende protocollen.
    Bekijk uitvoer – kijk naar de weergavesectie.
    Interactor-uitvoer – geïmplementeerd in Presenter Layer en aangeroepen vanuit Interactor Layer.
    * Houd de presentator op de hoogte van updates, g. dataDidLoad()
    Bekijk invoer – kijk naar de weergavesectie.
    Interactor-invoer – geïmplementeerd in Interactor Layer en aangeroepen vanuit Presenter Layer.
    *Vraagt om updates, bijv. laadItems()
    Routerinvoer – geïmplementeerd in Router Layer en oproep vanuit Presenter Layer.
    *Navigeer tussen modules, bijv. toonDetailsModule()
  • Interactor– Dit is een klas die communiceert met de presentator en entiteiten. Interactor heeft 2 protocollen.
    Interactorinvoer – kijk naar het gedeelte Presentator.
    Interactoruitvoer – kijk naar het gedeelte Presentator.
  • Entiteit– Dit omvat elke gegevensrepresentatie zoals CoreData Entity, Realm Object, enz.
  • Configurator– Nog één ding.
    VIPER heeft veel componenten waar we tussenin moeten injecteren.
    Configurator injecteert lagen ertussen.

Dit was een korte handleiding voor de schone architectuur VIPER.

Lees verder:iOS Beste praktijken. Deel 4: S.O.L.I.D. >>>


 class=

Maxim Vialykh is CactusSoft iOS technisch hoofd.

Technische achtergrond
Programmeertalen: Swift, Objective-C, Java
Technologieën en platforms: iOS, Android, Windows Phone, Amazon S3, Google Cloud, Google APIs, Facebook APIs
Kaders: PhoneGap, Xamarin
Tools: Invision, SVN, Git, PhoneGap, Titanium, Xamarin, Sketch, xCode, IntelliJ IDEA

Deel deze pagina

diana@2x

Als er een project is dat hulp nodig heeft of zelfs een vaardigheid die u mist, neem dan contact met ons op.

Vergelijkbare artikelen

Neem vandaag nog contact met ons op om te ontdekken hoe Cactus uw digitale reis kan ondersteunen