Математический пакет для Android — «Микро-Математика» — теперь с открытым исходным кодом

в 21:16, , рубрики: open source, математика, разработка мобильных приложений, Разработка под android, разработка приложений

Некоторое время назад я писал здесь о «Микро-Математике» — математическом пакете для Android, который я разработал в качестве хобби-поделки. Этим летом исполняется три года с тех пор, как «Микро-Математика» была выложена в Google Play на всеобщее обозрение. С тех пор программа развивалась дальше, и вот настал момент, когда доход от Google Play окупил разработку. В связи с этим я не вижу смысла дальше утаивать исходный код от общественности и перевожу проект в разряд Open Source. Тех, кому интересно познакомиться с репозиторием «Микро-Математики» на github, и, быть может, поучаствовать в дальнейшем развитии проекта, прошу под кат.

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

  • Реализован функциональный файловый менеджер, который поддерживает не только SD-карту, но и доступ к ресурсам приложения. За основу взято ядро достаточно известного файлового менеджера «Ghost Commander»
    Окно файлового менеджера

  • В ресурсах приложения теперь содержится большая библиотека примеров.
    Если у тех, кто пользуется этим приложением, есть интересные примеры вычислений, и вы не против поделиться ими с общественностью, высылайте их мне по почте, я с удовольствием включу их в эту библиотеку.
    Окно выбора примера

  • Теперь приложение может работать с комплексными числами:
    Пример расчёта с комплексными чмслами

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

  • Появился экспорт документа в формате HTML, после чего его можно открыть в браузере, например, на ПК:
    Экспортированный документ на ПК

  • Добавлена возможность автоматического тестирования математического ядра. Модуль-тестировщик встроен в приложение, он позволяет прогонять скрипты, имеющие специальный синтаксис и контролировать результаты вычислений. На сегодня разработаны 30 скриптов, которые содержат более 250 тестов, покрывающих все вычислительные алгоритмы.

Github репозиторий находится тут. Лицензия — GNU General Public License v3.0.

Так уж исторически сложилось, что вся разработка у меня происходит под Linux, и, стыдно сказать, до сих пор в Eclipse. Но я открыт к альтернативным рабочим окружениям, так что если кто-то захочет запуллить конвертацию служебных скриптов под Windows, или проектные файлы для Android Studio — буду только рад.

На текущий момент в репозитории содержится как весь исходный код и SVG-исходники всех иконок приложения, так и некоторые вспомогательные вещи:

  • src: папка с исходниками. Там можно найти: сами исходники, шаблон форматирования для Eclipse, а также в папке src/assets документацию, библиотеку примеров и скрипты автоматического тестирования
  • images: SVG-исходники иконок и шелл-скрипты для их конвертации в PNG-ресурсы. Для работы скриптов необходим установленный Inkscape.
  • thirdParty: архивы всех использованных библиотек.
  • release: собранный, но не подписанный APK. Там же находится архив с результатами автоматического тестирования
  • autotest: служебные скрипты для генерации тестовых виртуальных машин и для прогона на них тестов.

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

  • Экспорт в PDF
  • Матричные вычисления
  • Циклы, как, например, это реализовано в Matcad
  • Улучшение редактирования: перетаскивание формул пальцем, более удобный доступ к палитре мат. символов.
  • Внедрение пакетной системы для группировки мат. функционала: например, опциональные пакеты по обработке сигналов, статистике, специальные функции.
  • Я уже использую библиотеку «The Apache Commons Mathematics Library», где есть модуль символьных вычислений. Неплохо было бы его задействовать.

Для одного человека работы многовато, поэтому приглашаю к сотрудничеству всех энтузиастов, кто интересуется математикой, алгоритмами, численными методами и т.д. Спасибо за внимание!

Автор: mkulesh

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js