Saturday, May 30, 2015

VS2015 Cordova ориентация IOS приложения и история про опен соурс и майкрософт.

Постоянный читатель уже должен понять по заголовку что пост будет о чём то "неработающем".

Смена ориентации в иос приложенинии, собранном из под VS2015RC не работает.
ХЗ как пофиксить. Видимо это надо делать на стороне MacOSX

Ждать со стороны МС каких то фиксов довольно сложно ибо у них довольно интересная ситуация.

Описываю. Опен соурс такой опен соурс. Разрабы кордовы по какой то причине решили перейти в 5й версии с git на npm. А в 5й версии как раз была введена поддержка приложений Windows 10 (наверное это так называются универсальные приложения теперь). Но в VS2015RC  Cordova Tools  CLI версии 5.0 не работает (не прочитав про это я попробовал переключиться на 5.0 и огрёб кучу проблем,  решением которых стало пересоздание проекта с нуля) , потому что там нужна кучка и маленькая тележка изменений. В результате с "новинками" ничего не работает и самое лучшее "сидеть" на ветке 4.х., чтобы иметь хоть какой то работоспособный вариант приложения.

Опять таки надеюсь, что в релизе VS произойдёт переход на Cordova CLI 5.x, но предупреждаю, что Кордовой в МС походу занимаются индусы. А это товарищи со своей философией.

UPD фикс тут

Tuesday, May 26, 2015

Фильм Чаппи

Забыл посмотреть, но гигтаймс напомнил об этом фильм.

Про роботов, искусственный и не совсем искусственный интеллект. Интересно ведь.

Но.. получилась нудятина. Всё это я уже видел в Район №9. Звёздные актёры и отличная анимация (или что там было) робота не спасла ситуацию. Интриги нет, захватывающего сюжета нет.

Не стоит снимать этому режисёру подобные фильмы. Повторяется.

Tuesday, May 19, 2015

Фиксим смену ориентации в VisualStudio/Cordova Windows Phone 8.0 приложениях

После перехода на VS2015RC неожиданно обнаружилось, что не работает смена ориентации в приложениях для WP8.0

В остальных операционках всё работает как должно. И сборки из предыдущих версий VS также работают как надо. Причём если выставить заданную ориентацию, то приложение откроется в ней. Не работает именно смена ориентации.

Анализ ситуации показал, что проблема в конфигурационном файле (MainPage.xaml), который впрочем генерируется автоматически.

В отношении ориентации девайса, с разрешенной сменой оной в указанном файле должна быть строчка:

Orientation="Portrait" SupportedOrientations="PortraitOrLandscape"

VS2015RC же при выборе Default ориентации вообще не вставляет ни какой строки в MainPage.xaml, или же после некоторых манипуляций вставляется строка вида

Orientation="Portrait" SupportedOrientations="Portrait"

Что тоже не способствует решению задачи. 
Покопавшись в дебрях nodejs, нашел скрипт w8_parser.js , wp8_parser.js (находится приблизительно тут C:\Users\***\AppData\Roaming\npm\node_modules\vs-tac\node_modules\cordova\4.3.0\node_modules\cordova\node_modules\cordova-lib\src\cordova\metadata\), в котором сделал изменения, установив значения напрямую, завместо  закомментированных:

    var orientation = this.helper.getOrientation(config);
    if (orientation && !this.helper.isDefaultOrientation(orientation)) {

        mainPageXAML.getroot().attrib['Orientation'] = orientation;
        mainPageXAML.getroot().attrib['SupportedOrientations'] = orientation;

        if (!this.helper.isGlobalOrientation(orientation)) {
           delete mainPageXAML.getroot().attrib['SupportedOrientations'];
        }

    } else {
        //delete mainPageXAML.getroot().attrib['SupportedOrientations'];
        mainPageXAML.getroot().attrib['Orientation'] = "Portrait";
        mainPageXAML.getroot().attrib['SupportedOrientations'] = 'PortraitOrLandscape';
//delete mainPageXAML.getroot().attrib['Orientation'];

    }



(осторожно с копированием кода - амперсанды могу заменяться на &)

Это помогло в конкретном случае, но не помогло в общем. Ибо при переходе на таргет Windows Phone 8.1 приложение опять перестало собираться с ошибкой из той же темы - неизвестная установка ориентации.

В этом случае решается всё довольно просто - переводим в режим редактирования кода файл config.xml  и удаляем всё, что связано с ориентацией устройства.

PS Возможно это проблемы установленного у меня Cordova CLI 4.3 и с переходом на CLI5.0 всё будет работать как надо.

PSS Возможно с выходом релиза VS2015 также всё будет работать, как работало на ранних бета версиях VS, без ручного вмешательства в дебри.

PSSS Как вариант может помочь переустановка vs-tac

UPD В VS2015 RTM всё тоже самое, фиксится также.

UPD2 В VS2015U3 / Cordova 5.4.1 всё тоже самое, оно и понятно, legacy код не меняется веками.

Friday, May 15, 2015

Простой и злой способ не дать пользователю выключить рекламу в приложении

Как известно, достаточно отключить доступ в интернет и реклама в приложении не будет показываться (речь идёт про мобильные приложения, но это в принципе актуально и для универсальных приложений).

Одним из вариантов решений данной задачи будет создание пула рекламы для показа при нахождении устройства в оффлайн. Желательно пула обновляемого. Как минимум с самим приложением. И достаточно большого, чтобы не было быстрого "выгорания" рекламы. Но такие баннеры скорее всего будут не оплачиваемыми. А нам ведь надо платить за электричество и покупать еду...

Поэтому другим вариантом может быть... Завязывание части кода приложения в обработчики событий загрузки и показа рекламы.
Т.е. если рекламный блок загрузился и показался, тогда можно продолжать выполнение приложения (доступ к каким нибудь продвинутым действиям или добавление жизни в играх), а если не загрузился и не показался - извините, пользуйтесь тем что есть.

Monday, May 11, 2015

Печальное о Visual Studio/Cordova

Мне, конечно, нравится Визуал Студия с поддержкой Кордова, но как утомило уже нестабильность работы, когда шаг влево, шаг вправо и многое перестаёт работать

Tuesday, May 05, 2015

Маленькое открытие в PhaserJS и реабилитация производительности на iPod

Оказывается в PhaserJS есть встроенное управление масштабированием. Это хорошо. А также оказалось, что после того как масштабирование было применено, то производительность тестовой игры на iPod чудным образом улучшилась. Отсюда напрашивается вывод, что UIWebView (возможно только в определённой версии) не любит заэкранных отрисовок и на них начинает притормаживать.

Monday, May 04, 2015

Первое знакомство c PhaserJS

Беру пример (арканоид), заливаю его в Intel XDK, пример работает, но не адаптирован к размерам эмулируемого устройства, чуть корректирую это и заливаю пример на устройства (через AppPreview).

В результате на Андроид КитКэт черный экран, на IPod4/iOS6.1 тормоза. Соображаю что почему. Догадываюсь, что надо использовать принудительно режим Canvas (не авто определение).  Заливаю снова на устройства.

На Андроиде заработало, на айподе те же тормоза. Помнится, сборка Monkey примера андроида работала на всех этих устройствах довольно сносно.

PhaserJS

Вроде всё просто, но что-то как то не даётся. С Monkey-X было чуточку проще. Идеология обоих штук похожа.

Sunday, May 03, 2015

50 оттенков серого

Посмотрел. И могу сказать, что понравилось. Фильм для взрослых. Не в том смысле, что письки и сиськи для взрослых только. А в том, что фильм затрагивает струнки в голове у тех, кто имеет эти струнки, а они, эти струнки, появляются только с годами. Или с опытом, что печальней.

ПC: Актёр исполняющий главную мужскую роль мне не понравился, имхо, органичней смотрелся бы Киану Ривз или Том Круз...

Звук и качество

Чтобы не говорил, но старые советские уши "ТДС-5М" уделывают по качеству звука современную китайщину, даже под лейблом Apple.

Friday, May 01, 2015

Бутербродный бутерброд (про визуальное оформление универсальных приложений)

Если вы хотите запортировать ваше кордова приложение на Виндовс как универсальное, то запросто получите такую картину:

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


Edge vs Chrome vs FireFox in the Windows 10 as virtual guest os

Резюмирую по билду 10074

ФФ ровненько работает
Хроме несщадно тормозит
Эдж тоже тормозит и при это еще вылетает не предсказуемо, с ИЕ такого не было.