Android App mit TCP-Kommunikation

  • Xamarin.Forms

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    Android App mit TCP-Kommunikation

    Hallo Leute,

    da ich alle meine geplanten Projekte abgeschlossen habe, habe ich bis zum Herbst etwas Zeit übrig um etwas neues zu lernen.
    Ich kannte bisher ausschließlich VB6 und VB.NET (inkl. compact Framework). Nun ist es an der Zeit auch über den Tellerrand zu blicken und die Möglichkeiten mit Android abzuchecken.

    Genauer gesagt geht es um unser mobiles Bestellsystem für die Gastronomie, welches nun auf einem Android Smartphone auch nicht schlecht wäre.
    Bisher verwendeten wir Geräte mit Desktop Windows (Tablets) oder Windows Mobile (.NET Compact Framework) um per TCP mit der Kasse zu kommunizieren.
    Die Protokolle und Datensatzbeschreibungen stehen also schon - es muss daher nur die Android App programmiert werden.

    Nun möchte ich (von Null weg) C# für Xamarin lernen und eine brauchbare Oberfläche und eine funktionale TCP-Kommunikation auf Android programmieren.
    VS2019 habe ich schon geladen.

    Ist das Xamarin.Forms die beste Wahl (mit der Option später eventuell auch iOS verwenden zu können)?
    Laut meiner Recherche ja, da hier eine .NET ähnlichere Programmierung möglich ist ?!

    Hat jemand Erfahrungen in der Programmierung von TCP-Kommunikation (ich muss lediglich Strings zwischen Kasse und Mobilgerät hin- und herschicken).

    Ich habe gesehen, dass der XAMARIN-Abschnitt im Forum relativ überschaubar ist. Ich hoffe aber dennoch, dass ich hier viele Tipps dafür bekomme.

    LG Roland
    Liebe Grüße
    Roland Berghöfer

    Bei der Entwicklung meiner Anwendung(en) steht nicht "Code nach .NET Lehrbuch" im Vordergrund, sondern eine stabile und brauchbare Anwendung die der Anwender ordentlich verwenden kann. Usability für den Kunden und Supportbarkeit beim Kunden stehen an oberster Stelle. Das spiegelt sich auch in meinen Fragen und Antworten wider. Bitte verzeiht, dass meine VB.NET Quellcodes etwas VB6-lastig sind aber das ist für das funktionierende Endergebnis nicht wirklich relevant.

    dive26 schrieb:

    TCP-Kommunikation
    Wenn diese Seite mich nicht anlügt: docs.microsoft.com/de-de/dotne…ient?view=netstandard-2.0
    Dann kannst du unter Xamarin.Forms im .NET Standard Projekt einfach eine Instanz von TcpClient instanzieren, und munter drauf los Kommunizieren.

    Eines muss dir aber bewusst sein, wenn du mit Xamarin.Forms anfängst. Das Lernen von XAML, MVVM-Pattern, sowie DependencyInjection (DI) und Inversion-of-Control (IoC) sind ein muss.
    Während letztere beiden erstmal "nur" wichtig sind, um zu verstehen, wie man native Funktionalitäten im .NET Standard Projekt aufruft, sind die ersten beiden sehr wichtig. Am besten ist es, du arbeitest dich durch das Tutorial von @Nofear23m zum Thema WPF durch. Da werden bereits einige Wichtige Punkte abgearbeitet.

    Wenn du das alles hast, dann darfst du dich an mehr als 90% einmal geschriebenem Code erfreuen, der von den Plattformprojekten Importiert wird. Die App an der ich nun schon die letzten Jahre Arbeite und via HttpClient mit einer ASP.NET Core WebAPI Schnittstelle kommuniziert ist im Moment bei rund 93% Codesharing.

    Und noch was, für vieles wirst du NuGet Pakete benötigen. Xamarin.Forms selbst ist quasi ein NuGet Paket.
    Post-AGB:
    §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
    §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
    Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
    §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
    Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    Danke @EaranMaleasi
    Ich habe den ganzen Nachmittag mit einem Beispielprojekt verbracht, welches VS2019 anbietet (das mit den 2 Tabs).

    Dass XAML etwas gewöhnungsbedürftig ist, das habe ich mitbekommen. Wäre aber nicht das Problem - nur eine Frage der Zeit die man investiert.

    Im Emulator lief auch das Beispielprogramm einwandfrei - auch mit Modifikationen (vorerst nur der Oberfläche). Irgendwie schaffte ich es dann auch über Erstellen/Bereitstellen eine .apk zu generieren. Diese lies sich zwar auf meinen Smartphones installieren, aber die APP brach mit "App angehalten" ab. Galasy A4 (Android 7.0) und Mate 20 Pro (Android 9) - selber Fehler.

    Wie sieht es mit der Kompatibilität aus? Läuft so eine Anwendung (z.b. für Android 6.0 kompiliert) auf nahezu allen Android Geräten oder gibt es da viele Ausnahmen? Habe gelesen, dass das Framework hier sehr oft Probleme macht.
    Bilder
    • 15052019175709.jpg

      87,42 kB, 412×698, 20 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Bei der Entwicklung meiner Anwendung(en) steht nicht "Code nach .NET Lehrbuch" im Vordergrund, sondern eine stabile und brauchbare Anwendung die der Anwender ordentlich verwenden kann. Usability für den Kunden und Supportbarkeit beim Kunden stehen an oberster Stelle. Das spiegelt sich auch in meinen Fragen und Antworten wider. Bitte verzeiht, dass meine VB.NET Quellcodes etwas VB6-lastig sind aber das ist für das funktionierende Endergebnis nicht wirklich relevant.
    In den letzten eineinhalb Jahren konnte ich persönlich keine inkompatiblitäten zu irgendwelchen Geräten feststellen. Darunter waren von normalen Low-end Samsungtablets bis hinzu "ruggedized" Industrietablets mit Militärstandard was Fallschäden angeht schon ziemlich viel dabei. Smartphones ähnlich. Mein Zielframework ist bei mir immer die neueste Version (Im Moment 9.0 API-Level 28) jedoch ist die mindestversion 4.1 API-Level 16.

    Wenn du dein Gerät per USB verbindest, kannst du, sofern in den Entwicklereinstellungen des Gerätes aktiviert, direkt auf dem Gerät debuggen. Emulatoren waren bisher für mich immer ein Graus, da teilweise dort Dinge funktionierten, die auf Geräten zu Fehlern führten, und interessanterweise auch genau anders herum. Ich ziehe es vor immer auf einem Gerät zu debuggen.
    Post-AGB:
    §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
    §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
    Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
    §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
    Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen
    @EaranMaleasi
    Danke für die Info wegen der Geräte und Kompatibilität.

    Hab jetzt mein Huawei Mate 20 Pro für Debugging eingerichtet - so startet es.
    Ich denke, dass es eher ein Problem der .apk Datei zur Installation ist/war. Aber das müsste man sicher auch noch in den Griff bekommen.

    Ich werde mich nun mal mit der Oberfläche beschäftigen und einigen einfachen Dingen und dann (falls es mir nicht zu kompliziert erscheint) etwas tiefer gehen.
    Liebe Grüße
    Roland Berghöfer

    Bei der Entwicklung meiner Anwendung(en) steht nicht "Code nach .NET Lehrbuch" im Vordergrund, sondern eine stabile und brauchbare Anwendung die der Anwender ordentlich verwenden kann. Usability für den Kunden und Supportbarkeit beim Kunden stehen an oberster Stelle. Das spiegelt sich auch in meinen Fragen und Antworten wider. Bitte verzeiht, dass meine VB.NET Quellcodes etwas VB6-lastig sind aber das ist für das funktionierende Endergebnis nicht wirklich relevant.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „dive26“ ()