Что нужно для разработки клиент серверного приложения на Android?
Доброго времени суток, уважаемые гики. Я сейчас задам вопрос, который задают обычно школьники. Но начну с вступления, дабы лучше объяснить в чём моя задача, и что я уже сделал.
Я являюсь WEB-программистом уровня самоучки. У меня есть собственная онлайн игра. Браузрека. Поэтому и пишу севрерную часть на PHP, а клиентскую на JS; вёрстка HTML + CSS; как бд использую MySQL. Сервер работает на Debian-е. Связка Nginx + Apache. Всё это управляется панелью ISPmanager. Браузерные игры хороши свой кроссплатформенностью. Не важно какая платформа, главное иметь под рукой браузер. Но всё же есть и несколько недостатков в таком подходе. Один из них, так это большой объём скачиваемых данных при использовании мобильного интернета. Это влияет на время открытия страницы. А если трафик лимитирован или тарифицирован, то дела обстоят куда хуже. Да и вообще, даже при быстром и безлимитном интернете многие используют смартфоны, и предпочитают играть через приложения разработчиков. Не говоря уже о том, что наличие приложения в маркете увеличит кол-во игроков.
Вот тут я и задумался над написанием своего собственного приложения под Android, для игры из него. Решил писать не игру с нуля, а по сути мобильный клиент, который в себе будет содержать нужные ресурсы для игры (изображения, текст, звуки, разметка) и только подгружать из сети данные из БД, результаты серверных вычислений и т.д.
Окрылённый своей идеей я побежал устанавливать последнюю Android Studio. Устанавливаю, настраиваю, качаю SDK и прочие нужности (благо в этом разобрался давно, когда шил свой смарт). Создаю проект с готовым активити (Blank Activity), учусь писать, использую уроки с сайтов. О, да я крутой программер на Java, подумал было я. Но не тут-то было. Мне нужно написать приложение по типу приложения ВК. Сегодня провозился весь день разбираясь в стандартном активити Navigation Drawer Activity. И понял я, что мне учиться писать на Android ещё месяцы. А я замахнулся на клиент-сервер. Много почитал, почитал первую главу "Философия Java" Брюса Эккеля. Посмотрел содержания. И почти ничего не нашёл про клиент-сервер. Или я плохо искал. Но вот если с Java я ещё имею возможность подружится (более-менее понятно), но с XML, а тем более со связкой Java + XML, я никак не могу найти общий язык! :(
Итак, собственно нубский вопрос: что вы посоветуете мне делать, имея только знания PHP и HTML (и всего прилагаемого к ним). Можно ли как-то выкрутится из моей ситуации. Знаю, что можно писать на C# под Unity, но я не подружился со средой Unity. Или мне придётся смириться, и пару месяцев просидеть за изучениям Java + XML?
Прошу прощения за огромное кол-во текста.
Заранее благодарю за понимание и помощь.
С уважением, Юрий.
index0h: Спасибо большое за фреймворк. Пока что по минималочке работает хорошо, компилится через ту же студию спокойной. Буду постепенно нагружать и смотреть. :)
Спасибо за желание помочь. Ваше предложение хорошее, но надо учесть название моего вопроса. В конце вопроса написано "приложения на Android". iOS мне не подходит совсем. :)
Я сейчас оставил вопрос написания приложения в стороне - отпала необходимость пока что. Но скажу, что php это бэкенд. И как вариант, написать приложение с помощью html+js - клиентская сторона. На клиенте подключай либу jQuery, делай аякс на пых, там всё что нужно выполняется, ответ отправляй в формате JSON. Если нужно что-то изменить непосредственно на клиенте, делай это средствами JS-а. Также можно генерить HTML-код на сервере, отправлять JSON-ом на клиент и иннерить его с помощью JS.