Comments 23
круть!
а Дуров сейчас разрешает использовать «неродные» технологии?
я так понимаю, он затем или выкупает продукт или человека с продуктом. т.е. код ему нужен будет «родной» для платформы.
помню, в первом конкурсе(ВК-клиент) он запрещал использовать Monotouch.
а Дуров сейчас разрешает использовать «неродные» технологии?
я так понимаю, он затем или выкупает продукт или человека с продуктом. т.е. код ему нужен будет «родной» для платформы.
помню, в первом конкурсе(ВК-клиент) он запрещал использовать Monotouch.
Листал при выходе документацию МТПрото.
По вашему мнению перспективы есть у протокола или очередное «слизывание» у кого-то?
По вашему мнению перспективы есть у протокола или очередное «слизывание» у кого-то?
Тоже участвовал в конкурсе, могу немного прокомментировать.
MTProto мало похож на известные мне бинарные протоколы, из оригинальных решений — клиент обязан разложить полупростое число (размер, в теории, может зависеть от «назойливости» клиента) на два простых перед тем как получит возможность делать запросы.
Удобная реализация RPC — названия RPC-методов и типы данных в бинаре обозначаются с помощью CRC32 от строки, описывающей их по определенным правилам.
В протоколе предусмотрено GZIP-шифрование и группировка сообщений, что довольно удобно — действительно позволяет слать меньше данных.
Внезапным огорчением стала работа с «векторами» — они неочевидным образом иногда были «голыми» (без CRC32-заголовка), а иногда — нет, причём в отличие от сотен «голых» чисел, это — явная экономия на спичках.
Видно, что ребята попытались максимально упростить довольно сложные вещи типа миграции между ДЦ, но в протоколе всё равно пришлось побиться об них. В целом, однако, впечатления положительные.
MTProto мало похож на известные мне бинарные протоколы, из оригинальных решений — клиент обязан разложить полупростое число (размер, в теории, может зависеть от «назойливости» клиента) на два простых перед тем как получит возможность делать запросы.
Удобная реализация RPC — названия RPC-методов и типы данных в бинаре обозначаются с помощью CRC32 от строки, описывающей их по определенным правилам.
В протоколе предусмотрено GZIP-шифрование и группировка сообщений, что довольно удобно — действительно позволяет слать меньше данных.
Внезапным огорчением стала работа с «векторами» — они неочевидным образом иногда были «голыми» (без CRC32-заголовка), а иногда — нет, причём в отличие от сотен «голых» чисел, это — явная экономия на спичках.
Видно, что ребята попытались максимально упростить довольно сложные вещи типа миграции между ДЦ, но в протоколе всё равно пришлось побиться об них. В целом, однако, впечатления положительные.
клиент обязан разложить полупростое число
proof-of-work как в Bitmessage?
Кстати, большинство отзывов «крутятся» вокруг того факта, что видео/аудио/фото и прочий контект передается/отправляется куда быстрее. Чем вызвано? В чем особенность передачи файлов? За счет чего достигается ускорение?
Интересно! Мы с товарищем делали на Qt, надо бы тоже статью оформить :)
p.s.
CamelCase — это PascalCase, а тру camelCase с первой маленькой :)
p.s.
CamelCase — это PascalCase, а тру camelCase с первой маленькой :)
Писать про нечто на Qt не имеет смысла, статей достаточно. Конкретно здесь статья имеет два пункта «уникальности»:
- Рассказать о разработке на Android на C#
- Рассказать о протоколе MTProto
Поделитесь тогда, пожалуйста, русскоязычными статьями про разработку под Android на Qt с использованием замыканий и лямба-выражений ( C++11 ) для протокола MTProto. Надеюсь, что среди этого достаточного количества статей, полно интересных моментов о том, как на питоне генерируют C++ код по json-схеме протокола, и как приходится форкать и допиливать некоторые opensource проекты, чтобы собрать свой.
В общем, я хотел сказать, что вы и Пастернака вероятно не читали, но осуждаете :)
В общем, я хотел сказать, что вы и Пастернака вероятно не читали, но осуждаете :)
Не успел…
PascalCase — действительно…
И как, вам удалось пройти в третий этап?
И как, вам удалось пройти в третий этап?
А интерфейс писали руками или всё-таки отдельно в IntelliJ с автокомплитом? А то я тоже брался участвовать с Xamarin, да вот без автокомплита XML писать интерфейсы андроида это боль.
Xamarin предлагает неплохой инструмент рисования интерфейсов, его и использовал. Хотя признаюсь, без Intellisence тяжело писать раскладку руками.
Ирония в том что Intellisence там есть, просто заставить его работать не так просто
У меня например после подключения схем он так и не заработал, зато сгенерировал 100 варнингов.
Ирония в том что Intellisence там есть, просто заставить его работать не так просто
У меня например после подключения схем он так и не заработал, зато сгенерировал 100 варнингов.
Зашёл на сайт Xamarin погрустить о ценах, обнаружил, что бесплатная версия теперь может запускаться на устройствах, но с ограничением в 32Кб кода. Стал гуглить, много ли это, выходит, что мало, хватает только на что-то примитивное без сторонних библиотек. Зато обнаружил альтернативную реализацию .NET под андроид, dot42, для некоммерческого использования бесплатно и без ограничений. Буду пробовать.
В дополнение.
SQLite вполне способен заменить файловую систему. Это сразу дает много очков к реюзу кода. Да и производительность не сильно страдает (главное разделить файл с блобами и файл индексов, в файле блобов не искать, а сразу запрашивать нужное).
SQLite вполне способен заменить файловую систему. Это сразу дает много очков к реюзу кода. Да и производительность не сильно страдает (главное разделить файл с блобами и файл индексов, в файле блобов не искать, а сразу запрашивать нужное).
Интересно. А напишите мне в вк: (http://vk.com) — интересно будет пообщаться по поводу библиотеки мтпрото+апи для шарпа.
Очень понравилась статья
В дополнении:
1. Создание одной cross-platform portable compiled library кажется мне предподчительнее чем линкование
2. Библиотека MvvmCross очень помогает разработке.
Во-первых, разделением Business Logic от UI,
во-вторых, там есть несколько полезных плагинов, которые облегчают кроссплатформенный код — кеширование картинок, работа с файлами, SqlLite…
В дополнении:
1. Создание одной cross-platform portable compiled library кажется мне предподчительнее чем линкование
2. Библиотека MvvmCross очень помогает разработке.
Во-первых, разделением Business Logic от UI,
во-вторых, там есть несколько полезных плагинов, которые облегчают кроссплатформенный код — кеширование картинок, работа с файлами, SqlLite…
Sign up to leave a comment.
Разработка IM на конкурс Павла Дурова с помощью Xamarin