I am trying to figure out what it will take to convert an existing app to be compatible with Salesforce1. All there really is online is that you need to hit the checkbox on the edit screen of the VF page. What else needs to be considered to make this a user friend Salesforce1 app?
[SalesForce] converting visualforce to salesforce1
Related Solutions
Peter is totally right, the concept of and "App" in S1 is a little different. Also, I would like to add a little bit more about a new metadata type that S1 introduced in this release ( I think Peter know about it too and he also recommended to me a good way to explain it :) ) , that we could consider the new view of "Apps".
If we make ourselves the question, what is having/ containing the App that we know at this moment? What we know, an app can contain different tabs , that are pointing to different objects for example ( and sometimes tab related with VF pages), and what has a tab when you click on it? a default list view. Then we could say that an App contain a list of tabs with default list views.
Well the new metadata type that S1 introduced is "Flexipage" , the flexipage will allow us to have diferent list views in only one page and also ( that the really nice part) have quick actions on it. Then this Flexipage , will be like a container where we will be able to put different list views, filtered list views or related to recent records, and quick global actions.
The Flexipage will appear like another tab in that picture and you can put it down or up ( using mobile administration).
To finish , I need to say that this metadata does not have a UI creation in this version of Salesforce, the new metadata is only possible to be create by deploying it into the org ( using ant commands or eclipse...) Once the Flexipage is deployed into the org you will be able to find it in : Create -- > tabs --> Flexipage Tab , and you will be able to configure the icon too.
I leave you here a code example of flexipage :
<?xml version="1.0" encoding="UTF-8"?>
<FlexiPage xmlns="http://soap.sforce.com/2006/04/metadata">
<flexiPageRegions>
<componentInstances>
<componentInstanceProperties>
<name>entityName</name>
<value>Account</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>filterName</name>
<value>MyAccounts</value>
</componentInstanceProperties>
<componentName>flexipage:filterListCard</componentName>
</componentInstances>
<componentInstances>
<componentInstanceProperties>
<name>entityName</name>
<value>Contact</value>
</componentInstanceProperties>
<componentInstanceProperties>
<name>filterName</name>
<value>MyContacts</value>
</componentInstanceProperties>
<componentName>flexipage:filterListCard</componentName>
</componentInstances>
<componentInstances>
<componentInstanceProperties>
<name>entityNames</name>
<value>MyCustomObject__c</value>
</componentInstanceProperties>
<componentName>flexipage:recentItems</componentName>
</componentInstances>
<name>main</name>
</flexiPageRegions>
<masterLabel>My new App</masterLabel>
<quickActionList>
<quickActionListItems>
<quickActionName>flexiAction</quickActionName>
</quickActionListItems>
</quickActionList>
</FlexiPage>
I hope it is helpfull :)
I have used the sforce object to navigate directly to an account list view using the sforce.navigateToListView method. See my question How to use the sforce.one.navigateToList method?. I did not experience any lag time. I haven't implemented the createRecord, though.
Best Answer
It depends on your customer requirement.
Lets say you want just mobile look and feel then the approach would be to just style your existing page with CSS friendlier to mobile.You may use plugins like jquery mobile ,polymer,bootsrap .
If you want a responsive UI with better perfomance then would redesign controller to use VF remoting or javascript remoting.This will remove viewstate and make your transaction light .You may consider using frameworks like angular , backbone or knockout to manipulate DOM