Show HN: Applin – define mobile UI in server code https://ift.tt/A19OLoT

Show HN: Applin – define mobile UI in server code Hi HN, I'm a backend engineer who made an app and didn’t like the tools. Then I made the thing I needed: a mobile app toolkit for backend engineers. I'm calling it Applin™. :) https://www.applin.dev/ How it works: You make an HTTP server that returns JSON objects that define page content. Then you make a mobile app that calls the server and renders the pages using native widgets. Applin is the server and client libraries that make this easy. Server libraries: Currently there's Rails https://ift.tt/onQ6iXO and https://ift.tt/x564Wsd . Which languages shall I add next? Client libraries: Currently there's iOS https://ift.tt/f7XD0HZ . Which platform shall I add next? They say, if you're not embarrassed by the quality, then you're launching too late. Applin is usable and not yet pretty and not yet comprehensive. I need customer feedback on priority and requirements. To try it out right away, use https://ift.tt/RTiAzEh and tap the rails-demo link. The hardest part of this project was making the client update the page without losing keyboard focus and scrolling to the top. To do that, the code must pick the correct existing widgets for each new version of the widget tree. The current (working) version performs five passes over the widget tree: first picking focused widgets and their ancestors, then focus-able widgets, then other stateful widgets, then widgets with matching attributes (label, URL, etc.), and finally former siblings of the correct type. Then it creates any new widgets. Now that it has widgets for the new tree, the code updates the widget tree without removing any sub-widget that will be added again. This prevents losing keyboard focus and prevents resetting scroll positions. Here's the code: https://ift.tt/6oQpRLr Please try out Applin, use it at your company (buy a license), and let me know what features to build first! Post a comment here, add a GitHub issue, or email me at michael@leonhardllc.com . To get updates, join https://ift.tt/iCsPlaB . Thanks for reading! :) --Michael September 15, 2023 at 11:30PM

Comments