{"id":1267,"date":"2025-02-08T00:25:49","date_gmt":"2025-02-08T00:25:49","guid":{"rendered":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/?p=1267"},"modified":"2025-02-08T00:26:58","modified_gmt":"2025-02-08T00:26:58","slug":"week-17-refactor-extractor","status":"publish","type":"post","link":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/2025\/02\/08\/week-17-refactor-extractor\/","title":{"rendered":"Week 18: Refactor extractor"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-1-1024x516.png\" alt=\"\" class=\"wp-image-1269\" srcset=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-1-1024x516.png 1024w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-1-300x151.png 300w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-1-768x387.png 768w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-1-417x210.png 417w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-1.png 1133w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">SyncAssist&#8217;s target supported platforms (mobile, desktop and browser)<\/figcaption><\/figure>\n\n\n\n<p>This week, SyncAssist has been doing a pretty heavy overhaul of our code! To start our mobile development work, we realized that several of the functions and states that we would be using for our conference handling would have to essentially be copied into our mobile app. So, to avoid this, we began by refactoring our states into global <a href=\"https:\/\/react.dev\/learn\/passing-data-deeply-with-context\">contexts<\/a>, which allows us to reuse the states on the mobile side as well as avoid having to pass the state down as props.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"914\" height=\"742\" data-id=\"1271\" src=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-2.png\" alt=\"\" class=\"wp-image-1271\" srcset=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-2.png 914w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-2-300x244.png 300w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-2-768x623.png 768w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/image-2-259x210.png 259w\" sizes=\"(max-width: 914px) 100vw, 914px\" \/><figcaption class=\"wp-element-caption\">Prop drilling (bad)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"927\" height=\"828\" data-id=\"1275\" src=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/Screenshot-2025-02-07-191626.png\" alt=\"\" class=\"wp-image-1275\" srcset=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/Screenshot-2025-02-07-191626.png 927w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/Screenshot-2025-02-07-191626-300x268.png 300w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/Screenshot-2025-02-07-191626-768x686.png 768w, https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-content\/uploads\/sites\/181\/2025\/02\/Screenshot-2025-02-07-191626-235x210.png 235w\" sizes=\"(max-width: 927px) 100vw, 927px\" \/><figcaption class=\"wp-element-caption\">Using context (good)<\/figcaption><\/figure>\n<figcaption class=\"blocks-gallery-caption wp-element-caption\">A comparison between prop drilling and using context<\/figcaption><\/figure>\n\n\n\n<p>Along with refactoring, we&#8217;ve fixed a number of existing bugs. Here&#8217;s the list, pulled straight from our commit history: fixed the home page, fixed user joining getting a message that the host joined, disabled remote control requests for non-Electron users, patched react-native-performance, reset the screen-sharing states, fix low screen-share FPS, update logic to stop screen-sharing, fix share screen, fix div error with RemoteControl.tsx \u2014 and these are only a fraction of the commits. It&#8217;s almost like every time we create something, we introduce new bugs \ud83d\ude03.<\/p>\n\n\n\n<p>Although it&#8217;s been tough trying to implement new features while fixing old bugs, we&#8217;re making slow but steady progress and are planning on having most of the mobile app features built out over the next two weeks. Stay tuned for updates on our mobile app, and until next time!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week, SyncAssist has been doing a pretty heavy overhaul of our code! To start our mobile development work, we realized that several of the functions and states that we would be using for our conference handling would have to&hellip; <a href=\"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/2025\/02\/08\/week-17-refactor-extractor\/\" aria-label=\"Read \\\"Week 18: Refactor extractor\\\" class=\"read-more\">Read&nbsp;More<\/a><\/p>\n","protected":false},"author":619,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[12],"tags":[],"class_list":["post-1267","post","type-post","status-publish","format-standard","hentry","category-springsemester"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/posts\/1267"}],"collection":[{"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/users\/619"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/comments?post=1267"}],"version-history":[{"count":2,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/posts\/1267\/revisions"}],"predecessor-version":[{"id":1279,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/posts\/1267\/revisions\/1279"}],"wp:attachment":[{"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/media?parent=1267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/categories?post=1267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ippd.ufl.edu\/blogs\/ay2425team05\/wp-json\/wp\/v2\/tags?post=1267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}