Aller au contenu

[App][Free] Am I Weird ?


Recommended Posts

Bonjour à tous ! Je suis Martin, actuellement en Licence 3 Informatique, et je suis très intéressé par le développement mobile. J'ai développé quelques jeux pour Android, mais je suis ici pour vous parler de mon dernier projet, que je développe en collaboration avec un ami. Il s'occupe de la partie serveur (PHP) alors que je m'occupe de la partie client (Java).

Je vais ici vous présenter un projet qui me tient particulièrement à cœur puisqu'il s'agit de ma première application en tant que telle (j'entends pas là qu'il se s'agit pas d'un jeu) : Am I Weird ? Le principe est très simple : vous posez des questions (des sondages en fait), auxquels pourront répondre tous les autres utilisateurs. L'application se découpe donc en trois partie : la partie "Ask", qui permet de suggérer des questions. La partie "Answer", qui va vous proposer des questions (choisies aléatoirement) posées par d'autres utilisateurs. A noter que quand vous répondez à une question, vous verrez ensuite les résultats de cette question. Et la dernière partie, "MyQuestions", qui permet de visualiser les résultats des questions que vous avez posées.

Genèse :

J'ai découvert sur le net un site qui permet de répondre à des sondages funs (avec des questions intéressantes, d'autres juste marrantes, etc). J'ai tout de suite accroché à l'idée, et j'y ai passé pas mal de temps. Cependant, il est impossible d'y suggérer des questions, autrement dit, il n'y a aucun interaction avec l'utilisateur si ce n'est qu'il répond aux questions, et que les votes sont sauvegardés. Mais le principe est génial, puisqu'il amène à réfléchir sur des sujets auxquels on aurait pas forcement pensé seul.
J'ai donc envoyé ce site à mon ami, qui a trouvé ça aussi sympa que moi. Je lui ai donc proposé de développer une version mobile, avec quelques améliorations. On a ensuite passé pas mal de temps à réfléchir autour de ce principe, et nous en sommes arrivé à deux conclusions : pour que le projet soit intéressant, il faut que l'utilisateur puisse agir sur le contenu, et trouver un petit truc en plus.

Généralités et avancement :

Actuellement, nous avons une application Android fonctionnelle. Le service est prêt à être utilisé, l'application communique bien avec le serveur, etc.
Pour ce qui est du "petit truc en plus", nous avons mis en place un indice, la "Weirdness", visualisable dans la partie "Answer". Il correspond à la propension que vous avez à répondre comme les autres, ou non. Le nom de l'application a donc été trouvé en rapport avec cet indice. On trouvait ça amusant de proposer une application pour savoir si vous êtes bizarre (c'est un peu réducteur de dire que quelqu'un d'original est bizarre, certes, mais c'était plus pour le côté fun d'un tel principe).

Pour ce qui est de la technique, l'application est entièrement développée en Java. J'ai fais plusieurs versions en web avec Cordova et Angular JS, mais je n'arrivais pas à atteindre un résultat qui me satisfaisait pleinement, principalement à cause des performances de cette techno (plus faible que le développement natif, il faut bien l'admettre). Cela pose cependant un problème de taille : nous ne pouvons à l'heure actuellement pas sortir de version compatible avec d'autres OS mobiles qu'Android. En effet, il nous faudra re-développer l'application dans son intégralité. Nous avons fait ce parti pris après avoir essayé de développer une version web et après nous être renseigné sur les autres technos cross-plateform. Xamarin coûte cher, Appcelerator Titanium n'a jamais fonctionné sur mon PC pour une raison encore inconnue ><
D'ailleurs si vous en connaissez qui pourrait être adapté à ce projet, je serai très intéressé de les connaître smile.png

Pour ce qui est du serveur, nous utilisons une architecture similaire à celle d'un site web, avec un serveur en PHP.

L'application est disponible sur le Play Store à cette adresse : https://play.google.com/store/apps/details?id=com.carbonkiwi.amiweird

Objectifs :

Actuellement, nous voudrions déjà avoir quelques retours d'utilisateurs pour savoir si le principe est intéressant. Le problème principal est que pour être intéressant, il faut justement avoir des utilisateurs actifs, sinon vous allez vite faire le tour des questions "de base" (celles que l'on a nous même suggérées). Ensuite, nous avons de nombreuses idées de fonctionnalités à ajouter : la gestion des langues d'abord, actuellement toute l'application est en anglais et les questions doivent aussi être suggérées en anglais). Sortie une version traduite de l'application serait assez facile grâce au fichier strings.xml. Cependant, prendre en charge plusieurs langues pour les questions est une autre histoire (il faut gérer les doublons, les langues gérés par chaque utilisateur, etc). Actuellement, nous avons commencé à développer un système qui va permettre à l'utilisateur de spécifier quelles langues il maîtrise. On pourra ensuite lui envoyer seulement des questions écrites dans ces langues-là. Le système est opérationnel côté client, mais pas encore côté serveur. Il faut aussi qu'à chaque suggestion, l'utilisateur indique à l'application dans quelle langue il a écrit sa question (nous n'avons pas les moyens de développer un système d'analyse syntaxique qui ferait cela automatiquement...).
Ensuite, nous pensions ajouter le fait de pouvoir classer les questions par catégories ou tags, afin que l'utilisateur puisse choisir le type et le sujet des questions auxquelles il souhaite répondre. Nous avons aussi envisagé de pouvoir mettre en favoris certaines questions afin de pouvoir en suivre les résultats.
Puis, nous en sommes arrivés au fait qu'il pourrait être sympa de partager des questions que l'on a aimé avec ses amis. Et c'est actuellement sur ce point que nous travaillons majoritairement. En effet actuellement nous n'avons aucun système de liste d'amis ou même de comptes utilisateurs. Nous n'avons pas encore tranché tous les tenants et aboutissants d'un tel système mais cela pourrait être vraiment sympa. Je viendrai vous en reparler en temps voulu.

J'aimerais donc que vous me donniez tout d'abord votre avis sur le projet, quelles fonctionnalités sont pour vous le plus importantes à développer en premier. Si vous avez des améliorations à proposer au niveau design ou IHM, ce sera aussi avec plaisir ! Et évidemment, si vous remarquez des bugs, n'hésitez pas à me les signaler ici :)


Enfin, si je n'ai pas été clair sur certains points ou qu'il manque des informations, je ferai tout mon possible pour vous répondre de la manière la plus exhaustive possible ! 

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous !

Première mise à jour : on a corrigé quelques bugs, et ajouté la possibilité de partager les résultats des questions après y avoir répondu :)

 

Sinon on est toujours en quête de feedbacks...^^

Modifié par Nevrozzze_
Lien vers le commentaire
Partager sur d’autres sites

Salut Nevrozze_, bravo pour cette réalisation :)


J'avais en tête un principe assez similaire, donc je pense aussi que c'est une bonne idée ;)

Pour ce qui est de l'application, l'interface rend très bien, bon boulot. Lâché Cordova et les autres trucs du genre (webapp) est une évidence pour moi, c'est tellement mauvais pour l'expérience utilisateur...
Pour ma part quand je fais des application, je me restreint à du Android pur, le résultats est satisfaisant, mais ça veut dire refaire la partie rendue pour chaque autre plateforme forcément...
Pour les jeux, je suis entrain d'étudier libgdx, peut être qu'avec un peu de boulot, il serait possible de recréer des widgets (bouton, label, etc) aussi souple que ce que tu peux avoir en natif... Et exporter sur beaucoup de plateforme différentes facilement (Android, iOS, web, la plupart des os pc)...
Mais ça demanderait au depart une charge de boulot importante avant d'avoir un résultat correct..

Pour en revenir à l'interface, juste deux petites remarque :
- je n'aime pas trop la partie title du tabview (trop petit, trop écarté sur les bords alors qu'il n'y a que 3 tabs)
Un truc un peu plus à la material serait pas mal (http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/)

- d'une manière général, une partie des utilisateurs d'Android sont plus exigeant sur le material design, et même si celui de l'application est réussi, ça pourra lui être reproché... À voir si tu préfères garder comme ça ou éviter tout risque (mais pas pour le tabview ! :P)

Sinon pour le fonctionnement de l'application ça... N'a pas très bien marché pour ma part ^^"
En effet, je n'ai eu qu'une seule question en boucle ("How are you ?"). Donc il faut peut être revoir ça... :ppp
Sinon je n'ai pas testé le post de question, mais ça me fais penser, si les gens metent du contenu "sensible" il y a modération ? À défaut tu as pris ça en compte dans la déclaration de contenu durant l'enregistrement sur le play store ? (Et si oui qu'à tu mis ? Ça m'intéresse :)

Pour la partie gestion de langue, tu peux récupérer le code de la locale du tel de l'utilisateur (ça peut te permettre de faire un premier tri côté serveur, même si ça ne remplace pas un système de détection de langue bien sur).

Je crois que ça te fait déjà un bon petit retour, j'ai peut être zappé des trucs je suis sur mon tel et c'est pas facile de bien voir x)

Bonne continuation

Modifié par 4aces
Lien vers le commentaire
Partager sur d’autres sites

Déjà dans un premier temps, merci pour ce retour détaillé, ça fait vraiment plaisir, c'est grâce à ce genre de messages qu'on peut avancer dans la bonne direction :D

 

Oui, c'est aussi ce que je me dis pour les webapps, ça se sent tout de suite, ça manque encore de fluidité. Et pour le moment je développe aussi uniquement pour android, principalement par manque de moyen (je n'ai pas de Mac, et pas envie de payer 90€/an pour la licence AppStore).

 

Pour ce qui est des jeux, j'utilise Unity3D. C'est performant, vraiment intuitif à coder, et utilisable sur presque toutes les plateformes. Par contre c'est pas du tout adapté pour faire une chose que du jeu. Faudrait que je me renseigne sur libgdx, j'en ai déjà entendu parlé en bien plusieurs fois :)

 

Pour ce qui est du tabview, j'ai fais ce choix parce qu'il ne prend pas trop de place et est vraiment simple visuellement. Aussi, il me sera possible d'ajouter des nouveaux fragments assez simplement si nécessaire. J'ai essayé de clicker sur ton lien pour voir ce que ça donnait, mais malheureusement je tombe sur une erreur 404 :/

Et pour le reste de l'interface, c'est évidemment voué à changer. C'est une version 1.0, et nous avons pour le moment concentré nos efforts sur les fonctionnalités plus que sur l'interface. Je devrais en effet me renseigner sur le material design. Après ce que je me dis c'est que si on en arrive à sortir l'app sur iPhone, le material design ne sera pas forcement la meilleure solution, dans l'optique où je préfère avoir la même interface sur les deux supports.

 

Pour ce qui est du fonctionnement, c'est le premier retour que j'ai de ce type. C'est p-e un bug du à la dernière mise à jour. Je vais regarder ça plus en détails. La question "How are you ?" a un statut particulier dans l'app, elle est posée tous les jours aux users. Nous avons retravaillé cette partie dans la dernière MAJ avec une question (qui n'en est pas vraiment une) qui invitait l'user à mettre à jour l'app. Nous avons p-e généré des bugs à cette occasion, nous allons regarder ça aussi vite que possible !

 

Pour la modération, c'est un travail que sont censé effectuer les boutons "interesting" et "useless". En effet, quand un user tombe sur une question "mauvaise", il click sur useless, et sur interesting si la question est bonne (qu'il y a ait répondu ou pas). Cela nous permet de faire un rapport sur ces votes pour localiser facilement les questions qui n'ont aucun intérêt. Nous avons pour projet d'automatiser cette tâche par la suite mais pour le moment nous traitons la modération à la main dans la mesure où nous n'avons pas beaucoup d'utilisateurs, donc pas beaucoup de questions. Nous réfléchissons aussi à modifier ce système car il n'a pas l'air très naturel et clair pour les utilisateurs. Le fait d'avoir deux boutons pour faire "next" est p-e gênant. Nous travaillons actuellement là-dessus.

Pour ce qui est de la déclaration du contenu, nous avons mis "accessible à tous", dans la mesure où pour le moment, il ne s'agit que de texte, et que nous faisons la modération à la main. Par la suite, il est possible que nous ajoutions la possibilités d'attacher une photo à une question. Et nous espérons aussi avoir plus d'utilisateurs. A ce moment là, nous déciderons p-e de modifier ce classement. De plus, si nous mettons en place des catégories, certaines ne seront effectivement pas adaptées à tous les âges. La question est encore en suspend.

 

Enfin pour les langues, nous allons proposer à l'user de renseigner les langues qu'il maîtrise, afin de lui proposer seulement des questions dans les langues qu'il maîtrise. Aussi, dans la partie dédiée aux suggestions, il faudra choisir la langue dans laquelle la question est rédigée (et seule les langue maîtrisées seront proposées). Cela nous permettra de faire une première gestion des langues assez simple et fonctionnelle, et qui pourra être amélioré par la suite.

 

Encore merci pour ce retour, et si tu as d'autres questions, n'hésite pas :)

Lien vers le commentaire
Partager sur d’autres sites

Hey,

 

J'ai modifié le lien pour qu'il marche. Je ne remettais pas en question le composant tabview qui semble approprié en effet, mais plus son style : tu verra ce que je veux dire en allant voir le lien (dans la vidéo, les titres du tabview sont plus gros, plus rapproché, séparé par un | et l'actif est souligné).

 

 

(pour apple, en plus de la licence, faut voir le prix des machines/devices, ça grimpe très vite x)

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...