Mobile Devices Advice - mobile

I would like to develop on a mobile device, probably with Windows Mobile platform, which device would you guys recommend for me to use? But one requirement on the device is that I need that device to be able to capture signature (human writing on the device).
Many Thanks

Sounds like any PocketPC (or "Professional") device would do. Personally I currently have an HTC Touch Pro, which would be suitable for what you describe. For testing purposes, it might also be a good idea to also test on a device with smaller resolutions (I have an HTC Elfin for example that would do well here, but it shows its age..). Or on the emulator provided with the SDKs.
However some of the newer ones have capacitive touch screens and no stylus. (For example HTC HD2.) So while HD2 is otherwise an excellent phone, capturing a human writing on it probably wouldn't work as well as older devices with resistive screens and a stylus.

Any Windows Mobile 6.0/6.1 based phone with resistive touch screen. A good example is HTC Touch Pro2.
Also, some S60 5th edition phones, such as N97, may be a good choice.

It depends on the languages you intend to use to write the application.
If it's Java, I'd go with an android system.
If you're a c# coder I'd say any windows device would be ok.. You could likely get one on EBay for dirt cheep and for the most part you can be sure your code will run on most of them (I know this is a generality), especially if you keep the code simple.
If you're a c++ developer then the same as above, any pocket PC/winmobile will do.
If you own a mac, and you've written apps in objective c then IPhone is a good choice.
In part you have to base decisions like this on what you know going in.
If you're a blank slate.... well then you've got to figure out what direction you want to take your knowledge. I've personally picked Java and Android because I've recently been convinced it's the road to the future.

Related

Port an OpenLayers application to mobile devices

After making a duration/cost estimation, I'm about to start developing a desktop application using OpenLayers. I've never had experience on it before, but have the support of some coworkers who do.
Now we have to estimate the time and effort it would take the same application to be viewable in mobile devices. I know the existence of openlayers.mobile.js, but nobody in my company has ever worked with it before.
I know it has some advantages over the normal OpenLayers library, such as pinching for zooming, and so. But, does it has any blocked capabilities? I mean, if I write code to draw a line on a layer in the desktop application, change the simbology of a layer, add a buffer arround a polyline, etc.. will it still work with the mobile library?
Is there funcionality in the desktop version that is not in the mobile one?
I'd need to know before estimating what can I offer in the mobile version, and how hard will it be to get so.
See examples tagged with mobile:
http://dev.openlayers.org/examples/
The next OpenLayer versions will probably have better mobile support as this is something many users are interested in.

Which platform is used in companies now-a-days to implement mobile applications?

Basically i would like to know which platform is currently used to develop mobile applications i.e. J2ME etc etc...
Also any new ideas on mobile applications would be quite helpful.
Generally, the approach is to go for a website, if possible, and adapt it to each phone using a 'device detection layer'. We use DeviceAtlas.
If you want to write native applications for each phone, then you need to do it in each of the native languages (and there are a lot).
Symbian/Java: Greatest 'penetration'
iPhone/iPod Touch: Latest trend, objective-c for this.
Android: I think this is a variant of Java, and will be a very marginal component of the market for a long time, though maybe high among a certain type of techies.
Basically, you are going to need to profile your market, and determine the best approach. But as I said, in general, you'd prefer a website, and mostly, a website is all you need.
There is a framework called Rhodes by Rhomobile that allows development of native applications for all major smartphones. See my answer to a similar question earlier this year.
We are primarily targeting the iPhone, but don't always make an iPhone-specific application. The web browser on the iPhone is good enough that a lot of our web apps just run there ok. So many of the apps we're writing continue to be done using the same platforms we've always used. We're a big institution so this runs the gamut from J2EE and .NET to Php and Ruby.
Mobile-only apps are developed in XCode (or web versions in DashCode).
If you need to cover multiple mobile (esp. smartphone) platforms, Javascript (with HTML and CSS) may be the only way to go, despite all its limitations. You get under the radar of Apple's iPhone app vetting, it's the only way to target Pre, you can also cover Blackberry, Android, Windows Mobile, AND Nokia on a single codebase... unless the limitations are just TOO stifling for your specific purposes, it sure seems like the way to go!

Silverlight for the masses, is it time

We are launching a site that is media heavy and looking at using silverlight, since most of our video library is in wmv and from what i understand flash serving still costs a couple bucks.
Is silverlight really adopted out there, I know i use it as well as a bunch of developers for internal apps but as far as a web application is it ready to go, i went through a mac install with safari and had to restart my whole browser to install it, not exactly a great user experience. I also noticed that MS doesnt even use it for http://video.msn.com and also the few sites that have launched get crazy MAC people crying bloody murder , read http://www.itwriting.com/blog/641-mac-users-refusing-to-install-silverlight.html where one New York Times reader said "Nope. Not going to use anything from Microsoft. If reading the NYT requires MS products then, for this reader, goodbye NYT." when asked to install silverlight for NYT site. Tech wise moving forward I like Silverlight and some of the things i can do from a framework / wpf perspective and want to move ahead with it just not sure it's the out there enough yet.
Just wondering what people think out there
I think that if you have a user base that refuses to upgrade from Internet Explorer 6, good luck with getting anything else adopted, including Silverlight.
The thing can be installed more or less automatically just like Flash, for crying out loud. How difficult could it be?
The argument up to now has been, "Flash is already installed on most computers, so it already has high adoption." But that's a chicken and egg problem. How did Flash get adopted in the first place?
The NYT reader just has a prejudice. Clearly he believes that Microsoft is the evil empire. There's really nothing you can do about that. The real question is, how prevalent is this attitude? Certainly it will be common among the Linux/open source crowd, but it's hard for me to believe that this attitude would be prevalent among the average user. If anything, the Microsoft name is a warm and fuzzy for them.
I personally think Silverlight will pick up pace on business applications just because it's much programmer friendly and the fact that you can program it in .NET languages means it is much easier to reuse and maintain your business logic.
However, in terms of consumer application I don't think it can beat Flash, who's got a much larger install base and already used by most major companies. Also, don't forget HTML5, which now has integrated video element supported by major browsers including Firefox, Chrome and Safari.
Despite codec arguments, it is another strong contender, which will squeeze Silverlight's market share even further.
As a user and as a web developer I like sticking to the bare minimum. Like it or not Flash has pretty much become the standard platform for rich media on the internet. Everyone I know has flash to use videos from common sources like You Tube.
Since money seems to be an issue I might suggest Flowplayer, an open source Flash video player. Currently it only supports mpg, mov, and avi, but it's fairly easy to convert wmv to other formats using open source tools.
Here is Flowplayer:
http://flowplayer.org/v2/player/index.html
Here are some simple instructions for converting video:
http://flowplayer.org/v2/tutorials/my-movies.html
The only major sites using silverlight are ones that microsoft either owns, or has paid to use it, and most of the ones that they paid for switched back to flash. The version number may be approaching 3.0, but it is still a very new and immature platform that is not as widely installed as flash (which is pushing 97% of all browsers).
If you are talking wmv vs silverlight, I would go silverlight. If you are talking flash vs silverlight, I would say flash hands down. If you want to be forward thinking, serve stuff up with the HTML <video> tag, with flash as a fallback.
I remember that MLB went from showing those games from silverlight back to flash due to a few issues that didn't get resolve. It work pretty well on the Olympics, but beyond that I can't say how good or bad it is. Do you have any idea what percentage of users have Silverlight installed for their browsers? That might be something to look at.
I've heard that desktop Silverlight penetration is around 30%. Flash is somewhere north of 95%.
Going with Flash seems the easy decision now. I can certainly imagine a lot of Mac users seeing the "install Silverlight" message and saying, "Ick! No!"
In the long run, probably most Windows PCs will have Silverlight. Diehard Mac fans may never install it.
Meanwhile, I've seen more and more people who don't install Java, and who just pass on any site that says to install Java.
Adobe's only weakness now is mobile. They seem to have desktop locked up tight.

Windows Mobile Development: Pocket PC AND Smart Phone or Pocket PC Only?

Developing an application with impressive and a little complex GUI is quite easy for Pocket PC platform. But if I want the same application to run on SmartPhone platform as well, I need to make extensive changes in my application.
Smart Phone doesn't even support radio buttons.
I want my application be usable on as many mobiles as possible. Can anyone help me regarding this.
If I say that I should only develop for Pocket PC because SmartPhone platforms are a very small part of the market, to what extent is this true or false?
Or I have to develop for the both platforms? :S
I've developed for both using a single UI-- it's a bit annoying but not impossible. You have to avoid certain controls (use LinkLabels instead of Buttons, etc.), or even switch out whole forms depending on the device.
For example I have a form that really just needs a whole different layout for smartphones. I build two different versions of the form and have them both. The system picks which form to display at run-time based on the OS version. It's not a lot of extra work since the smartphone form is fairly scaled-down.
Even though there are a more pocketpc users out there, the smartphone people are very happy to have options.
I can't say if you should develop for Windows Mobile Standard or not, that's dependent upon your market and application. I do know from experience that you have to treat Standard and Professional as two completely separate platforms and can share very little code between the two. They need two different designs, both UI and program wise, and also two different approaches in terms of features and functionality.
Unless you have the need for WM standard devices then I personally would go Pocket PC only. I would say that 95% of the WM devices I have seen in the 'real world' are touchscreen pocket pcs.
I wouldn't touch Windows mobile standard with a barge pole as the devices are soo rare! I mean just look at HTC's website. Out of the 26(or something I cant be assed to count) windows mobile devices they currently sell, only 6 are Windows mobile standard!

How to get started with mobile development

Now that Nokia will soon ship my pre-ordered n900, I thought I would familiarize myself with mobile development - maemo seems friendly enough for a guy who's done development only on Linux since days of Amiga and C=64 and is in love with Python.
However, I have no clue whatsoever on stuff like UI:s and especially mobile UI:s - also, I would not like to learn to code just for n900 but in a more broad sense. Looks like most guides etc are very platform or device specific, so any suggestions on like "UI best practices" tutorials, books or websites that are general to all mobile platforms - not just for say Maemo or iPhone.
Actually, that is not really true. If you learn how to use the two main windowing toolkits (GTK+ and Qt) in Maemo, you will be able to write GUIs for all sorts of devices. Nokia has purchased Trolltech, the makers of Qt, and they have released all the GTK+ changes back to GNOME. This means that both Qt and GTK+ are open source so you can port them to any platform.
In fact, Nokia has already done some of the porting for you - they are porting Qt to Symbian which runs on millions of mobile phones. Both Qt and GTK+ run on many platforms, not just linux, so you can write programs for Windows with these two toolkits as well. Note that you are not going to be able to create applications that take advantage of the native operating system's Windowing software, like Aqua, but you'll be able to get a native look and feel.
Learning either one of these Windowing systems will stand you in good stead for developing GUIs and nearly any platform you can think of.
Everything you're finding is platform specific because device development simply is very platform specific. The API sets are widely different. The UI paradigms, including how controls are created and layed out, are different. The processes themselves are handled are vastly different.
There simply are no "one size fits all" rules or recommendations other than maybe broad hand-waving like "remember you have limited resources, so keep your memory footprint low" or "the processor is not a desktop, so things take longer. Code complex algorithms accordingly". As you can see, not terribly concrete or useful.
The unfortunate thing is that you really have to just pick a platform and start to learn it. If you want to try your hand at multiple platforms, you basically have to learn multiple separate skill sets (and often multiple development tools as well).
Forum Nokia has good documentation about user interfaces for mobile devices, of course these are simple general rules as already said here, but take a look to this page: http://www.forum.nokia.com/Technology_Topics/Design_and_User_Experience/ (see also the essential links at the bottom)
The mobile UI isn't GTK+/QT folks. And there is a "one size fits all".
It's called the Web. Learn HTML5 and start writing mobile applications.

Resources