Показаны сообщения с ярлыком первая программа. Показать все сообщения
Показаны сообщения с ярлыком первая программа. Показать все сообщения

воскресенье, 4 июля 2010 г.

Первый блин комом

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

Кажеться, только вчера я начал изучать Objective-C и переписывать первые примеры Хелоу Ворлды. Как буд-то вчера, я написал первый скелет своей первой программы. Это был прототип iDharmaClock. А сегодня уже приложение подошло к своему финальному этапу жизни.

За две недели продаж, iDharmaClock заработала чуть больше $50. Это считается провалом. Как говорится - первый блин комом. Но для меня этот ком - ценнейший опыт. Я очень многому научился, делая, казалось бы, элементарные часы/будильник.

Что было сделано неправильно:

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

во-вторых, я мало внимания уделил рекламе своего приложения. Хоть я и постарался выложить информацию о программе во все публичные места - этого было недостаточно. Хорошо было-бы пропиарится на сайтах фанатов сериала ЛОСТ, но я побоялся правообладателей сериала и торговых марок.

на Хабре, пост про iDharmaClock раскритиковали в большей части из-за платности приложения. Нужно было сделать как @zyafa: в первые сутки поставить цену - бесплатно, а потом уже повысить цену.  Но это все я уже постараюсь учесть при выпуске следующего приложения :)

пятница, 11 июня 2010 г.

Пишем себе часики для iPhone Часть 1. Основа всех часов

Основой всех часов является повторение определенного действия через заданное время. Итак, какой главный принцип работы наших часов? Правильно, это метод NSTimer который запускает таймер.


NSTimer *myTicker = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];

Функция showActivity запускает проверку времени. У меня в часах есть возможность отображать секунды (по умолчании этот режим выключен). При каждом вызове функции showActivity мы обновляем переменную секунд, добавляя к ней 1. Далее проверяем секунды и если секунды равны 60 то обнуляем переменную и запускаем функцию смены минут.

Обратите внимание на параметр repeats:YES который указывает, что функцию showActivity нужно запускать повторно.

Параметр scheduledTimerWithTimeInterval:1.0 задает время через которое фунцкия будет запускаться заново.

Если вы захотите остановиь наш таймер, то нужно вызвать метод [myTicker invalidate]

Пишем себе часики. Часть 0

Раз я вам обещал, значит сделаю :) Ну что же, будем писать себе часики? 

Я не буду здесь писать весь код программы, его получилось немного дофига :) Выложу просто архив с проектом. Каждый желающий может его скачать и скомпилировать для себя. 
Буду постепенно описывать основные принципы и алгоритмы работы. Если у кого-то возникнут вопросы, задавайте их в комментариях или же мне в твиттер/джаббер/почту.

Изначально, было задумано описывать все шаги создания программы, но я как-то упустил этот момент. Вот только увлекаюсь какой-то идеей и забываю обо всем на свете. Опомнился когда уже было поздновато. Поэтому буду описывать функции - какая за что отвечает и что делает. А вы смотрите код и все поймете. 

Код, конечно, выглядит ужасно. Сейчас я бы многое сделал по другому. Вы сильно не пугайтесь :)

Ну вот и ссылка на сам архив проекта iDharmaClock

А вот еще создал репозиторий в гугл.код и если буду что-то обновлять то там будут все обновления: https://code.google.com/p/idharmaclock/

пятница, 7 мая 2010 г.

iDharmaClock видео на конкурс

Вот тут смонтировал видео для конкурса iAppContest


Видео, конечно, не показывает всех возможностей приложения, но зато показывает саму суть, доносит мэседж :)

четверг, 22 апреля 2010 г.

Обновление бета версии DharmaClock

Немного доработал часики:

  1. словил ранне не обнаруженные утечки памяти
  2. исправил некоторые глюки с переворотом цифр после возвращения со страницы будильника
  3. посте включения сирены будильника цифры сменяются иероглифами
  4. для того, чтобы выключить будильник, теперь нужно выбрать правильную последовательность чисел
  5. немного изменил нижний фон пластинок циферок
Вот немного новых скриншотов:



Кому интересно попробовать часики у себя на iPhone вот ссылка на ДепозитФайл

Если кто попробует, то буду очень благодарен за комментарии.

понедельник, 12 апреля 2010 г.

DharmaClock beta - первая публичная бета

Вот решил выложить публичную бэту DharmaClock.
Изначально, анимация переворачивания цифр была реализована сменой картинок. Но это привело к большому размеру приложения около 5 мегабайт, что для часов - очень много. Было решено переделать механизм переворота, сделать переворот с одной картинкой и уменьшение ее размера программно. Тут на помощь пришли люди хорошие из сообщества iPhoneDevCamp Ukraine и особенно TT KILEW. Они подсказали некоторые детали. Хотя анимация отображается кривовато, постараюсь это выправить.
И вот, что мы имеем на данный момент:

  • размер уменьшился с 5 мегабайт до 1.3
  • возможность включить отображение секунд*
  • возможность выставить будильник на определенное время
  • за минуту до будильника включается предупреждающий сигнал, играющий раз в 4 секунды
  • за 10 секунд до будильника включается серена. Еще сделал чтоб белые таблички менялись на красные, но пока отключил, потому как не нравятся мне те, что я сделал.
  • после выставления будильника становится доступна кнопка отключение будильника, под ней написано время на которое наведен будильник
Что еще не готово, так это обратный таймер. Вобщем, ради него я это все и затевал, но еще не реализовал. Вот сейчас этим как раз и займусь :)

Секунды* я сделал для тестового режима, потому и не оформлял их красиво. Оказалось очень сложно смотреть на часы и ждать когда сменятся цифры, если не видеть секунды. Попробуйте :) я и не представлял, что это так сложно. Потому функция работает в тестовом режиме.

Часики можно запустить только на джейлбрейкнутых iPhone.

Буду благодарен за критику в комментариях. 

четверг, 1 апреля 2010 г.

Пишем свою первую программу для iPhone

Решил я написать урок для самых-самых начинающих iPhone-программистов. Простейший Hello World! уже банально да и маловато. Мы же хотим все и сразу. Вот и создадим мы программу в которой уже научимся создавать события выполняемые по нажатию на кнопку.

суббота, 27 марта 2010 г.

Dharma Clock - готовность 70%

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

Чуть позже опишу весь процесс разработки (если пообещаете меня не гнобить за код)

Вот хочу показать как выглядят часики:

суббота, 13 марта 2010 г.

Идея первой программы

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

1) во первых дизайн хочу сделать в стиле часов с металическими пластинами как в сериале LOST. Точнее хочу сделать 2 варианта. Один вариант "Ночной" это в таком стиле:

А "Дневной" вариант хочу сделать в стиле часов из темы для HTC Diamond: 

2) Во-вторых, хочу будильник-таймер. Режим у меня такой, что вставать утром на работу мне не нужно, ложусь когда удобно мне. Но организм иногда может себе позволить спать не 6 часов как удобно мне, а например 10, а это уже совсем не позволительно. Поэтому ложась спать я просто ставлю таймер, например, на 6 часов и через это время включается будильник.
3) Ну и третий режим - просто часы именно в "дневном" стиле.