Chat wie Whatsapp Programmieren! Wie Funktioniert es? Java oder Swift?

7 Antworten

Diese ganzen Fragen wird dir niemand zufriedenstellend beantworten können, weil man das gar nicht pauschal sagen kann.

Ob du ein MacBook oder einen PC nimmst, hängt von persönlichen Vorlieben und auch dem Budget ab.

Swift oder Java kommt ganz darauf an auf was das Laufen soll  bzw. was damit gemacht wird.

Und auch für ein Chat Programm gibt es natürlich keine Universelle Lösung. Mal davon abgesehen, das man wenn man eine Programmiersprache Lernt vielleicht etwas kleiner anfangen sollte ;)

Einen Server braucht man natürlich auf jeden Fall, es sei denn man macht ein Peer-Peer basiertes Programm, was denke ich wenig sinnvoll ist.

KilluaZoldyck66 
Fragesteller
 26.11.2017, 02:10

Vielen dank würde noch etwas darüber lernen wie man so ein Chat programmiert und Apps veröffentlich :) !! :D evtl auch wie ich schonmal so weit gehen kann das ich mit einem Freund über ein eigenes chat programms chrieben kann wäre sehr lustig  :D 

0
sudorc  26.11.2017, 03:17

Besser kann man diese Fragen vorbehaltlos nicht beantworten!

0

Ich wollte mir jetzt evtl ein MacBookAir 2015 holen oder ein Pc ich kann mich nicht entscheiden Swift oder Java ?

Wenn du Applikationen für Mac OS X entwickeln möchtest, ist es sinnvoller, mit Objective-C, C++ oder Swift zu arbeiten (an dieser Stelle merkst du, dass die Applikationsentwicklung verschiedener OS ziemlich abgekapselt voneinander sein kann).

Welches lernt man einfacher was ist besser könnt ihr mich überzeugen ?

Sowohl Swift als auch Java sollten sich als Einstiegssprache eignen. Wenn du dich für Java entscheidest, würde ich dir zuvor Processing empfehlen, da diese Sprache nochmals eine Vereinfachung von Java darstellt und schnelle visuelle Erfolge bietet.

https://processing.org/Lies dazu auch meine Antwort hier: https://www.gutefrage.net/frage/welche-programmiersprache-sollte-ich-fuer-den-einstieg-nehmen?foundIn=list-answers-by-user#answer-261096307

Wenn du Swift wählst, würde ich dir empfehlen, dich ebenso mit C und Objective-C auseinandersetzen. Vor allem letztere ist innerhalb der Apple-Welt noch immer eine wichtige Sprache, mit C hingegen sind immens viele Programmbibliotheken entwickelt worden. Anzufügen an diesen Rat ist allerdings, dass dies keine absolute Notwendigkeit darstellt, deinen Chat kannst du auch ohne Kenntnis dieser beiden Sprachen programmieren.

Mehrere Tutorials zu iOS-Sprachen findest du übrigens auf dieser Seite

https://www.raywenderlich.com/

wenn mal nicht die Dokumentation von Apple sein soll. Andernfalls sind in jedem Fall natürlich Bücher als Lernlektüre zu empfehlen.

(...) und dann hätte ich da noch eine Frage nirgendwo kriegt man gezeigt wie man ein Chat Programmiert wie (...)

Was erwartest du denn? Eine Schritt-für-Schritt-Anleitung? Dann wären ja Chats wie WhatsApp nicht mehr notwendig.

Grundlegende Tutorials zur Programmierung eines Chats gibt es zuhauf, doch bevor du dich solchen Themen widmest, heißt es für dich zunächst, sehr viel Grundlagen zu lernen. Dazu musst du viel Zeit, Interesse und Geduld aufbringen. Server-Client-Architekturen u.ä. sollten erst nach den erweiterten Grundlagen (dazu zähle ich OOP) betrachtet werden. Es liegt also noch ein sehr langer Weg vor dir.

aber wie Funktioniert sowas braucht man dafür extra einen server ?

Man kann dafür eine Server-Client-Verbindung konstruieren, ebenso möglich wäre aber auch Peer-To-Peer (P2P). Bekannte Anwendungen, die zur Kommunikation P2P nutzen sind z.B. Skype oder Napster. WhatsApp nutzt meines Wissens einen zentralen Server.

Was muss man machen um sowas in den Appstore/Playstore zu bekommen (...)

Vor allem gilt es bestimmte Richtlinien zu beachten, die die Stores stellen. Wie diese aussehen, musst du selbst recherchieren, so schwer sollte das nicht fallen. Sowohl Apple als auch Google haben eigene, ausführliche Artikel zu ihren Developer Programs.

Da du an dieser Stelle den Playstore erwähnst, kann wohl vermutet werden, dass du ebenso für Android entwickeln möchtest. An dieser Stelle musst du dich festlegen, bevor du irgendwann einmal mit dem Chat beginnst: Soll die Anwendung nur auf Android, nur auf iOS oder auf beiden Systemen - womöglich sogar allen verfügbaren mobilen OS laufen?

a) Nur Android

In dem Fall wäre es zu empfehlen, die Applikation mit Java zu entwickeln, also auch Java zu lernen. Eine Alternative wäre C++ & QML zusammen mit dem Qt-Framework oder womöglich PySide (Python + Qt, wobei ich nicht sagen kann, ob dies noch auf dem aktuellsten Stand ist).

b) Nur iOS

Wie gesagt, stehen dann die Möglichkeiten mit C++, Objective-C oder Swift im Raum. Eine Einstiegssprache vor den beiden erstgenannten könnte C sein.

c) Android + iOS + WinRT

In diesem Szenario gäbe es mehrere Möglichkeiten. Entweder man entwickelt pro OS eine eigene App (Windows mit C#) oder man nutzt ein Framework, welches alle OS gleichermaßen bedient.

Einmal wieder stände hier Qt zur Wahl mit den Sprachen C++ & QML, letztere ist eine deklarative Programmiersprache die sehr an JavaScript anlehnt und auf der gleichen Webkit-Engine basiert, wie sie in einigen Webbrowsern verwendet wird. Als Werdegang würde ich als Einstiegssprache C empfehlen und danach auf C++ wechseln. QML selbst ist extrem leicht erlernbar.

Eine weitere bekannte Alternative bietet das Xamarin Framework, welches mit C# arbeitet. C# hat sehr viele Konzepte und Sprachkonstrukte von Java übernommen oder verbessert. Damit ist die Sprache um einiges komplexer, zumal das Fundament von dem mächtigen .NET-Framework gebildet wird. Für Anfänger halte ich C# nicht geeignet, denn seine Komplexität kann schnell erschlagend sein oder schlechten Stil fördern. Der Werdegang über Processing - Java - C# bietet sich sehr gut an.

Andere Optionen werde ich an dieser Stelle nicht auflisten, des Weiteren habe ich mich bei meiner Antwort nur auf native mobile Apps beschränkt. Die Option einer Hybrid- oder einer WebApp bestände ja auch noch und dies würde erneut viele neue Türen öffnen.

KilluaZoldyck66 
Fragesteller
 26.11.2017, 14:34

Vielen dank ! Mache ich! :) 

0
ich kann mich nicht entscheiden Swift oder Java ?

Du musst dich entscheiden, ob du Android- oder iOS-Apps für den Anfang entwickeln willst. Diese Entscheidung kann dir keiner abnehmen, aber Argumente für beide Seiten findest du überall im Internet und auch hier wurden schon einige genannt. Meine Meinung dazu möchte ich an dieser Stelle nicht äußern, um keine Diskussion hervorzurufen.

und dann hätte ich da noch eine Frage nirgendwo kriegt man gezeigt wie man ein Chat Programmiert wie Whatsapp oder Instagram Direct Messages zb ich will so etwas in der Art Programmieren aber wie Funktioniert sowas braucht man dafür extra einen server ?

Natürlich. WhatsApp nutzt z.B. das XMPP-Protokoll für Instant-Messaging. Serverseitig würde sich beispielsweise ein modifiziertes OpenFire eignen. Tutorials für XMPP-Chats gibt es reichlich.

 Was muss man machen um sowas in den Appstore/Playstore zu bekommen

Das ist auf den entsprechenden offiziellen Websites schon so detailliert beschrieben, dass es hier keiner weiteren Erläuterung bedarf. Dazu gibt es auch jede Menge Bücher, die einen bei der Entwicklung einer App begleiten.

Bedenke auch, dass hinter WhatsApp jede Menge Sicherheit steckt, was keineswegs einfach nachzuvollziehen ist. Sieh dir dazu doch einfach das offizielle Security-Whitepaper an.

Für Android-Apps empfiehlt sich Java, für iOS-Apps Swift.

Für den vermittelnden Server kannst du jede x-beliebige gängige serverseitige Programmiersprache nehmen, da du ja vermutlich sowieso nicht allzu viele User und damit Traffic zu verwalten hast.

Dass es dazu keine Tutorials gibt, kann ich mir kaum vorstellen, weil das Thema vermutlich alle paar Minuten irgendwo im Netz aufkommt, aber ich habe ehrlich gesagt noch nie danach gesucht.

Wenn du halbwegs fit in den oben genannten Programmiersprachen bist, brauchst du übrigens auch kein Tutorial mehr, weil sich alle deine Fragen von alleine Lösen werden. Das erfordert aber auch, dass du möglichst mit einem guten Lehrbuch lernst und alle Kapitel aufmerksam studierst, anstatt dir für ein paar Tage Youtube-Videos rein zu ziehen!

So einen einfachen Chat wirst du wohl auch relativ leicht als absoluter Einsteiger hinbekommen, allerdings nicht in "gut" und "sicher", denn dafür brauchst du mehr Erfahrung. Aber für den Anfang wird es sowieso reichen, wenn es nur du und eine Hand voll deiner Kumpels nutzen.

Im Endeffekt ist es ja kaum mehr als eine GUI auf Mobilgeräten für ein paar Pakete, die Text enthalten. Das dürfte auch als Einsteiger machbar sein. :)

Aber - wie gesagt - erwarte keinen Riesenerfolg, weil es Messenger wie Sand am Meer gibt. Allerdings findet ein blindes Korn auch ab und zu mal ein Huhn ... und manchmal gibt es tatsächlich Apps, die einen viralen Hype entwickeln, wobei ich mich frage, warum eigentlich? :)

Naja, auf jeden Fall ist das eine nette Übung. Aber fang NICHT direkt damit an, sondern arbeite ordentlich alle Lektionen / Kapitel in einem guten Lehrbuch deiner Wahl durch. Eins nach dem anderen!

All deine Fragen werden von jedem vernünftigen Lehrbuch beantwortet werden!

Viel Spaß! :)
KilluaZoldyck66 
Fragesteller
 26.11.2017, 02:44

ja ich habe schon einige spiele wie Mario und andere Jump and Runs programmiert aber nach Tutorials und mit Snap und jetzt frage ich mich soll ich Java oder Swift lernen ? ich habe zuhause selber ein Iphone aber kann mich einfach nicht entscheiden :( ! Ja also würde gerne noch mehr darüber wissen wie man einen Messenger Programmiert :/ Was man da eingeben muss und wie das mit den Serven usw funktioniert ich habe sehr Lust mit Freunden zu schreiben über eine eigen entwickelte app :D 

0
regex9  26.11.2017, 03:13
@KilluaZoldyck66

Was man da eingeben muss (...)

Die Syntax, Semantik der Sprache und gute Konzepte lernst du aus Büchern / Dokumentationen.

Was du eingeben musst, erdenkst du dir selbst. Programmieren erfordert Kreativität und das Wissen, wie man einen Algorithmus zu einer Problemstellung entwickelt. Wenn du darauf angewiesen bist, von anderen Lösungen abzutippen, kannst du nicht wirklich programmieren.

Lerne das Prinzip Teile und Herrsche, informiere dich über Algorithmenbildung und Herangehensweisen für Probleme im Software-Engineering. UML dürfte da ein weiteres gutes Stichwort für dich sein.

3
procoder42  26.11.2017, 08:04


wenn es nur du und eine Hand voll deiner Kumpels nutzen.

Dann aber doch bitte für Android ! Da kann man wenigstens die APK sharen und muss nicht direkt im Store veröffentlichen.


So einen einfachen Chat wirst du wohl auch relativ leicht als absoluter Einsteiger hinbekommen

Von Snap! (https://snap.berkeley.edu/) zu Java/Swift + Socket Programmierung unfd Multithreading ist schon ein Schritt.

1

Auf macbooks kannst du auch Java programmieren. Wenn du dir zcode runterlädst (für IOs applikationen) hast du automatish python, c, swift, objective c, c++, java, assembler und noch viele mehr.