As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I have very little idea about mobile platforms, though I am interested to program for them.
Would you please compare J2ME VS Android VS iPhone VS Symbian VS Windows CE.
I would like to know:
which one is better
which one should I choose and why
if there is any VM technology to test the programs
is there any IDE, debugging facilities?
Personally, I would like to code for open source, but any suggestions are welcome. I have preliminary knowledge on Java. I would also like to know, if there is anything else that you can recommend.
There's several of these questions floating around on SO already... the most popular seems to be this one: what mobile platform should I start learning?
Quicky from the accepted answer over there (I edited a bit):
I think 3-4 platform have a future. But depends what platform do you like and how you like freedom in distribute your applications :)
Windows Mobile
C++ or .NET
free distribution, just like normal applications or through market
You need a Windows PC to develop
proprietary
Android
Java
Open Source
through Android Market ($25 one-time fees) or like normal applications
The platform is completely open source
iPhone
Objective-C or Java (Developing iPhone Applications using Java)
through iPhone Market ($99/year fees)
You need Mac (Mac OS) for development
proprietary
Java
J2ME or JavaFX
largely open source
My personal thoughts are: Symbian's dead; Windows Mobile will die, but take a long time; Android will become the standard in the next few years; iPhone will remain trendy in coming years, but NOT take be the biggest player; Pre/WebOS will maintain a niche market, but not be wildly sucessfull, Blackberry will decline, but still be around forever. I'd probably put my time/money into Android or iPhone at this point.
You can find everything about J2ME VS Android VS iPhone VS Symbian VS Windows CE in the below survey image:
Admittedly I'm biased, but points in favor of Symbian are:
Is open source
Has by far the largest marketshare (45% or so) of smartphones
Runs on cheaper hardware than Android and iPhone (means volumes will go up significantly faster)
Runs Python, Ruby, Java and Web Runtime Widgets
From Symbian^4 will have a complete Qt stack.
For maximum portability among smartphones, I recommend Javascript, HTML, CSS. It's the only way to run on certain systems you don't mention (such as Palm Pre and Google's ChromeOS), and (with suitable restraint in using advanced features, if you can) it's the one and only way to write your app ONCE and have it run on an incredible variety of platforms. Especially with some server-side support (unless your volumes are huge you can get that for free with Google's App Engine), it's quite a powerful and effective solution for many needs.
Otherwise, you need Objective C and Cocoa for iPhone (excellent technologies, really well supported by Apple esp. if you have a Mac, but won't help for other smartphones AND nothing else besides ObjC or JS will run on the iPhone), etc, etc.
I think iPhone is ruling the hardware and sotfware development,android is interesting but too new,symbiam is dying because Nokia,windows Will survive cause of money with bull€&€& but they will. iPhone is too restrictive and damn expensive but is thecoolest now.Finally i think that for the NeXT 2 years iPhone will reign.
Windows CE has tottaly caputed OS market for rugged devices, companys like motorola, intermec, Dolphin (Honeywell).
Plus Windows CE and Windows Mobile has an enterprise grade database platform.
When comes to spending money, companys buy $1000+ plus devices and build real applications on them.... I see Windows CE being around for a long time and the chart above only show smartphones and no other device, Android and CE can be on in TV's, running gaming system or anything eles.
A detailed market research about Android and iPhone here
and smart phone market share in first quarter of 2010:
(source: nielsen.com)
Take a look at PhoneGap and Appcelerator Titanium if you want to develop for multiple mobile platforms. They both allow you to write programs that run on both Android and iPhone, and PhoneGap also has BlackBerry support. PhoneGap programs are allowed on the Apple App Store, but I'm not sure about Appcelerator Titanium.
My response may be late, but here goes:
I've been exposed via work and academia to both the iPhone and Android platforms for the last year. I find two glaring flaws with both platforms that will limit, if not prohibit, viable entry into the biggest mobile market -- the business enterprise. Oddly enough, the flaws are opposite sides of the same issue: enterprise compatibility.
iPhone - Because Apple exerts ultimate control over what app makes it to the App Store, AND the app must be available to anyone once approved, IMO, iPhones will never become the defacto business mobile device. I cannot envision a business that would willingly expose it's source code to Apple's scrutiny. Nor would I want my "internal use only" enterprise app available for download by anyone in the world. I find that scenario laughable.
Android - OTOH, because Google (and now Oracle, too) exert no control whatsoever on app development, anyone who wants to, regardless of ability, can slap any old app on the App Market whether it works or not. I would not want my app lost in the confusing mix of slap-dash, teenage tinkering, malicious mongering developers. Would you?
However, the tie goes to Android because developers are not compelled to submit their apps to public access in order for them to be distributed.
Any other platform is either niche or passe'.
That's my take on the issue.
RE: Is there any IDE, debugging facilities?
For Android development the best option is to use MOTODEV Studio, based on Eclipse platform. Is an integrated development environment with Eclipse 3.5 and Android Development Tools (ADT) plus automatic download and configuration of the latest Android SDK. You can also test applications on an integrated Android emulator within it.
Java ME has the Java Verified Program and the Specs all come from the Java Community Process (JCP) far more advanced and vendor neutral than the others.
You can also take a look at iSpectrum . With this you can code in Java for iPhone, so you can reuse a lot of your code produced for Android and/or J2ME, for example.
Android would rule the market few years down the line, just because its an open source. No person would want to spend much on apps in future . Iphone till date survives because its trendy to use Iphone(as they say!) because of its UI and people are willing to spend on Iphone apps, so i must say its not far to see a mobile platform(Android) which is trendy, easy to use, free et al.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I want to start developing for iPhone.
I don't have mac.
After reading this question which talks about android , I was wondering :
Is there any site which gives :
What you need to download ( for PC users)
How to configure it
sample code for beginners
There is a lot of info but I didn't find any centralized place for beginners.
Thank you.
For iPhone, you will always need a Mac if you're thinking about doing Native Apps. (Apple make it clear in all Keynotes: Apple Software + Apple Hardware)
Every Android developer here knows it's a pain to test their app in all Android Devices out there cause no one has the same Operating System, they always have a changed version for each mobile company, Apple makes it clear that you need to use their, and only their equipment
Even if you're doing an HTML App and wrap it up with a wrapper framework like PhoneGap, you will need a Mac to compile the code and give you the packages to upload into AppStore.
There is other Frameworks like Titanium witch they will support Windows machines, but I don't recall how they compile the code to the AppStore, probably the same way as PhoneGap, and for that you will need a mac.
PhoneGap and Titanium, as well Sencha Touch, are Frameworks that you can use a language that you know best (HTML and Javascript) - Only Javascript in Titanium and Sencha, and outputs the code in a way that is very similiar to a Native App, and can be easily port to any other OS like Android, Windows Phone 7, Meebo, etc. Just read a little about each one.
Sencha and Titanium are paid frameworks, while PhoneGap is free.
Best approach if going Native on this is buying a used MacMini from eBay or similiar, or even run a Hackintosh (OSX for Windows Machines) in a VM... end to end, you will always need a Mac.
And there is MonoTouch as well, now from Xamarin and the amazing team of Miguel de Icaza.
Even though, you do need the Mac to convert .NET code into "Objective-C" (for the ones that know the compiling process, it's machine code, but for the OP, it's simpler to assume this).
You can use Visual Studio in a Windows machine to program, but you will never compile or even run or debug... you will always need MonoDevelop (The Visual Studio of Mono) and a free MonoTouch license to run and debug in the Mac iPhone Simulator, but you will need a paid license for going to the AppStore.
just for clarification, you can develop everything for Android using Mono for Android, as the Framework where Android runs exists for both Operating Systems (Java), and for this, you will have the ability to use Visual Studio to code, compile and run in the Android Simulator.
As said in the beginning ... you will be best with a used Mac :)
You can indeed develop for iOS on a PC for non-AppStore (jailbroken) purposes - you'll need Linux or Windows+MinGW and the opensource toolchain - I've written some build instructions at http://github.com/H2CO3/ios-toolchain
Also, if you have never done any C programming, I suggest you to grab a copy of K&R C and you begin Objective-C only after mastering C or else you'll be confused regarding the basics.
Centralised information for begginer you can get there: "CS 193P iPhone Application Development" from Stanford Univercity. This is great cource with video lectures and homeworks.
And you should have mac (or hackintosh).
EDIT: Course also available in "iTunes U"
I'm kind of a beginner too. I've started one year ago and have good information for you, where to start.
xCode on Windows: Forget it! You have to work with a Mac.
I don't understand what you need to know under this point..
*3.*There is lot of good stuff free available, if you know where:
A good site is Ray Wenderlich
Another option are Potcasts on iTunes U from the Stanford University.
Follow this along for a while and you will be ready to make your one projects!
And if you need help, this site is a gold mine :-)
The right place to start would be
https://developer.apple.com/
You really need a Mac to develop for Mac. You can do Mac development using Hackintosh but it may be illegal to do so.
For developing iOS and Mac Apps, you will need the Xcode IDE which you can download from the Mac App Store.
The Dev Center has all the documentation you need.
iOS Dev Center:
https://developer.apple.com/devcenter/ios/index.action
Mac Dev Center:
https://developer.apple.com/devcenter/mac/index.action
If you like learning by examples, a good place would be http://appsamuck.com/
You can also build HTML 5 apps for iPhone.
This question already has answers here:
Closed 12 years ago.
Possible Duplicate:
Technology to write iPhone, BlackBerry and Android phone at the same time?
Edit - guys, we need one more vote to close this. This question is a dup (read the comments)
I've heard that Apple banned such tools. Ok, so Apple lifted their ban in September. Still, the question holds - is there a sane way to develop apps to these two platforms without writing nearly everything twice?
Is there something I'm missing, or is the current state of affairs really that every company that develops a cross-platform legally has to maintain two code bases?
Apple reversed their ban in early September after receiving some pressure from the FTC and EU. However, unless you plan on using a third-party tool such as Adobe Flash Pro CS5 (I believe you can create AIR apps that will run on Android this way, as well as the much publicized iOS functionality), you'll have to maintain two codebases anyway, as Android apps are written in Java and iOS apps in Objective-C, two vastly differently languages with vastly different APIs.
You can always use standard HTML5 technologies to make a pure web app. Apple has two tracks for apps: native apps through the App Store written in Objective-C, or web apps that have only the restrictions of the underlying HTML5 technologies.
If you don't like pure web apps you can even merge the two and make a custom app that displays heavily customized web-like content in an embedded browser view (UIWebKit on iOS). Android and iOS web browsers frameworks are from WebKit and very close in features/appearance/conformance.
Instead of starting from a viewpoint of "I can't do X on Apple's closed iOS" start with "Can I do this in any supported application technology, even if its web-based or a web app hybrid, available across all platforms?"
I've done some research on this recently and have found a few companies that can to do this for you.
Appcelerator Titanium Mobile. They make a product that allows you to write your code in Javascript. I've found that the business logic, like networking, files, etc are write once, but the UI has quite a bit of if(android) else \iphone logic to get right. Apps will look native.
FeedHenry. They are more of a HTML based solution, but have a broader support of devices. More than just iphone and android. The sdk is still pretty early, and work can only be done in their special ide that is web based.
Phonegap. A javascript/css/html based framework that targets the iPhone, Android, and the Blackberry.
There are plusses and minuses to all of the solutions. Depending on your app's complexity, it may be a good decision to pick a platform like those to develop on. Coding an app could be much faster if the features they support are right for your app. Right now, it seems that they are all in early release phases and don't support a full toolkit that a developer would be used to, like a debugger, full IDE support, etc. Also, many of them build to a lowest common feature set, so you may not get all of the new release features as they come out, you would have to wait for a particular version of the platform to be released in order to have them.
XMLVM: Android to iPhone
XMLVM can translate your Android code to Objective-C for iPhone. But as what I know you still need a Mac to compile the iPhone application.
Android has the NDK (native dev kit) to allow C and C++ code to be included in APKGs and called from Java via the JNI. Apple's toolchain will also deal with both; the code that will be different will be the platform interface code, mostly in Java on Android and ObjC on iOS.
This is only useful when the bulk of your application is in C or C++.
An alternate would be to go with MonoTouch and the upcoming MonoDroid, if everything works out you could basically code C# on all platforms including of course Win7 Mob.
It looks promising but haven't tried it myself yet.
In September, Apple lifted some of the restrictions in the iOS license that had made it difficult to do cross-platform development. See this press release. I'm not familiar with the details of the current license, but you can get a copy through their developer program.
Another possibility that would be the Rhodes framework, if you like MVC, ORM, and Ruby.
take a look at the System.getProperty() values with android the vendor shows as The Android Project. I haven't looked at the iPhone or the IPad since I don't have one but hopefully they have something changed for their's too. But this will only work with java that I know of.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'd like to start developing for iPhone or Android in my spare time, as a chance to learn something new but also hoping make some extra income.
I'm not sure which is the best development for me to start developing on. I own an iPhone, but I don't have a Mac (which I would need to use the SDK), plus with the iPhone I believe there's an annual charge to develop for it.
As far as I understand Android, the SDK is free and can be used on Windows.
Professionally I develop using .net and C#, which sounds more similar to the Java based Android enviroment.
Another negative I perceive against iPhone is it has a much more crowded App Store, I would think apps get better exposure on Android?
Both can be good/bad for various reasons.
iPhone - good
Great SDK & get to use Xcode which rocks
Well documented online (many tutorials)
Large deployed base of devices
Well established app store
Get to learn Objective (I find it a fun language)
Most people tend to upgrade their iPhone OS so you can get away with only developing for the latest and greatest
iPhone - bad
Crowded app store, very hard to break through (the "gold mine" is a myth)
App Store apps need to be approved by Apple, with some often rejected for dubious reasons
Have to buy a Mac (not necessarily a bad thing)
Have to learn Objective C (can be a hassle)
Have to pay $99/year to publish apps
Can only multitask on iPhone 4.0+. Hardware restrictions will mean many devices will not be able to use this however
Android - good
No restrictions on apps that you can develop/publish
Wide deployment of devices and growing - set to overtake iPhone soon
Can multitask on Android
Get to code in Java which is widely known
Some of the SDK tools integration with Eclipse is nice (although still needs a bit more work)
Only have to pay $25 to publish apps (one off fee)
Can develop on any platform (Mac/Windows/Linux)
Great Android devices coming out this year - platform could really take off.
Nice XML way of laying out views. While not as flash-looking as the iPhone Interface Builder, it is very powerful.
Get to work in Eclipse (which some people think rocks)
Android - bad
Have to support wide variety of screen sizes and devices
Many people still using old versions of Android OS (1.5) so you'll probably have to support those if you want to reach that market
SDK is not as polished as iPhone SDK
Android Market is not as popular as iPhone App Store - hit apps will not make as much $$$
All in all, starting with whichever is fine in my opinion, especially as now Android is gaining ground. Given your background I'd say you should go for Android.
In my honest opinion - I see the recent changes in iPhone SDK a kick in the teeth. I'm an Adobe person and you would assume, an infinite number of developers begin building applications in CS5 would be great for you App Store? Apparently Apple do not agree.
However - if your looking for exposure, getting an App into the App Store will yield more results if you build a quality app. As the Android store hasn't got a footing yet (if they'll ever be one), all marketing is on your own head.
I recently defunct Apple as they force us developers to 'be them' and I don't agree with their ethos.
That said, having programmed for both, The Android is slightly tricker to get installed and took a very long time to sort itself out. Although the instructions are very good and the examples are well defined.
If you've got a mac, installing the iPhone SDK is a sinch and you ready to build apps. It does cost £50 for the developer connection and yes android is free. [Correction - this may cost a one of fee of $25]
If you are building an iPhone app thats heading for the wild, you will need the connection (this can take up to 3 weeks in my experience) so you can test it on your iPhone.
And you'll definitely need to purchase a Mac.
--
With Android, its java, and with the newest rendition, a very good API to work with. As an additional bonus its build upon Eclipse, so it'll take you seconds to understand whats going on.
--
As a final thought - being an Actionscript/JS developer, the transition to Java was a logical and simple step and (please don't shoot me if you don't agree) Objective C is a train wreck of two different language styles. I found it very very difficult.
but don't just take my word for it, definitely try them both, as I see Android emerging market just an ice berg right now, but Apples is established.
Two disadvantages of iPhone/iPad apps ecosystem are:
Apple test & accept apps before puts them into AppStore (this take time and acceptance depends on Apple current policy) -- Google seem not to care about that so much.
AppStore it's the only official place for iPhone apps -- on Android you can install apps from unsafe source (i.e. website or email attachment) -- so you can provide and charge for app in various ways.
You say you want to (a) learn something new and (b) make some extra income.
As far as (a) goes, your barriers to entry with Android are probably lower. You can develop on Windows, Linux, or Mac; the sdk is free, and there are no charges. Android development is usually done in Java, which is not that different to the c# you already know. So, I'd say get Reto Maier's book and give Android a try. At some point you'll need an Android phone, but you can get some way using the emulator. You won't have to buy a mac or pay for a developer licence.
Once you're familiar with developing for a mobile platform you'll have a better idea of what it takes to build apps that other people will want to use, and maybe even pay for. At that point you can evaluate the platforms from the point-of-view of (b) and decide which one to pursue. If you end-up buying a mac and paying for a development licence then at least you'll be making an informed decision. But get some experience first.
Like you, I'm a c# dev. I've done some Android development for my own amusement, and (for what its worth) my personal opinion is that its a superior platform in comparison to the iphone because it is more open (technologically and commercially). I believe Android will fairly soon either achieve partity with, or even overtake, the iphone.
Try Android, get some mobile experience, then decide.
MonoDroid for Android is in beta, which means you'll be able to write Android apps with C#. You can sign up for the beta here.
iPhones are getting more and more restrictive. Android is opening up. Android is also shipping more phones than iPhone. You decide.
take a look at this book , it's a good reference to decide the 3th way... HTML, javascript & CSS for iPhone and Android at same time, based on webkit, using jQTouch and
PhoneGap . You can see on the first chapter the pros and cons.
I would suggest getting your hands on the latest iPhone SDK and a Mac from a friend before taking the plunge unless the $600 minimum investment for a macmini(what I did in my case) doesn't bother you.
You could try installing GNUstep for Windows and messing with Objective-C without buying a Mac to check out the language but it's not the same without XCode and Interface Builder,SDK,etc.
The reason I say this is because I'm currently taking an iPhone class and just learning Objective-C is a lot larger learning curve than I thought it would be and eating up a lot more of my time than I cared for.
Unlike C# or Java you have to manually keep track of memory management which is really annoying and a hassle not to mention Cocoa Touch, which is sort of like .Net or Java classes for Objective-C; another big learning curve! Bottom line neglecting the fact that it is a mix of SmallTalk and C and looks horrible if you can get over that it is still hard and easy to crash your program.
Forget to hook up your outlooks correctly in Inteface Builder?
CRASH!
Forget to use an # for an NSSTring due to the loose type checking?
CRASH!
I'm just saying that you'd probably be more productive and actually get applications completed in your spare time going the Android more familiar Java language route vs the Apple route. Also, I'm not sure how big Android is on the whole MVC concept, but it's everywhere in the iPhone SDK since Cocoa uses the Model-View-Controller (MVC) design pattern throughout.
On the other hand, if you like a challenge or learning the Apple route is the way to go and if you are good you app will sell and you will make money. Like I said there is a ton to learn with the iPhone before you can even start thinking of selling the next killer app LOL.
p.s. Oh and unless you want to test something on actual hardware that doesn't work in the iPhone/iPad simulator or actually upload an app to the store you don't need to pay the $99 fee to develop.
If you're a C# developer, and you're looking to begin iOS development, then you owe it to yourself to read Josh Smith's iOS Programming for .NET Developers.
It's exactly what you're looking for.
I'm in the middle of development of a client-server "socializing" that is supposed to run on several mobile devices. The project is pretty complex, involving networking, exchanging media, using geolocation services, and nice user UI.
In terms of development efforts, technical risks and extensibility what is the best platform to start with? Taking into the account that the goal is go "live" as fast as possible with the mobile version. And second goal is to cover most users (but first is more important).
iPhone (iPod iPad)
Android
BlackBerry
Java ME,
Symbian
I realize that there are limitations on every platform, and there are different aspects to take into the account (for example iPhone has better developer's community then Android, J2ME runs in a terrible sandbox but covers most devices).
Please share your pros and cons. I have the experience only with J2ME, unfortunately I can't evaluate other platforms.
If you're looking at native applications on the platforms you list, then the development effort required in order from least to most is:
iPhone
Android
Blackberry
Java ME
Symbian
Development effort is largely governed by language/libraries, tooling and fragmentation. Hence iPhone wins (good language & libraries, excellent tooling, little/no fragmentation). Symbian comes last (C++ with limited libraries, poor tools, large fragmentation). Android beats Blackberry on libraries and fragmentation, and Blackberry beats Java ME on fragmentation.
The counterpoint to this is market size, especially among your target user base - Java ME reaches far more devices than any other platform, whereas the Android installed base is still the smallest of the 5.
There's no one right answer, but if reach is important then Java is a good place to start, if time-to-market and user experience are the keys then iPhone makes sense.
It's also worth looking at how easy/difficult it would be to port across to other platforms. There are various cross-platform libraries around such as Airplay or J2ME Polish that might reduce the costs - provided you can implement your application on the cross-platform part.
I'd like to speak up for Maemo/Meego(Nokia's/Intel's mobile Linux). While it is in a state of transition and currently Maemo 5 has only one good phone(and a couple of cheap Chinese ones), but I feel that it will soon be big(I like many people believe that Meego will be Nokia's high end strategy and Nokia is the biggest phone maker in the world). Plus the N900 is the coolest phone around.
Also their it basically an open Linux device (pretty similar to standard desktop Linux). The ide QT Creator is great and cross-platform(comes with embedded visual designer and nice documentation broser) but you don't have to use it, there is some support for using your own text editor or ide.
There is no sort of signing key nonsense(I did a student project for the blackberry and have been quite annoyed by keys). Other things I didn't like about the blackberry: windows only eclipse plugins, our team had a lot of trouble figuring out how to add third party libraries to blackberry COD archives . Also some of the Classes are somewhat sparse in a lot of ways especially String/Char, probably since its ME based, I also didn't like the file read/write apis, it felt somewhat awkward, possibly since blackberry apps only recently got the ability to store files(before you could only store/retrieve objects to disk via the persistence layer)..
The preferred Languages are (Gobject C currently but less so for Meego) , Qt flavoured C++ and python. There libraries are nice and the qt ones are especially well documented. Since its a tiny linux box you can have on device debugging (there is also an emulator).
Note I haven't developed anything for Maemo/Meego but I've read a lot about and just fell in love.
I think that the best solution might be to start with a smartphone optimized web site. A native app can provide a richer interface, but a well designed web app can come close and will run on any device.
Have a look at the WPTouch for an example of a very good phone optimized web site.
In line with Roman A. Taycher, I'd like to raise my voice for windows Mobile/Windows Phone. It's has a large installed base, it has the tried and true Visual Studio toolset to develop with, it has the best emulator of them all (it actually emulates the ARM instruction set - you hear that, Apple?), and you can leverage your Win32 experience.
MS-haters - please don't bother responding. I've heard them all.
A cross-platform runtime such as Qt or HTML5 are good bets and are portable.
Qt supports many platforms including Symbian, Meego, Linux, Windows etc. It is highly regarded as one of the best programming frameworks around currently.
Qt creator is also a very highly regarded IDE.
HTML can be accessed on nearly everything of course and can there are plethora of tools out there.
While applications natively developed for a given platform typically win in terms of platform UI consistency and performance, you could try going for one of the available multi-platform frameworks, such as Rhodes (just to name one). Personally, I do not have any specific experience with Rhodes and only learned about it a couple of days ago (having a closer look is still on my todo list), so please judge the user experience that the framework offers on different devices on your own.
It sounds like you need Mobile Community Framework (MCF). It is cross-platform framework to develop network-centric, location- and proximity-aware applications on all modern smartphone platforms (iPhone, Android, Blackberry, Symbian, WinMo - almost all you mentioned, except J2ME). It provide native binaries for all these platforms. With MCF development time can be reduced, as you don't need to code all this network stuff by yourself, but you can just use simple API to send any amounts of data across enrypted connections, via Wi-Fi ad-hoc mode or via special proxy-server.
More info at http://www.uvamobiltec.com.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Have any well-documented or open source projects targeted iPhone, Blackberry, and Android ? Are there other platforms which are better-suited to such an endeavor ?
Note that I am particularly asking about client-side software, not web apps, though any information about the difficulties of using web apps across multiple mobile platforms is also interesting.
The HTML5 standard has support for releasing stand-alone HTML5 apps. Essentially a HTML5 app is a bundle of HTML5, JavaScript and CSS files that will run stand-alone in the browser of the desktop or device. You can distribute them like any other program, including selling them on the iStore for the iPhone.
The support for this is patchy at the moment but is likely to improve tremendously in the next year or two.
Google for HTML5 apps for information and resources. A good introduction to HTML5 is the online book "Dive Into HTML5" by Mark Pilgrim. This is a work in progress, but sufficiently complete to be useful.
There are 2 [newish] solutions to exactly this issue:
rhomobile
and
phonegap
I think there best chance for cross-platform mobile success is the Web. Just write a very simple Web application for what you want to achieve. It should work on the Nokia S60browser, Iphone and Android.
That's already a lot of mobile devices...
Appcelerator, PhoneGap (acquired by Adobe, plus it's now standardized as Apache Cordova), Intel XDK (formerly called appMobi) and Rhodes (acquired by Motorola Solutions) are all open source and create hybrid apps (natively packed with html ui, with the possibility to add some of your native controls).
If it's a game, your only professional choice for a free engine that can be used for commercial development is Unity3D. For 2D games, cocos2d-x is also available. Additionally, Vuforia can be used for AR and LiquidFun for physics.
XMLVM (via Coke and Code) and EdgeLib currently seem to be the most mature options. EdgeLib is aimed primarily at game developers, and according to Coke and Code, the XMLVM developers are difficult to contact.
The iPhone uses Objective C, the Blackberry Java SE with RIM functionality and Android another custom version of Java. I could possibly see how you could combine the latter two but there is no functionality (without jailbreaking) of running Java applications on an iPhone.
The best bet I've seen so far is something like Qt that will run on Windows CE, almost certainly shortly Symbian, some Java platforms and the three major desktop OSs.
redfivelabs have implemented the .Net compact framework for the S60 platform
Titanium Mobile from Appcelerator looks interesting. You develop your app in HTML & Javascript and upload to their server where it is compiled into a native application of the target platform (currently iPhone & Android)
For the iPhone there's currently no such notion as Open Source as the Apple iPhone SDK NDA forbids publishing code. They also forbid posting code on any non-Apple site or even non-Apple discussion forums on iPhone development. As soon as the NDA expires (will it ever?) we'll start having Open Source iPhone apps.
Suprised MoSync hasn't been mentioned here already.
Update (2014 January - present): the project is abandoned.
I started to use a really cool cross-platform SDK called EdgeLib. It allows you to use a simple API and you can compile your projects to a variety of platforms: Windows Mobile Pocket PC, Windows Mobile Smartphone, Symbian Series 60, Series 80, Series 90, Symbian UIQ, Gamepark Holdings GP2X, Gizmondo and Windows desktop.
I know iPhone, Blackberry, and Android are not on that list but the developers mentioned that these platforms are on their roadmap.
EdgeLib looks promising and has an iPhone beta announced but not open yet.
jQuery Mobile Alpha 2 Released
Nimblekit
Sencha
Phonegap
Appcelerator
Well BlackBerrys don't really have Java SE, they have Java ME, with a lot of additional librarys provided by RIM. Same goes for Android. The only cross-platform apps you'll ever see on mobile devices are probably written in strict Java ME, which runs on most devices. However, just like JavaScript between different browser, Java ME has is quirks across different devices, so source code changes may be necessary.
I found one game engine for dat
MoMinis games are available for distribution and are supported on Android, Blackberry, Symbian and J2me devices. MoMinis games include a wide range of casual games – including arcade, puzzle, time management, strategy and brain-training mobile games.
mominis
Phonsai is new in the market for cross-platform mobile develeopment "without coding"
It is mixture of do-it-yourself mobile development and content management
You can customize all applications. No templates.
It is SaaS. Totally web based with java web start.
Work with 2000 mobile phone models.
Very simple GUI and no coding. Just copy and paste.
It has create, send and report modules.
And at last it has 4 emulators inside so that it is a WYSIWYG concept.
You can reach Phonsai at http://phonsai.com
We have a cross platform mobile development platform called RAMP. It covers both feature and smart phones from midp 1 to Android. The platform is mostly aimed at secure commercial applications but it is pluggable so you can do almost anything with it.
For more information and access to the platform have a look at:
virtual mobile tech
S60 on Symbian OS has alot of interesting projects happening relating to desktop/server languages to move applications mobile. Some interesting ones:-
Python: sourceforge
Ruby: ruby-symbian
Mozilla: mozilla
S60Webkit: S60browser
POSIX: openc_cpp