Tuesday, December 23, 2014

Заметка о Visual Studio Tools for Apache Cordova

Поработав немного с VSTfAC (VS2015) могу сделать определённые выводы.

Сама среда VS довольно мила (я до этого никогда не работал с VS, может было время с VS5 и 6), но по сравнению с WebStorm (в отношении HTML5/JS) куцевата.

Наверное, можно дополнить VS до уровня WebStorm, но это скорее всего будет стоить денег и денег больших, чем стоит WebStorm (можно использовать WebStorm, только понять как можно "скрестить" эти две среды).

Теперь о другой составляющей - о запуске и тестировании Cordova приложений на эмуляторах мобильных платформ.
WP8 и WP8.1 - хорошо, iOS - нормально (думал будет хуже), Android - ужасно. MS представила свой эмулятор, на базе сборок Android x86 и запускает это дело под  Hyper-V, как и эмуляция Windows Phone (скорее всего эмуляционая часть у них общая, отличаются загрузчики).

Так  с Андроидом происходят такие ужаса - запускается долго, кордова плагины не работают (проблема x86?), какие то не понятные сообщения об ошибках и зависания эмулятора. Под гугловским эмулятором приложение можно запустить только в режиме эмуляции процессора ARM, так как Intel HAXM не может работать одновременно с Hyper-V (зато HAXM работает вместе с VMWare и VirtualBox одновременно). Тормоза конечно получаются сильнейшие (виртуалку в виртуалке запускать та еще задача), но зато работают плагины (Admob) и можно кое что протестировать.

Радует только то, что приложение собирается (вроде) правильно и на реальном устройстве работает, как задумано.

Примерно вот так...

Saturday, December 13, 2014

Ростелеком. Давай до свидания?

Всё больше соседей отказываются от интернета (а заодно и от телефона) от Ростелекома в пользу оптики от другого провайдера.

Ибо РТ не может обеспечить достойный скоростной доступ по АДСЛ за вменяемые деньги (да и за невменяемые тоже). Поэтому люди идут на дополнительные траты (проведение оптики, покупка нового оборудования), чтобы за те же 600 (без учета оплаты за пользование телефоном) рублей иметь не 2 мегабита на скачку (которые еще не всегда работают), а полноценные 10-20-30 мбит и выше за те же деньги.

Получается политика РТ идёт в полном русле с политикой нынешнего руководства РФ - "мелочь нам не нужна". Вот мелочь и выкручивается, как может.

Wednesday, December 10, 2014

Теория относительности в быту

Был в магазине - купил 1 светодиодную лампочку за 110 рублей и подумал, что дорого.
Также купил бутылку виски Bells по скидке за 360 рублей и подумал, что дешево.

Tuesday, December 09, 2014

Apple в своём репертуаре - дорого, медленно, странно

Это про регистрацию разработчика. Стоимость самая высокая. Письма приходят долго, снимают деньги долго, ответы на запросы приходят долго. И всё равно все не работает - деньги берут, активацию не предоставляют.

Про Internet Explorer 10.0 в Windows Phone 8.0

Это как IE6.0 в эпоху Web2.0 - костыли,костыли, костыли.

Sunday, December 07, 2014

Intel XDK vs Visual Studio/Cordova (#intel #xdk #visualstudio #cordova)

А вот можно уже сделать первые выводу по поводу использования данный тулзов в разработке гибридных приложений для мобильных платформ.

Intel XDK. Всё в одном. За 200мегабайт скаченного дистрибутива получаем возможность быстрого прототипирования приложения с использование входящего в поставку фреймворка или с использованием внешних фреймворков (например Framework7), облачную сборку приложения - нет забот со скачиванием, установкой, обновлением всего "зоопарка" средств разработки под разные платформы.
Неплохой эмулятор девайсов (на базе Хрома), жаль что не расширяется пользователем.
Поддержка Cordova плагинов. Возможность сборки неограниченного количества приложений с любым типом лицензирования (привет PhoneGap).

Что мы теряем? Гибкость, возможность тонкой настройки под себя, шаг влево, шаг вправо и стоп. Лаг в обновление платформ, так текущая платформа Cordova 4.0, а в Интел XDK 3.5(.1).
Не возможность управлять содержимым пакета - я не использую AppMobi и AppFramework и всё равно получаю их (или часть их) в пакете приложения.
И в конце концов, просто что то не поддерживается, по необъяснимой причине. Например сборка под Windows Phone 8.0 базируется на  Cordova CLI 2.9 без поддержки плагинов (прощай AdMob) или в качестве таргет платформы не получится использовать iPad (!)

А что нам предлагает Майкрософт в VS2015/Cordova tools?

Наивно будет полагать, что это  сразу решит все наши проблемы. Нет, для сборки iOS приложений потребуется MacOSX c XCode, просто VS будет пытаться управлять процессом сборки и тестирования в эмуляторе iOS, с Android тоже не всё так просто - ставится комплект разработчика от Google, для сборки и тестирования используется платформа 4.4.2, для других версий API андроида надо будет сделать кое-что ручками, эмулятор Андроид x86 от MS работает, приложение устанавливается, запускается и работает.

С Windows Phone 8 все хорошо, но если решите делать Windows Universal Application из своего работающего на iOS, Android, WP8 приложения, то тут придётся попотеть, почитать инеты, потестировать приложение, а может и заново переписать некоторые части. Всё это по причине другой модели безопасности для универсальных приложений (ну, МС всегда в своём духе).

Зато мы получает полный контроль на собираемым приложением (как и при использовании других средства нативной разработки). Можно влезть в код, посмотреть как и почему он работает или не работает, ничего лишнего - только ваш код и код Cordova. Не зависимости от работающего или не работающего, как раз в нужное время, облачного сервиса (вполне реальная история из жизни XDK).

Saturday, December 06, 2014

Матрёшка из виртуальных и не только систем и приложений: #cordova #visualstudio #vmware #android #emulator

Смотрите скриншот


HTML5 приложение собранное в Visual Studio 2015 c Cordova tools, запущено в эмуляторе Андроид для VS от MS (ничего нового не изобрели - запустили x86 image), всё это работает в виртуальной машине VMWare 10 в гостевой операционке Windows 10 TP  с включенной поддержкой виртуализации (Hyper-V, поэтому и VMWare, VirtualBox такого не может). И всё работает на Windows 8.1, но ноуте с Intel i7 процессоре (4 ядра с Hyper-threading).

Для теста достаточно, для нормальной работы нет. Необходимо или более производительное "железо" для виртуальных машин (процессор для рабочих станций или хотя бы десктопа, быстрые диски, в идеале SSD, много памяти) или всё переносить из виртуалки на нормальное железо.

Cordova и Windows Universal Applications

Поняв, что с XDK в отношении Windows мне мало что светит, решил посмотреть, что же предлагает Microsoft.

Сначала использую, то что имею - Visual Studio 2013 Commuty Edition with installed Visual Studio for Cordova CTP.  Последнее устанавливаю с галочками для Виндовс приложений, в результате получаю потом мессаджи, что надо поставить софт для Андроид и иОС.

Делаю пустой Cordova проект (используется версия 3.7, но можно будет обновиться до 4.0), подсовываю свой набор html файлов и скриптов. Запускаю на тестирование и всё запускается. И  работает почти , как надо - почему то пропадают swipeout и присутствует баг на WP8 с белой полосой внизу экрана (viewport issue). На WP8.1 и другой версии имиджа WP8 этого бага с полосой нет.

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

Но проблема оказалась гораздо глубже и интереснее. Оказывается в универсальных приложениях используется другая система безопасности и обычные подходы и либы типа jQuery просто не работают (нельзя модифицировать контент).

Есть даже фикс для этого делать https://github.com/MsopenTech/winstore-jscompat
Но мне не помогло, даже наоборот еще и внешний вид до первого клика попортило, а после клика всё равно приложение вылетело.

Отсюда повторю совет из инета - собирайте приложение для WindowsPhone 8.0, оно будет работать и на Windows Phone 8.1, а про Windows Desktop хз что делать. Сейчас качается Visual Studio 2015 - может там что-то поправили.

Thursday, December 04, 2014

Intel XDK и Windows Phone уже не враги, но ещё не друзья

Когда дошли руки до тестирования гибридного приложения на Windows Phone, реальность использования XDK для этих целей оказалась под большим знаком вопроса.

Во первых XDK собирает приложение для WP, только в Legacy mode. А это значит прощай все Cordova плагины, хотя поддержка Cordova CLI версии 2.9 вроде бы заявлена. Т.е. не только не получается убрать splash screen (способ нашел), но и показать рекламу через AdMob - плагин есть, но естественно его нет (не подключается).

Во вторых. То ли cordova, то ли XDK запускают WebView на WP8.1/IE11 в режиме совместимости с WP8/IE10. И всё бы хорошо (точнее не всё так и плохо), но почему то рендеринг CSS при этом остаётся от IE11, который более корректно работает с CSS3 и не требует фиксов для IE10, но он их применяется - ведь работает в режиме совместимости!
Получается интересная билиберда, которую довольно не просто исправить костылями.

В третьих. Посмотрев сгенерённый XAP файл я обнаружил там кучу мусора, который не используется в моём приложении, ибо я не использую AppMobi и AppFramework, но "следы" от них остаются, в том числе от пустого проекта Cordova. Жить они вроде не мешают, но размер приложения увеличивают.

И уж к слову. Собранное приложение для Windows 8 / Modern UI (HTML5/JS) также толком не заработало - открывается, показывается приложение и сворачивается в иконку на таскбаре. Возможно не поддерживается работа Metro приложений в режиме десктопа. (Тестировал на Windows 10 TP).

Вот такие дела. Просмотрев форум, обнаружил, что многие просто используют другой способ сборки WP8 приложений. PhoneGap или Cordova. А Майкрософт, как раз анонсировала движение в эту сторону. Я попробовал с Visual Studio 2013 Commity Edition + Visual Studio for Cordova CTP. Пока не очень получилось. Ну и в целом хотелось бы иметь всё в одном месте.

PS Кстати, при регистрации как девелопера MC взяла $19  по курсу в 33 рубля, при официальном в 50 рублей за 1 доллар.