Buch „Entwicklung mobiler Anwendungen in C # für iOS und Android“

Sehr geehrte Leser, wir freuen uns, Ihnen das Ihnen bereits bekannte Buch „Entwicklung mobiler Anwendungen in C # für iOS und Android“ des Autors und Experten für Xamarin, Vyacheslav Chernikov aus Binwell, vorstellen zu können. Ohne lange Einleitungen übergebe ich das Wort an den Autor.



Guten Tag, lieber habrachitatel. In den letzten Jahren habe ich einige Artikel und Tutorials zur Entwicklung mobiler Anwendungen mit C # und dem Xamarin-Framework geschrieben, aber anfangs waren alle diese Handbücher und Teile der Artikel als Kapitel meines ersten Buches gedacht, das endlich das Licht der Welt erblickte. Zusammengesetzt zu einem Ganzen (und es gibt eine Menge Dinge, die noch nicht veröffentlicht wurden!), Werden die Materialien des Buches den Entwicklungsprozess für mobile Anwendungen auf eine völlig neue Ebene heben - von der Auswahl eines Tools und der Vorbereitung der Dokumentation bis hin zur Automatisierung des Entwicklungsprozesses und der Lösung gängiger Probleme. Dieses Buch wurde als harmonische Ergänzung zu den Materialien zu Xamarin konzipiert, die bereits in russischer und englischer Sprache vorliegen. Es enthüllt Themen wie Design, Architektur und die Schaffung des Rahmens eines Projekts, die normalerweise hinter den Kulissen der meisten Bücher und Schulungen verbleiben .

Das Buch behandelt im Detail und mit einer Vielzahl von Codebeispielen die folgenden Themen: Vergleich nativer und plattformübergreifender Tools anhand von Xamarin, ReactNative, PhoneGap, Qt und Flutter; Design und technische Dokumentation für den Code; Architektur und Struktur des Projekts, wir setzen alles um; Mobile DevOps und Automatisierung von Montage, Test, Lieferung und Überwachung; praktische Ratschläge für jeden Tag.



Das Buch kann auf der Website des Verlags „ DMK Press “ gekauft werden (die billigste Option!). Die Anzahl der Online-Shops Labyrinth , My-Shop.ru , Flip.kz , Oz.by und anderer Online-Shops steigt mit der Verbreitung des Buches .

Für das Saatgut (und mit Zustimmung des Herausgebers) gebe ich ein Stück aus Kapitel 3.

3. Anwendungsarchitektur


So haben wir bereits erfahren, wie Xamarin.Forms funktioniert und wie wir das technische Design selbst durchführen. Jetzt haben wir ein Verständnis für das Domänenmodell und es ist Zeit, uns mit der Architektur und Struktur der Lösung zu befassen - wie wir unsere Klassen in Ordnern verteilen, damit der erforderliche Code später leichter gefunden werden kann.

3.1. Multilayer MVVM


In mobilen Anwendungen wird traditionell eine mehrschichtige Architektur verwendet, bei der Datenzugriffsschichten, eine Geschäftslogikschicht und eine Benutzerschnittstellen-Anzeigeschicht voneinander getrennt sind.


Abb. 3.1. Klassische dreistufige Architektur

Da das Architekturmuster MVVM in Xamarin.Forms enthalten ist, wird empfohlen, es in mobilen Anwendungen zu verwenden. MVVM beschreibt die Beziehung von View (normalerweise sind die Anwendungsbildschirme Page), ViewModel und Model.


Abb. 3.2. MVVM-Muster

Daher sieht die typische Architektur einer auf Xamarin.Forms basierenden Anwendung folgendermaßen aus:


Abb. 3.4. Grundlegende Anwendungsarchitektur unter Xamarin.Forms

In diesem Buch konzentrieren wir uns auf die vorgestellte Architektur, da sie ein Klassiker für Xamarin.Forms ist. Jedes der Module wird in den folgenden Abschnitten ausführlicher beschrieben.

3.2. Layered Decomposition


Wenn wir uns an die Grundlagen erinnern, besteht ein Programm aus einer Reihe von Algorithmen und Daten. Mobile Anwendungen sind keine Ausnahme. Die Architektur ermöglicht es Ihnen, die Algorithmen und Daten für verschiedene Zwecke voneinander zu trennen.

In mobilen Anwendungen können die folgenden Arten von Algorithmen bedingt unterschieden werden:

  1. Steuerung des Verhaltens und des Erscheinungsbilds von Benutzeroberflächenkomponenten (Benutzeroberfläche, Benutzeroberfläche);
  2. Benutzerinteraktionslogik und Geschäftsszenarien (Geschäftslogik, BL);
  3. Logik der Datenerfassung, -speicherung und -transformation (Datenzugriffsschicht, DAL);
  4. Plattformfunktionalität, die nicht mit der Benutzeroberfläche (Plattform) zusammenhängt.
  5. Es gibt auch viele zusätzliche Algorithmen wie die Anwendungsinitialisierung oder zusätzliche Zusatzklassen und -erweiterungen (Extensions), die jedoch nicht so einfach zu klassifizieren sind, da sie für Projekte, Teams und ausgewählte Bibliotheken spezifisch sind.
  6. Die Struktur eines leeren Projekts in Xamarin.Forms ist unten dargestellt. Außerdem ist es wichtig zu wissen, in welchen Ordnern die Dateien abgelegt werden sollen, damit der Code einfach bleibt.


Abb. 3.5. Die Struktur eines leeren Projekts auf Xamarin.Forms

Wenn wir fortfahren, den Code „in gutem Zustand“ zu halten (minimale technische Verschuldung), ist es wichtig, dass das Team einheitliche Vereinbarungen befolgt. Nachfolgend betrachten wir ein Beispiel für die Aufteilung von Klassen in Ordner, die der beschriebenen Architektur entsprechen.

Aber lassen Sie uns zuerst die Daten abrufen. Es ist wichtig zu verstehen, welche davon besprochen werden. Es gibt Daten, die vom Server stammen (Datenübertragungsobjekt, dto), aber es gibt Daten, die in der Anwendung verarbeitet werden (Modelle, Entitäten, Datenobjekte). Beachten Sie, dass es bequemer ist, sofort vorgefertigte Daten von der DAL-Schicht zu erhalten, damit Sie leichter weiter damit arbeiten können. Wir werden mehr darüber in Abschnitt 3.5 sprechen.

In mobilen Anwendungen gibt es auch keine Datenmenge, die es erforderlich macht, dicke Modelle zu erstellen und die Geschäftslogik darauf abzustreichen (ein Ansatz großer Unternehmenssysteme). Genug konventionelles POCO (Plain Old CLR Object) ohne Logik. Alle fertigen Daten stammen also aus der DAL-Schicht. DTO-Klassen, die andere Schichten nicht kennen, sind darin verborgen. Unten sehen Sie den Unterschied zwischen dicken Modellen und POCO-Objekten.


Abb. 3.6. Der Unterschied zwischen einem "dicken" Modell und einem POCO-Objekt

Weiterhin halten wir uns an folgende Notation:

  1. Datenobjekte - flache Datenmodelle (POCO), mit denen die Geschäftslogik weiterhin arbeitet.
  2. Datendienste - Datenerfassungs-, Transformations- und Speicherdienste.
  3. Business Services - Datenverarbeitungsdienste und Geschäftsszenarien.
  4. Plattformdienste - Dienste für den direkten Zugriff auf die Plattformfunktionalität.

Ich wäre dankbar für Ihr Feedback und Ihre Kommentare, bleiben Sie in Kontakt!

Source: https://habr.com/ru/post/de484602/


All Articles