Here's why Beacon doesn't support mobile devices
When I started Beacon back in 2016, I wrote all the backend code in a way that would allow me to bring it to mobile devices. I always wanted to. But at the time, my dev tool's support for iOS was pitiful and Android support wasn't even on the radar. In the four years since, the only thing that has changed is iOS gained dark mode support and Android support might be coming in the next year. Even if it does, I don't know what kind of state it will be in. It may not be a viable dev platform when it launches. In fact, there's a significant chance of that being the case.
So that leaves Beacon between a rock and a hard place. Either I wait for something that may never happen, or I rewrite Beacon in a new language that could support iOS, Android, Mac, Windows, and Chrome OS. Rewriting Beacon poses some other problems though.
The first is simply time. Any time I spend rewriting Beacon is time not spent working on the current version of Beacon. I expect it would take me about a year, so that would be a long delay that could be further disrupted up by announcements from Wildcard. These reasons are why the "never rewrite your application" rule exists.
The second problem is performance. There's very few options for supporting all the desired platforms. I'd have to write Beacon as a progressive web app. I've already done some testing on this concept and it works to an extent. What I expected to be a problem (encryption) turned out to be very solvable. However browsers don't support any kind of database access, which is absolutely critical to Beacon. IndexedDB is the best I'd have access to, but it just can't perform well enough to replace a true SQL-based database. This is the most significant roadblock to getting Beacon running in a browser. Alternatively, I could choose to develop a more old fashioned server-driven web app, but that really just shifts performance problems around and the app would lose its offline functionality. Plus increased server costs would practically force me to transition to a subscription model. A server-driven web app is not something I'd like to do.
So at this time, I can say there's no real prospect for Beacon to reach additional devices. I'd like there to be, but there isn't. Should Xojo (my dev tool) improve to the point that I can make mobile support a reality, I'd be happy to put in the work. Until then, the best I can do is keep making the desktop version of Beacon as good as I can.
- Beacon Summer 2021 Dev Update
- Preparing Beacon for Ark: Genesis Part 2
- Beacon's API v2
- Beacon, Apple Silicon, and Big Sur
- Here's why Beacon doesn't support mobile devices
- Ark's Message of the Day Bug
- Beacon 1.3 Is Now Available
- Beacon 1.3 Availability and Ark: Genesis Plans
- September 2019 Quality Tuning
- August 2019 Development Update