суббота, 3 апреля 2010 г.


Нарисовал иконку для своего приложения. Возможно, начинать приложение с иконки и дурной тон, но мне так захотелось. Думаю, что видно, что приложение будет связано с твиттером. И я напишу его в виде скриптового приложения, а затем выложу исходники скрипта здесь, в моем блоге, с описанием того что и как там устроено. Надеюсь получится интересно...
суббота, 27 марта 2010 г.
Недавно я решил что буду в своих проектах следовать плану: Краткий план для новичков в шароваре. Можно, конечно, сразу писать нормальные десктопные приложения на Delphi. Но меня привлекает идея скриптовых приложений с HTML интерфейсом. Я уже пробовал писать такие приложения - результат получился вполне презентабельный:


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

И вот теперь я решил подойти к разработке таких приложений более основательно. Теперь у меня есть небольшой фреймворк, который позволяет использовать в скриптовых приложениях: многопоточность, подключаемые протоколы для динамической генерации html-контента (можно сгенерировать изображение в памяти и затем его показать в браузере прямо из памяти), работа с изображениями, http, pop3, xml, ресурсами приложений, бинарными данными и т.п. Данный фреймворк доступен в 2-х вариантах: как COM-библиотека и в EXE-модуле сугубо для использования объектов внутри приложениия.

Для таких скриптовых приложений я выбрал аббревиатуру JSA (JavaScript Application). Приложения представляют из себя zip-архив с расширением jsa. В архиве должны присутствовать файлы: app.js - основной скрипт в котором расположен код приложения, app.ini - информация о приложении (название, издатель, версия и т.п.), app.html - html-интерфейс приложения, а так же все необходимые дополнительные файлы: css, графические файлы и файлы данных.

Исполняться эти приложения будут следующим образом: модуль для выполнения приложений jsa.exe загружает jsa-приложение, создает окно браузера, инициализирует скриптовый движок и объекты фреймворка и выполняет скрипт расположенный в app.js, а затем открывает файл app.html в браузере. В файле app.js располагаются основные процедуры по работе с приложением, а взаимодействие с html-интерфейсом выполняется через свойство External доступного из скрипта html-интерфейса.

Jsa.exe кроме выполнения jsa-приложений переданных параметром в командной строке может выполнять неупакованные в zip-архив приложения, для этого достаточно передать в качестве параметра путь к любому из файлов приложения расположенных в отдельном каталоге. Это может быть удобно при разработке jsa-приложений. Так же если в Jsa.exe включить ресурс с jsa-приложением под именем app, про при запуске такого измененного Jsa.exe будет выполнено приложение из ресурсов. Таким образом, можно разработать свое jsa-приложение и распространять его в виде самодостаточного приложения.

Какие же приложения я планирую выпустить на этой технологии? Во-первых связанные с графикой: создание аватаок, изменение размеров изображений для публикации, нанесение логотипов на изображения и т.п. Во-вторых приложения для автоматизации задач в SEO: генерация сайтов-сателлитов, публикация ссылок в каталогах и сервисах соцзакладок, работа с твитером, почтой и т.п. Так же есть давняя идея по автоматизации Фотошопа.

Есть еще один вариант использования этой технологии, базовый функционал пишется в jsa-приложении, но интерфейс загружается с реального веб-сайта, т.е. мы можем сделать подобие веб-сервиса, но вся работа будет выполняться на компьютере пользователя. В таком варианте возможна монетизация приложения за счет рекламы, что может быть хорошим вариантом для бесплатного приложения.
четверг, 25 марта 2010 г.
Сейчас появилось много веб-приложений которые ничуть не уступают десктопным. Так почему бы не делать десктопные приложения на этой же технологии. Adobe AIR как раз это и позволяет делать. Но речь не об AIR. Мне нравится JavaScript и для его использования в в своих приложениях я написал некоторое количество базовых объектов - получилось что-то вроде небольшого фреймворка для создания скриптовых приложений с HTML интерфейсом.

Есть большая область задач для решения которых достаточно небольшого скриптового приложения, это могут быть задачи обработки графики, SEO-инструменты и т.п. которые могут обойтись парой десятков строчек JavaScript кода. Писать полноценное десктопное или веб приложение для подобных задач вроде бы и ни к чему, но быстрое решение с аскетичным интерфейсом выполняющее четко поставленную задачу пригодилось бы. Поэтому пришла в голову такая мысль - JavaScript код и HTML пакуется в zip-архив и пишется в ресурсы универсального exe-модуля который и обеспечивает функционирование мини-приложения. Таким образом получаем самостоятельное приложение которое не нуждается в установке и сразу готово к запуску.
пятница, 19 февраля 2010 г.
Собирался уже идти спать, но пришла мысль по поводу хранения настроек и регистрационных данных программы, вернулся записать чтоб не забыть. Лично мне хотелось бы хранить в настройках программы и регистрационную информацию и время последнего запуска и количество запусков для триала и вообще для статистики. Но в открытом виде хранить это как-то не очень красиво, любой школьнег подправит что ему надо и усё... Поэтому надо бы шифроваться. Как вариант - бинарный формат, но с ним не очень удобно работать из программы и совместимость версий будет проблемой если делать на основе обычной структуры данных. Удобно работать с INI или с XML и с версиями у них проблем нет, но они легко читаются и могут быть изменены без особых проблем в любом текстовом редакторе. Поэтому делаем так:
1. храним настройки в INI/XML
2. при чтении/записи файлов настроек файл просто его шифруем/дешифруем, а можно еще дополнительно ZIP-ануть чтоб места меньше занимал.
Периодически балуюсь с внедренным IE контролом и скриптами, особенно интересно работать с JavaScript и свойством External через которое можно выставить функции приложения наружу. Об использовании этого я еще выскажусь позже.

А сейчас про использовании IE-контрола при активации продукта:
1. После ввода ключа, продукт просит активацию.
2. При активации открывается окошко с внедренным IE и выполняется переход на страницу активации.
3. На странице активации выполняется JavaScript который собственно и выполняет активацию продукта, это может быть, например, вызов набора функций самого же приложения для создания кода с привязкой к HardWareID. Иными словами в самом приложении имеется только код проверки активации, но не готовая функция создания активации, ее роль выполняет набор вызовов функций на странице активации.

Разумеется все это легко ломается крякерами, но я вижу некоторые дополнительные плюсы:
- можно блокировать некоторые ключики на сайте (разумеется от генератора активаций это не спасет, но все же).
- на странице можно предложить купить более новую версию продукта со скидкой или другие свои продукты
- можно выложить ключики продукта в открытый доступ, а на странице активации повесить SMS-замок

Короче придумать можно много еще чего...
У меня сложилось стойкое впечатление, что новичкам (да и наверное не только им) сейчас нужно действовать по следующей схеме:

1. берем наиболее понравившуюся идею из своего списка (не говорите, что у вас нет такого списка, пусть даже мысленного — НЕ ПОВЕРЮ)

2. реализуем идею как можно в более упрощенной форме, главное тут чтоб софт выполнял свою функцию, интерфейс вылизывать не надо, оптимизировать производительность тоже — зачем тратить время на то, что возможно не нужно пользователю.

3. программу делаем как free, либо если хочется сразу денег ставим простенькую защиту — пусть ломают — крякеры тем сами нам помогут своими кряками распространению программы.

4. создаем сайт одностраничник на простом бесплатном шаблоне, например можно взять с www.freecsstemplates.org/ и обязательно ставим статистику посещений

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

6. хелп пишем на сайте очень коротенечко и из программы открываем страницу своего сайта.

7. сабмитим свое произведение на макимальное количество сайтов.

8. берем следующую идею из своего списка и переходим к пункту 2, мониторя по статистике популярность или не популярность выпущенной программы.

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

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

Лично у меня плохо получается следовать этим правилам — у меня болезнь вылизывания кода и интерфейса — перфекционизм — надо как-то с этим бороться. Никто не знает как? :)

Social

Popular

Технологии Blogger.

Постоянные читатели