CrossPaltform Mobile Application - iphone

I want to do the following:
1- mobile friendly Portal - accessed through different Mobile Phones.
2- A mobile Applications that does the same functionality of the portal to different Platforms:
iOS(iPhone,iPad), BlackberryOS(Blackberry mobiles and Playbooks),Android OS (Android mobiles and Tabs), WindowsOS, Symbian OS (Smartphones).
I am mainly a web Developer and an iOS programmer using Objective-C, and I have resources that can develop on android, blackberry and other platforms using native languages.
the Application mainly present data from internal database and deals with different types of web services, and write data to the file system of the device itself.
what is the best practice for the mobile applications, do each one alone with its native language, or using HTML,CSS,JS and produce them to all platforms using PhoneGap or something else???
Thanks a lot.

Also check this thread : best cross-mobile framework
With a javascript solution, your app will be available on stores but also directly on the web !

Related

Native Mobile browser based apps

Wondering if someone could point me in the right direction, as I am unsure of the correct terminology. I am looking to create a mobile website, which loads in a browser based application (iPhone, Android).
I have seen this done before. For example, the bank of america application is actually installed via the App Store, however, it is simple a browser window that loads the Bank of America mobile site (which is built to look and function like an app).
I find this to more cost-effective, as developing a mobile app is less intense, as opposed to developing applications for 2-3 different mobile platforms.
Can someone provide insight into the terminology or methods used to accomplish this? Looking for articles, examples, etc.
Thanks in advanced!
I would suggest to use IBM Worklight.
Worklight is an Eclipse-based visual development and server platform for mobile apps. Using Worklight and popular open technologies, you can build, test, deploy, and manage your smartphone and tablet apps for iOS, Android, Blackberry, and Windows Phone devices, with maximum code reuse and per-device optimization.
Worklight supports open technologies such as HTML5, CSS3, JavaScript, Apache Cordova, and popular JavaScript frameworks such as jQuery, Dojo Mobile, and Sencha Touch.
Worklight offers extensive runtime libraries and client APIs that expose and interface with native device functionality.
Worklight includes a browser simulator so you can test and optimize the user experience of your mobile content on varying mobile devices.
Worklight consists of an IDE (Worklight Studio), a Java-based server, device runtime components, a web-based console for managing deployments, and an application center.
for more info see
http://www.ibm.com/developerworks/mobile/worklight/getting-started.html
Take a look at PhoneGap or Appcelerator, two of the bigger names in this "native wrapper" technology.

Cross Platform Apps

I am not much clear with the "Cross Platform Apps." Can we really built up some apps which can run on iPhone/iPad , Android Phones/Tabs , Blackberry , Nokia (Any platform or more than one platform at least) ?
I have heard something like WAC , Titanium but really not clear with all these. Please help me out.
There are some good frameworks out there to build cross-platform mobile applications:
Titanium: It is a framework to build Android, IPhone (and BlackBerry, still in beta it seems) using javascript, that will compile to native applications for the platforms specified.
Rhodes: A ruby framework, that supports almost all the mobile platforms out there (recently they added support to WP7). It has an MVC structure, and can use RhoSync to synchronize the data to a server side application.
PhoneGap: Another javascript framework, but it supports more platforms than Titanium, because it doesn't compile to native applications, but it embeds a web application inside a native application (web apps/web views are supported in each platform, so it's easier to handle the portability this way).
The apps will have access to the hardware, like the camera/gps, through some generic apis.
In some case you can build specific native module to integrate them in just one application platform if you need to.
These frameworks are useful to build cross-platform application writing just one application, without having to write each single application with the platforms sdks.
They have some (or many) limitations. If your application are simple enough you can consider using one of those framework. But for more complex ones, sometimes, if you target only a couple of plaforms, it could take less time to build each one with native sdks individually than using one of this cross-platform framework, because of their limitations (I highly prefer using the Android SDK than using Titanium).

Native iPhone app using PHP/Ruby

I am new in iPhone development, and am trying to study the Objective-C language to develop my native app. Somewhere I heard that we can develop native apps for iPhone using PHP/Ruby with the help of third party tools like Phonegap or Rhomobile.
Does anybody know about these tools, and whether it is possible to develop native apps for iPhone by using these? If possible, does the App Store accept apps written using these tools?
I think you are referring to web apps, which approximate native apps. The front end, which is used on the mobile device, is written Javascript. The back end, if needed, are usually REST data services hosted on typical web servers. The back end can be written in Ruby, PHP, Scala ...
Phonegap wraps your HTML/CSS/JS app by compiling it into a device app. The Apple store has accepted Phonegap apps.
Some rich frameworks to consider: SproutCore, Cappuccino, Sencha Touch(?)
I'm playing with Backbone + jQuery Mobile, which doesn't try to be a desktop-like framework like the ones above. jQuery Mobile is not as full featured, but is lighter and leverages my current HTML5/JS/CSS skills.
I use Rhomobile to develop apps, it uses Ruby, html, css and other hooks into the phone's native cababilities. The benefit is that you can build an app once, and deply it for iPhone, iPad, Droid, Windows etc (with just a few tweaks) - you can download the app I developed with Rhodes (Rhomobile's framework) from the app stored. its called iMessiah - an app for Messiah College, here in PA.
It has admissions department information, apply now (not that you'd complete the application on the phone, but you could), sports scores, integrated 3D campus map, department directories (uses the phones database), touch dial, news, schedule a visit ...
if you don't want to install it - you can check it out here - http://www.messiah.edu/mobile/iMessiah/index.html
-Jon

Portability among mobile platforms

Do any libraries or other development resources exist that can help reduce the effort involved in porting applications between various mobile platforms? In particular, I am interested in supporting iPhone, Android, and Windows Phone 7. Some areas of concern include UI, client-server communication, and hardware support (e.g., camera, GPS, etc).
MonoTouch allows you to write iPhone apps using .NET (C#). In the near future, an Android version will also be available (MonoDroid)
As for Windows Mobile, I'd forget about that and concentrate on Windows Phone 7, which will use Silverlight for apps. And of course, Silverlight is .NET as well, so you can share all your business logic between Silverlight, MonoTouch (iPhone) and MonoDroid (Android)
There is actually a really good tool out there that allows you to write apps for android and iphone in javascrpit, HTML and CSS. Then the program will port the app for either iphone or android, building the objective C code (iphone) or java code (android) as it compiles. Later revisions of the program are said to include the ability to port to palm and blackberry as well. And the bonus... free and open-source!!
PhoneGap supports Android, Blackberry, and iPhone formally. They tweeted that it works on Windows Phone 7, but it's a bit early to feel certain of that, since that OS has not shipped yet. Has reasonable but far from complete hardware support.
Well it appears that iSpectrum seems to be what you're looking for.
You'll find a video on their website homepage ( http://www.flexycore.com/ ) which shows a 3D android game they ported in only 2 days!
All mobile platforms I've encountered so far have C89-compatible compilers, so that is what you want to use for the core application logic if you have high portability requirements.
The product I'm working on can currently be built and run on Android, iPhone, Symbian, Windows Mobile and some other proprietary platforms (Nintendo handhelds) and legacy platforms (PalmOS, OSE) as well as "real" machines (Linux and Solaris servers).
Of course the UI code has to be written specifically for each platform, but the core is built from the same source code for all targets.

How to develop products on mobile phones

Recently we are going to develop some products on mobile phone (specially for 3g). There are many platforms about mobile phones: iPhone OS, Symbian, Blackberry's. If I want to develop a product, should I use Java or write every program for the main platforms?
Particular one question for iPhone development: are there many Java programs on iPhone? Most iphone app I've seen are developed by their own xCode.
I need some guidance on how to do coding for mobiles correctly.
All these platforms are completely different beasts as in the old days. About symbian, (which I am most familiar with) you can use Qt for quality native applications. Native api is confusing so avoid it where possible. If your application is simple, you can even get away with python.
In short, use the language which you are most productive available for each platform. Their apis are wildly different anyway. Language choice doesn't matter as much as the choice of platforms you are supporting.
Java is not available for use on the iPhone; you can use Objective-C, C and C++ to develop iPhone applications.
There is currently no Java for iPhone, so you need to develop separately for iPhone in objective C.
Alternatively you can create application which runs in web browser, it'll be available on all platforms, but not every application is suitable for web.
Have you considered you using web technologies?
There are a couple of cross platform tool kits for iPhone and Android. They work in the same fashion as Adobe Air. Allowing you to make HTML/JS based web app and run it as native code in the browser.
Titanium Mobile (Android & iPhone) HTML/CSS/JS
Corona iPhone Only via Lua
Palm's Web OS is also based on web technologies.
Finally the old guard, Symbian Provides a Web Widgets system, that works in on all handsets with 9.2 fp 2 installed (n95,e72, n97 etc.) The api supports some hardware functionality.
The only one left out in the cold is Windows Mobile. There is some 3rd party support in the form of Web Widgets by torch mobile
It's currently limited to iPhone, BlackBerry, and Android (and possibly WinMo) but you may want to check out the open source project called PhoneGap. I think it is basically just a native wrapper around the built in web browser for each device, but it does expose some functionality not normally available in that environment such as geolocation, accelerometer, sound, etc.