digitallyinduced / ihp

🔥 The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness
https://ihp.digitallyinduced.com/
MIT License
4.88k stars 194 forks source link

mobile app #1774

Open geofflangenderfer opened 1 year ago

geofflangenderfer commented 1 year ago

rails is using turbo to create mobile apps: https://github.com/hotwired/turbo-ios

has anyone created a mobile app from their ihp web app?

mpscholten commented 1 year ago

@Montmorency has shipped a react native app as a frontend to an IHP app using IHP DataSync

mpscholten commented 1 year ago

Here's an example repo btw https://github.com/digitallyinduced/ihp-backend-expo-starter/blob/master/App.tsx#L57 (it's a bit outdated, but the gist is the same today)

Montmorency commented 1 year ago

Hi Yes, We use a managed Expo/React Native workflow. ihp-datasync dropped in directly and is working very nicely fetches all user data and with the expo libraries even enables push notifications.

We are using react native webviews to render html content from server.

My original plan was actually to use turbo but I was waiting for the strada part of turbo to be officially released which I think was the library that had the native/web bridge code but it still isn't released officially.

A very cool development would be to create native android/ios DataSync modules for working with IHP.

s0kil commented 1 year ago

Also, as a lighter alternative, Tauri V2 now supports mobile, Android iOS builds.

https://next--tauri.netlify.app/next/mobile/

kodeFant commented 1 year ago

A project I would consider if I did an IHP mobile app again would be https://hyperview.org/

Lets you serve XML from IHP and have your mobile app be a thin hypermedia client for your backend with code looking like this:

<doc xmlns="https://hyperview.org/hyperview">
  <screen id="main">
    <body>
      <text>Hello</text>
    </body>
  </screen>

  <screen id="otherScreen">
    <body>
      <text>Hello again</text>
    </body>
  </screen>
</doc>