Take the 2-minute tour ×
Salesforce Stack Exchange is a question and answer site for Salesforce administrators, implementation experts, developers and anybody in-between. It's 100% free, no registration required.

Which is the better approach for my use case - HTML, Hybrid, or Native app?

I need to build a touch app for android based mini tablets that will be used by waiters as a portable terminal to take orders, receive CC payments and get alerts (e.g. for when the order is ready).

It will be used in a relatively large outdoor venue and will use 3G (not WIFI). Of course the order taking process needs to be quick and smooth. Orders that will be taken on the tablet will be collected on Force.com.

I'm not sure which approach to select for this app - HTML, Hybrid, or Native app?

share|improve this question
    
Thank you all for your comments. Offline and cross-platform are not required at this point - if the network fails there is always the old-school method of taking orders and as for the platform they have already decided to go with a new model of an android based device. The 3 key factors for me are (1) Good UX (but there is no heavy graphics to handle) (2) Fast to develop (I have no more than 2 months to complete) (3) Easy to maintain/upgrade... If you sum up your answers I get the feeling that either Hybrid or HTML will do the work and I'm leaning towards HTML because of the speed. Comments? –  Dedo Feb 6 '13 at 8:33
    
If you're developing for a single platform and there are no plans to go cross platform and UX/ performance are key concerns, native may be the best approach. Having said that, the true test of a well-built hybrid app is that the end user should not be able to make out whether it's a native or hybrid app. Given that development time and maintenance are also key factors, it might also boil down to the skills. You haven't really mentioned if you're building on iOS (Objective C) or Android (Java), but these have a learning curve of their own if you're coming from a web development background. –  Gaurav Kheterpal Feb 6 '13 at 9:14
    
Its for Android and based on the approach I'll choose I'll look to outsource the front-end development to an experienced person and I'll do the back-end... –  Dedo Feb 6 '13 at 12:43
add comment

3 Answers 3

There's no right answer to this - they'll all have pros and cons.

If you need any offline capability then you'll need to use Hybrid or Native - while HTML5 does have some capability to store data its not practical to secure it at the moment. This would most likely be the fastest to develop and it means that you don't have to release new versions etc, as your users will automatically access the latest version. HTML5 might be painful over 3G though - it all depends on the volumes of data, size of pages, quality of coverage etc.

If it needs to be super fast and slick, or needs access to device features that aren't avilable, then native is the probably the best option. You will need android developer skills though.

Hybrid is a good compromise in my experience (which isn't particularly lengthy!) as it gives access to a number of device features but you don't need platform specific developer skills, as its built on top of another layer. For example, apache cordova requires HTML/Javascript skills. You'll still have to jump through the hoops required to release and upgrade on the app/play store.

My own approach (assuming I don't need offline/device functionality) is to build in HTML5 to begin with, as I can build that using something like JQueryMobile and get a working system out there very quickly. I then move to a hybrid if I need the additional functionality. I use javascript remoting to access Force.com data, as this makes it a slightly easier transition to hybrid.

share|improve this answer
1  
I would agree with Bob on this one. There is no clear cut answer. There will be certain functionality that is only available natively (like some UI elements) as well as native being inherently faster, but that requires a different skill set. Offline storage is also a factor to take in. Essentially, it all really depends on the situation. –  Jesse Altman Feb 5 '13 at 15:17
    
In what way an Hybrid app be faster than HTML, if at all? Is the fact that it is running directly over webkit and not the browser makes it faster? –  Dedo Feb 8 '13 at 8:03
    
Native will be certainly be faster. It probably depends on the device, but apparently the regular browser in the iPhone is slower than the embedded browser that installed apps use, so hybrid will be faster in that case. Not sure about android though. –  Bob Buzzard Feb 8 '13 at 8:15
add comment

I would prefer native app for your case with the SDK and going with objective C and REST API of salesforce for interface.

The reason being since you depend on 3G there are chances there can be no network and offline capability will make it suitable .

There can be auto sync feature so that whenever app finds the network it will sync data with server.

Only one disadvantage i see is you need little bit of Objective C else native apps with REST API in force.com are super fast and offline capability can be easily designed

share|improve this answer
1  
If its just offline capability, is there any reason you wouldn't go hybrid? –  Bob Buzzard Feb 5 '13 at 17:27
1  
@BobBuzzard icenium.com/community/blog/icenium-team-blog/2012/06/14/… Was reading through articles and have also seen the perfomance of both the apps (hybrid and Native).What i have felt from using both is native UI looks smoother and they are very faster compared to hybrid ones .(The Apps i have seen so far)Again its debatable but from my perspective i find UI and perfomance much better than hybrid built using jquery and html 5. –  Mohith Shrivastava Feb 5 '13 at 17:39
add comment

If you know you want cross platform later down the track stick with HTML 5 or hybrid, but if you're after top performance then native is the only way to go.

Especially on Android devices which don't run the latest OS the webviews used aren't backed by hardware acceleration, and as such the performance of hybrid apps is absolutely horrible.

Responding to the user instantly and smoothly is always vital to maintaining a good user experience, and a slow kludgey interface will deter a user regardless of the functionality behind it - if a waiter can't take an order as fast as the customer is relaying it to him/her, then you're running into resistance and will struggle with adoption.

With regards to storage both hybrid and native could work well catering for offline capabilities so I don't think there's much of a concern there.

Given that you've probably got a defined piece of hardware to use and know a lot about the target audience, I'd be inclined to go native with this project.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.