Клиент-серверное приложение для Android: с чего начать?
Всем добрый день!
Недавно у меня появилась перспектива разработать по просьбе одного знакомого мобильное приложение с объявлениями о продаже товаров, подобное приложению Авито, только с некоторыми специфическими функциями. Насколько я понял, это должно быть клиент-серверное приложение, а опыта разработки таких приложений у меня нет. Мне приходилось разрабатывать всего лишь несколько простых приложений для работы с локальной базой данных и Google-картами, а в разработке клиент-серверных приложений я совершенно не ориентируюсь.
В связи с этим хочу попросить совета знающих людей: с чего бы вы порекомендовали начать освоение этой темы? Есть ли какие-нибудь материалы "для чайников", которые помогут познакомиться с клиент-серверной разработкой? Буду благодарен, если вы порекомендуете конкретные технологии, которые подходят для решения моей задачи. На слуху очень много названий, всякие там REST API, Retrofit, RxJava и т.д., но все они мне мало о чем говорят, поэтому я и прошу вашего совета.
И ещё. Если это клиент-серверное приложение, то для него нужен будет сервер, и насчёт его реализации и размещения у меня также есть вопросы. Насколько я понял, сервер нужно будет размещать на каком-то платном хостинге? Нужно ли его разрабатывать самостоятельно или уже есть готовые решения? Прошу пролить свет и на эти вопросы тоже.
В двух словах это не объяснишь, ибо тема достаточно объемная, но наводку постараюсь дать :)
1. "всякие там REST API" - это ваш основной инструмент в клиент-серверной архитектуре. Рекомендую прояснить это понятие полностью, от и до.
2. "Если это клиент-серверное приложение, то для него нужен будет сервер" - сервер в основном нужен для обработки данных и сохранения/извлечения их в/из базы данных. Клиент - для представления этих данных пользователю.
3. Да, нужно брать платный хостинг. Желательно VPS.
4. По реализации сервера много возможных решений. Самые популярные: Laravel и Node.js , например.
5. Материалы для чайников: Google.com (-: По крайней мере теперь вы понимаете что именно нужно гуглить.