Anfängerfragen zu Xcode

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Anfängerfragen zu Xcode

    Guten Tag,

    und zwar habe ich in der Schule die Aufgabe bekommen, eine iOS App zu entwickeln, welche einen REST-basierten Webservice nutzt.


    Ich habe mir bereits Xcode heruntergeladen und genauer angeguckt und komme auch einigermaßen "gut" zurecht mit dem Programm, jedoch habe ich ein paar Probleme/Fragen zu Xcode und hoffe, dass mir jemand ein paar Tipps geben kann. (Ich möchte keine komplette Lösung, sondern nur Tipps, wie ich weiter vorgehen soll)

    Folgendes soll realisiert werden:
    1. Der User soll sich einloggen mit seinem Benutzernamen und Passwort und daraufhin soll geprüft werden, ob die Eingabe erfolgreich war. -> Dazu habe ich die Dateien: login.rcq und login.rcs
    2. Der User erhält daraufhin eine eigene ID vom Webservice.
    3. Es erscheint eine Liste, von 5 Personen -> Standort.rcs und Standort.rcq

    Meine Fragen zu:
    1 - Was mache ich mit diesen beiden Dateien bzw. wo muss ich diese implementieren, damit ich diese Dateien nutzen kann und warum hat diese Datei verschiedene Dateiendungen?
    2 - Wie kann der User eine eigene ID vom Webservice erhalten?
    3 - siehe Frage 1 und: Sobald die Liste erscheint, wie kann ich erreichen, dass ich durch das anklicken der Personen, sich die Karte mit dem Standort öffnet?
    4 - Gibt es ein Tutorial, wie man diese Dateien nutzt?
    5 - Ich besitze eine .jar Datei. Brauche ich diese? Oder reichen die ganzen .rcq und .rcs Dateien

    Ich hoffe, dass ich mich verständlich ausgedrückt habe, aber falls nicht, dann sagt mir bitte Bescheid.

    Ich bedanke mich für jede Antwort und hoffe das mir jemand ein paar Tipps geben kann! :)
  • Was ist das denn für eine Schule?!
    Na, deine rcs- und rcq-Dateien können sonst was sein - angucken schadet im Zweifelsfall nie (könnte mir vorstellen, dass da vielleicht vorgegebene Antworten drin stehen).
    Mit der .jar-Datei hast du wahrscheinlich Glück, dass du die besitzt, denn vielleicht spart dir die, dein Backend selbst bauen zu müssen (was am Ende aber vielleicht sogar einfacher ist, als eine Java-Anwendung zum Laufen zu bringen):
    Java installieren (Suchmaschine hilft - eventuell sagt dir der Computer sogar, was zu tun ist, wenn du die jar aufmachen willst), und dann "java -jar *.jar" (ein bisschen was zur Kommandozeile wirst du vielleicht auch lernen müssen).
    So, und was praktisches: NSURLSession ist dein Freund - ein paar Quellen dürften heutzutage schon veraltet sein, und dir NSURLConnection nahelegen.
  • @t-no

    vielen Dank für deine Antwort!

    Bei den .rcs und .rcg Dateien handelt es sich um XML Dateien und bei der .jar Datei handelt es sich um die .rcg und .rcs Daten. (es ist also im Endeffekt das selbe)

    Ich habe soeben nachgesehen und die Datei login.rcq beinhaltet den Benutzernamen, sowie das zugehörige Passwort.

    Somit hattest du Recht :) Xcode muss in meinem Fall, den Benutzernamen und das Passwort mit der .rcq Datei abgleichen und den Login gewähren bzw. ablehnen, jetzt muss ich nur noch herausfinden, wie ich diese Dateien in Xcode implementiere und anschließend nutzen kann.
    Ich schaue mir nachher mal NSURLSession sowie NSURLConnection genauer an.
  • Ich habe jetzt das Login Fenster erstellt und versuche die ganze Zeit herauszufinden, wie ich die eingegebenen Daten im Login-Fenster, also den Benutzername und das Passwort mit den Daten im Webservice abgleichen kann. ( login.rcq und login.rcs -> Es handelt sich hierbei um .XML Dateien)
    Ich habe bereits im Internet gesucht und nichts gefunden, was mich weiterbringt. Vielleicht hat ja noch jemand einen Tipp für mich.

    Edit: Also ich habe verstanden, wie man die Daten mit NSURL auslesen kann, jedoch nicht wie man die eingegebenen Daten (Benutzername und Passwort) mit den Daten, bspw. im Internet vergleichen kann)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von icl ()

  • Also ohne genaue API Beschreibung des Webservice ist es eigentlich unmöglich mit diesem zu kommunizieren. Liegt Dir die API des Webservice vor?

    Xcode wird Dir da auch nicht viel helfen können. Da musst Du schon ein wenig mehr in Objective-C einsteigen, um diese App zu realisieren.

    Mit Xcode kannst Du über den IB (Interface Builder) die XIBs für das UI (User Interface) erstellen, aber den komplette Code für die Kommunikation mit dem Webservice musst Du in Objective-C realisieren.

    Poste doch mal die API Beschreibung des Webservice. Evtl. können wir Dir dann ein paar konkrete Tipps geben.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von MCDan ()

  • icl schrieb:


    und zwar habe ich in der Schule die Aufgabe bekommen, eine iOS App zu entwickeln, welche einen REST-basierten Webservice nutzt.
    Ohne dass es Dich bei Deinem Problem unmittelbar weiterbringt: Was ist das für eine Schule, die Dir eine Aufgabe gibt ohne entsprechende Grundlagen oder zumindest Hilfestellungen zu vermitteln? Nein, diese Frage ist nicht rhetorisch, es interessiert mich wirklich :D

    Für Dein Problem wäre es m. E. hilfreich, wenn Du es zu strukturieren versuchst:
    1. Welche Informationen erhält Deine Applikation von ausserhalb, wie soll sie diese verarbeiten und was nach draussen liefern?
    2. Auf welchem Wege erhält / liefert sie diese Informationen (Transportweg und Format)? Reicht es z. B., dem Webserver für's Login einen Has zu liefern, den er nur überprüft? Was hat es mit der ID auf sich? Bekommt der angewählte User als Antwort die Standortdaten?
    3. Wie könnte die interne Verarbeitung aussehen, also Realisierung des Logins, Prüfung der Standortdaten, Listenaufbau, Detail-Ansicht mit Karte etc.
    Nun solltest Du eine ziemlich genaue Vorstellung habe, was Deine App eigentlich beinhalten soll ... mit dieser kannst Du dann anfangen, über Lösungswege in ObjectiveC nachzudenken bzw. konkretere Fragen zu stellen. Xcode ist bis dahin nahezu unbeteiligt, es ist nur die Entwicklungsumgebung. Ich habe bisher den Eindruck, dass gerade der erste Teil (Struktur / Zweck der XML-Daten) etwas dünn ist ... und hier ist Dein "Auftraggeber", also die Schule gefordert.

    HTH, Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Hallo,
    erstmal vielen Dank für eure Antworten!



    @MCDan
    Was ist darunter zu verstehen, dass Xcode mir da nicht viel helfen kann? Soweit ich es verstanden habe, kann ich in Xcode mit Objective-C und Swift programmieren - sollte doch richtig sein?
    Ich weiß ehrlich gesagt nicht, was du mit API Beschreibung des Webservices genau meinst? Ich habe weiter unten eine .XML Datei angehängt.

    @MyMattes
    Also ich gehe auf ein Berufskolleg und mache dort eine schulische Ausbildung (Betriebsinformatik) und dort habe ich ein Informatikfach, in dem ich diese Aufgabe erhalten habe.
    Man konnte sich entscheiden, ob man das ganze als Android App, iOS App oder als Webseite realisiert.
    Ich habe mich dazu entschlossen, das Ganze, als iOS App zu realisieren. Das heißt: Ich muss mir selbst Gedanken machen, wie ich das ganze realisieren soll, welches Programm ich dafür nutze, usw. Ich habe mich für Xcode entschieden, da dieses Programm direkt von Apple angeboten wird. Ich hätte genau so gut eine Webseite erstellen können, jedoch dachte ich mir, dass es doch mal interessant wäre, zu sehen, wie man eine iOS App entwickelt und was dahinter steckt.

    ______________

    Also wie ich bereits in meinem Eingangspost beschrieben habe, soll sich der User mit seinem Benutzernamen und seinem Passwort einloggen. Daraufhin soll geprüft werden, ob die Eingabe erfolgreich war.
    Dazu habe ich folgende .rcq Datei (Hierbei handelt es sich um eine .XML Datei)
    Diese sieht wie folgt aus:

    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <rest-client version="3.4.2"><request><http-version>1.1</http-version><http-follow-redirects/><URL>http://ibaawhereru.appspot.com/fap/fapservice/login</URL><method>POST</method><body><string content-type="application/json" charset="UTF-8">{"loginName":"peterl","passwort":{"passwort":"geheim"}}</string></body></request></rest-client>

    Des Weiteren habe ich auch eine .rcs Datei (ebenfalls .XML):

    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <rest-client version="3.4.2"><response><execution-time>265</execution-time><status code="200">HTTP/1.1 200 OK</status><headers><header key="Content-Type" value="application/json"/><header key="Date" value="Wed, 11 Feb 2015 10:59:24 GMT"/><header key="Server" value="Google Frontend"/><header key="Content-Length" value="42"/><header key="Alternate-Protocol" value="80:quic,p=0.02"/></headers><body>eyAiMWQxOWM2OGMtNWQ3YS00ODc4LTlhNjgtMDdiY2JjYzJhZTE1IiB9</body></response></rest-client>


    Mit Hilfe dieser Dateien, sollen die Eingaben des Benutzers überprüft werden (Benutzername, Passwort) und bei erfolgreicher Eingabe erhält der Benutzer eine iD zugewiesen (auch dafür besitze ich eine .XML Datei, welche ich hier nicht gepostet habe)
    Ich habe diese beiden .XML Dateien eingefügt, damit ihr sehen könnt, wie diese aufgebaut sind. Mein Problem ist wie gesagt: Was mache ich mit diesen .XML Dateien bzw. wie kann ich diese benutzen um das gewünschte Ergebnis zu bekommen?
    Nachdem der Benutzer sich erfolgreich eingeloggt hat, erscheint eine Liste, wo bspw. 5 Personen aufgelistet sind(Die Daten dieser Personen befinden sich ebenfalls auf einer .XML Datei)
    Außerdem sollte ich noch erwähnen, dass wenn man nach einer gewissen Zeit X nichts in der APP macht, dass man dann wieder bei 0 anfangen muss und sich erneut einloggen muss um eine neue ID zu erhalten?

    Ich denke, wenn ich es schaffen würde die Login Daten zu überprüfen, dann könnte ich den Rest der Aufgabe problemlos lösen, da alles im Prinzip sehr ähnlich ist.
  • Sollst du den Webservice selber implementieren oder den bestehenden benutzen?
    Die beiden Dateien geben dir schonmal guten Aufschluss darüber, wie der Webservice funktionieren soll.

    Die .rcq sagt dir welche Anfrage du an den Webservice stellen sollst, die .rcs wie eine mögliche Antwort bei korrekten Daten aussehen soll.

    Folgendes im Terminal:

    Shell-Script

    1. curl -v -H "Content-Type: application/json" -X POST -d '{"loginName":"peterl","passwort":{"passwort":"geheim"}}' http://ibaawhereru.appspot.com/fap/fapservice/login

    gibt diese Aussgabe:

    Shell-Script

    1. > POST /fap/fapservice/login HTTP/1.1
    2. > User-Agent: curl/7.37.1
    3. > Host: ibaawhereru.appspot.com
    4. > Accept: */*
    5. > Content-Type: application/json
    6. > Content-Length: 55
    7. >
    8. * upload completely sent off: 55 out of 55 bytes
    9. < HTTP/1.1 200 OK
    10. < Content-Type: application/json
    11. < Date: Sun, 17 May 2015 14:37:35 GMT
    12. * Server Google Frontend is not blacklisted
    13. < Server: Google Frontend
    14. < Content-Length: 42
    15. < Alternate-Protocol: 80:quic,p=1
    16. <
    17. * Connection #0 to host ibaawhereru.appspot.com left intact
    18. { "1d19c68c-5d7a-4878-9a68-07bcbcc2ae15" }
    Alles anzeigen

    Brauchst du den Webservice nicht selber zu implementieren sende einfach per POST Request den gegebenen Benutzernamen&Password an ibaawhereru.appspot.com/fap/fapservice/login und speichere dir die Ausgabe (Die ID).

    Wenn du ihn selber implementieren sollst, schau dir mal einige PHP Tutorials dafür an.
    Im Grunde reicht dir $_POST um die übergebenen Parameter in PHP weiter verarbeiten zu können, ein Vergleich der Daten mit einer Datenbank(?), Textfile,etc. oder hard gecodeten Werten und die Rückgabe der ID mittels echo json_encode($Die_ID).

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Spotlight ()

  • icl schrieb:

    Leider bin ich immer noch nicht weitergekommen. Hat noch jemand einen Tipp für mich bzw. ein Youtube Video, in dem mein Problem behandelt wird?
    Es steht doch eigentlich alles schon in den Posts oben. Wie Du in Deinem Post schreibst, komst Du schon "einigermaßen" mit Xcode zurecht. Das ist aber die IDE und hat nix mit der Programmierung zu tun. Ich befürchte, Du versuchst Dir hier irgendwas "zusammen zu klicken". So wird das aber nix.
    Zeig doch mal Deinen Code. Wie weit bist Du denn bis jetzt gekommen?
    Ich bin gegen Signaturen!!!
  • Zum Webservice:
    Hast du das .jar-file schon mal gestartet? Wahrscheinlich will das Port 8080 aufmachen, und dann kannst du deine App gegen den Computer testen.
    Ansonsten die Datei mal auf .zip umbenennen und gucken, was drin steckt - die Namen der .class Dateien sollten zumindest einen Hinweis geben, wozu der Teil gut sein soll.