Pull to refresh

Math Rocks! От идеи до результата

Reading time3 min
Views903
В этой статье хочу немного рассказать о своем первом серьезном проекте для Windows Phone 7 под названием Math Rocks!.

image

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

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

Идея


Те, кто хоть немного следил за моими публикациями (в том числе и на хабре), могли заметить, что о проекте с реализациями математических методах я уже писал. Причем первые публикации были посвящены Windows Forms, WPF и Silverlight версиям программного обеспечения. Не лишнем будет напомнить, что проект лежит в open source уже несколько лет. Поэтому после выхода Windows Phone решение о портировании библиотеки на новую платформу было очевидным.


Что внутри?


На сегодняшний день приложение включает в себя такие области и методы:
  • решение нелинейных уравнений;
    • точные методы решения квадратных, кубических, биквадратных уравнений;
    • численные методы: метод секущих, Ньютона, простых итераций, Вейстейна;

  • решение дифференциальных уравнений;
    • метод Рунге-Кутта 4 порядка;
    • метод Эйлера;
    • модифицированный метод Эйлера;
    • исправленный метод Эйлера;

  • решение интегралов;
    • метод Симпсона;
    • метод трапеций;
    • методы правых, левых, центральных прямоугольников;
    • метод Монте-Карло;

  • решение систем линейных уравнений;
    • метод Гаусса;
    • метод Жордана-Гаусса;
    • метод Гауза-Зейделя;

  • генерация распределений вероятностей;
    • нормальное;
    • лог-нормальное;
    • экспоненциальное;
    • хи-квадрат;
    • Коти-Лоренца;
    • Вейбулла;

  • методы оптимизации;
    • метод роя частиц;

Сложности


Естественно, были некоторые сложности при портировании приложения на Windows Phone. Вот некоторые из них:
  • Windows Phone 7 SDK содержит не весь API в сравнении с полным фреймворком. В частности, пришлось использовать Silverlight версию библиотеки System.Numerics для работы с комплексными числами;
  • приложение использует парсер математических функций, из-за чего было перепробовано большое количество библиотек (вплоть до написания своей). Но в итоге я остановился на NCalc;
  • каждый метод, как правило, имеет уникальные свойства, ограничения, тип и вид решения. Было не просто написать общую логику для решения любого класса задач.

Дизайн и Metro


Отдельное и очень пристальное внимание было уделено дизайну и соответствию Metro UI. Все гайдлайны были перечитаны по несколько раз и после нескольких недель (!) вылизывания можно увидеть нынешний результат.

Почему это так важно? Во-первых, Metro UI — очень удобное и красивое решение как с точки зрения разработчика, так и с точки зрения пользователя. Мне важно, чтобы пользователи не только смогли решить свою задачу, но и получили удовольствие от процесса использования приложения.

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

Несколько скриншотов:

math rocksmath rocks

math rocksmath rocks

math rocksmath rocks

Публикация


Приложение было разработано и опубликовано в тесном сотрудничестве с Tarasov-Mobile (интервью с руководителем Дмитрием Тарасовым можно почитать здесь) и фактически стало первым в серии совместных Windows Phone 7 приложений.

От Дмитрия Тарасова, издателя:

Мы, в Tarasov Mobile в последнее время взяли курс на разработку и публикацию/продвижение приложений, имеющих конкретную смысловую нагрузку и направленных на решение конкретных задач. Math Rocks! вызвал у меня как у издателя интерес тем, что он, как раз таки, является не какой-нибудь фигней, посвященной социальным сетям, играм или прочим тайм-киллинговым вещам, а является инструментом, приносящим конкретную пользу, а не отнимающим у пользователей время.

Данный продукт является прекрасной демонстрацией того, что такой девайс на WP7 как Nokia Lumia, например может быть не только красивой звонилкой, но и серьезным узкоспециализированным прикладным инструментом. Именно поэтому с ним интересно работать.


Понятно, что приложение Math Rocks! трудно назвать массовым, но благодаря ему были получены уникальные знания в плане дизайна, разработки, тестировании, публикации и мониторинге Windows Phone приложений. Эти знания очень помогут нам в дальнейшем писать качественные и полезные приложения.

Что дальше?


Дальше будем развивать приложение. Об идеях развития можно почитать здесь.

Кстати, если вы хотите принять участие в создании «mathcad для мобильника» или у вас есть идеи и пожелания, как приложение можно улучшить, можете писать мне в личку, на alex[at]tarasov-mobile.ru или связаться через codeplex или через wp7rocks.com.

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

И напоследок девиз Math Rocks!:

That’s right, it is almost a rocket science in your pocket :)

Спасибо за внимание!
Tags:
Hubs:
Total votes 70: ↑62 and ↓8+54
Comments26

Articles