iPhone / Android Web App - iphone

So I'm starting to design a Web App for mobile. This is my first mobile Web App, BTW. I'm very used to writing Web Apps for desktop: C#, jQuery, JSON, etc.
On the server-side, I'll stick to C#. But I'm curious about the client-side.
I have some questions on the subject:
Are there any guidelines for mobile web development?
What should I worry about for mobile?
I see there's a jQuery mobile. Nice! Can anyone give me a feedback on that?
Thanks in advance!

I've used both Sencha Touch and JQmobile. I like JQuery mobile myself better, but I'm just waiting for a release. Unfortunately, If you run the demos on your phone (I have the original Droid) they seem pretty slow and buggy. On my PC though, they run great. So I'm curious about the other tools out there.

Related

HTML5 web app vs Native mobile apps

Hi I have been recently exploring some of the Javascript mobile frameworks that can be used for developing mobile web apps like Sencha, JQTouch, JQuery mobile etc.
I know the adv and disadvantages of both.
I just need some recent stats which show the market's adoption or opinion.
I tried three ways to develop mobile applications.
First method is to use frameworks that will take your html/css/js files and package them into mobile applications depending on your targets (BlackBerry, iPhone, Android, ...). I used PhoneGap (known today as Cordova). I didn't like it at all because the UI's rendering is so ugly on some devices and the user experience is broken. I had to use it with jQuery Mobile because it gave me a good UI design start. I tried some Phonegap Android generated applications on my personal device and it's really horrible. Some of them got rejected by Apple because of that ...
Second method is to use Appcelerator Titanium SDK. One word to sum it up: Awesome. One language to use (javascript) to create your UI/Controller. It's so easy to learn, so powerful to develop with and it has many out-of-the-box functionnalities (like facebook API, Yahoo Query Language, ...) that will allow you to put in place solutions easily for both Android and iPhone. BlackBerry is coming soon. What I liked the most is that it converts the written Javascript into the targetted platform with the default UI. It's really great. And, above all, the UI is easily customizable (with a css like system).
Personally, I put in place apps that can: Take a photo with the device then send it to a remote server, send messages to twitter/facebook, advanced geolocation, etc.
Third method: Native! It would take time if you target both iPhone and Android but, the big advantage is that you can create anything you want without being tied to a Framework for areas such as games, augmented reality , etc.
In my opinion, if you want to create simple applications with some nice features (weather, twitter feeds, sending on a facebook wall, ...), use Appcelerator Titanium SDK.
It converts your code into NATIVE.
If you have time to spend learning native languages, do it. It's the best way ;)
Hope it helps.
Regards.
I've summed up my thoughts on the whole "native vs. web" discussion in a blog post here: http://www.springenwerk.com/2011/09/thoughts-on-mobile-ui-design.html
In a nutshell: You can't get around getting to know the platform you are targeting if you want to provide a great user experience. Plus, you shouldn't try to mimic native UI/UX in a web application, it will only disappoint your users.
here are some pros and cons of native apps vs. web apps:
Native apps:
Native apps have more security
Native apps have higher user engagement, it has higher click-through rate (CTR) among the ad-serving publishers
When it comes to aesthetics and overall user experience, it is incredibly difficult for web apps to trump native apps
you don't have to buy a server and maintain it, therefore, for small businesses it is the ideal solution, not web apps which require a server.
Web apps:
it's cross platform - that means your one app will work on both iphone and android
cheaper and faster to develop and maintain
you will find programmers easier than native apps
updates are easier
Check out this post for some more opinion - http://www.thorntech.com/2013/01/html5-vs-native-apps-which-will-win-the-mobile-app-development-battle/
In particular, the last paragraph is worth noting. If you go down the path of building an HTML5 app, it is worth having some type of background "syncing" of content so you are not always pulling it from the web in real time. The app will be much more responsive if you load HTML pages from disk.
From my experience, the success rate of a native apps are much better than html or javascript based ones. I do not have sufficient numbers to back it up, but these are some issues that may crop up when trying to build html5 apps for different platforms. e.g.
Browser OS or webkit differences can cause unexpected bugs, css issues that could take quite a while to debug.
Your app is running on top of a webkit browser engine which takes up additional resources.
Older or non-smart phone devices may not have a modern webkit engine.
Nevertheless if you have good web skills over native, then getting an app to the market the quicket and cheapest route would be html5. Some apps lend very well for html5 such as data listing, and text content driven apps. I have written a writeup on HTML5 vs Native on my blog. Hope its useful.

What options are there for cross-platform (iPhone, Android, Blackberry) development?

Me and my friends are starting app development. We have created 2 apps now, and have 3 more in the works. We're looking for a development tool or environment that will allow us to build games that works on all the major handsets. We're using Flash at the moment for cross-platform, but are there any better and more powerful options?
Or would it be best to write the code in one language, then convert it line by line to the others? How do the creators of games like Angry Birds do it?
Thanks.
There are many options:
PhoneGap
SAP Sybase Unwired Platform
Appcelerator Titanium
RhoMobile
Kony
Out of all these mentioned tools i will recommend PhoneGap.
Also PhoneGap and Corona
My friends are using this for making games , and am a designer so not much into programming of that. But still as far my friends say this is good for most of the applications, though there are very few things which cant be implemented.
My friends have created a utility app and a game tic tac to using this.
For developing games i would recommend Corona.
For a native feel and look i would recommend Titanium
For fast and simple development and using html/js i would recommend Phonegap
You should also check out Worklight from IBM. You can easily download the fully functional development tool from their developerworks Web site. The only restriction is that you can't use what you write for a production version. Their tutorials are great and escort you comfortably through the short learning curve.
I'm a Titanium Developer, I find this framework great because it gives me the chance to develop cross browser mobile with Javascript. This is a big advantage for people that have Web Developing background like me. If you are gonna develop basic cross browser application und you will do it quick (and if you have javascript know-how), then appcelerator is good for you!

Any idea how to write code that can be easily ported to iphone, android and blackberry?

I'm looking for a way to easily port content driven applications from one mobile platform to another. Currently HTML5+js seems to be the only language that can be easily reused.
Can you share your experience? I'm looking for a way to go forward.
Have you taken a look at Titanium Mobile?
http://www.appcelerator.com/products/titanium-mobile-application-development/
You can build apps for iPhone/iPad & Android using JavaScript - doesn't support blackberry (yet), though.
You are right. HTML5+CSS+JavaScript is a viable and recommended solution for cross-platform mobile apps. If you're already familiar with these technologies there is no reason for you to learn a new one (such as Titanium Mobile as was suggested by someone else).

phoneGap/Titanium developing

I was looking into PhoneGap and Titanium framework, and I did not clearly understand how to they work, let's suppose I have already developed an app for android or iphone, can I run this app on another mobile with a different OS with PhoneGap or Titanium help?
Or I have to develop again my app with PhoneGap/Titanium framwork?
In this case I have full support at all the features like thread, JSON or XML parsing and so on?
Thank you
PhoneGap basically takes a client-side web app (HTML, CSS, JavaScript) and wraps the whole thing in a native device's web view control. You can hook to some of the device's native functions, but as you can guess, it's pretty limited compared to native development. But easy, and brings in a whole range of skills that a lot of people already have. That's really the appeal of PhoneGap.
Titanium is also html/javascript oriented, but it actually claims to compile to native code. Their sample "kitchen sink" app demos quite a lot of the native APIs, at least for the iPhone. I doubt you'd be able to deal directly with threading, but JSON for sure, and I'd think XML as well.
Titanium has full support for JSON or XML parsing.
You can see Titanium examples - Kitchen Sink - for more details.
The idea behind phone gap is that you can take a browser based client app that is written in html/css/javascript and use phonegap to gain access to some native mobile hardware like contacts, gps, accelerometer, etc. Phonegap allows you also to build this web app for different mobile devices all using the same web app code.
To answer the first part of your question, no, you would not be able to take a developed app and use PhoneGap or Titanium to run the app on another device.You would have to write the app in either the PhoneGap or Titanium Framework and then build the application to the devices you want to support through the tools that each give you.
For example, you would write your code in JavaScript(Titanium) or HTML/CSS/JavaScript(PhoneGap), then use the app's build tool to create the file that would be released onto the phone.

Mobile UI that works well for both iPhone and Blackberry Web Applications

Can someone recommend a good Mobile UI Javascript/jQuery framework that works well with both the iPhone and Blackberry? I'm developing the core app from ASP.NET.
Thank you in advance.
I don't have any personal experience with any of these, but I thought I'd mention a few that I've heard of. It will probably depend more on the features you require for your specific application, to determine which framework suits you best. Also, this is by no means an exhaustive list - the "cross-platform" mobile frameworks seem to be popping up all over the place recently!
Rhodoes
PhoneGap
ramp
appcelerator
As it is today, the BlackBerry browser is not very friendly to these libraries. But the upcoming version will support HTML 5, which will allow you to use most popular js frameworks. From personal experience I can recommend Sencha and jQuery.
I would recommend Sencha Touch or Sproutcore.
Sencha Touch is very similar to EXTJS, which a lot of front end developers really like. Check out
http://www.sencha.com/products/touch/
It is probably more mature than SC, and you will have a larger developer base on which to draw. You are gonna wanna try out the demos on that link, on a phone or ipad if you have one.
However, I personally like the strong MVC pattern that Sproutcore enforces. The mobile framework exists, but I don't know of any major clients adopting it, yet. The founder of SC, Charles Jolley, recently left Apple to push his framework; its gonna be big.
BlackBerry has very basic browser.
But for iPhone, you can try jQTouch. Its lightweight and amazing.