Auto-update with Windows Phone 7 and PhoneGap - windows-phone-7

I'm thinking of developing a Windows Phone 7 application using PhoneGap and have a few questions around functionality available. I haven't developed a WP7 application before nor used PhoneGap so forgive me if some of the answers to these questions are obvious.
Does PhoneGap support the capability to update HTML/JS/CSS/Images hosted by the WP7 app? I imagine it's possible to easily download new content, but whether one can update or extend the existing files PhoneGap is using for the application is not clear. Given that the application functionality will be primarily driven by HTML/JS, I assume it's possible to download updated HTML/JS asynchronously and update the content on the device. In effect, this would be tantamount to updating the application without downloading a new version of the application through the MarketPlace. Assuming this is possible, what are the chances that an application which does this will pass the application verification process?
Are there any specific restrictions/guidelines that one should pay more attention to when developing an application using PhoneGap? I doubt there are but it would be helpful if anyone has any specific advice in this area.
Any help would be appreciated.

1) The short answer is yes.
The long answer is that you will need to do some native (in this case C#) dev to make that happen. I don't know the specifics of PhoneGap, but I know you can call C# methods from the JS. So you would call a method to download the data and store it in the IsolatedStorage, and then maybe have a callback to the JS to let it know it's done. Otherwise, there may be a way to download the image in JS and pass it to the code behind, but unless the PhoneGap guys have specifically catered for this scenario then I highly highly doubt it.
1.2) Yes, this will pass cert just fine. It is not up to MS to determine how/why/when/where you get your content. They don't make any money out of you updating an app, so they won't care whether you work out your own content delivery system.
2) Maybe not exactly the answer you are looking for - but if you make an app in PhoneGap, or any other non-native way, the app-gods will strike you down. To put it simpler, PhoneGap and everything like it is crap. Not the actual framework (I'm sure they put a lot of work into it), but the results. Seriously, the moment you run a non-native app you can tell how terrible it is. I don't know how to stress this enough. It's really worth developing it natively to every platform.

Related

Convert server-generated site to PhoneGap/Cordova app?

What's the lowest effort way to get a site with server-generated pages (in my case Laravel/PHP) running as a PhoneGap/Cordova app? I'd rather not have to convert the whole thing into a single page app before importing into PhoneGap/Cordova.
Is it possible to use PhoneGap/Cordova as a very thin wrapper and still load each page live from the server? And if so, how exactly please? I don't think we need any native phone APIs.
Reason for the whole thing is my client insists on "having an app" even though obviously our site will work in a mobile web browser and can have an icon on the user's phone.
Many thanks
Unfortunately for your app to pass Apple App store approval it will have to provide some basic functions and display correctly without an internet connection. This means at a minimum, if you plan to generate content on a server you will probably need the Cordova plugin for network information:
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-network-information/
I would make sure you are familiar with the Apple Human Interface Guidelines:
https://developer.apple.com/ios/human-interface-guidelines/overview/design-principles/
You will probably also need to bundle any JavaScript. Apple is very picky about apps that download code (this can include JavaScript).
This is a section from the iOS developer Agreement.
3.3.2 Except as set forth in the next paragraph, an Application may not download or install
executable code. Interpreted code may only be used in an Application if all scripts, code and
interpreters are packaged in the Application and not downloaded. The only exceptions to the
foregoing are scripts and code downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change the primary purpose of the
Application by providing features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store.
The following is my opinion only
My fear is that if you go at it in a low effort way, best case you will fail app approval. Worst case it will leave users with a poor experience or worse, a poor image of your client. Do it properly and give the app some extra functions that you can't have in a browser alone. I would advise your client of this and see if they would like a proper app that engages their customers and provides them with a great experience.

Is it possible to develop the same application for Windows Phone 7 and Windows Mobile 6.x without much additional effort?

I have to develop an application for Windows Mobile 6.x and version 7 and my skillset is .net and web based. Since version 7 is not backwards compatible I am thinking that I will end up with a lot of duplicate work.
I had a look at Rhomobile and Phonegap but the later does not support windows mobile 6.x and the former would require ruby knowledge.
I thought that I could have as much logic in class libraries as possible and then "include as link" the classes into projects so that they can be compiled for the specific platform. I feel like I may end up with a lot of #if PHONE7 style logic in that case and also the user interface code would have to be implemented for each platform.
What is the most efficient way to solve this problem?
If you can separate the UI from the logic you can begin to multi-target. The other consideration is the runtime of the phone (Silverlight 4?) and the phone sandboxing giving you limitations.
MVVM Light is multi-targeted and is open source, you could use this to review how they tackled it:
http://mvvmlight.codeplex.com/SourceControl/changeset/view/d546dc69fffd
In short though, your "add as link" idea is pretty much the basis of it.
The other question to ask is will the application fit on both platforms? The usage style from mobile to metro is a big change. People expect things to behave a certain way and look a certain way on metro. If you can confine this to the UI and move as much logic out as possible, then you should be ok. But there will come a point where it isn't worth sharing, it is simply easier to duplicate.
Sorry for a lack of detail in this answer, to be honest it is heavily app specific. I would personally start with separate applications and refactor as commonalities appear, using a combination of linked code files and hash defines.
A cute trick... you can always make the classes partial and have a partial code file for each hash define:
MyBusinessClass.CF.cs
MyBusinessClass.Silverlight.cs

Best way to approach WP7 app development?

I have some knowledge of basic PHP developing however right now I am thinking about developing a phone app. I do however have a bit of a conundrum in that I love WP7 and I have so many ideas for features which can't be done on iOS and Android, however at the same time I am completely aware that my target users (filmmakers) generally have iOS or android phones.
Is there a way I can develop the app, which I will get a developer to do rather than myself, with WP7 as the lead platform and then make a relatively simple conversion to the other platforms or do apps generally have to be completely reworked for each platform?
Also, just to though it out there, any idea of where to go to find a freelance app developer?
Thanks
James
I think you have a few options, but the first question I would have is: where comes the data from. Are you the owner of the data, and do you already have a datasource from where you can get the data from? If not I would suggest take some time to write a decent 'backend' from which the different platforms easily can get the data from.
Also all different platforms have their own pro/cons which you cannot share that easily. If you build a WP7 app in silverlight/xna, you cannot directly port it to a ios/android variant, also functionality will probably look/react different. You will need different solutions foreach platform with this approach.
Another option would be to use an platform like phonegap which can create a solution that will work on multiple platforms. (It uses HTML5 to get it work on the different platforms)
Build your app on iOS and android first, and when you have an app to base WP7 development then contact a developer that has made similar apps to yours.

Is Adobe Air/Flash the easiest framework for advanced GUI development?

Excuse a non-developer being forced to develop applications instead of administrating networks like I'm used to. This is a horrible post in many ways.
I'm developing an application which has reached the point of needing a GUI. However, I haven't done any GUI development ever before, so I feel the need to ask for help on this.
The application is your standard data collecting/management app, with all common widgets and stuff that every application is using. The problem is that I need the application to be able to display websites using an external browser of some sort, to pass a captcha on the site the application works against. The website guys haven't given me permission to circumvent the captcha in any way.
I know of GTK, QT, Tcl/Tk etc. None of these frameworks have struck me as easy to use. To be honest, I'd like to design the interface using drag-and-drop like I used to do in VB6 when I was a kid, although I get chills thinking about writing this thing in Basic.
I was thinking about Adobe Air, and to design the application in Flash/ActionScript. From what I've learned about Air, I should be able to do everything I want to do. And I do believe it has built in sqlite, right? Would it be considered more "simple" to develop the actual GUI using Flash than using one of the traditional frameworks? What pitfalls am I facing?
A few guidelines:
It only needs to run on Windows
I need to be able to work against a database. Currently using SQLite3.
Some sort of browser integration is crucial. A browser window of some sort needs to open up inside my interface, be directed by the application, and the application needs to be able to read some data from the site that is being used.
Any help with this would be great. This is a clear case where I have to rely on the experience of others to complete the project at all. I'm happy to provide more information if you need that to make a suggestion.
You can always try Titanium Framework, it was aquired by Appcelerator nor so much ago. http://www.appcelerator.com/
It actually puts a webkit browser in a window, so if you can design HTML and CSS you can use this framework.

Web GUI frameworks for Phone development

I looked already and couldn't find anything good.
So a question is, are there any good web frameworks that would allow to easily develop GUI for the majority of high end phones? By this I mean
It would have to work "the same" on majority of high end phones (forget the low cost ones)
It would have to simplify the development and hide the ugly details from developer
Clear design and good documentation. Also some stability on the market.
The focus is on good looking and easy to make GUI. Javascript is only a plus.
So basically I am looking for something like jQuery or maybe ExtJS for phone development.
EDIT:
It would be a big plus if it could be consumed in Delphi
EDIT 2:
If it was not clear, I am looking for a web base solution that would run in a browser. So the target is HTML output and not native code.
To contribute to the subject. I found a question that has answers to such topic:
iWebkit vs. JQTouch vs. iUI
So there seem to be the following frameworks:
iUI
jQTouch
WebApp.net
iWebKit
Yahoo! Blueprint
JQTouch
PhoneGap
Sencha Touch
jQueryMobile
PhoneGap supports a wide variety of phones but it does so by making native (or interpreted I don't know) code to run on them, so it is a no go for me.
Yahoo! Blueprint supports a lot of phones also, but seems to need a special framework to run on. So also a no go.
jQTouch and WebApp.net look promissing, but they only support webkit based browsers. Yes these are in majority these days probably, but Blackberry for one has non webkit based browser and Blackberry is very important to me.
I will keep looking, in the meantime, don't be shy to contribute ;)
EDIT
Found this wiki about some frameworks. Most are embedded.
http://en.wikipedia.org/wiki/Multiple_phone_web_based_application_framework
EDIT2
I added Sencha Touch (www.sencha.com/products/touch) to the list as it was added after this post was created. They are the former ExtJS and now have the WebKit based mobile solution.
EDIT3
I added jQuery Mobile (http://jquerymobile.com/) to the list as it was added after this post was created.
Sencha Touch seams to be the solution. Since UniGui for Delphi/Lazarus already supports eye catching ExtJS it would be ideal if it extends to Sencha Touch. We will see.
I'm confused, do you want a web framework that runs on the web for phones (like jqTouch), or are you looking for something that will create native apps provides some amount of portability (like MonoTouch/C#)?
lightweight jquery-like alternative that works on android & iphone (& possibly blackberry & winmo) is xui, cfr. http://xuijs.com/documentation and http://github.com/brianleroux/xui.
edit: xui is more about javascript and less about a good looking GUI, so this might not be what you're looking for after all.
http://jquerymobile.com/
... when its released in "Late 2010".

Resources