Математический пакет для 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-исходники всех иконок приложения, так и некоторые вспомогательные вещи:


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

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


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

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

    Как часто Вы присоединяетесь к чужим Open Source проектам?

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 20
    • +2
      нужна ли система компьютерной алгебры на смартфоне или планшете, или это такой странный таракан в голове околоайтишного инженера?

      Такая система вполне может стать заменой TI-83 в школах. Для этого нужно будет дополнить приложение сайтом, на котором пользователями собираются и редактируются готовые примеры вариантов решений по учебным программам школ и вузов и ЕГЭ и объясняются их алгоритмы таким же, какой уже существует для LaTeX.
      В приложении нужно будет сделать лёгкую первичную авторегистрацию аккаунта на сайте и автоматический поиск и загрузку нужных расчётных модулей с сайта, поиск тем форума и наоборот — лёгкую и быструю загрузку на сайт, для предоставления другим пользователям, своих решений и наработок — щелчком одной кнопки.

      • 0

        Спасибо, идея замечательная! Я пока на такой уровень даже и не замахивался, так как для одного человека задача неподъемная. Но двигаться в этом направлении можно вполне, пусть и маленькими жажками. А вот интересно, реально-ли сделать такой репозиторий на базе github?

      • +2
        окупил разработку
        перевожу в Open Source
        Респект!
        • +1

          Философия ПО с открытым кодом мне близка. Этап начального становления проекта окупился. То, что получилось, не стыдно показать другим. Отсюда робкая надежда, что кто-то заинтересуется этим проектом и появится пусть небольшое, но сообщество вокруг него.

          • 0
            Отдельно хочу вам сказать спасибо за лицензию GNU GPL v3, т.е. за выбор копилефт-лицензии.
        • –2
          Классно. Спасибо. Но почему приложение до сих пор в Goggle Play — 100 руб?
          • +1
            Предлагаете увеличить цену до 1000?
            • +8
              Open-source не обозначает, что за скомпилированные бинарники не могут просить денег))
              • +1

                С одной стороны, пока руки не дошли. С другой стороны, на Google Play стабильный релиз, только на тестирование которого уходит от одного до двух вечеров. На github, естественно, никто не будет проводить полное тестирование после каждого коммита, так что версия там будет нестабильной. Но самое главное, я хочу отдать вопрос о цене на откуп сообществу, ежели таковое образуется вокруг проекта.

                • 0
                  В таком случае можно было бы выложить 2 релиза, стабильный и опенсурс. люди бы тестировали бы сами, а кому нужна стабильность пусть платят. Я то не против :)
                  • 0

                    Честно говоря, я сам думал в том же самом направлении, просто пока не успел эту идею довести до конца.

              • 0
                Внедрение пакетной системы для группировки мат. функционала: например, опциональные пакеты по обработке сигналов, статистике, специальные функции.

                Как вариант подцепить в фоне Maxima. На гуглплей эта система есть https://play.google.com/store/apps/details?id=jp.yhonda, и автор где-то выкладывал последовательность сборки. Могу поискать у себя в архивах если понадобится инфа.


                P.S. Пользуюсь wxMaxima постоянно на ноуте и персоналках, в т.ч. на андрофоне указанной версией

                • +1
                  Не видели http://mathnotepad.com/?
                  Для себя на его основе сделал десктопную программку с поддержкой русских символов, курсами валют и прочее — очень выручает в работе.
                  image
                  • 0

                    Спасибо за ссылку, поизучаю. Пока я делал упор именно на представлении формул и их редактировании. Вопрос подключения внешнего решателя (или нескольких решателей) я пока не рассматривал. Хотя это вполне легитимный путь для дальнейшего развития.

                    • +1

                      Мне кажется, это одна из самых перспективных ветвей продажи ПО. С одной стороны, люди будут более благосклонны, если будут знать, что есть возможность изучить исходный код. С другой стороны, большинству из них будет лень разбираться со сборкой бинарника из сорцов — легче заплатить небольшую сумму. Этим, как я понимаю, и обусловлена такая небольшая цена.
                      При этом на логичное возражение "так ведь легче готовую сборку с 4pda скачать", можно заметить, что та аудитория не является целевой автора и в любом случае бы так поступила.


                      Я думаю, что это одна из наиболее интересных форм развития рынка открытого ПО. Самое главное преимущество её в том, что теперь разработчикам сложнее будет сказать "это же open-source, реализуй сам" или "да, в нашей программе много багов, но ведь это open-source, люди работают в свободное время!". Теперь их заработок будет практически напрямую кореллировать с удовлетворенностью клиентов.


                      Однако, дальше автор немного нехорошо делает, приглашая людей поучаствовать в разработке платного продукта, видимо, за "бесплатно". В этом плане мне нравится вариант оплаченных задач — если человек выполняет задачу, то он получает за нее заранее оговоренную сумму. Такой подход, к примеру, используется в elementary OS.

                      • 0

                        Вы подняли очень серьезный вопрос. Однако я и не подразумевал никакого "угнетения угнетенных". В данный момент мне кажется, что модель монетизации будет зависеть от размера сообщества:


                        • если никто не присоединится к разработке, то тут и думать нечего
                        • если это будет пара-тройка человек, то совершено не сложно поделить доходы, благо отчеты с Google Play совершено однозначные
                        • если народу будет много, то мне совершенно не сложно перевыставить приложение в бесплатном варианте или вообще делигировать распространение другим

                        То есть этот вопрос на данный момент просто еще остается открытым.

                        • 0

                          Поэтому я и говорю, что вы лишь немного нехорошо делаете. А в общем-то, да, проблема монетизации open-source software глобальна и её надо как-то решать. Более того, я уверен, что её решение в любом виде существенно поднимет качество такого софта.

                      • 0
                        А мне интересно, как соотносятся между собой «математический пакет» и java? Обычно ведь java используется в приложениях такого типа для UI, а всё математическое ядро пишут на C/C++, Maple тому пример
                        • 0

                          Однозначно я ответить пока не могу. Много разных аспектов. Плюсы джавы в том, что уже есть хороший набор мат. библиотек и хорошая степень портируемости, то есть нет платформо-зависимого кода. Нареканиям по быстродействию у меня нет, более того, от версии к варсии Андрод становится всё более производительным. Есть небольшые нарекания по точности вычислений, но они решаются алгоритмически. С другой стороны, основной язык в моей карьере — это С++, на нём я разрабатывал как академические, так и прикладные системы с большой долей численных расчётов, так что джава просто непривычна. Добавление С++ библиотеки возможно, но не практично, так как ведёт к усложнению кода. Так что я пока смотрю на этот вопрос с таким робким оптимизмом.

                        • 0
                          FYI https://play.google.com/store/apps/details?id=jp.yhonda

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.