Мобильные UI-фреймворки

Если ты хотел сделать зарабатывающее мобильное приложение в 2010 году, то, в принципе, мог ограничиться iOS-платформой и забыть про Android, так как он был ущербно мал с точки зрения доли пользователей и вообще не существовал с точки зрения оборота внутренних покупок. Сейчас же игнорировать Android-платформу может только заядлый яблокофил, в связи с чем кросс-платформенные фреймворки становятся объектом пристального внимания.

За год в этой области произошло много интересного. Google в Android KitKat наконец сделала оптимизацию исполняемого кода и рендеринга веб-страниц внутри приложений. А Microsoft в октябре объявила о всесторонней поддержке Xamarin. Но самый крутой показатель роста интереса к фреймворкам можно наблюдать в вакансиях мобильных разработчиков, где появились места с названиями в духе «Xamarin-разработчик».

Фреймворки облегчают твою девелоперскую жизнь примерно так же, как и MBaaS, только на клиентской стороне. UI можно писать на чистом HTML5/CSS/JavaScript, чтобы потом показать в приложении в виде WebView-компонента (так делают Adobe PhoneGap и Sencha), можно писать на нестандартном JavaScript и CSS, чтобы потом скомпилировать в нативный код для каждой платформы (как в Appcelerator Titanium), а можно вообще отказаться от общего интерфейсного кода и шарить только бизнес-логику, написанную на C# (как в Xamarin). Плюсы и минусы каждого подхода понятны — JS-код в веб-компонентах исполняется обычно медленно, а UI, сделанный на PhoneGap без плагинов, будет выглядеть как в другой планеты. С другой стороны, супернативность, продвигаемая Xamarin, потребует от тебя умения писать на всех платформах и, кроме того, знания самого Xamarin. А в случае Titanium ты останешься на промежуточном решении.