Что можно накодить в PhoneGap и CoronaSDK

в 11:36, , рубрики: iOS разработка, Разработка под android, метки: ,

image
Итак. Начну о себе, чтобы было представление зачем я кодил не на SDK. Я далеко не программист, хотя знаниями об ООП владею, но применить их так и не удосужилось. Проще говоря я занимаюсь разработкой сайтов и маленьких проектов для себя и друзей, чтоб нам легче жилось. И вот мне, как человеку далекому от мастерства кодоводства захотелось написать под смартфон приложение. И вот тут-то все и началось. Эта идея родилась довольно давно, но тогда у меня была только нокия. А нокия — это ужасная вещь. Писать под одну платформу Symbian значит, что к другой оно не пойдет, да и учить Java желания не было, да как и на данный момент. Хотя хочу заметить, что это скорее лень. Но тут Google Android, IOS, Windows phone. Хотелось кодить под это. Само собой возникли вопросы:

  • Что скачать, чтобы начать кодить сейчас
  • На каком языке это все будет писаться

Ответы меня не обрадовали. Как человек, не затрагивающий этот вопрос ранее я выяснил, что под все эти платформы существует своя среда программирования и разработки, что меня очень встревожило. Apple отбил желание кодить только стоимостью мака — XCODE идет только на Mac (но прибавил желания купить мак).

Ну в общем я узнал, что «чистой» средой разработки я не обойдусь. Иначе говоря: проекты мои небольшие, желание чисто любительское, а серьезно «по взрослому» кодить я не умею, да и в общем то хочу, чтобы разом и под все платформы, но был уверен, что такого и не бывает. И отчасти был прав!
И вот сейчас я расскажу, что нашел:

  • CoronaSDK
  • PhoneGap

CoronaSDK — это проект, который позволяет кодить на языке Lua (несложный) под большинство платформ. С него я и начал. Не помню как нашел его, но не суть. Довольно быстро и увлекательно я с ним работал: включаешь, создаешь проект, открываешь файлик в текстовом редакторе и правишь его. Один файл — одна сцена. Что меня не порадовало, так это кодинг вслепую. Нет, там есть эмулятор и все на нем показано, но сдвинуть на несколько пикселей объект, не перезагрузив эмулятор невозможно. А ты, допустим, на 15 сцене работаешь. Ужас. А элемены класса native можно увидеть только при тесте на смартфоне. Это одна из проблем. Вторая — это, то что разрешение экрана вам надо указать в файле настроек. Возникает понимание того, что кодить можно только под одно разрешение. И наконец третье: Вы не сможете спокойно передать русские символы из поля ввода посредством json дальше серверу, а внутри приложения можете спокойно пользоваться им. Хотя этот вопрос я решил двумя бессонными ночами и очень страшным методом. Ах да, ну и последнее, четвертое: Полностью англоязычная документация. На форуме не нашел ни одного русского.

После Короны у меня возникло понимание, что должны быть какие-то средства, которые позволяют избежать этого.
И да! Я нашел ответ. Который меня в конце концов тоже не обрадовал.

PhoneGap(2.9.0) — он зацепил меня кроссплатформенностью, как и Корона, но! Там вообще предложили мне рай. HTML5 и javascript.
Но только при настройке я уже познал азы обряды призвания сатаны, даже записал все 18 этапов на всякий случай. И только при работе с ним я понял, что он работает, через один элемент: WebView. Иначе говоря, встроенный нативный броузер, что ли. В нем и происходит вся работа. Но я стал замечать отличия: он адаптивен (ну тут зависит от веб-мастера), точнее можно подогнать один проект под все разрешения. Все видно, кодить можно где угодно, а потом только тестить на устройстве. Тут беда была в производительности. Обычный скролл страницы работет как надо, а анимации вообще не анимации, а 4-кадровые обрывки. (animate jquery). И еще один вопрос возник потом. Как обрабатывать touch события, такие как: провел пальцем влево, удерживаю что-то. В общем снова пришлось искать библиотеки, сравнивать, думать что лучше и пока ни к чему не пришел.

Я, бесспорно, уверен, что на этих двух проектах люди делают и нормальные, хорошие вещи. Но дело не в этом. Дело в полном решении задачи. Надо думать пользователях, беречь каждый килобайт на смартфоне юзера. Везде, в любом случае есть свои подводные камни. А решение останется одним: только стандартное SDK, иначе качества ждать не придется.

Автор: nSnayp

Источник

Поделиться

* - обязательные к заполнению поля