In this article I want to talk a little bit about my first serious project for Windows Phone 7 called
Math Rocks! .
This application allows you to solve all sorts of mathematical problems and can be useful both for learning and for research and quick calculations.
')
From the main features of the application I want to note:
- actually, the ability to solve mathematical problems;
- displaying graphs;
- the ability to save results by sending task conditions and results to an email address;
- support for Russian and English languages.
Idea
Those who have followed my publications at least a little bit (including in Habré) might have noticed that I already
wrote about the project with implementations of mathematical methods. And the first publications were devoted to Windows Forms, WPF and Silverlight software versions. It is worth recalling that the project has been
in open source for several years now. Therefore, after the release of Windows Phone, the decision to port the library to the new platform was obvious.
What's inside?
To date, the application includes the following areas and methods:
- solving nonlinear equations;
- exact methods for solving square, cubic, biquadratic equations;
- numerical methods: method of secant, Newton, simple iterations, Weystein;
- solving differential equations;
- Runge-Kutta method of 4 orders;
- Euler's method;
- modified Euler method;
- the corrected Euler method;
- solution of integrals;
- Simpson method;
- trapezoidal method;
- right, left, center rectangle methods;
- Monte Carlo method;
- solving systems of linear equations;
- Gauss method;
- Jordan-Gauss method;
- Gauza-Seidel method;
- generation of probability distributions;
- normal;
- log-normal;
- exponential;
- chi-square;
- Koti-Lorenz;
- Weibull;
- optimization methods;
Difficulties
Naturally, there were some difficulties when porting an application to Windows Phone. Here are some of them:
- The Windows Phone 7 SDK does not contain the entire API in comparison with the full framework. In particular, I had to use the Silverlight version of the System.Numerics library to work with complex numbers;
- The application uses a parser of mathematical functions, because of which a large number of libraries have been tried (up to writing its own). But in the end I settled on NCalc ;
- Each method, as a rule, has unique properties, limitations, type and type of solution. It was not easy to write general logic for solving any class of problems.
Design and Metro
Separate and very close attention was paid to the design and compliance of Metro UI. All guidelines were re-read several times and after a few weeks (!) Licking you can see the current result.
Why is this so important? Firstly, Metro UI is a very convenient and beautiful solution both from the developer’s point of view and from the user's point of view. It is important for me that users could not only solve their problem, but also enjoy the process of using the application.
In addition, by my example, I would like to encourage other developers to more carefully approach usability and design (not in terms of graphics, but in terms of convenience) of their applications. Now we are seeing that even eminent companies tritely “put” on the design of their applications and Metro, in particular, while others take an example from them.
Some screenshots:



Publication
The application was developed and published in close cooperation with
Tarasov-Mobile (interview with the head Dmitry Tarasov can be read
here ) and actually became the first in a series of joint Windows Phone 7 applications.
From Dmitry Tarasov, publisher:
We, in Tarasov Mobile, have recently headed for the development and publication / promotion of applications that have a specific semantic load and are aimed at solving specific problems. Math Rocks! I, as a publisher, aroused my interest in the fact that it is not just any garbage devoted to social networks, games or other time-killing things, but a tool that brings specific benefits and not time consuming to users.
This product is an excellent demonstration of the fact that such a device on WP7 as Nokia Lumia, for example, can be not only a beautiful dialer, but also a serious, highly specialized application tool. That is why it is interesting to work with him.
It is clear that the application Math Rocks! can hardly be called massive, but thanks to him unique knowledge was gained in terms of design, development, testing, publishing and monitoring Windows Phone applications. This knowledge will help us in the future to write high-quality and useful applications.
What's next?
We will further develop the application. About ideas of development can be read
here .
By the way, if you want to take part in the creation of a “mathcad for a mobile phone” or you have ideas and wishes, how the application can be improved, you can write to me in PM, on alex [at] tarasov-mobile.ru or contact via codeplex or via
wp7rocks .com .
In addition, if you represent an academic environment or resource, I would be happy to talk about how our ideas and results could be popularized among students, teachers and researchers.
And finally, the motto of Math Rocks !:
That's right, it is almost a rocket science in your pocket :)
Thanks for attention!