{"slug": "how-a-non-developer-fixed-two-bugs-in-a-mac-app-built-with-ai", "title": "How a non-developer fixed two bugs in a Mac app built with AI", "summary": "A non-developer building a Mac app with AI coding tools like Claude to turn an iMac into a secondary display fixed two bugs reported by a beta tester, despite not owning the Intel iMac hardware involved. The fixes added an installation-ID check to prevent duplicate virtual displays and a decoder lock plus graceful socket shutdown to stop crashes on cable disconnect, which the tester confirmed ran smoothly across repeated plug and unplug tests. The app is now in beta with a three-day trial.", "body_md": "I never learned programming, but I did not want my 24-inch M1 iMac sitting idle at home, so I started building an app with AI coding tools like Claude to use it as a secondary monitor for my MacBook. When I shared the first beta version in early November, I ran into an unexpected situation. I only owned one 24-inch M1 machine, but 11 out of the 14 people who applied were using 27-inch 5K Intel iMacs. I had to continue testing without access to the actual hardware.\n\nA user with a late 2015 27-inch 5K iMac and an M1 MacBook Pro reported the detailed behavior. First, when connecting the cable, display settings detected two separate screens. Looking into the cause, the discovery routine for the second iMac was finding the same machine again over its wired address, which created an extra virtual display. I changed the second connection step to first request the unique installation ID sent by the iMac, and if it matches the first ID or fails to respond, no display is generated.\n\nAnother issue was that unplugging the cable crashed the app on the iMac side. When the connection dropped, the main thread released the decoder while the receiving thread was still handling decoding tasks at that exact moment, leading to a crash. I added a lock to the decoder, stopped closing the socket immediately during disconnect handling in favor of a shutdown call, and let each receiving thread handle its own exit. Before the fix, disconnecting the cable caused a crash in all three tests. After the change, it stayed stable in all three tests.\n\nBecause I did not have an Intel iMac, I could not test the fixed build right away, but that user ran tests on their hardware that night. After plugging and unplugging the cable, they shared that \"the app runs very smoothly without any crashes\" and confirmed the duplicate screen issue was gone. After bringing up 4.5K resolution, they also noted that \"the screen looks much cleaner and better to look at.\"\n\nMany people are already using it now. If you are interested in using an iMac as a second monitor, you can try the beta version for 3 days at the address below and consider purchasing it if you like it.", "url": "https://wpnews.pro/news/how-a-non-developer-fixed-two-bugs-in-a-mac-app-built-with-ai", "canonical_source": "https://dev.to/samuel_jeong_bebc2d87d247/how-a-non-developer-fixed-two-bugs-in-a-mac-app-built-with-ai-5dk5", "published_at": "2026-11-11 01:46:11+00:00", "updated_at": "2026-11-11 01:52:02.859967+00:00", "lang": "en", "topics": ["ai-tools", "ai-products"], "entities": ["Claude", "Apple", "iMac", "MacBook Pro"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/how-a-non-developer-fixed-two-bugs-in-a-mac-app-built-with-ai", "markdown": "https://wpnews.pro/news/how-a-non-developer-fixed-two-bugs-in-a-mac-app-built-with-ai.md", "text": "https://wpnews.pro/news/how-a-non-developer-fixed-two-bugs-in-a-mac-app-built-with-ai.txt", "jsonld": "https://wpnews.pro/news/how-a-non-developer-fixed-two-bugs-in-a-mac-app-built-with-ai.jsonld"}}