{"id":17302974,"url":"https://github.com/binarybrain/pebble","last_synced_at":"2025-03-26T22:44:20.323Z","repository":{"id":145547396,"uuid":"49263885","full_name":"BinaryBrain/Pebble","owner":"BinaryBrain","description":"Pebble App for HEIG-VD","archived":false,"fork":false,"pushed_at":"2016-01-12T11:53:56.000Z","size":99,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T04:29:31.128Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BinaryBrain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-08T09:46:17.000Z","updated_at":"2016-01-11T22:58:25.000Z","dependencies_parsed_at":"2023-04-08T10:17:07.043Z","dependency_job_id":null,"html_url":"https://github.com/BinaryBrain/Pebble","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryBrain%2FPebble","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryBrain%2FPebble/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryBrain%2FPebble/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinaryBrain%2FPebble/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BinaryBrain","download_url":"https://codeload.github.com/BinaryBrain/Pebble/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245749853,"owners_count":20666084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T11:49:12.551Z","updated_at":"2025-03-26T22:44:20.301Z","avatar_url":"https://github.com/BinaryBrain.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Sacha Bron, Léonard Berney\n\nIHM - Rapport Labo Pebble\n=========================\n\nCe document constitue le rapport du laboratoire II du cours d'IHM portant sur la Pebble.\n\nIntroduction\n------------\n\nLe but de ce laboratoire est de développer une application permettant à l'utilisateur d'afficher sur une Pebble différents types de données provenant du smartphone associé.\n\nUtilisation\n-----------\n\nCette partie décrit comment utiliser l'application.\n\n### Mode de lecture\n\nCeci est la vue par défaut au lancement de l'app. Elle présente un écran composé de deux parties. \nLes deux parties sont similaires et présentent les valeurs que l'utilisateur souhaite afficher.\nPar défaut, un texte explique à l'utilisateur comment éditer la section de l'écran.\n\nEn utilisant les boutons _haut_ et _bas_ de la Pebble, l'utilisateur peut naviguer d'écran en écran.\nCela lui permet d'avoir 3 autres écrans de données vers lesquels il peut aisément changer.\n\nEn cliquant sur le bouton de _sélection_, l'utilisateur peut passer en **mode de séléction**.\n\n### Mode de séléction\n\nDans ce mode, l'utilisateur peut choisir quel section il va éditer par la suite.\n\nÀ l'aide des boutons _haut_ et _bas_ de la Pebble, il peut changer la section qu'il souhaite éditer, puis, à l'aide du bouton de _sélection_, il valide son choix.\n\nLe bouton _retour_ permet de revenir au **mode de lecture**. \n\n### Mode d'édition\n\nCe mode affiche un menu permettant à l'utilisateur de changer le type de donnée à afficher sur la section en cours d'édition.\n\nIl s'agit d'un simple menu composé de 5 sections:\n\n- Location\n- Weather\n- Transport\n- Time\n- Battery\n\nChoix\n-----\n\nDurant le développement de cette application, nous avions relativement peu de choix à faire. De plus, nous avons préféré garder un aspect minimaliste à l'application afin de ne pas perdre l'utilisateur dans des séries de menus et sous-menus.\n\n### Navigation\n\nLe fait d'avoir 3 modes d'affichage permet à l'utilisateur de facilement savoir ce qu'il est en train de faire, quel mode il est en train d'utiliser.\n\nLa navigation d'écran en écran se fait à l'aide des boutons _haut_ et _bas_ de la Pebble. Nous trouvions cela relativement intuitif de cette manière.  \nEn effet, même s'il n'y a pas d'indicateur direct de l'écran sur lequel on se situe, l'utilisateur est largement capable de se souvenir sur lequel il se trouve. De plus, cela n'a pas une grande influence sur son utilisation.\n\n### Sélection de la section à changer\n\nLa sélection de la section à changer se fait à l'aide des boutons _haut_ et _bas_ de la Pebble. Quand la section du bas est pré-sélectionnée elle son texte devient blanc sur fond noir. Cela respecte ainsi les conventions des menus de la Pebble. On évite alors de perdre l'utilisateur, car il est déjà habitué à ce comportement.\n\nDe plus, si la section du haut et pré-sélectionnée et que l'on appuie sur le bouton _haut_, la pré-sélection va sur la section du bas. On évite alors que certains boutons ne servent à rien et beaucoup d'utilisateur sont habitués à pouvoir \"boucler\" à travers les menus.  \n\n### Menu\n\nLa séparation du menu en diverses sections permet une meilleure expérience à l'utilisateur qui saura s'y retrouver plus facilement. Les différentes catégories qui le compose ont été créées intuitivement.\n\n### Rafraichissement des données\n\nL'application comporte 8 sections d'écran qui peuvent comporter des données pouvant potentiellement changer.  \nLe dilemme auquel nous avons été confronté est le suivant: doit-on aussi rafraichir les données qui ne sont pas actuellement affichées (dans les 6 autres sections) ou doit-on attendre que l'utilisateur change d'écran?\n\nEn effet, la première solution est plus gourmande en batterie, mais les données sont lisibles instantanément au changement d'écran. Alors que la deuxième solution économise un peu de batterie mais peut faire attendre l'utilisateur pendant plus de 5 secondes (ce qui peut être désagréable pour son expérience).\n\nBugs connus\n-----------\n\nNous n'avons pas décelé de bug à proprement parlé, mais notre application comporte deux interactions involontaires ou indésirées.\n\n### Menu\n\nNous avons voulu faire en sorte que lors de l'édition d'une section, la sélection par défaut du menu soit identique au type de donnée courrant.  \nPar exemple, si la section actuelle est **Uptime**, lorsque l'on tente d'éditer la séction, le menu pré-sélectionne déjà **Uptime**.  \nOr, la fonction `simple_menu_layer_set_selected_index` de l'API de Pebble ne permet de pré-sélectionner que dans la première section du menu et pas au-delà.\nLa pré-sélection sera alors sur le dernier élement de la première section (dans notre cas: **Elevation**).\n\n### Start/Stop Location Thread\n\nL'API et les fonctionnalités **Start/Stop Location Thread** n'étant pas précisement documentées, et n'ayant pas de téléphone pour tester, nous ne savions pas ce que le téléphone allait répondre à ces fonctions. Il s'avère que nous ne devrions pas attendre de réponse.\n\nConclusion\n----------\n\nCe laboratoire nous a permis de faire une application sur smartwatch, ce qui était une toute première pour nous. Nous avons pu découvrir le SDK et les outils de développement et de déploiement de Pebble.\n\nLe fait de travailler sur un écran aussi petit que celui de la Pebble peut s'avérer être un véritable challenge. En effet, il n'est pas possible d'écrire beaucoup de texte, et même si c'était le cas, ce n'est pas un très bon support de lecture. Il faut donc faire attention aux informations que l'on va afficher.\n\nÉtant donné que l'on ne peut pas afficher beaucoup d'information, il est d'autant plus important de respecter les différentes conventions et d'utiliser les différents modules établit par Pebble.\n\nAnnexes\n-------\n\nLe code source se trouve à l'adresse suivante: [https://github.com/BinaryBrain/Pebble](https://github.com/BinaryBrain/Pebble)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinarybrain%2Fpebble","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinarybrain%2Fpebble","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinarybrain%2Fpebble/lists"}