Bonjours amis développeurs !

Moi et un ami comptons nous lancer dans le développement d'une application mobile.

Dans l'esprit c'est assez différent mais coté technique : ça devrait beaucoup ressembler à une application type Tinder (à savoir de la mise en relation de personnes avec une connexion via facebook, des profils, un chat et de la géolocalisation).

Je suis chargé de coder tout ce qui est client/serveur (mon ami s'occupe de l'interface), je n'ai jamais programmé de programmes de ce style, je pense avoir un bon niveau mais je reste autodidacte, je fais donc appel à votre expérience pour m'aiguiller éventuellement sur les technologies à utiliser mais surtout sur l'architecture à adopter (histoire de pondre un truc jolie).

J'ai vainement cherché de la documentation sur l'architecture du serveur mais je n'ai rien trouvé de concret à part quelques tutos sur les sockets (si vous avez des liens vers des programmes, des tutos ou des diagrammes UML (notamment des diagrammes de classe), je suis preneur parce que c'est assez difficile de trouver quelque chose de clair).

Mon idée de départ était de partir sur l'idée d'un client qui communiquerais avec le serveur en envoyant des requêtes via les sockets, le serveur se chargeant ensuite de manipuler une base de donnée (je pensais à utiliser PostgreSQL comme SGBD, vu que c'est libre et que MySQL semble avoir une assez mauvais réputation et que SQLite ne gère pas les privilèges utilisateur) puis de retransmettre le tout au client via les sockets. On m'a également parlé de RMI qui me semble une approche moins complexe. Dans la pratique j'imaginais un thread par client connectés (avec une class ClientListener qui exécuterais les différents types de requêtes et des class pour chaque entités de mon modèle entité-association qui feront le lien entre la BDD et le programme serveur) et un thread d'écoute pour capter une nouvelle connexion (c'est ce qui est ressortit des tutos sockets que j'ai pu voir).

Bref j'attends vos conseils éclairés.