Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Struggling between native and phonegap, simple app requirements

I'm going to make a native (meaning; not in the browser) mobile app. Since I'm a web-developer I'm struggling to decide whether or not I should try Phonegap or just build an native app in java or objective-c.

The app requirements are simple. GPS/wifi location, Facebook integration and I guess I'll need a database to handle some of the application specific Facebook-friend relations. Like the highscores in a game, for example - stuff like that.

I'm a web-developer, and don't know neither java or objective-c, yet. I've never used Phonegap before, so I don't know if it's capable of fulfilling my requirements.

So my question is as follows; Can I use Phonegap for my app, or do I need to dive into a new language?

like image 746
Henrik Skogmo Avatar asked Dec 28 '12 06:12

Henrik Skogmo


People also ask

What do you need in OS to develop the PhoneGap app?

For, IOS: Xcode, iOS SDK. Android: Android SDK, ADT plugin. BlackBerry: Sun SDK, Apache ant and BlackBerry Webworks SDK.

What are the tools required to develop the PhoneGap application for Android?

Eclipse ADT Plugin ADT (Android Development tools) is a plugin of eclipse which provide a complete IDE for developing Android application. ADT lets you create new Android projects, and it lets you create Android projects from existing source (this is the way we will open our PhoneGap app for android on eclipse).

Why are hybrid apps slower than native apps?

Hybrid applications don't perform as fast as native apps. Their architecture has an additional layer between the source code and the mobile platform, making them slower.

Is PhoneGap native or hybrid?

For Android, the native programming language is Java. Hybrid apps are developed using web technologies: HTML5, CSS and JavaScript, then put inside a native container such Adobe PhoneGap. These native containers run the web application code and package it into an app.


2 Answers

Related:

Larger version of this article can also be found HERE, to be transparent it is my personal blog.

Hybrid vs Native apps

Hybrid apps:

Pro:

  • Quicker development, especially if you're a a longtime web developer.
  • 1 language can be used on every available platform. This, of course, requires a Phonegap wrapper. You don't need to learn Objective C, Java, or C# to do any development. You need only to understand the basics of the Phonegap implementation. You will need to play with above-mentioned languages a bit but you don't need to understand them.
  • Phonegap can offer some native capabilities like iOS native tab bar or Android native tab bar and so much more.
  • Lower budget costs and a huge community of supporters and developers.
  • A hybrid app offers many of the advantages of both approaches access to the most common device APIs, and broad device coverage while not requiring the specialized skills, bigger budgets and longer time to market that are more typical of fully native apps.

Cons:

  • You will piss blood after some time, literally and metaphorically.
  • Mobile phones (even today's tablets) are not fast enough to smoothly run a hybrid app, mobile JavaScript capabilities are bed at best. Android platform is a nightmare, page transitions don't work smoothly not to mention lacking CSS/CSS3 implementation. If you think native Android 2.X and 4.X have differences take a look a Android 2.X bad JavaScript / CSS implementation. iOS fares better but still has a lacking CSS3 implementation thou much better page transitions. To make this short native apps will always have a better user experience and general feeling.
  • You will spend much more time fixing the app then building it. Creating an app for each and every platform is a pain in the neck. Browsers on different platforms do not uniformly support all the latest HTML features and APIs, which can make developing and testing a challenge.
  • If you don't have a good designer, don't even try to build an app; looks are everything.
  • If you don't know what are you doing there's a good chance your app will not get permission for Apple app store. Even Google Play Store will ban your app if they discover a 3rd party Phonegap PayPal plugin.

Native apps:

Pro:

  • A native mobile app can produce the best user experience — fast and fluid, can give you the best access to device features, and can be discovered in the app stores.
  • Without a doubt, native apps have full access to the underlying mobile platform. Native apps are usually very fast and polished, making them great for high performance apps or games. This is more then enough.

Cons:

  • Bigger budget, you will need at least a person/s with Java and Objective C knowledge, even C# if you want a Windows mobile app. Yes you can learn it yourself but don't live under the illusion you will do so in a short time. If you have never done any development, choose Objective C (iOS is still a better platform). In other cases choose Java. Java has a syntax similar to other available languages, so it is easy to jump from C# to Java and vice-versa. Objective C is a world of it own. It has a rather uncommon syntax.
  • It might take you a longer period of time to develop all of them and time is money. This depends on the complexity of the apps.

In your case, if you have a good web development/design skills and/or have a good designer you should choose a hybrid app. Go native only if this app is going to be a complex one. Everything you want can be done with a hybrid app. And you will find a great and supporting community.

Hybrid apps

What I didn't previously mentioned you need to be specially careful here. Even if you are seasoned developer you will find a lot of problems you can't solve. Hybrid development should not be mistaken for a basic web development.

Every mobile platform has its own set of problems, not to mention that mobile phones behave differently depending on a device. If possible always create a app that works on a slower devices because native app will successfully work on almost any device.

There's one last thing, when creating hybrid apps, app development will take you about 30%-50% of your time, rest goes to specific platform debugging and learning. Believe me, even after several years of mobile development sometimes I am facing problems I can't solve alone or fast enough.

So be careful when choosing mobile framework, pick 2-3 and spend several days reading about them.

Links

Here are few links to help you decide:

PhoneGap + jQuery Mobile 1.4 tutorial - This is a step by step tutorial for PhoneGap and last version of jQuery Mobile

PhoneGap + jQuery Mobile 1.4 tutorial - MacOS version - This is a step by step tutorial for PhoneGap deployment on MacOS. jQuery Mobile part is covered in a previous article, no point in repeating things.

jQuery Mobile vs Sencha Touch - jQuery Mobile Sencha Touch comparison

jQuery Mobile vs Kendo UI - jQuery Mobile Kendo UI comparison

7 best known HTML5 mobile frameworks - Name tells everything

7 less known HTML5 mobile frameworks - Name tells everything

like image 71
Gajotres Avatar answered Sep 25 '22 01:09

Gajotres


if your application does't have animation effects and simple i prefer to create in a web(Phonegap) cz at less amount of time we can launch in multiple types of mobile OS. if your app contain more UI effects and animation then it is best to go with native..

even though you develop in webview(Phonegap) you need learn some basic steps in Android and iOS

How Phonegap performs in devices

Ios The animations and view loading in ios webview is stranded and good, the animation effects can observer clearly

Android
We have to consider the device version and device company for android while running the html code, Some high config devices in android give more clear and efficient animation display, but some devices (mostly old version and some company devices) cant give good animation effects, rendering effect varies from device to device in android,

like image 32
Sandeep P Avatar answered Sep 26 '22 01:09

Sandeep P