Транспортный слой приложения

192
07 января 2019, 13:10

Задумал реализовать клиент-серверное приложение на Android с применением архитектуры MVP.Также добавить транспортный слой в приложения, который будет содержать универсальный класс для совершения запросов и выдачи данных в Model. Транспортный класс, по моей задумке, должен реализовывать следующий интерфейс:

interface DataTransfer<T> { 
     public T getData(String request); 
}

то есть, функция этого класса должна на вход получать строку запроса, и отдавать тип данных, преобразованных из JSONа. Тип получаемых данных устанавливается при создании экземпляра класса транспортного уровня. Собственно сабж, верны ли мои представления о транспортном слое и возможна ли реализации такого класса используя RestTemplate (если нет, то на каких библиотеках возможно)

Answer 1

Посмотри в сторону Retrofit2. Использую сам, крайне удобно и очень доволен. Вместе с implementation group: 'com.squareup.retrofit2', name: 'converter-gson', version: '2.4.0' JSON без лишнего кода преобразуется в java объекты.

Документация понятная, есть огромное количество статей и информации как с этим делом работать.

Пример с официального сайта.

public interface GitHubService {   
    @GET("users/{user}/repos")   
    Call<List<Repo>> listRepos(@Path("user") String user); 
}

P.S. В дополнение. Для MVP посмотри в сторону Moxy. Разобраться не сложно, много информации имеется. Если ко всему прикрутить RxJava и RxAndroid и работать с Retrofit количество кода и его сложность уменьшаются в разы, увеличивается концентрация на бизнес логике. Но RxJava далась мне не просто.

READ ALSO
HTML+JS+CSS.Как наложить div блок на другой div при нажатии на кнопку?

HTML+JS+CSS.Как наложить div блок на другой div при нажатии на кнопку?

Имеется вот такой шаблончик https://codepenio/psyapathy/pen/wENPgX

208
Проблема с jQuery в IE11

Проблема с jQuery в IE11

Не работает следующий код в IE11, а так же если повесить событие через onclickПри этом в chrome работает

165
Функции JavaScript [закрыт]

Функции JavaScript [закрыт]

У меня есть 4 функции case1(); case2(); case3(); case4(); и есть еще 5 функция start();, которая запускается по нажатию кнопки, а сама функция start() должна запускать...

178