Ок, опыт по разработке и паблишингу win phone приложений появился.
Я научился делать как нативные приложения (к примеру, на основе дефолтного шаблона сделан словарь lugat, а также мультипайвотный турецко-русский и русско-турецкий словарь), так и unity игр. При разработке нативных приложений надо следовать тем же паттернам, что при разработке на iOS. Если понимаешь, что такое делегат и как работает data provider, проблем не будет. Однако верстка страницы больше напоминает андроид - там больше работаешь вручную с XML-ками, нежели тянешь курсором за констрейны.
Как и ожидалось, больше всего проблем было с юнити. Процесс портирования пробовали на старом бедном матаке, который уже пережил 100к закачек на андроиде и только недавно вышел на iOS. Не хочется особо рассусоливать, пройдемся списком по граблям, которые встретил в процессе:
- винфоны в большинстве своем слабые, идут с оперативкой 512 Мб - будьте готовы, что придется оптимизировать. Конечно, можно в dev центре ограничить список, но таким образом мы отсечем 80% рынка
- unity для винфона собирает с настройкой mscorlib, поэтому вовсю использовать силу c# не получится.
- предыдущий пункт может также означать, что некоторые либы, собранные на моно, не пойдут. К примеру, надо качать отдельную сборку для hotween на его официальном сайте
- каким образом происходит сборка unity проектов: солюшн собирается в либу unityplayer.dll, далее линкуется с другими плагинах лежащими в соответствующей папке. Два очень важных момента:
- в редакторе все компилится под моно, а для винды на .net. Они разные, поэтому можно ожидать кучу приколов
- б) для проверки совместимости библиотек используется Mono.Cecil. Ну так вот, если используются платформозависимые библиотеки (Microsoft ads, к примеру), не поставляемые по умолчанию windows phone sdk, mono.cecil может ругаться на отсутствующие рефы. Самый простой и топорный способ разрешить проблему - тупо скопировать dll в C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0 и т. д. Правильный же способ - пересобрать Cecil со включенными библиотеками, начальный взять из гита. Вот эта тема очень полезна для осознания происходящего - http://forum.unity3d.com/threads/wp8-adcontrol-mono-cecil-assemblyresolutionexception.196766/
- Microsoft ads легко интегрируется в сборку, но учетка Microsoft ads недоступна для жителей России - вы попросту не получите честно заработанные деньги. Меня такой вариант не устраивал, поэтому ставил admob с помощью плагинов от Reign studios.
- Да, не надо считать себя самым умным и сходу попытаться написать плагин под винфон. Для начала надо читать документацию - в unity очень клево все расписано :)
- Я так и не понял, почему никто не использует postprocessbuildplayer, хотя его использование очень уместно. К примеру, нужно выставить необходимые разрешения. Или внедрить платформозавсимый код (как в случае инициализации плагинов от Reign Studios). Короче, все разленились, поэтому надо делать кучу неавтоматизированной ручной работы самому.
- Неприятная детская грабля - unity собирает проект, где все иконки и сплеш скрины идут по умолчанию. Настроек в unity как в других платформах нет. Надо делать руками в сгенерированном проекте. Более того, в винде есть так называемые плитки - куча мороки и никто их не использует. Плюс один гемморой от майкрософта.
- Я так понял, в винфоне нет локальных нотификаций. Remote есть, а локальных - нет. Обидно, очень полезный инструмент.
В оправдание мелкомягким можно сказать, что аппрув у них довольно быстрый, проходит в течение пары часов. Вот, к примеру, мотоцикл пошел покорять топы винфонов. Что из этого получится - увидим.
Комментариев нет:
Отправить комментарий