Native iPhone app using PHP/Ruby - iphone

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

Related

What is a Hybrid App for mobile?

What is a hybrid app for mobiles? What is basic architecture to follow while developing? What are the components? What will be the back end and what will be the UI? Is it for only iPhone or can be for any mobile device?
With iOS, you can create an application that combines features of native applications and webpages.
A hybrid application is a native iPhone application that provides most of its structure and functionality through a web viewing area, but also tends to contain standard iOS user interface elements.
A hybrid application gives users access to web content with an element called a web view (described in “Web Views”).
Precisely how you use a web view in your application is up to you, but it’s important to avoid giving users the impression that your application is merely a mini web browser.
A hybrid application should behave and appear like a native iPhone application; it should not draw attention to the fact that it depends upon web sources.
You can create Phonegap app and still using native controls of cocoa for powerful features like Mapkit api, UIWebview (Childbrowser plugin) etc
A hybrid app is a mobile application in which the same app can be worked in different mobile operating systems like iOS, Android, Windows, etc…, and even in browsers (Mozilla, Chrome, IE, etc.. ). It is the same as mobile applications for users, which can be installed from App Store or Google Play store. But technically it’s different, its works with a combination of HTML, CSS and JavaScript.
More read-: http://webduratech.com/what-is-hybrid-app-how-it-can-help-small-scale-business/+
A hybrid application blends web views (loading a webpage into the app) and native code together to create a single seamless application. In most cases it is faster than developing the entire app in native code, because developing for the web is easier (there are tons of web frameworks and it is just easier to develop good looking content on the web vs via native code, such as swift).
Ex: Amazon uses web views for the products page on the iOS app, being able to reuse the code on iOS, Android and the web saves them a ton of time.
In a hybrid app, the core of the app (navigation, location) are normally done in native code and stuff such as showing images and information is generally done via web views.
Since web views are a web page, you can develop them in any HTML 5 framework you would like to use.
The most important part is to have an app that works and runs super well for your users, and having web views in the app is very tricky, but a huge time saver.

How can I develop an iPhone app in HTML5?

I have seen a blog which claims that we can develop iPhone applications in HTML5. Untill then I was aware about Objective-C on Mac.
Can we develop an interface with backend support application in HTML5 on iPhone? Will it be secure and scalable?
If HTML5 is a markup language, then how can I make conditional statements in it? Would it be via jQuery or Javascript?
Which IDE should I use to develop an iPhone app in HTML5?
A great place to start when developing an iPhone app in HTML5 is PhoneGap.
You could either go the full-blown app route by developing an iOS app using PhoneGap, or only selecting certain tools/frameworks to help build a web-based app for mobile devices.
And very much like how it works with websites, HTML is used for the structure, CSS for presentation and JavaScript for behaviour. So yes, JS is used for conditional statements, etc.
Yes.
You can develop an HTML5/CSS3/Javascript app, then wrap it in PhoneGap or Apache Cordova to make it native and put it in the App Store (or Android Market...), as well as publish it on the web. You can do this with whatever tools you're comfortable with.
Using a tool like PhoneGap has many benefits over browser-based Mobile Web Apps, such as allowing you to parse iPhone contacts and access the local hardware.
It's great in combination with jQuery Mobile, but since performance is a MAJOR issue you must be very cautious to really streamline your images, CSS, and Javascript.
See this link to learn more about Mobile Frameworks.
I have seen a blog which claims that we can develop iPhone applications in HTML5. Untill then I was aware about Objective-C on Mac.
If you want to write a native iPhone application, then Objective-C is your only option. However, as the iPhone’s web browser has a lot of capabilities (e.g. offline caching), you can develop applications that run in its web browser, as opposed to natively. They can’t access all the features of the iPhone, and they are simply websites (so you need a server to serve them), but before the iPhone SDK was released, Steve Jobs himself described web apps as the way to write software for the iPhone.
Can we develop an interface with backend support application in HTML5 on iPhone? Will it be secure and scalable?
I have no idea what that means.
If HTML5 is a markup language, then how can I make conditional statements in it? Would it be via jQuery or Javascript?
Correct: JavaScript. (jQuery is just a JavaScript framework, and it’s probably a bit heavy to use on current iPhones.)
The HTML5 spec blurs the distinction between HTML and JavaScript by defining the DOM interface for the HTML elements it specifies, and defining new DOM features (e.g. offline caching) that aren’t technically part of HTML. Apple (and other people) have further blurred the term “HTML5” by using it to encompass various CSS features like animations and transforms, which you’ll probably find very useful for making web apps feel more like native apps.

By using PhoneGap can we convert iphone app to android app?

Can we build an iphone app and convert the application to the android application using phonegap framework?
I have been through various links.
We basically need to develop a webapp for that and that can be converted to an android app or an iphone app respectively.
I am an iphone application developer and i am not at all familiar to android.
Links or example code would be greatly appreciated.
PhoneGap will not enable you to "port" an existing iphone application to Android. However, if you develop an application within the PhoneGap framework (which means using html, css and javascript), you will be able to deploy it on multiple mobile platforms such as iPhone, Android, Nokia, Blackberry, etc.
The downside is that you will eventually be developing a packaged mobile website - your application consist of html pages, css styling and javascript behaviour/logic, combined whith access to phone internals such as gps, disk, database, camera, etc. It will usually not "feel" fully native on most platforms. For example, you will not be using the system's "native" ListView.
There are javascript libraries such as JQuery-mobile, JQTouch, etc, that make your application look nicer on mobile devices, but it's still not as good as the native experience.
The app you build will not be a native Android or IPhone app but a HTML Web App wrapped in the PhoneGap wrapper and packaged into a native app. So yes you can build for both platforms as long as you build a Web App
Edit -(a Web App is just a plain html/css/javascript + server-side(php, asp etc) website)

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.

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.