Dev Story Poker Tools. История о покере

ТЕКСТ: АЛЕКСАНДР АФАНАСЬЕВ Здравствуйте, читатели iphones.ru. Хочу поделиться историей создания нашего первого приложения для iOS — Poker Tools.

Я не самый искушенный игрок в покер, можно даже сказать, новичок. Идея создания набора полезных инструментов для любителей покера возникла после просмотра приложений покерной тематики — такого, которое бы мне действительно понравилось, не нашлось. Есть отдельно расчет вероятностей, таймеры, «Руки», их много, но приложений, включающих в себя все нужные фишки, к сожалению (или к счастью), нет.

Поделился идеей с коллегами по цеху и, как оказалась, подобная идея созревала и у нашего UX/UI дизайнера. Нам показалось, что мы сможем сделать такое приложение быстро и без особых трудностей, но все оказалось не так просто.

Начало

Было принято решение разрабатывать для нескольких платформ. Начали с iPhone/iPod, потому что именно там самые платежеспособные покупатели.

Первым делом мы составили список необходимых на наш взгляд функций, которые должны входить в приложение:

  • Вероятность выигрыша — игрок вводит свои карты, и программа рассчитывает шансы на победу.
  • Таймер — напоминает о необходимости повышения ставок через заданный интервал времени.
  • Судья — игроки, претендующие на победу, вводят свои карты, и программа показывает кто из них выиграл. Незаменимый инструмент для новичков.
  • Руки — справочник покерных комбинаций. Тоже весьма полезная функция для начинающих.

Разработка

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

Руки

Разработку начали с инструмента «Руки», т.к. именно его дизайн был готов раньше. Как ни странно, реализовать необходимые эффекты анимации оказалось делом не слишком сложным, однако после проверки на реальном устройстве стали очевидны серьезные проблемы с производительностью, которые пришлось дорабатывать.

Таймер

Таймер сделан максимально простым и понятным. Время раунда и начальные ставки — все, что нужно подавляющему большинству игроков. Оповещение о новом раунде очень громкое, кроме того, приложение передает уведомление в Notification Center айфона. Кстати, звуковой сигнал мы покупали на сайте istockphoto.com.

Очередь дошла до основного функционала программы – расчета вероятностей победы и шансов собрать определённую комбинацию. Предстояло много работы в области тервера, поэтому к разработке подключился наш программист-математик, которого, по его словам, «всегда переполняло чувство эстетического наслаждения при работе с Теорией Вероятности». Вообще, такие масштабные и сложные задачи, как наша, могут иметь множество подходов к решению, и только некоторые из них удобны в реализации. На помощь пришел метод Монте-Карло. Его принцип: если проводить очень-очень много случайных испытаний, то их усредненный результат будет близок к истинному значению. Этот способ намного быстрее исчерпывающего перебора всех комбинаций и как нельзя лучше подходит для получения приемлемого качества результата. Существуют различные библиотеки, но все они, как правило, защищены GPL-подобными лицензиями. На разработку своей ушло бы слишком много времени.

Читайте также  App Store+HD Tasty Planet Back for Seconds: сожрать всё!

Встала задача найти алгоритм или его прототип без всяких GPL, возможно, не самый быстрый, но работающий, а затем развивать его и дополнять под свои нужды. Прототип был найден на javascript и стал основой для алгоритма, реализованного на Objective-C.

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

Главный камень преткновения для подобных приложений — ввод карт. Он должен быть максимально быстрым, удобным и понятным. Мы решили эту проблему, создав карточную клавиатуру: экраны мастей переключаются смахиванием, фокус ввода переводится автоматически, по желанию клавиатура схлопывается после ввода префлопа, флопа, терна и ривера. В реализации клавиатура оказалась достаточно сложной. Анимация и взаимодействие большого количества видов, их контроллеров, эффект раскрытия, имитирующий раскрытие папок домашнего экрана IOS, но со своими тонкостями… Все это заняло большую часть времени разработки. Обычного UIKit тут уже явно не хватало, и в дело пошел более сложный, но и более могучий Core Graphics. Потребовалось создать несколько различных версий этого компонента, прежде чем был достигнут желаемый результат.

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

Это был наш первый нативный проект для IOS, поэтому разбираться пришлось в ходе работы. Спасибо лекциям от Paul Hegarty – освоить разработку на новом языке для незнакомой платформы оказалось проще простого. Ну и конечно Stackoverflow, без этого ресурса, вероятно, многие проблемы так и остались бы неразрешенными.
Вся работа велась на MacMini, в котором практически сразу родные 2 Гб памяти были заменены на 8 Гб из соседнего магазина. Из коробки разрабатывать на нем было совершенно невозможно.

Тестирование

Как только альфа-версия была готова, мы сдвинули столы и всем офисом сели играть в покер, чтобы протестировать наш продукт «в живую». Посидели весьма продуктивно – выявили несколько недочетов и багов, которые учли при реализации бета-версии:

  • Ускорили анимацию сворачивания/разворачивания клавиатуры, ввода карт, раскрытия рук.
  • Добавили настройку автоматического схлопывания клавиатуры после ввода рук, флопа, терна и ривера – это избавляет игрока от необходимости тратить время на самостоятельное сворачивание клавиатуры.
  • Добавили автоматический возврат на страницу «Шансы» после выбора количества игроков.
  • Полностью переработали изображения карт для наилучшего отображения на небольшом экране.

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

Читайте также  Сотрудница Foxconn проговорилась о дате релиза iPhone 5

Маркетинг

К этому большому вопросу мы подошли тоже основательно. Много информации по этой теме удалось почерпнуть, читая форум iphones.ru (пожалуй, это основной источник) и статьи на habrahabr.ru.
Вот основные моменты, которые я выделил:

  • Промо-сайт pokertoolsapp.com. Он выполняет важные функции: содержит промо-материалы, необходимые для написания обзоров и знакомит пользователя с приложением.
  • Перевод приложения на разные языки повышает лояльность покупателей к продукту. Мы перевели приложение и сайт на 12 языков. Мы пользовались услугами профессиональных переводчиков-носителей языка на сайте onehourtranslation.com. Рекомендую заказывать перевод сразу с корректурой, потому что ее выполняют переводчики с высоким рейтингом, что гарантирует высокое качество результата.
  • Промо-материалы должны быть очень качественными. Логотип и скриншоты в большом разрешении. Такие материалы обычно помещают в раздел «Press kit».
  • Социальные сети нужны для быстрого контакта со своими покупателями, решения их вопросов и популяризации продукта.
  • Очень классно, если есть видео ролик, демонстрирующий возможности приложения. О том, как мы его снимали, читайте ниже.
  • Первый поток покупателей приходит из раздела «Новые» — это длится 2-3 дня, и за это время нужно делать всё, чтобы о приложении узнали, стали писать и покупать.
  • Сразу после отправки приложения в itunesconnect нужно готовить апдейт, т.к. после каждого апдейта Apple дает дополнительно 50 промо-кодов. Отправлять апдейт можно сразу после публикации приложения в магазине, чтобы через неделю получить новые коды.
  • При использовании iAd важно понимать, что реклама как таковая себя не окупит, но за счет резкого скачка вверх и попадания в ТОПы начнутся естественные продажи, которые должны окупить расходы на рекламу и принести прибыль.
  • Можно продвигаться, если снизить цену на приложение. Аудитория сайтов типа AppShopper начинает интересоваться такими приложениями.
  • Важен тщательный подбор ключевых слов. Если разделить их запятыми без пробелов, то влезет больше запросов — под них выделено всего 100 символов. Также не стоит дублировать название приложения — по этому ключу оно уже будет находиться.
  • Помимо основной, можно указывать все возможные дополнительные категории — это повысит шансы выйти в топ хоть в каком-то разделе.
  • И, конечно, нужно рассылать промо-материалы сайтам, занимающимся публикацией обзоров — пожалуй, это самый эффективный способ продвижения.

Ready For Sale

Этого статуса с нетерпением ждет каждый разработчик, и мы не были исключением. Приложение мы отправили на рассмотрение 17 августа 2012 и назначили днем публикации 1 сентября. Заложили чуть больше двух недель, чтобы успеть подготовить все необходимые промо-материалы. Заветное «Ready For Sale» высветилось 29 августа. Мы ждали почти две недели — это долго. На форуме пишут, что рассмотрение обычно занимает неделю.

Читайте также  Samsung: в нашем планшете дисплей не AMOLED, но все-таки Super

Все было готово к релизу. Вечером 31 августа мы все ждали долгожданного момента выпуска приложения. В 17:00 я нашел наше приложение в новозеландском AppStore, и тут меня ждало разочарование: Apple выложили приложение 1 сентября, но дату публикации поставили 29 августа (дата аппрува), поэтому наше приложение так и не засветилось в разделе «Новые». Только спустя 5 дней дату публикации поменяли на 1 сентября. Конечно же, ни о каких стартовых продажах не может быть и речи.

Видео ролик

Создание ролика — отдельная история. Стоимость работы профессионального оператора оказалась довольно высокой, и мы решили обойтись своими силами. Из оборудования: Canon EOS 1100D, штатив, лайтбокс, переделанный по ходу в софтбокс, и термоклеевой пистолет для фиксации айфона. Тщательно выбирали ракурсы, долго ставили свет. Отсняли общий план в первый день, а ночью внезапно приключился ливень и в помещении протекла крыша. Это была катастрофа! Намокли карты, лайтбокс, айфон вообще лежал в луже. Но нужно отдать должное Apple — аппарат не утратил работоспособности. Все просушили, перенесли в сухое место и продолжили с прежним энтузиазмом. На подбор энергичной музыки и монтаж ушло еще 3 дня. Роликом мы остались очень довольны, он стоил затраченного времени.

Конец

Результаты долгой и кропотливой работы позволяют собой гордиться: в категории «для любителей» программа покрывает весь необходимый функционал, а в плане юзабилити и дизайна наше приложение, на мой взгляд, выгодно отличается от аналогов.

Этот раздел логичнее было бы назвать «Начало», потому что история нашего приложения только начинается, и уже есть план его дальнейшего развития. Если Poker Tools будет пользоваться популярностью среди пользователей iPhone, то мы выпустим версии и для других платформ.
Ну и напоследок немного промо-кодов специально для пользователей iphones.ru:

4R9LTR49RAP4
XWFMRR3FTE67
PF6JP4N3L7PH
RP9MRP7MK96A
E97WH9HNKJYK
63W94KL4W4W4
WJ93T73WAJLK
NTJJ6MJ4NAA3
3L7KLR3PMA4H
J69WET3M3NFM

Цена: $2.99 [iTunes link]

Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
Источник: iphones.ru

TRAVEL