Я хочу связать (в обоих направлениях) мобильные клиенты (Android и т. Д.) С веб-приложением (центральный сервер). Другими словами: мобильная клиент-серверная связь.
Я новичок в разработке для Android, но был на разработке PHP и MySQL.
Укажите, пожалуйста, правильное для меня направление: какие технологии использовать (REST, JSON, XML или что-то еще), OAuth-авторизация, для этих целей может быть [микро] фреймворк для PHP.
Ключевые слова, ссылки на лучшие статьи, книги, примеры приветствуются.
UPD. Да, много информации в гугле я вижу. Но я хочу начать право, использовать лучшие практики, конечно.
Я также новичок в разработке Android и также много искал для этого. Я объясню, как я достиг этого.
Для связи с php сервером вам нужно создать php остальные apis [Я использую фреймворк php для этой ссылки: http://flightphp.com/ ]
В Android сторона вам нужно называть это apis. Для этого я использую стороннюю модификацию библиотеки (потому что она проста в использовании) ref: http://square.github.io/retrofit/
Вы также можете использовать HttpURLConnection (ref: http://developer.android.com/reference/java/net/HttpURLConnection.html) библиотека Android, я думаю, что это немного сложность, потому что нам нужно создать asynctask и все
Вы можете найти руководство по использованию модернизации в Google:https://www.google.co.in/?gws_rd=ssl#q=android+retrofit+tutorial
Добро пожаловать в разработку Android!
Прежде всего, разработайте свой API. Вы можете найти детали Вот. Как только вы это сделаете, вы можете построить свой REST-сервер на PHP. Я использую тонкие рамки (http://www.slimframework.com/) для маршрутов и RedBeanPHP (http://redbeanphp.com) для доступа к базе данных. Вот учебник по созданию REST-сервера с Slim
После того, как ваш сервер установлен (или несколько серверов), вы можете настроить приложение для Android.
Я активно использую дооснащение (http://square.github.io/retrofit/ пожалуйста, обратитесь к v2.beta).
Это пример того, как вы это реализуете. Существует волшебство, поскольку модернизация преобразует объекты JSON, полученные от сервера REST, в объекты Java.
public interface RestInterface {
@POST("/register")
Call<RestResponse> register(@Body RestRegister register);
@POST("/request_validation")
Call<RestResponse> request_validation(@Header(Constants.HEADER_KEY) String header);
...
}
Конечно, вы должны реализовать объекты. Я могу привести более подробный пример, если хотите.
Вы также должны создать restClient:
public class RestClient {
private OkHttpClient client;
private RestInterface restInterface;
public RestClient()
{
client = new OkHttpClient();
client.interceptors().add(new LoggingInterceptor());
Retrofit retrofit = new Retrofit.Builder()
.client(client)
.baseUrl(Constants.WEBSERVICE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
restInterface = retrofit.create(RestInterface.class);
}
Наконец, у меня есть служба, где я звоню в RestClient, чтобы получить свои звонки. Вот метод.
private void handleSendingRegistration(RestRegister register) {
final String method = "handleSendingRegistration: ";
Call<RestResponse> response = restClient.getGatherInterface().register(register);
response.enqueue(new RestCallback<RestResponse>() {
@Override
public void onSuccess(Response<RestResponse> response) {
Log.d(TAG, method + response.body().getMessage());
}
@Override
public void onFailure(Throwable t) {
Log.e(TAG, method + t.getMessage());
}
});
}
Это сообщение немного грубовато, но вы можете увидеть идею вашего вопроса. Надеюсь, что это может помочь вам построить ваше приложение.