I maintain and develop on the Windows Mobile platform.
I know the market is changing rapidly with iPhone and Android gaining market shares.
There are also app development platforms like rhomobile/titanium.
Are there any platform/non platform specific mobile conferences this year?
What would be some of the important/useful conferences to attend in the mobile arena?
Thanks in advance.
Google I/O is supposed to have a lot of Android content this year, and the videos from last year are pretty useful. Unfortunately I think its too late to register.
For the iPhone, you'd want to go to Apple's WWDC conference. It hasn't been officially announced for this year, but many sources point to June 28th as its start date.
I personally don't know anything about this camp, but someone else asked about the Big Nerd Android Bootcamp in this other question. The courses were written and are taught by a very active member of the Android community here on Stack Overflow, so at least you know he knows his stuff!
Depending on your city, there may be a local meetup of iPhone and/or Android developers. These are typically free or cost a few dollars to attend, so I think they are a great place to start. Check out meetup.com for more.
Related
I want to develop the Nokia Apps. How to start? Where to start? Where will I get the details information ? What are the dev environment they supporting?
Please help me.. Thanks in advance.
I am a fresher to this one.
There are some existing frameworks that are old, but Nokia is strongly pushing their new product Qt (ok, not so new now :), they bought the company who was developing it some time ago). So, in their opinion Qt will be used in more and more of their phones, and it's my suggestion you start there, since it's the 'new stuff', and there will probably be more and more contests for apps where you can publish you app and use it as a reference (if you're going seriously about this).
Don't be confused about Qt - it's designed to be used both to develop desktop and embedded apps. I'm guessing you're going for mobile, so look out for Qt Mobility pack since it contains most of the code you'll probably use (it's a library for Qt that has mobile-common functionality)
There are some resources you'll find on the net, but for start see here, and you can easily build up from there with googleing ;-)
Good luck!
edit: Now that the time has passed, I have to say that things have changed - the qt is being dropped in favor of the microsoft's phone sdk... once it gets out that is :)
Although not really a programming question I believe many developers would have come across this and therefore give the best answer.
Currently I am developing an App for iPhone for the organisation I work for. Its close to release and there is heaps of interest when I present it but the occasional question comes up am I going to port it to Android. My answer is I would like to but according to web stats more than 90% of phones hitting our website are iPhones and the other 10% is declining (probably people migrating away from Blackberry, last count was 98% was iOS)
Now if you read the media many people would like you to believe that its a split market between Android and iPhone but this might be just in the U.S where the single carrier for the iPhone has limited its consumer uptake because all the information available to us (at least in my organisation) states otherwise.
I was curious to hear from other people who have looked into these stats both inside and outside the U.S because when I tell the person asking that there is no demand they dismiss it and say its growing, once again contradicting the stats available for our organisation.
I am really interested in Android dev so don't really want to hear that I should just make it to give people an alternative, it's hard to justify to management that I should spend their money to deliver content to 5% of our market. Currently it makes more sense to make a cut down web App rather than an Android App.
Be interested to hear your thoughts. Cheers
Honestly, I would argue it simply depends on your market. For instance, in my location Android users are increasing steadily. It still took us a long time to commit resources for development. Plain and simple, until recently, there wasn't enough return value to develop an Android app. If your Android market is only a small percentage of your market, then the resources would probably better be spent within your main competencies (i.e. for my company, developing more iPhone apps). It is easier to make a presence for a new app or upgrade in a market you are already established in. After creating the Android app, you would need to spend more resources on creating brand awareness, which if you already have a successful iPhone app, wouldn't be necessary if you simply created more iPhone apps. Also, let's be honest, the Android marketplace is a bit of a mess and hard to market on. Don't get me wrong, I have a healthy respect for Android and its capabilities, but unless you can see a return on the app, there is no point in developing it.
Depending on the type of application you are developing, it might be worthwhile to utilize a mobile framework that allows you to easily develop for both devices (plus many others). This is not the solution for all applications, such as those where speed is critical or games, but for many apps it might help. Have you looked at Appcelerator or PhoneGap? Just be careful to do plenty of research and make sure they support all of your requirements before jumping in.
It's difficult to answer your main question because the statistics related to mobile devices varies immensely, especially related to the type of application you are developing. Certain types of users prefer one type of phone and those users typically will use only certain features. For example, BlackBerry users are less likely to download games than iOS users.
For web apps
The approach suggested above is a nice approach because phonegap, appaccelerator or rhomobile do provide a sort of a virtual environment for applications developed in HTML, ruby. However, that might not be sufficient in a number of cases.
One of the approach i have seen developers adopt a lot for native apps
If you have developed your application using C code for the application state machine and lower levels then that code can be ported straight away to Android and be plugged into Android app using JNI technology.
The UI will have to be re-created.
What is the value to your organization of that 5% of customers being able to have a native Android app, versus the company's development time/resource cost?
Now that you've done all the app architecture and design work (including artwork, documentation, etc.) for the iPhone app, will a porting or rewrite for Java/JNI/Android take less development time by some multiple?
I think the most important factor is that if your company have the resources to maintain two version of the app. Would it be more beneficial to maintain native iOS app and a mobile version of the site? Since as you mentioned the usage of non-iOS devices of you website, as a metric lead a conclusion of such already.
As a matter of fact, if you have put most of the logic to the server back-end, writing an android app would not take anywhere longer than writing an iOS app, as long as you've programming experience in Java.
Also contrary to common beliefs, since the market share of Android phones are not as good in your place (would you mind telling us where your company is resided in?, it would in natural have less localized app in your geographical location. So creating an app specifically for them would gain more acceptance. That is fact, is a good thing. (see: Long Tail theory)
I've been developing applications for a long time now, but now I want to jump into Phone applications development. There are four main candidates:
Nokia's Symbian
Apple's iPhone
Google's Android
Microsoft Windows Mobile Phone
Can anyone suggest one, considering documentation, market, samples and availabilty of emulators, I'm not a millionaire so I can't buy it unless I know it would mean profits!
I don't have much preferences as for languages, but to stay within C# would be nice, however I've been thru Assembler for a long time, so it's hard to scare me :)
There are many factors to consider such as where the biggest market is, and so on. But ignoring those factors and thinking just about technical and money issues, the clear answer is start with Android.
The Android SDK is totally free. The iPhone dev tools need a Mac, so if you're not a Mac user, you need to buy a Mac. If you're not a Mac user, then it's probably a safe bet that you don't already know Objective C, which you'll need for iPhone. You don't even need a phone, there is an emulator that works wonderfully. It's very rare that I've made something that works in the emulator but doesn't work or works differently on a real phone. So the emulator is quite excellent.
Android programming is Java, and is very similar to C#.
Android development is much more approachable and easy for development (for getting started at least) than Objective C and iPhone.
There are many online resources available, but the book "Hello, Android" is actually very good. It's dated, though, goes back to version 1.5 of the SDK and we're at 2.2 today, but the fundamentals for getting started are pretty much the same.
You may decide to go another way, but in a handful of hours you can be writing your first Hello World program on Android free of charge. Even if you decide to start on another platform, you can hardly go wrong by giving Android a shot first.
Another thing that's worth noting is that Android is way easier to sell and distribute your apps than iPhone, making it a better place to start. There is no app approval process with the Android marketplace, so you can have your app posted for sure without wondering whether the powers that be will approve your first app for sale or to give away.
It bears mentioning that if you go the Microsoft route, your C# experience will transfer almost completely, and you'll be amazed at how close the compact SDK is to writing plain Windows apps. (At least, it was in 2007, the last time I wrote a Microsoft phone app.) But forget I brought this up-- if you want to be a serious phone developer for consumers, I recommend you forget about Microsoft at least for now.
If your plan is to create and market Paid apps, versus just free ones, don't forget to also consider and evaluate potential revenues and existing competition, instead of just your development cost of entry.
My local, and not necessarily statistically significant, sample shows a larger number of iPhone developers making more money than Android developers. The amount of money to be made, if you produce an app just near the top 10% of apps in many categories, may be well over enough to amortize the higher initial costs of a development system, certificates and testing with iOS devices.
However, for iPhone development, you may have to create a stand-out app, as many app niches in the App store are already filled with several dozens of apps. The absolute number of potential competing apps in the Android store is far lower in many areas. You will need to evaluate the competition in your area of expertise or interest.
First, you forgot RIM (Blackberry's OS). You will find this graph usefull to analyzie your audience (I think the graph is for the USA only): Source of the image
Microsoft Phone 7 will soon reach the market with new devices so it is hard to tell what market share they will take. Their IDE for Windows Phone 7 is free and it supports C#.
Can't say much about the other OSs other than the fact that iOS has the most extensive store and fanatic fans that are willing to buy those apps- but that info is only from what I read on the net and see from friends around me.
You may find the beginning-phone-applications-development question helpful as well.
Windows Phone 7's API will be based on C#, but most of the other stuff about it is still speculation.
Android has the lowest cost of entry, essentially free - and will use Java (which is very similar to C#).
The iPhone has a higher cost of entry - you need to own a Mac (or somewhat less legally, a hacked together OSX install). Plus once you've devloped your app it costs $99 per year to become a registered developer, allowing you to put the app on actual phones, and sell through the App Store. You'll also need to learn Objective-C, which uses a syntax which is a little different to C# and Java.
On the flip side to this, the iPhone tools are very good, and the market is huge, there are also some good online free courses (including the videos of the Stanford course available on iTunes).
Don't know much about the Nokia toolset, and I wouldn't start developing for old-school Windows Mobile now - it's a dead-end.
Some thoughts:
If you have a mac then the choice is certainly the iPhone since all the development tools are free.
AFAIK the Android SDK is an Eclipse extension and can run on pretty much any environment, and is also free.
Mirosoft charges for its IDE, and probably has the smallest audience.
I am pretty sure you will find more community support for iPhone or Android development too.
There are also cross platform options, such as PhoneGap, which may be worth your consideration.
With all technical considerations being roughly equivelant, the most "profitable" platform would have to be the one with the largest untapped consumer base for the particular app(s) you intend to develop.
Two factors come into play which you can assess
Size and growth potential of the market. There are plenty of charts and opinion articles around on this to allow you to make an assessment. If you can't find them, just drop those 4 topics you listed into google alerts and watch the incoming articles to your mailbox for a while.
Saturation of the app marketplace, in particular in the markets your app addresses. Your own market research would be best at identifying this.
The only other consideration which may apply to specific types of apps would be if there is a fundamental feature your app requires of the platform, and whether respective platforms support it. For example you won't get far making a flash based player on iPhone.
I have a very popular Apple iPhone app and wish to port to another mobile platform. What is best the Palm Pre or Google Android? The Android has more popularity with manufacturers but I worry about installation issues and incompatibilities. The Pre has one carrier and one mfr but I worry its sales will be too low.
My app uses an SQLite database and is content rich and over 200MB.
You did not mention if your app was paid or free, and whether it included ads or not. The story is clear regarding both of those on Android. You can not yet sell Pre applications, and we don't even know how Palm is going to handle paid applications. I am also not aware of advertising solutions for Pre.
As for the number of users, Android beats Pre hands down currently. And being the more open platform, I have no doubt in Android enjoying faster growth as well.
Android has the ability to be written in Java a generic enough way that your J2ME ports which can then run on Sonys, Blackberries, Nokias and Samsungs should be a short hop away if you desired. However a lot more detail of what you application did would be necessary as it might be something that is very achievable in a short time frame on the Palm
Which may sway you decision as to Android and Pre thats probably a coin flip decision
You might want to add BlackBerry to your considerations.
When combining all of the RIM models available, the total number of units sold beats the total units sold for Pre and Android devices combined.
Plus they have their App World service up and running now for selling your app through.
Jim
Ahhh, the great debate. Likely to start a holy war. It seems to me that there is a bigger buzz about the Pre than the Android. On the other hand, Palm has failed at this once before, and I have a hard time counting Google out.
I think I'm in the Pre camp. Get in early. Risk versus reward.
Couple of points to port your iphone application on Android and Pre devices
Android: recently they come out with native support, so it should not be too hard to port cpp code to android paltform using JNI
Palm Pre: As if now, development is purely supporting using Java script, and i am afraid you will have to re-write your app to support Pre.
My obvious choice will be go with Android first, this platform is supported by many OEMs and many carriers worldwide while Pre is limited to one carrier and with only one device at the moment in the market. Android definitely has much better market penetration than Pre
I'd definitely go with Android. The palm pre is making progress, but is still rare as far as smartphones go. If your app caters to a niche market in any way, you're likely to find the market is just too small.
Just one thing to remember with Android, though -- you can't make a 200MB app. The phones only allow apps to be stored in onboard memory, which is usually about 512MB with the OS taking 300MB. 200MB is the entire storage space for all apps on the phone. Android phones come with SD cards where data, but not applications, can be stored. You'll probably need to allow users to download your app's database to their SD card after they've installed a smaller, data-less application.
I'd go for Android too, (ok we now have a clearer vision compared to when the question was first asked ;) )
It's just there, everywhere now, so it can't be ignored. Plus i'm more of a Java developer ;).
Actually my concern is the opposite of yours: I'm an Android developer, and I port my apps to the iPhone. I used to do it by hand, but I found this product called ,iSpectrum ( http://www.flexycore.com ). There a video showing an Android 3D app ported to iPhone in 2 days only. This may be interesting a choice tool for you (if you decided to choose Android against Palm...)
I'm answering my own question because its been so long since I asked that a lot has changed. Primarily I went ahead and ported to the Android thanks to some very good answers here and my intuition that Palm was not stable enough as a company. And in hindsight that was the perfect move...Palm almost went out of business having been snapped up at the last minute by HP...and Android rocketed to be more popular than the iPhone. And our product, iBird Explorer, ended up becoming one of the most profitable ports we have ever done. Its also one of the best selling apps in the reference category of the Marketplace. Especially from a grossing income point of view.
I developed a flashcard program a while back for learning Japanese. I've been considering porting it to a cell-phone. What is a good target platfrom? I'm thinking about iPhone, HTC Touch HD (system software: Windows Mobile) or a Nokia (system software: Symbian). Since I know a bit of JavaME, something that runs that would also be cool.
Here's the most recent market share data. Have you considered building a web-based product consumable by all smartphones with decent web browsers? Sites like x.facebook.com are not OS-specific but are app-like enough to provide a good user experience. Building such a site and charging a subscription would be one approach to serve all markets.
Well the Apple store just celibrated its 1,000,000,000 download the other day, so I would say that the iPhone is the largest and easiest phone market to target. Also the Apple store makes it extremely easy to sell your application (they keep part of the revenue of course).
Perhaps you might like to ask which phone has the largest market share in Japan?
Also I understand Microsoft has plans to start an app store for Windows Mobile.
Since you know JavaME, take a look at developing for Android. It doesn't have a large market share, but at least you'll be able to leverage your existing skills.
You won't be able to find a common language and development environment that works on the majority of phone platforms. Once you select a platform, you're kind of committed to it unless you want to port your app to an entirely different language.
Nokia has started heavily pushing a mobile development platform based on Qt. Nokia sells a LOT more phones than Apple does.
Why write iPhone app #1,000,001 when you'd be lucky to get $500 for your investment?
There's a huge craze around iPhone apps... at this point it's totally unjustified from a developer point of view. (It's great for the users)
Qt is a really amazingly well done C++ platform (Nokia bought it, obviously :). I'm having a good time writing PC apps with it... I plan on buying a Nokia phone I can write Qt apps for soon. At that point, I'll be ditching my old iPhone (original unit, not 3G).
When the SDK came out, I thought the world of the iPhone. I even bought Apple stock. However, no Java & no Flash because Jobs is a control freak is just plain stupid. GPL incompatibility really hurts, too. I'm also not buying a Mac just to develop software for the thing.
A few weeks ago I was reading an article about a product called "rohmobile" that was a custom Ruby framework that run's on a micro ruby web server. It allows you to compile your application against all the popular mobile phones (Apple, Microsoft, Android, BlackBerry, Symbian). It seemed like a very cool idea and it's open source actively under development. The framework comes with a sync soltuion, so you can persist data to the local device using REST/SOAP. As I explored the product a bit more, the only thing that seemed like it would be a pain is the setup of the enviroment(s) needed to compile the code for the various device.... if you could make it past this, then you'd have a solution where you could support a bunch of difference devices with a single code base!
http://www.rhomobile.com/
** I've never programmed in Ruby but the syntax and the demo made it look really simple, since it's really just a local web page running on the micro web server installed on the device! The UI is HTML/CSS based. I think the product is still in Beta...
Just my 2cents~
Well I would start to find a system / programing language which is available for the top phones on the market.
I think a good go is python for that. Which makes it easy to use large portions of the same code on all of the phones which are going to be supported.
Then I would probably start with the iPhone, because I believe its userbase is still demanding for new toys :)
Creating a webapplication would be another way... but that would mean you need to be online. if you are not using flash or some other possibilities of persistent storage.
P.S.: I would not use javame :) .. I still don't like anything java at all