I'm a mobile app developer. And my task is to develop mobile apps based on the existing website that uses salesforce. So, basically the same functionalities on the website to be used for native mobile apps(iOS and Android). The existing website that uses force.com is for consumer, meaning it is accessible to public.
So, I thought i have few options on integrating salesforce data with mobile apps.
1) Using native mobile SDK
At first, I thought it might be easier to use native mobile SDK but i found out you need to do authentications in order to get the data. Not sure if its possible to bypass authentication to get the data. Is this possible or not? Also, I think I need to build query style statements to retrieve the data. And to get most of the data, i need to build complex query i think.
2) REST API
Then I investigate if using REST API might solve my issues. I still need to pass authentication but i can use username and password to pass the authentication which is not bad, i think. Not sure how to make it public API though. And also, the simple APIs are already there.
3) REST Apex API
I thought this method might be the best way. You can expose the Apex class functionalities as REST. Since I thought the functions on the website is already there, I can just adjust or duplicate it to include REST functionalities in it. Also, i found tutorial to expose the REST API to public. So, did some testing, it works good for example apps data. But not sure if I can have push notifications for this, or can i?
Now, my questions are:
1) Is my thinking correct in term of which method is the best way to implement to integrate salesforce data of a public website by using REST APEX API instead of using mobile SDK?
2) If my thinking is wrong, what are the best and simple ways then to integrate salesforce data with mobile apps with the scenario of having a public website?
Please note that I'm a Salesforce newbie and the salesforce website is public website, the data are not sensitive. There is also user registration and login on that website. User can post text and image as well.
If you need more information, do let me know. Thanks.
*Added more information below
1) My website is force.com community site. 2) My client doesn't want the same design as the site. They require native mobile apps. 3) If I use native mobile SDK, I agree it would be easier. But is there anyway that: a) I can bypass the authentication of the login? The login use customer community user login b) If i need to authenticate, can I use some sort of REST api to authenticate? Example, myapp.force.com/users/username=&password= Because I don't want the login/register page as url link. I need it to have it native. Currently the mobile sdk need to connect to a webview login first.
Also, can i use REST API to authenticate my customer community user login? Is that possible? Thanks.