Как стать автором
Обновить

Принимаем участие в недавнем Telegram Contest, пишем крутое OpenGL ES приложение и выигрываем ничего

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров14K
Всего голосов 46: ↑24 и ↓22+2
Комментарии25

Комментарии 25

Сочувствую вашей ситуации
Я тот самый разработчик, который публично обратился к команде Telegram. Принимал участие в первом этапе конкурса. И тоже был очень сильно разочарован качеством судейства. Настолько сильно, что аж не поленился составить упомянутое сравнение. Судейство, на мой взгляд, было крайне небрежным. И не только по отношению к моему приложению. Среди приложений, занявших 3-е место, были те, что не уступали победителю. На втором этапе, организаторы вроде-бы приняли определенные меры чтобы сделать судейство более объективным, но не знаю, получилось-ли… Не принимал участие во втором этапе. Ответов на свои вопросы от команды Telegram я тоже не получил (да и не особо надеялся).
Сочувствую вашей ситуации, но телеграмм не единственный в своем роде, такая же штука произошла с Vk Challenge — тоже бил сильно разочарован.
Я тоже принимал участие причём в двух этапах.
То что было сделано во втором этапе — публичный поиск багов не улучшил ситуацию, а ухудшил. Сам телеграмм не проверял приложения почти все время, а вся проверка по итогу свелась к 5 минутному запуску приложения. Оценка осталась также субъективной (особенно в плане скорости работы), и никак не учитывала те баги которые нашли другие участники — например приложение с многочисленными крашами попало на 3 место.

Но в прочем — это их конкурс и они вправе делать что захотят.

Автор, я искренне не хочу Вас расстраивать, но вот как выглядит ситуация со стороны — Вы прочитали условия конкурса, поняли их по-своему, определенным образом расставили приоритеты (на скорость и производительность) и в итоге гневно расстроились, что приоритеты были поставлены неверно. Разве в анонсе конкурса было написано что-то про FPS? Про 1000 и 1000000 точек? Это все было додумано… Вольные формулировки имеют место быть, но правильным было бы задать все уточняющие вопросы на берегу, а не свято верить в свою интерпретацию. По факту объективно получилось вообще не как на скриншоте, какие-то цветные квадраты; я даже не сразу понял, что они соответствуют кнопкам из требований. В конце концов подумайте о маркетинге, а-ля новостной пост "у нас победил Х с таким приложением" — не поймут же.
Более того, реализация на NDK кмк не то, что хотели увидеть организаторы, иначе в таком случае можно было бы с тем же Qt поиграться, там контролы есть, которые в OpenGL рендерятся, всяко симпатичнее получилось бы.
И последнее — конкурс штука такая, прежде чем участвовать, нужно понимать, что он может принести разочарование судейством, особенно субъективным. Это скорее относится к участникам, которых вы упоминали в статье. Опять же мое мнение — да, их прожевал сам конкурс, а Вас все же собственная уверенность в своей интерпретации.

Позвольте с вами не согласиться :) Ниже приведу скрин условий первого этапа конкурса:


Требования к юзабилити и гую появились уже потом, во втором этапе. Но нужно понимать, как появился второй этап. Если вкратце, то он плавно вытекал из первого этапа и основывался на результатах работы первого этапа конкурса

Вы, извините, поныть пришли? Хоть бы какие-то технические детали показали вашего решения, почему именно оно должно было «порвать всех производительностью».

Однако, с основным посылом согласен, некоторые участники первого этапа заслуживали большего, но ваше приложение из ряда вон выходящее. Оно вообще кое-как работает и выглядит ужасно.

Задача-то — порвать всех производительностью, имея консистентное приложение, близкое к макету — конечно, это сложнее, чем накидать такой UI, как у вас.

Вы выбрали лишь один критерий из нескольких перечисленных, а на все остальное забили, а теперь обижаетесь

Однако, использовать Java UI и рендерить в overlay области OpenGL графику будет накладно, тут как минимум дадут просадку переключения контекстов. А мы ведь хотим порвать всех высокой производительностью. Так что Java UI отпадает, делаем ставку на performance, а на дизайн забиваем.

Ну конечно же нет. Какой смысл?
Основная мотивация данной статьи: поделиться опытом, рассказать свою историю (возможно это кому-то будет полезно), высказать свое субъективное мнение.
Показать все технические решения — это все-таки тема отдельной статьи. Если наберется много желающих их увидеть, то я думаю однозначно стоит это сделать.

Похожие «скандалы» еще были со времен конкурса на мессенжер для вконтакта, ничего удивительного
А исходники в открытом доступе есть?
Под iOS уже есть на github
Мне интересно посмотреть именно на Андройд с opengl
График без осей и шкал — не график, а просто картинка. Отрисовка текста — это не тривиальная задача с точки зрения высокой производительности.
Автор упустил один момент: вместе с макетами была гифка и подпись «This is a demo of how the chart app should work. It's made for JS, but the animations should be like this on all platforms». Понятно, что should != must, но кроме анимаций там и делать нечего. В чате то и дело все обсуждали реализацию этих самых анимаций и скидывали свои варианты. Даже если автор сразу не понял, что их надо бы сделать (а с ними и нетривиальные оси координат), то уж из тысяч сообщений, валившихся в чат можно было понять, что делают остальные и как минимум подвергнуть критике свою точку зрения. P.S. Сам участвовал, ничего не занял, но в моем случае все объективно)

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

Текст статьи слишком эмоциональный, и не соответствует публицистическому стилю.
После того, как Telegram несколько лет назад громко объявил о крутом конкурсе для разработчиков ботов с фондом $1млн, а потом так и не подвёл бОльшую часть итогов и не выплатил обещанных сумм, я даже не знаю, что люди ожидали от нового конкурса.

Но в любом случае тут хотя бы что-то смотрели и что-то оценивали, это уже прогресс.
Получается, это НЕ КОНКУРС РАЗРАБОТЧИКОВ, которые могут показать уровень своих компетенций через реализацию высокопроизводительных приложений / алгоритмов, а скорее КОНКУРС ДИЗАЙНЕРОВ? Или это максимум конкурс UI девелоперов, которые способны пользоваться стандартными средствами UI-проектирования, а так же попрогать в canvas на этом же UI?

Нет, это был не конкурс дизайнеров, задачи создать дизайн не стояло, была задача его реализовать. Более точно — создать работающий компонент в соответствии с макетами. То, что у вас на скринах показано, никак на это претендовать не может.

Рассыпанные по тексту смайлики, капс, «смешные» картинки и видео намекают, что он написан в основном на эмоциях от неудачи. Я могу посочувствовать, проигрывать неприятно, но подобный стиль мешает серьёзно воспринимать вашу критику судейства.
По мне так даже 1 критерия достаточно, для того чтобы не пропустить во второй тур: отсутствие какого либо сглаживания на графиках. Ну серьезно, 2019 год, и отвратительные зазубренные линии.
Ну и фатальный недостаток еще: компонент должен интегрироваться в нативный UI, OpenGL контекст, с костюмными кнопками совершенно не к месту.
Кхм…. Нигде не видно, что бы графики находились на одной общей «простыне» и скролились. Вместо этого мы видим отдельно нарисованные графики на одном экране. Тут возможно два варианта:

Все графики действительно находятся на одной, общей простыне и скролятся, но просто это визуально не показали на скетчах и всего на-всего не прописали явно в условиях соревнования
Графики каким-то образом переключаются. Каким образом не указано, а значит это «умолчание» и соответственно отдано на откуп разработчику. Он может реализовать это по своему усмотрению

В общем, команда Telegram, научитесь писать ТЗ, это вам еще пригодится ;). Серьезно.


Позвольте с вами не согласиться. В описании первого этапа есть конкретный абзац с требованием.
image

Да, именно :)
Но это условия первого этапа. А где такие же условия во втором этапе?
И что такое "one screen? Трактовать это можно двояко. Для нивелирования "недопониманий" и существуют скетчи. А что у нас нарисовано на скетчах?

Требования к юзабилити и гую появились уже потом, во втором этапе. Но нужно понимать, как появился второй этап. Если вкратце, то он плавно вытекал из первого этапа и основывался на результатах работы первого этапа конкурса


Но ведь вы сами пишите, что второй этап есть продолжение первого.

Имею ввиду то, что в первом этапе было выставлено сумбурное требование "one screen" рядом со скетчами, на которых и намека нету на сплошную "простыню" с группой графиков. Более того, условиями первого этапа было: скорость, производительность, размер приложения. Заметьте, ни слова о строгом соответствии дизайну. По этой причине, Телеграм по итогам первого этапа выпилил килотонну приложений которые не рисовали графики на одной, общей простыне. Были участники, которые все сделали по букве дизайна в первом этапе, но пролетели мимо, потому что не вытянули по производительности. И после, сделав оптимизацию своего кода уже во втором этапе, попали в топ 5. Но, были участники, которые сделали полную ставку на производительность изначально. Мое приложение самое маргинальное в этом плане, в нем сделано сознательное пренебрежение ко всему в пользу скорости. Однако доработать свое приложение во втором этапе, к новым требованиям "соответствие дизайну", как это некоторые сделали по отношению к производительности, в моем случае не представлялось возможным. Банально — объективно не хватало времени. Поэтому я продолжил действовать в том же направлении, которое было принято еще в первом этапе, просто для галочки, особо не надеясь выграть. Я понимал что мои шансы выиграть хоть что-то во втором этапе — 1 к 10. К слову, думать о написании этой статьи я еще начал до того как закончился второй этап конкурса :)
Веселый троллинг по делу — неплохое развлечение

А чартов было 5 в итоге )) Кроме того, в 5 чарте было 4 графика, что могло означать, что все-таки нужно показывать на одном экране их, а не все 5 чартов (chart == график).
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории