Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Has anyone built web-apps that can run totally off-line? [closed]

Tags:

offline

I'm building an app that authors would (hopefully) use to help them, uh.. author things.

Think of it like a wiki but just for one person, but cooler. I wish to make it as accessible as possible to my (potential) adoring masses, and so I'm thinking about making it a web-app.

It certainly doesn't have to be, there is no integration with other sites, no social features. It involve typing information into forms however, so for rapid construction the web would probably be the best.

However, I don't really want to host it myself. I couldn't afford it for one, but it's mostly that people who use this may not want their data stored elsewhere. This is private information about what they are writing and I wouldn't expect them to trust me with it, and so I'm thinking about making it a thick-client app.

And therein lies the problem, how to make a application that focuses mainly on form data entry available easily to potential users (yay web apps) but also offline so they know they are in full control of their data (yay thick-client apps).

I see the following solutions:

  1. Build it as a thick-client Java app and run a cutdown version on the net as an applet that people can play with before downloading the full thing.
  2. Build it as a Flex app for online and an Air app for offline (same source different build scripts basically).
  3. Build it as a standard web-app (HTML, JS etc) but have a downloadable version that somehow runs the site totally on their computer. It wouldn't touch the net at all.

Ignoring 1 and 2 (I'm looking into them separately), I think 3 would involve:

  • Packaging up an install that contains a tiny webserver that has my code on it, ready to run.
  • Remapping the DB from something like mySQL to something like SQLite.
  • Creating some kind of convience app that ran the server and opened your browser to the right location, possibly using something like Prism to hide the whole broswer thing.

So, have you ever done something like this before?

If so, what problems did you encounter?

Finally, is there another solution I haven't thought of?'

(also, Joyent Slingshot was a suggestion on another question, but it's RoR (which I have no experience in) and I'm 99% sure it doesn't run under linux, so It's not right for me.)

like image 689
SCdF Avatar asked Oct 06 '08 06:10

SCdF


People also ask

Can web apps work offline?

Offline mode is a functionality that enables web applications to operate when there is no internet connection. If the web application is in online mode and the internet gets disconnected, some of the functionalities of the application will still work.

Can you create an offline app?

In maximum cases, offline mode is utilized in situations when users can edit data on the mobile and server-side. In most cases, clients hire app developers to develop offline applications assisting two-way sync, but it can be a complex method.

Can web apps run in the background?

Using a service worker, a Progressive Web App (PWA) can do work in the background, even when the user isn't using the app.


2 Answers

I think you should look at tiddlywiki for inspiration.

It's a wiki written in JavaScript entirely self-contained in a single html file. You load it into your browser as a file:/// URL, so there is no need for a server.

I use it as a personal wiki to keep notes on various subjects.

like image 77
camh Avatar answered Sep 23 '22 17:09

camh


Google Gears is used to offer a few of the google apps offline (Google Reader, Gmail, Docs and more).

What is Google Gears?

Gears is an open source browser extension that lets developers create web applications that can run offline. Gears provides three key features:

  • A local server, to cache and serve application resources (HTML, JavaScript, images, etc.) without needing to contact a server
  • A database, to store and access data from within the browser
  • A worker thread pool, to make web applications more responsive

by performing expensive operations in the background

Gears is currently an early-access developers' release. It is not yet intended for use by real users in production applications at this time.

If you're a developer interested in using Gears with your application, visit the Gears Developer Page.

If you wish to install Gears on your computer, visit the Gears Home Page. Please note, however, that Gears is not yet intended for general use.

But as you read it's still in early stages.

like image 38
Davy Landman Avatar answered Sep 26 '22 17:09

Davy Landman