Do HTML5 mobile app run on server and are accessed via web browser of sorts?
PhoneGap: Simply put your HTML(5), JavaScript and CSS code. You can use 3rd party JavaScript libraries like jQuery, MooTools, etc. You need to code or use libraries to get native feel/UI look. Nothing much different than straight way. PhoneGap just gives you additional mobile features and events which you can bring native features which you can use in your JavaScript code, like accelerometer orientation, contact list, camera, etc.
Titanium Mobile: It has custom JavaScript API which your code is compiled to "native" code. You can also use WebView UI component to include your HTML(5), JavaScript and CSS code into application. You can bridge native API to your JavaScript code running in WebView with firing custom events (see Titanium.App.fireEvent and Titanium.UI.WebView.evalJS methods in documents).
I don't have much experience developing native mobile apps. But I am in need of developing an app that runs in all mobile platforms. I came across Titanium and Phonegap as possible solution. And I am not sure how they work?
Is it basically that you create a web-app that runs on server. And PhoneGap/Titatnium simply wrap it up inside a custom browser app. So, instead of user accessing your website user actually installs your app? But behind the scenes, this installed app is simply a browser that loads your webapp in the background? Is that it?
Let's say you are developing a "store locator" app. Say, you list ALL Wal-Mart. And user can search for them by zipcode, intersection, address. Results are displayed as text list and also plotted on a map. Admin can add more and more stores. So, not just Wal-Mart, but we can also add Kroger, Safeway, Costco.
Now, if I were to create a web app (Python/Django) for this. How would I port this into a mobile app? I am thinking all I've to do is:
-> limit the output to say 320px (my webapp usually uses 960px)
-> use HTML5 instead of HTML
-> somehow wrap this up using Titanium/PhoneGap
-> User installs this Titanium thing
-> When user opens this app, it simply loads my mobile site(?)
Is this it?  I'd basically be developing a website in Python/Django? I know Titatinum/PhoneGap also have JavaScript API that may allow me to access phone's GPS, Acclerometer etc. So, basically, I am developing a web-app (it could be php, python, ruby on rails etc.) and I am using some JS libraries to get access to phone's hardware?
Oh, and, if the phone doesn't have internet access, the app will simply not load. Correct?
I keep hearing you can use JavaScript, HTML5 to create apps. But JS is for client side stuff. A lot of apps would require backend work. For eg, this store locator script. I'd need to store list of stores somewhere (DB). So, I can't possibly use JS for querying my backend DB. I'd have to write some sort of Python/Django app for that. I don't think there is anyway to simply install do this in JS.
Finally, user will never have to upgrade the app. Correct? Behind the scenes, it's just a website. So, when I roll-out new features, I simply update my website. All user is doing is opening my website in a titanium-browser. The browser looks like a native-app but it's just a browser.
Correct?