Войти

Или войди с помощью

Dev Story Quiz Alarm. История 18-летнего разработчика

Информатор avatar |

ТЕКСТ: ДАНИЛ ЯКОВЛЕВ Хочу поделиться своей историей разработки программы. Хотя я давно пользуюсь Mac, идея создания программы пришла нескоро. Уже не помню как, но в декабре 2011 года я наткнулся на Apple Developer Program. Меня сразу же привлекло то, что я могу самостоятельно начать разработку программы всего за 100 долларов. В добавку это стало отличным поводом обновить макбук (на белые макбуки нельзя установить систему новее, чем Leopard).

Буквально в течение недели появился целый список идей о возможных разработках. Идеи возникали на пустом месте, спонтанно. Затем последовал заказ ноутбука (новая модель как раз вышла в конце ноября 2011) и регистрация в программе разработчиков. Наступила самая нелюбимая часть дела: ожидание. К счастью, я присоединился к Apple Developer Program уже через 3-4 дня, виной всему были выходные. А ноутбук пришел уже ближе к Новому году.

Как только запустил макбук, я сразу стал скачивать Xcode – программу для разработки под iOS. После открытия программы меня настигло огромное разочарование. Я смотрел в монитор, как баран на новые ворота – настолько непонятным казался интерфейс Xcode. Желание создавать что-либо моментально пропало. Только после первых дней новогодних праздников я открыл Xcode снова.

Разработка

Я не буду сейчас говорить, какую программу я выбрал и почему, потому что хочу рассказать именно о процессе разработки и о своих ощущениях, которые были бы одинаковыми вне зависимости от моего выбора. Всё дело в том, что я практически не имел дела с языками программирования (если только Лого и Pascal на факультативах информатики в школе). Но я не унывал, потому что точно так же я начинал создавать свой первый сайт. Мои навыки html и php до сих пор не так велики, но своей цели я достиг. Побродив по интернету, я нашел и скачал очень полезную книгу для начинающих разработчиков (Стефан Кочан «Программирование в Objective-C»), да простят меня борцы с пиратством. Последнее издание было только на английском, а перевод на русский старых изданий показался некачественным. В итоге я почувствовал огромную гордость за себя, когда осилил около 500 страниц английского текста, полного компьютерной терминологии. Кстати, после прочтения книги я совсем не «прозрел» и стал писать программу, а лишь понял, что из себя представляет язык Objective-C.

Еще немного поисков в интернете, и, о чудо, передо мной предстает stackoverflow.com (это крупное сообщество разработчиков, готовых в любую минуту помочь коллегам решить трудную задачу при написании программы). Если бы не этот сайт, не писал бы я сейчас свою историю успеха. Большую часть новогодних праздников я, полный энтузиазма, сидел с ноутбуком дома и открывал для себя всё новые и новые возможности Xcode. Он, наконец, поддался, и я понял, что всё, оказывается, не так уж сложно.

В январе 2012 года мне исполнилось 18, я был учеником 11 класса (спасибо, кстати, моим родителям за поддержку и решение проблем с регистрацией в Apple Developer Program). Поэтому сразу же после новогодних праздников, а в моем случае – каникул, в процесс разработки вмешалась учеба. Однако я быстро привык к этому, а мои приоритеты неуклонно двигались в сторону программирования.

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

Через несколько месяцев, ближе к апрелю, «скелет» программы был готов. Наверняка была возможность ускорить процесс, но отсутствие опыта и желание устранить все возможные недостатки и ошибки существенно увеличило время разработки. Я взял паузу длиной в месяц – нужно было готовиться к всероссийской олимпиаде. В процессе подготовки папка «Документы» была по каким-то причинам удалена, а впоследствии очищена Корзина. К сожалению, вся программа лежала именно в этой папке. Я был глубоко удивлен, когда уже в начале мая я решил продолжить разработку и Xcode сообщил, что моего проекта не существует. Очень страшно было осознавать, что 4 месяца написания программы ушли коту под хвост. Через пару часов я вызволял файлы из пустой Корзины с помощью замысловатой программы (многие знают, но на заметку: после очищения корзины файлы каким-то образом еще сохраняются в памяти на некоторое время). К счастью, мне удалось восстановить большую их часть. Вздохнул с облегчением.

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

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

Первоначальная версия названия – Question Alarm. В дальнейшем оно показалось мне недостаточно подходящим. Приложение Logos quiz принесло идею – Quiz Alarm. По моему мнению, коротко и ясно. До сих пор не знаю, о чем думают носители английского языка при встрече с моей программой.

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

Как и любой будильник, мой должен был иметь приятные мелодии звонка. После тщательного выбора я выбрал 20 мелодий (из них мне до сих пор нравятся только две – Acoustic и Orchestral, увидите при знакомстве с программой), лучшее из доступного.

Ну и, конечно же, иконка. Идея появилась чуть ли не вместе с идеей о будильнике, но её создание я постоянно откладывал на потом. Нарисована была в фотошопе за десять минут, сам не ожидал, что она будет выглядеть достаточно прилично. А в иконке всего лишь знак вопроса, восклицательный знак, два круга, наложенных один на другой, и аккуратно подрисованные звонки.

Дело близилось к концу, я уже успел закончить школу. Для как можно большего охвата аудитории заказал переводы на несколько языков. Приводил программу в товарный вид, тестировал, устранял ошибки. Вдруг на одном сайте увидел сообщение о лимите в 20 мегабайт, а из-за картинок (в формате png, который так любит Apple) и мелодий программа еле укладывалась в 100! Решение – сократил количество мелодий до 12, сэкономил на качестве и картинок, и звуков. Около 18! И опять я вздохнул с облегчением. Позже, как выяснилось, лимит повысили до 50 МБ, но я решил ничего не менять.

И вот я отправляю на рассмотрение свою программу. Опять моя нелюбимая часть: ожидание. Оно было достаточно долгим, около полутора недель программа находилась в очереди на проверку. В один прекрасный день, в час ночи я получаю сообщение о том, что мою программу начали проверять. Через 2 часа она уже была в App Store. Это подвело конец всем, если так можно сказать, мучениям.

Мораль: создание программы – крайне интересное дело. Не важно, умеете вы это делать или нет, попробовать всегда стоит. Даже ради удивленных возгласов знакомых: «Да? Это действительно твоё имя в App Store? Как тебе это удалось?» На протяжении полугода я никому не рассказывал о том, чем я занимаюсь. И это того стоило. Несмотря на коммерческую составляющую, я бесконечно рад тому, что решил заняться разработкой. Надеюсь, что это не последняя моя программа.

Что же это за будильник?

Давно уже пора начать рассказывать о своей программе. Quiz Alarm – очень простой в использовании будильник. Достаточно установить 5 параметров для того, чтобы будильник сработал корректно. Видел некоторые отзывы к другим будильникам, есть жалобы на то, что он иногда не срабатывает. В моей программе, скорее всего, такого не встретится, потому что я отказался от использования различных уловок для расширения функционала, которые не приветствует Apple.

А вот как вам придется отвечать на вопросы:

Хочу заметить, что вы можете изменить типы вопросов и сложность вопросов.

Легкие арифметические вопросы – это примеры только на сложение и вычитание. К средним и сложным добавляется умножение и деление соответственно. Что касается вопросов с картинками, легкие вопросы – что-то вроде теста с одним правильным вариантом ответа. Средние – ответ будет сразу после вопроса, но часть букв скрыта. А вот на сложные вопросы придется отвечать самому.

Также можно поменять и количество вопросов, которые вам будут заданы. Советую ставить побольше, потому что 1-2 вопросов мало для того, чтобы заставить еще спящий мозг работать. Проверено на себе, будильник достаточно часто помогает проснуться (или, во всяком случае, привести к состоянию бодрости).

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

Вот таким получился мой дебют в App Store.

Затем вышла версия для iPad, из-за картинок размер программы подобрался к 50 мегабайтам. Надеюсь, что это не станет существенной преградой для покупателей. Также улучшено качество мелодий и картинок. В планах создание бесплатной версии с ограничением некоторых функций.

Рад выслушать все ваши пожелания и ответить на ваши вопросы.

iPhone + iPad: $0.99 [iTunes link]

Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
60
undefined
iPhones.ru
ТЕКСТ: ДАНИЛ ЯКОВЛЕВ Хочу поделиться своей историей разработки программы. Хотя я давно пользуюсь Mac, идея создания программы пришла нескоро. Уже не помню как, но в декабре 2011 года я наткнулся на Apple Developer Program. Меня сразу же привлекло то, что я могу самостоятельно начать разработку программы всего за 100 долларов. В добавку это стало отличным...

Войди и оставь комментарий

Или войди с помощью

<- Назад Забыли пароль? Войти
  1. KAIL_one avatar
    KAIL_one 15 ноября 2012
    0

    Хех. На белом макбуке Lion стоит. 2008 год

    KAIL_one avatar
    KAIL_one15 ноября 2012
    0

    @KAIL_one, Прочитал статью. Очень понравилась история. Тоже, как Вы, не знаю языка программирования. Хотел что-то вроде Donkey для себя сделать, проверить себя. Но так и не дошли руки)

    Войди на сайт, чтобы ответить
    Ответить
  2. Cher avatar
    Cher 15 ноября 2012
    0

    А администрация сайта знает, что “касперский” не дает зайти на сайт? Пишет, что этот сайт угрожает компьютеру.

    Артур Малосиев avatar
    Артур Малосиев15 ноября 2012
    0

    @Cher, на что ругается?

    BaGGa avatar
    BaGGa15 ноября 2012
    0

    @Артур Малосиев, Подтверждаю, тоже самое время от времени бывает, но у меня не Касперский , а ESET. Что пишет не вспомню, но в браузере блокируется страница и все.

    Sergio avatar
    Sergio16 ноября 2012
    0

    @Артур Малосиев, Доктор веб также блокирует.

    IVAn Dealer avatar
    IVAn Dealer16 ноября 2012
    0

    @Артур Малосиев, yandex.ru тоже ругается http://db.tt/RBnOaHjH

    Артур Малосиев avatar
    Артур Малосиев16 ноября 2012
    0

    @IVAn Dealer, это Софос нас не проиндексировал заново :(

    sklukin avatar
    sklukin16 ноября 2012
    0

    @Артур Малосиев, Предупреждение в новом яндекс.бразуере

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

    Более подробную информацию об угрозе или безопасную копию сайта можно посмотреть на странице с полными данными о заражении.

    http://yandex.ru/infected?l10n=en&url=http%3A%2F%2Fwww.iphones.ru%2FiNotes%2F263600

    Войди на сайт, чтобы ответить
    Ответить
  3. ifreto avatar
    ifreto 15 ноября 2012
    0

    стандартный будильник можно отсрочить на 10 минут кнопкой power, а что произойдет, если нажать её здесь?

    и вопрос по теме: реально ли уменьшить отсрочку в стандартном будильнике?

    dyakovlev avatar
    dyakovlev15 ноября 2012
    0

    @ifreto, Чтобы с наибольшей вероятностью довести пользователя до ответов на вопросы, будильник будет звенеть каждую минуту до тех пор, пока пользователь не откроет программу.

    ifreto avatar
    ifreto15 ноября 2012
    0

    @dyakovlev, вот это хорошо.

    dyakovlev avatar
    dyakovlev15 ноября 2012
    0

    @ifreto, Да, только вот если оставить устройство где-нибудь в одиночестве, оно будет играть мелодию постоянно (до тех пор, пока устройство не разрядится, например)

    ifreto avatar
    ifreto16 ноября 2012
    0

    @dyakovlev, кстати, ещё вопрос, чем отличается “Музыка” от “Звук”?
    и было бы неплохо реализовать прослушивание песни из медиатеки, перед тем как ставить её на будильник.

    dyakovlev avatar
    dyakovlev16 ноября 2012
    0

    @ifreto, @ifreto, По правилам, которые установлены для разработчиков, звук уведомления должен быть определенного формата и не более 30 секунд длиной. Таким образом, приходится разделять мелодии, которые Вы слышите до открытия программы и после.

    Другими словами, Вы просыпаетесь от мелодии “Звук”, а на вопросы отвечаете уже с мелодией “Музыка”. К сожалению, нельзя установить песню из медиатеки в качестве мелодии уведомления.

    Спасибо, подумаю над этим.

    ifreto avatar
    ifreto16 ноября 2012
    0

    @dyakovlev, всё, разобрался – и тут же просьба: возможность не ставить ничего для “Музыка”, не хочется весь дом будить пока я соображаю сколько будет 65 – 0 =D
    ах да, в арифметических задачах сразу бы цифровую клавиатуру показывать.

    dyakovlev avatar
    dyakovlev16 ноября 2012
    0

    @ifreto, У цифровой клавиатуры, насколько я знаю, нет кнопки “Готово”. Хотя, возможно, что я ошибаюсь.

    Я хотел сделать это дополнительным стимулом к ответу на вопросы. Иначе просто можно закрыть программу и спать дальше :)

    65-0 – одна из проблем, которую я забыл исправить в обновлении. Считайте, с утра Ваш день начинается удачно :)

    ifreto avatar
    ifreto16 ноября 2012
    0

    @dyakovlev, стимул хороший, согласен, но было бы неплохо регулировать звук у этого стимула :)
    спасибо за ответы:)

    K.Vasiliev avatar
    K.Vasiliev15 ноября 2012
    0

    @ifreto, что заметил, у меня iPhone продлевает не на 10 минут а на 9 оО

    ifreto avatar
    ifreto15 ноября 2012
    0

    @K.Vasiliev, Оо я уже думал, я свихнулся. а там реально 9 минут, а не 10 =D

    Войди на сайт, чтобы ответить
    Ответить
  4. Alexanderrrr avatar
    Alexanderrrr 15 ноября 2012
    0

    хммм… просто интересно, а сколько автор денег получает, скажем, за неделю?

    Splash.Dmg avatar
    Splash.Dmg15 ноября 2012
    0

    @Alexanderrrr, да, тоже очень интересно, как с продажами обстоят дела? Это ведь самая главная часть любой dev-story =)

    dyakovlev avatar
    dyakovlev15 ноября 2012
    0

    @Splash.Dmg, что касается продаж, то с этим дела не очень хорошо :)
    Очень тяжело раскрутить приложение без вложений, эта статья, надеюсь, поможет исправить ситуацию.

    Войди на сайт, чтобы ответить
    Ответить
  5. inferno3028 avatar
    inferno3028 15 ноября 2012
    0

    iPhone / iPad. Новости и советы
    Сайт может угрожать безопасности вашего компьютера или мобильного устройства
    Новости и обзоры iPhone. Мелодии, картинки, программы. Советы пользователей и обсуждения на форуме.
    iPhones.ru
    яндекс пишет

    Войди на сайт, чтобы ответить
    Ответить
  6. alefut avatar
    alefut 15 ноября 2012
    0

    А интересно, есть будильник с запуском радио? Конечно на iPhone. А на вопросы отвечать не хочу. Тем более для школьников. И ещё более доя взрослых. ” Доброе утро ” услышать приятно. Мягкую музыку. Новости. Так что там с интернет радио?

    alefut avatar
    alefut15 ноября 2012
    0

    Погуглил и нашёл. За 2 бакса. А бесплатный?

    Артур Малосиев avatar
    Артур Малосиев15 ноября 2012
    0

    @alefut, Alarm Clock Radio Free

    Войди на сайт, чтобы ответить
    Ответить
Помни о правилах — если начал оффтопить, то не удивляйся потом.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.