Создание сервиса: нативное мобильное приложение + API сервиса. Что к чему? Что отдавать?
Привет всем, такой вопрос:
Хочу создать сервис. На Symfony2 написать серверную часть и сайт.
И нужно нативное мобильное приложение (Android/IOS).
Нет опыта в написании приложений, но есть в создании сайтов.
После того как я создам на Symfony2 RESTfull API как мне связать это с мобильным приложением?
Что мне им отдавать?
Какие есть инструменты для создания Android/IOS приложений (желательно бесплатных, или относительно недорогих) что бы я мог без "танцев с бубнами" связать это приложение с моим API?
Фраза "нативное мобильное приложение" подразумевает что Вы пишите код на Java для Android и Objective C для iOS.
Бесплатных конструкторов с гибким функционалом и что бы они еще при этом генерировали нативный код - я не видел.
Как максимум HTML5
Просто я в постах которые находил как то связанные с данной темой - в ответах всегда были предложения такого типа - Вы можете использовать конструктор, которых куча, для того что бы он по вашему сайту сгенерировал приложение, которое будет что-то типа оберткой и будет отображать в себе веб-контент. Под нативным я подразумевал что это будет полноценное приложение, а не некая "видимость".
Написать простенькое приложенице под iOS/Android может даже ребенок. Я конечно слегка утрирую, но путем гугления и чтения мануалов можно довольно быстро разобраться с основами. Простенький клиент на той же Java написать вообще не проблема.
Вы же можете написать клиент для вашей RESTfull API на PHP? Если нет, у вас проблемы с PHP и программированием в целом. Если да, проблемы написать нативное приложение для любой платформы (если это не какие-то сложные вещи а просто клиент для апишки и UI) сложностей не должно вызвать.
Т.е. мне как PHP-шнику не должно составить труда изучить Java/Android SKD и ObjectivC/IOS и без проблем и "сложностей" написать приложения. Мне кажется все далеко на так просто )
@AndrewSlv зато это будет замечательный опыт, который поможет вам в развитии себя как программиста а не php-шника.
По сути то все довольно просто. Нужно просто понимать что от вас не требуется досканальное знание iOS/Android что бы набросать простенький апп. Процесс разработки мобильных приложений типа "клиенты для web-сервисов", если туда не пихать кеширование и прочие излишества, довольно прост.
Ну а так, возьмите ionic framework и пишите на AngularJS + Phonegap.
@AndrewSlv была похожая задача, только вместо любимого на то время php пришлось писать и api на java (play framework) и клиент на android (java, с библиотекой retrofit для запросов к api). в целом ничего сложного, если понимаешь что делаешь и как оно должно работать. в твоем же случае api на php (проблем быть не должно), а клиент пишется довольно легко в каком-нибудь adt и по мануалам vogella или хабры :)
@Fesor в тот момент, после пары месяцев попыток поиграться со спрингом и джерси, мне уже некогда все было пробовать и нужно было что-то делать. так как нетбук сильно ограничен в памяти, то jetbrains отпали сами собой.
до этого никогда ide для php не пользовался, только notepad++. сразу скажу, что нотпад сильно прокачивает мозги в изучении php и фреймворков, в отличии от нормальных ide.
сейчас, конечно, уже пользую phpstorm, ибо быстрее кодится в некоторых моментах.
@yTko не будем разводить холивар, но вот честно, мозги прокачивает vim, тут я еще соглашусь. А nodepad++.... Или вы хотите сказать что отсутствие автокомплита помогает в обучении? Да нафиг надо заучивать API.
@Fesor Ну не сколько в самом обучении языку, а в понимании того, как устроен тот или иной фреймворк, библиотека и еще чего.
Что-то типа этого habrahabr.ru/post/162687/, только здесь порой просто просматриваешь как написан какой-то модуль и задумываешься почему написано именно так, а не иначе.
Не буду утверждать, что это очень прокачивает скиллы и помогает писать верно, ибо зависит от качества "исследуемых" модулей и библиотек, но определенно заставляет думать, а не бездумно пользоваться автокомплитом.
Так как часто те, кто начинает программировать, пользуются иде вслепую и не знают в итоге даже основ языка, каких-то его стандартных функций и т.д.
но вообще это холивар, да)
@yTko@Fesor спасибо за внимание. Любая информация полезна. Писал на PHP, сейчас работаю с JSF+RPC. Я не до конца понимаю и не могу найти примеров того как мобильные приложения будут стучатся к API. Да я может немного заглядываю вперед, стоило бы УЖЕ начинать копать и что-то делать. Но пока нехватает времени на работу (на то чтобы пробовать и охватить все) над этим (своим) проектом, хотелось расставить для себя волнующие вопросы по полочкам. Я так понимаю API может отдавать JSON данные (или какие еще можно?), но как апп на Andoid/ios должны будут стучатся со своих мобильных к моему API?.
@AndrewSlv все взаимодействие между сервером и клиентом происходит по HTTP. HTTP клиентов в сети море, как и каких-то фреймворков для клиентов к RESTfull сервисам. Вообще в сети уже тучи туториалов по созданию клиентов к REST api.
@AndrewSlv так restful или rpc? для rpc на android есть такой клиент code.google.com/p/android-json-rpc/wiki/GettingStarted
Для Rest я бы советовал Retrofit.
Данные да, через json, который в android отлично подхватывает Gson.
Стучаться будут по принципу юзер жмет кнопку, запускает участок кода, где клиент (retrofit, например) совершает определенное подключение к api, получает данные в json. Затем ответ разбирается вручную или через gson и в результате участок кода оповещает пользователя о чем-то. Например, запускает toast с сообщением а-ля "Success" или еще что..