Pull to refresh

Comments 34

Спасибо за историю, интересно было почитать.
Спасибо! Возможно позже составим статью с лайвхаками подобного рода. За годы разработки на Unity накопилось уже.
Было бы интересно ознакомиться, спасибо!
почитал про сложности с хранением данных.
А почему не сделать сериализацию сложных данных в строку (Json <-> String) на своей стороне, а в Firebase передавать пару (ключ, строка)?

На самом деле мы именно так и делаем и сериализируем используя newtonsoft.json и записываем через SetRawJson однако, у firebase на этот счёт свои мысли и похоже происходит ещё и преобразование на стороне firebase :)
Про передачу ключ строка не думали так как дальше планируем добавлять возможность для игрока смотреть прогресс друзей из того же facebook и это будет не так удобно в итоге. Ну и бд на то и бд что бы использовать ее как бд :)
Плюс эффективность в трафике. Я не ручаюсь за это, но похоже что исходя из того что я вижу (объем передаваемого трафика), firebase имеет свой протокол который так или иначе уменьшает объем передаваемых данных исходя из структуры json. Если же использовать строку, это скорее всего сойдёт на нет. Не добавлял это в статью так как пока это на уровне домыслов и сопоставлений с тем что вижу.

ну, дело ваше, тем более что в комментариях ниже советуют firestore.
Просто я для себя давно вывел, что если данных немного (меньше сотни килобайт), то быстрее паковать в строку\из строки самому (начиная от элементарного «в массив чисел» и заканчивая msgpack и zip), чем морочиться с особенностями интерпретации объектов.
Про msgpack не слышал раньше. Пожалуй пойду покурю про него. На первый взгляд интересная штука.
А почему для сериализации вы не используете стандартные компоненты JsonUtility?

JsonUtility имеют свои ограничения вроде отсутствия сериализации для dictionary, null, свойств, полиморфных типов и кучу других ограничений. Да и по факту это бы никак не повлияло на проблему с преобразованиями внутри фаербейз.

Я правильно понял про newtonsoft.json. И оно платное?

Я о нем не знал, но попробую. Спасибо.

dictionary да не работает. Но я его сохраняю через OnBeforeSerialize/OnAfterDeserialize

null по логике, это пустота, зачем её сохранять. Ну ситуации разные.

Может я со сложными элементами при сохранении не сталкивался.

А если в фаербейз передавать json как простую текстовую строку. А потом текстовую строку получать обратно и преобразовывать во что нужно. Или в массив или в объект.
Да, про него. Он opensource. Единственное что для Unity при работе на il2cpp AOT, там есть проблемы. Я использую этот плагин который по сути является форком с улучшеной совместимостью (Там вообще какая то чихарда с именованиями, так что могу слегка приврать. По крайней мерее там точно есть Newtonsoft.dll). Он так же бесплатный.

Ваш подход возможен, но не очень правилен с точки зрения работы с базой данных. Я чуть выше другому человеку уже коментировал почему не стал так делать. Не буду еще раз дублировать. Но он бы стработал :)
UFO just landed and posted this here

Сериализация происходит на нашей стороне силами newtonsoft json. На самом деле, это не так проблема, как неожиданность. Когда пишешь массив, ожидаешь считать массив. То есть например массив:
{ new Something(), null, new Something() } после сериализации newtonsoft таки массив. После передачи в firebase и считывания обратно, это уже будет объект:
0: Something
2: Something


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


Спасибо за замечание.

UFO just landed and posted this here

Я хотел, однако firestore на тот момент был в бета тесте. Не хотелось иметь больше проблем. С другой стороны вероятно их было бы меньше. В следующем обязательно firestore.

Если вы пропустили.
1. Выделяете фрагмент текста с ошибкой (любую — грамматическую или пунктуационную, на ваше усмотрение) в публикации;
2. Жмём хоткей CTRL+Enter (или CMD+Enter);
3. В нижней части экрана появляется форма, в которой будет процитирован выделенный ранее (в п.1) текст, а также поле для опционального пояснения.
… и пытаемся пройти квест с бестолковой капчей.
Я уже с десяток сообщений написал, капчи пока не видел. Может, вам с сетью не везет?

многие читают Хабр с мобильных устройств.

Спасибо за статью, как вам програмировать в паре с девушкой?
Роли в разработке мы не освещали, но в целом речь идет от нас обоих. Фактического разделения в статье нет, но каждый говорил за себя и свою часть.
У вас уже был macbook или пришлось покупать для сборки билдов под iOS?
Оформляли ИП или сначала планируете поработать как физ.лица?
У вас уже был macbook или пришлось покупать для сборки билдов под iOS?

Вам не кажется, что это личный вопрос?
Никак не технического характера.

Не кажется. Но вопрос можно было сформулировать и по-другому — «как вы собираете билды для iOS: на оригинальном компьютере с macOS, арендуете mac в облаке или что-то ещё?» Меня просто интересует, есть ли смысл покупать macbook только для сборки или можно обойтись без него?
А вот это уже корректная постановка. Технический вопрос.
Здравствуйте! Вопрос достойный своей маленькой истории, так как вызывал свои особенные, ни с чем не сравнимые муки. Поначалу мы пробовали попользоваться хакинтош машиной, но он работал крайне неудовлетворительно (Возможно виной тому тот факт что устанавливали мы хакинтош на старенький ноут). Как результат прикупили за < 200$ MacBook Pro 2011 года у друга. Ему было не легко, но он таки справляется со своей задачей. Мое мнение — нужно, или любой оригинальный макбук, либо мощный и хорошо совместимый хакинтош. Тут уже зависит от того сколько вы готовы заплатить/потанцевать с бубном.
(Возможно виной тому тот факт что устанавливали мы хакинтош на старенький ноут)

Низззя.
Хакинтош нормально ставится только на desktop.

Не знаю, что именно здесь подразумевается под "нормально", но у меня вполне заводился El Capitan на ноуте HP Envy с SSD под VirtualBox. Работает, конечно, не слишком шустро, но пользовался в основном консолью через SSH — в таком режиме вполне можно пользоваться. Да и графикой при желании тоже, хотя без удовольствия — подтормаживает.
При установке с бубном немного попрыгать пришлось, но после всё работает спокойно.

Sign up to leave a comment.

Articles

Change theme settings