2

I need to develop a portable application mainly for Windows 8.1 and iPad, but could be expanded for Android, WP and iOS later. The application consists of calling web services to display data in grids and it contains CRUD operation, and it may save some local data for offline mode then synchronizes later when connectivity is up.

I'm torn between too many solutions, I need your advise for better solution.

1- Solution 1: Go Native for each OS (VS for Windows 8.1 [RT and pro] and xCode for iPad): this solution requires code duplication, logic and UI.

2- HTML5 with WebView app: I think this is a weak solution especially that we have local storage, checking for connectivity and calling ws ...

3- Using Xamarin: I think Xamarin does not support WinRT or Windows 8.1 to share logic code between iPad and Windows 8.1

4- Using Xamarin.Forms: Building the UI is tough and also it does not support Windows 8.1.

From your perspective, what is the best solution? please advices if you have any other proof of concept.

Many Thanks.

Sameh
  • 934
  • 1
  • 14
  • 40

4 Answers4

3

Most of the html/hibrid frameworks like Cordova (cordova.apache.org), Ionic (http://ionicframework.com/), etc, uses a native WebView on Android. Until Kitkat the performance of WebView is not production-ready and if you've a list with a lot of elements, the scroll experience is really bad.

If you want to do a simple proof of concept, prototype or whatever, I think that html frameworks are a good alternative. But if you are going to put your bussiness on top of one of this framworks, I would not recommend.

There is an alternative to embed a Chrome using Cordova & crosswalk (https://crosswalk-project.org/documentation/cordova.html) but you will end with an APK ~40Mb for a simple hello world.

2

Just my 2 cents. I don't see a point in using libraries that are unsupported across the platforms you plan to release and support on. Personally, I'd code natively for each platform. While this takes a lot of work, if you have to ask for direction on which path you want to take your application, then this type of project sounds more like a "you reap what you sow" application. Also, you'll be able to directly support each problem without having to wait for patches, but there are 2 sides to that coin as well. Your opportunity cost is missing future features the library will provide, if it's worth it to you.

ReverseEffect
  • 297
  • 3
  • 10
2

If you aim at quality, going native is the only way... You can reduce the amount of work like Google is doing: writing the business logic and unit tests in Java, then converting it to ObjC with J2ObjC and to Javascript with GWT. In your case, being that Java is a dumbed-down version of C#, you can easily find tools to convert to the latter, finding yourself with native business logic for every platform! That should account for 50%-70% of the codebase...

Takhion
  • 2,706
  • 24
  • 30
1

I think going with HTML5 with webapp view is better option.

Using Cordova (Phonegap) most of the native features are easily achievable in HTML webapp. PhoneGap Platform Guide Alot of other plugins are available for the advances features like BLE, NFC.

Calling webservice is really not an issue in HTML5. Simple ajax is enough, however now a days many advanced frameworks are available which makes your work easy. One of the best among them is Angular JS(maintained by Google ).

Angular JS

For database you can access native database of the target OS or SQLite db of the mobile device. You can check this link Storage options

So developing a webapp can be a more efficient solution in your case. It can be best way for you as per my view point. However, you can do some R & D and can find the appropriate for you.

Community
  • 1
  • 1
ajitksharma
  • 4,523
  • 2
  • 21
  • 40