Smartphone Multiplatform-App

  • Hey!
    Hat hier jemand zufälligerweise Erfahrung mit App-Programmierung für mehrere Plattformen? Ich möchte ungern für Android, iOS und Windowsphone einzeln programmieren.
    Ich habe mir schon PhoneGap angeschaut, wollte aber mal gerne eure Meinung wissen, falls ihr schon mal so was gemacht habt.


    Die Leistungsfähigkeit steht an zweiter Stelle, am besten wäre wirklich, wenn man mit HTML, CSS und JS dafür schreiben könnte.
    Es sollte schön einfach aufzusetzen sein und am besten auch einfach zu erlernen (Wie man mit JS zb. auf die Hardware zugreift etc)

  • Es kommt auf deine Fähigkeiten drauf an: Von cross-platform solutions wie React Native, Codename One und Nativescript würde ich bedingt abraten, wenn du keine Kenntnisse mit IOS, Android und Windowsphone hast.


    Ich entwickel selbst eine App aktuell für einen Kunden von mir mit React Native und mit den aktuell verfügbaren Plugins kommt man schnell an sein Limit, dass ist leider bei den meisten Technologien in die Richtung so und die Performance bei den UI Komponenten ist bei großen Datenmengen und Effekten, wenn man sich zum Beispiel nur in Javascript VM aufhält auch nicht so überragend, aber das Problem sehe ich hier nicht nur bei React Native.


    Der wesentliche Punkt, warum sowas begehert ist am Markt, ist wenn man mal die Plugins hat kannst du deine Projekt bis 300 % schneller umsetzen als davor und die Entwicklung erzielt dadurch beim UI als auch im Backend-Bereich sehr schnelle Ergebnisse.


    Zum Thema Hybrideapps, kann ich aktuell nur empfehlen, jedoch würde ich da zu Ionic 2 tendieren, da du hier auf Cordova, Phonegap, Ionic und Angular 2 Plugins zurückgreifen kannst und auf den ganzen Rest was das Web so bietet. Die Performance finde ich persönlich ziemlich gut, auch bei großen Datenmengen. Wenn wir eine Liste nehmen würden liegt das Limit bei den RecyclingViews für Ionic 2 mit Crosswalk Project bei 3.4 Mio Datensätzen, im Vergleich zu Android liegt das bei 5 Mio Einträge. Also hinsichtlich Stabilität auch im Vergleich zu cross-platform solutions wesentlich besser. Auch was Screenladezeiten angeht ist sogar bei großen Datenmengen hybride schneller als sogar native.


    Wie bereits angesprochen kannst die Performance noch je nach Webviewer von hybriden apps erhöhen schau dir einfach mal dazu den WKwebViewer an und Crosswalk Project.


    Was gibt es ansonsten noch zu sagen, ahja falls dir 25 Euro im Monat nicht zu viel sind kannst du dir bei Ionic den Creator kaufen und Apps fast per Drag and Drop online zusammen bauen, ebenso brauchst du die App nicht mal in einem Store (Google, Apple) anbieten, da über den Cloud service die App aktualisiert werden kann und die Ionic View app bietet dir die möglichkeit ohne großes kompilieren und installieren von Hand deine App direkt auf deinem Smartphone zu testen.


    Schau einfach mal rein, die Doku finde ich persönlich richtig gut gemacht


    Link: https://ionicframework.com/


    Link: https://crosswalk-project.org/

  • Wie du bereits gesagt hast PhoneGap ist da einer der richtigen anlaufstellen, wenn du mit HTML CSS JS die App programmieren möchtest.


    Ich würde aber nochmal einen Blick mehr auf Cordova und nicht auf Cordovas Phonegap werfen. Du kannst mithilfe von git (Damit mein ich das Terminal für Windows (falls du Windows hast)) eine Cordova App erstellen die auch Templates vorzuweißen hat und aus der man gut lernen kann. Weiters lässt diese sich eben in alle Plattformen exportieren.


    Wenn du dann noch eine Desktop App haben möchtest kannst du zusätzlich noch "Electron" verwenden damit wird aus einer WebApp eine Desktop App erstellt.


    Nützliche Links: https://ccoenraets.github.io/c…eate-cordova-project.html
    https://cordova.apache.org/
    https://www.toptal.com/mobile/…tions-with-apache-cordova (Tutorial => gut erklärt)


    Weiters gilt noch zu sagen, überlege dir vorher was du in der App alles machen willst. Da bei einer Hybrid App (zB aus Cordova) nicht auf alle Native Funktionen zugegriffen werden kann.


    MFG


    /edit Prototype hat ebenfalls alles wichtige von einer anderen Perspektive geschildert + more information

    MFG

  • Danke schon mal vielmals für die Ausführlichen Antworten!


    Vielleicht habt ihr ja sogar so viel Erfahrung, dass ihr mir ein paar Tipps/Empfehlungen geben könnt, deswegen möchte ich mich mal genauer äußern:


    - Karte anzeigen mit aktueller Position und aus einer Datenbank(?) ausgelesener Marker


    - Kleines Netzwerk mit friendships


    - Videos und Bilder teilen, bewerten



    Eine sehr grobe erste Übersicht was ich machen möchte.
    Ich brauche nach aktuellem Stand also wenige native Funktionen. GPS, Kamera und Medienzufriff auf jeden Fall und gerne noch Pushnotifications.

  • Die Frage ist halt, brauchst du Features, die eine App für dich als Entwickler interessanter machen als z.B. eine Webapplication (z.B. SPA)?


    Ich bin der Meinung, dass eine gute Website besser ist als eine mittelmäßige App und ich meine Geräte mit möglichst wenigen Apps belasten will. Jede App erhöht das Risiko einer Schwachstelle, viel schlimmer aber sind schlecht optimierte Apps die z.B. Wake Locks hervorrufen. Da ist der Akku schnell leer und die Sucherei geht los welcher doofe Entwickler seinen Scheiß nicht gründlich testet.


    Demnach würde ich erstmal evaluieren, ob eine App wirklich das Mittel der Wahl ist. :P

  • Das ist tatsächlich nicht viel, da kannst du einfach zu einer hybriden App greifen, da kannst du auf firebase oder gms zugreifen für die pushnotification oder ein zwischenlayer basteln mit webservice.
    Bedenke hier das es sinnvoll sein könnte die Daten zu cachen auf dem mobilen endgerät, sqlite wird von allen technologien supportet.


    Der Zugriff auf medien ist bei allen gewährleistet, für react native gibt es zum Beispiel auch einige Design klone bsp instagram und whatsapp. Falls der Bereich verteilte Systeme neuland für dich ist es gibt auch paar tutorials für ein whatsapp, instagram und tinder klon für ionic 2.


    Was Google Maps angeht bei Ionic2 kannst du da ganz easy auf die js version zugreifen, beim cross-platform solutions wird meist eine extra api zu Verfügung gestellt, was dir zwar die wichtigsten Funktionen liefert, jedoch nicht alle, dennoch deckt es dein use case ab.


    Aber generel muss dich für den Datenaustausch schon mal auf eine RESTful Api also ein Webservice.


    Ich würde dir empfehlen schau dir die technologien mal an und arbeite ein bissle damit , learning by doing und tutorials und was dir am meisten zusagt nutz am besten die Technologie.