I am planning to develop an ecommerce application for web browsers and mobile platforms. I am a java developer. I will prefer java as a backend technology but I am not confident which technologies are best for front-end.
can anyone tell me which technologies are best suitable for front-end for below platforms:
1. browsers web application
2. android app
3. ios app
First of all, AFAIK you should choose those technologies that will help you be more productive!
According to me, native-fan, I suggest you use PhoneGap (CSS, HTML5 + Javascript FRAMEWORK) for your purpose.
PhoneGap helps you to write one application which you will deploy for android ios or browser. You may also need to adjust your UI Features (such as width/height etc) to match a given device.
Related
Many cross platform solutions has come out for ios/android/tablet,etc, why not just use web instead? web is the best solution for cross platform and using javascript in HTML5 can achieve plenty of features. So we could develop web-based cross-platform application instead of mobile apps and all you need is a browser (might be different from desktop browsers). However, consider some special features in mobile apps, like sensors, we could implement a javascript framework for mobile apps to achieve mobile features. Any thoughts on that? is it doable?
There are attempts for Mobile Web App Frameworks Ionic (AngularJS). Why stick to native apps? Here's a good benchmark why-mobile-web-apps-are-slow. The main reason - Javascript is too slow for mobile apps for now to fit every app requirements.
I am beginner in designing user interface for web based mobile apps. Is there any software on Mac OS X that i can use to develop user interface of web based mobile apps easily without using too much of CSS or HTML5.
E.g I developed some pages using Microsoft PowerPoint for Mac. Since my app requires a lot of pictures any program with easy drag and drop features would do. Thanks!
For web based mobile apps you mean mobile app written with web technologies such html5 or css?
Because i don't think that drag-and-drop UI builder exist, apart from MIT App Inventor, but it will generate java code.
You can use a framework like http://phonegap.com/, but it will require html5, css and javascript.
I created a web application on Openshift using Spring MVC and MySQL.
Now I want to go mobile for this application. I want to publish the same application as a mobile app (Android mainly). Primarily, this mobile version should play with HttpPost/Webservice security authorisation too.
I know Pivotal has a Spring Mobile project which helps create a mobile site for the same application (with more sophistication like spring form tags and all).
On the other hand, Phonegap can create a cross-platform mobile app with the help of HTML5 and CSS.
My questions are:
Is it worth it to put my effort on Phonegap or Spring Mobile?
If I choose Spring Mobile, how do I publish a mobile app in the Android Play store?
Some pros and cons or any links for reference would be helpful.
Intro
First, let me give you a warning. While this is a constructive question (better than average questions asked here), people usually like questions from users who spent some time searching for an answer themselves. I will explain this part later.
Differences
Phonegap (Cordova) and Spring Mobile are two completely different frameworks, they serve completely different purposes. You could have found that Googling.
Phonegap (Cordova) is a wrapper framework used for hybrid mobile app creating. Your HTML/CSS/JavaScript code is wrapped into native shell and you can use JavaScript <-> Native bridge code to access native phone functionality. Though you can use it as it is with vanilla JavaScript, it is often used with other mobile frameworks like jQuery Mobile, Sencha Touch, or Kendo UI.
Spring Mobile is an extension to Spring MVC that aims to simplify the development of mobile web applications. Spring Mobile is a framework that provides capabilities to detect the type of device making a request to your Spring web site and serve alternative views based on that device.
Effort
Everything depends what are you going to do. Hybrid mobile applications are usually done with separate client and server side code. Communication is done using AJAX. Because of this I would skip Spring Mobile and use only Spring as a RESTful web service framework. I personally prefer Play framework, but that's just me.
Of course, you would still need to choose a client-side JavaScript framework, or you can create everything from scratch. I would advise you to use prebuilt frameworks like mentioned jQuery Mobile.
If you really really want to use Spring Mobile
If you really want to use Spring Mobile, it can still be done. Phonegap can be used to wrap remote web sites into mobile applications. This approach has several downsides. The application is useless if your site is down and you will not be able to create iOS application because these kinds of applications are rejected on first sight.
Best course of action
Separate client and server side code
Choose a client side mobile JavaScript framework.
Use Spring as RESTful web service, or any other RESTful framework such as Play.
Wrap your client side code into Phonegap (Cordova)
Publish as Android, iPhone application
Links
How to create jQuery Mobile application with Phonegap | Mac version
Sencha Touch vs jQuery Mobile
Secrets of a good jQuery Mobile page architecture
If you already have experience with jQuery, learn the differences between jQuery and jQuery Mobile
http://projects.spring.io/spring-android/
Spring for Android is a framework that is designed to provide components of the Spring family of projects for use in Android apps. Like all Spring projects, the real power of Spring for Android is found in how easily it can be extended.
I am going to create a mobile web application that will run on all web enabled mobile browsers. It will involve searching and booking of hotels and flights. We already have a desktop applocation developed in JavaEE, MySQL for the same.
What do you suggest I should use - PhoneGap or Titanium for this task?
What are the advantages and disadvantages to use each?
And what technologies should I know or learn to use each of these?
Phonegap
What is PhoneGap Trying To Accomplish?
The purpose of PhoneGap is to allow HTML-based web applications to be deployed and installed as native applications. PhoneGap web applications are wrapped in a native application shell, and can be installed via the native app stores for multiple platforms. Additionally, PhoneGap strives to provide a common native API set which is typically unavailable to web applications, such as basic camera access, device contacts, and sensors not already exposed in the browser.
To run a PhoneGap application on a native emulator/simulator, developers will generate a project for each of the native platforms they wish to support, configure that project’s “web root” directory in Xcode, Eclipse, or whatever native toolchain is needed, and then run the project using that tool.
Strengths of the PhoneGap Approach
Any native platform that supports a web view or web runtime can be a PhoneGap platform.
Anyone who can write HTML, CSS, and even a small bit of JavaScript can wrap up a web page in a native app and distribute it as such. The barrier to entry in using PhoneGap to package web pages as native apps is extremely low.
Weaknesses of the PhoneGap Approach
The quality of the user interface in a PhoneGap application will vary based on the quality of the web view and rendering engine on the platform. The Webkit-based rendering engine on iOS is strong, and provides the best performance. The Android web view is functional, but has some notable limitations.
PhoneGap also cannot be extended with native user interface. The end developer’s application its self lives inside a web view, and user interface is rendered in HTML.
Titanium
What is Titanium Trying to Accomplish?
The goal of Titanium Mobile is to provide a high level, cross-platform JavaScript runtime and API for mobile development (today we support iOS, Android, and the browser, with BlackBerry 10 and Windows Phone coming soon and eventually, respectively). Titanium actually has more in common with MacRuby/Hot Cocoa, PHP, or node.js than it does with PhoneGap, Adobe AIR, Corona, or Rhomobile. Titanium is built on two assertions about mobile development:
There is a core of mobile development APIs which can be normalized
across platforms. These areas should be targeted for code reuse.
There are platform-specific APIs, UI conventions, and features which
developers should incorporate when developing for that platform.
Platform-specific code should exist for these use cases to provide
the best possible experience.
Strengths of the Titanium Approach
Get access to a wide array of native features and functionality out of the box, from user interface components to socket interfaces to notification system integration.
Weaknesses of the Titanium Approach
Titanium platform is only available on what have been deemed the most critical mobile platforms at present: iOS, Android, and the web.
Some user interface components do not yet perform as well as their native counterparts under some circumstances, such as very large table views with highly customized layouts.
Source Link : Comparing Titanium and PhoneGap
Hope this helps.
Both Phonegap and Titanium are free for developing mobile application and to develop apps using Titanium, you should need basic knowledge in javascript since it is simple javascript combined with Titanium API while we can use most of web technologies like HTML, Javascript, CSS etc. It's purely depend on what type of application you want to create. More simply if you want to create simple app that does not contain graphs and drawings you can simply use Titanium but if your app contains graphs you should use Phonegap.
I want to develop an application which works both in a regular browser and as an Android app. Both seem suitable but would I be right in saying if I went with Phone Gap, deploying the same html content as a regular, server hosted website is not trivial and would require modification? Also, are multi page applications not desirable in a Phone Gap wrapper?
Are there any alternatives I should consider? I'm surprised someone hasn't already written an Android wrapper with all the hardware access wiring done already. Or have they?
There are few things you should know,
If you are going to publish your app also on iOS, you can't use server hosted website for your app.
All of your basic functionality must stand on your app assets, is one of the iOS guidelines, and its also make-sense for best ui performance (both iOS & Android).
Use server-side wisely, when you want to fetch data which have to be up-to-date.
there are some new mobile browser features which will be available in the future, that allow your website to use the device hardware functions:
Device API on W3C
Good luck dude ;)
You can try with jquery mobile framework:
http://www.jquerymobile.com
It is jquery based framework for developing web apps that works on standard web and on multiple mobile devices (with cordova)