Моя первая прила, зацените
Ну собсно вот: https://play.google.com/store/apps/details?id=com.drunkcoder.calculatorКому лень читать, можете просто зайти и, ну, глянуть ¯\_(ツ)_/¯
Что это собсно такое:
Это калькулятор. На первый взгляд обычный калькулятор, один в один как Google Калькулятор, мб даже хуже. Ну не удивительно, ведь вдохновлялся я именно им. В нём есть всё что и в Гугловском: базовые операции, факториал, степень, корень, тригонометрические функции и логарифмы. Ничего нового, на первый взгляд
Но чем он отличается от Google Калькулятора?
Первое - возможность редачить строку с выражением где-то посередине (да я в курсе что в Гугл калькуляторе это тоже уже добавили).
Второе, и (что пиздец как странно) самое крутое - переменные. Я вставил в обычный калькулятор переменные, да.
И такой фичи я не нашёл ни в одном калькуляторе на ведроид, гы. Система проста - открывается обычная клавиатура и ты можешь фигачить буквы прям в выражение.
Буквы на любом языке, ибо систему переменных я стыбзил из самой Жавы.
Потом вместо кнопки "=" появляется кнопка с "f()" (это типа рабочее название, мб потом поменять можно, но мне по кайфу), при нажатии на которую открывается окно с подстановкой значений переменным.
Дизайна нет, и не надо. Я добавил эту фичу потому что мне надо было делать лабы по выч. математике и статистике и я заебывался забивать значения в обычный калькулятор.
Ну и главное - его сделал я, сам). Сам сделал движок, который разбирает "человеческое" математическое выражение и выдаёт ответ. Сам изучил Жаву и перенёс корявый движок из C++ на неё. Сам выучил андроид по ютубу и статьям на Хабре, всёёё сам.
Я рефакторил и переписывал проект на ведре раз 5 или 6. Один или два раза я ПОЛНОСТЬЮ переписывал движок, конечный его вариант - теперь отдельный проект на гитхабе.
И да, у Гугла уже есть такой движок, он может всё то же самое, но больше и лучше, но моей целью было осилить эту задачу своими силами, вот такой я мазо.
Так что вот - прошу внимания. Продукт года моего пошагового изучения этой профессии, всё ещё корявый но уже не очень
Подробнее
л о □ • - -о о го СП 00 II 00 CTN ю 1 + X I- ABC
пх2 6.28318530718 л ( ) АВС 7 8 9 Н 4 5 6 ^Я 1 2 + • 0 = н < О □
5:32 ( ) ABC ~7 n гл 1 234567890 @ #$%&- + ( ) = \< i ? ABC / V О □
< o oo en го о vD СО □ о û> er (jj O' _Ы_ N) oxBt7+^vq
Android OS,приложение,сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам,java,тестирование
для этого есть excel или аналогичные программы
Ладно, ок, находим аналог на ведре - сложная прога, допустим Google Таблицы. Ок. Но она весит > 20 МБ, на моём Нексус 5 подтормаживает, и требует ебли с формулами и ячейками. Крутая прога, но это уже не калькулятор - это уже что-то более крутое.
Да и вообще, я же не говорю, мол, покупайте этот инновационный шедевр за $999.90, такого вы ещё не видели. Это просто продукт моего развития, так сказать, живое доказательство, что я не просто сижу "играю в свой кампуктер, пойди девушку найди". Это приятно, пилить свои велосипеды с нуля, конечно если я не прошу за это $999.90 =)
И такой фичи я не нашёл ни в одном калькуляторе на ведроид, гы."
Какое громкое заявление, сколько еще калькуляторов кроме дефолтного ты использовал?
Есть куча сложных калькуляторов, в которые можно вставлять x, y, z и они будут решать тебе уравнения.
Но написать "жопа ^ 2", а потом подставлять цифорки напротив жопы и смотреть как меняется ответ - бесценно
Lim (x -> твоя мамка) решить сможет? :з
Признай, ты просто плохо искал.
Я тут посчитал, в моём калькуляторе можно определить 1073741823 уникальных переменных. И это ограничение возникло лишь из-за ограничения длины String в Java
Кажется, я уже давно не Ъ - хочу себе чего-то нетривиального :-)
Но автор поста молодец, ток клепай ещё что угодно что твоя душа поделает но продолжай клепать , пусть 90% будет шлака, может даже 99% это проходят все , главное продолжай клепать изучай книги по своей теме, и продолжай клепать , и в один прекрасный день , намного раньше чем ты сам на то насчитываешь, ты проснёшься а возле тебя будут стоять люди тыкать в тебя пальцем и говорить «этот ламер пожалуй на гуру надемонил» :) и будет тебе счастье
То что это на первый взгляд легкотня - бесспорно. Но раз я её выставил на всеобщее обрыгание, значит я нехило так попотел над тем чтоб её трудно было назвать шлаком.
А вообще, планка "шлаковости" у всех своя. Я не считаю сабж божественным даром и не прошу его таковым называть. Это среднячок. С теперешними знаниями я могу точно такое же с нуля написать за 2 дня, просто подключив пару внешних библиотек. Но я не хочу. Это что-то сакральное, наверное).
И да, рили дохуя умников есть, которые посмотрев пару туториалов сляпают говнецо и начнут его везде пропихивать. Меня от них тошнит, но и я им завидую. Ибо они успевают раньше пролезть там, где перфекционисты остановятся и упустят шанс. Короче, ситуации бывают разные)
Спасибо тебе, ты тру вещи говоришь.
Пфф, "жопка ^ 2" вырывается вперёд!
Ну а если серьезно, то главным достоинством этой прилы для меня и вообще причина, по которой я её начал делать - неограниченное количество кастомных переменных. Надо было мне в лабах пересчитывать одну и ту же формулу с 7 (!!!) переменными раз 26, и вот это моё детище, тогда ещё крайне корявое и не имеющее функций, помогло.
Ноо, всё же функционал отличается. Аналогия с экселем, мне кажется, лучше всего
Но увы, ни одного скачивания XD
А так-то молодец конечно.
Кстати, если ты устал бороться с лексером, парсером и токенизатором, то можешь попробовать дрянь позабористей, например ParsecJ или аналог.
Всё таки это больше учебный проект, чем продукт
По моему выбор очевиден.
Потом, уже через большое время, начался курс формальных языков в универе, и там очень противный мужик очень хуево пояснил мне за разделение парсера и лексера, но мне хватило. Структуру проги допиливал, смотря на движок самого Гугл Калькулятора (документации к нему нет, только сорсы, которые я и читал, кстати первые мои сорсы).
Потом прочитал The Art of Readable Code и Effective Java и начал помаленьку допиливать саму структуру, перешёл на enum для токенов, например (да да, оказывается они крутые и намного удобнее списков констант)
Короче путь пройден длинный, интересный, одна только часть с интерфейсом в андроид чего стоит.
Ощущение, когда у тебя на телефоне установлено тобой сделанное приложение, которое сука ты сделал, и оно выглядит НОРМАЛЬНО, не криво и если что ты сам туда скока угодно фич добавишь, уххх, лучше дрочки
Я бы его использовал, если бы нацелился на результат а не на процесс
Я понимаю что надо будет потом прочитать Книгу Дракона, ибо ну классика. Но сейчас я уже не так тащусь от формальных языков, а сабж работает средне нормально, переписывать движок ещё раз мне не кайф)
Само приложение доделаю ещё кое-где, добавлю историю, мб базу с готовыми формулами и перейду на что-нибудь новое. У меня там "свой инстаграм" лежит начатый и "свой пхп фреймворк" (хотя последний я делать уже ни за что не начну XD)
Я благодарен тебе за поддержку, но бля, не обижайте меня словами "посложнее". Движок писать было сложно. Легкость интерфейса = фича. У меня есть сложные проекты, но я никогда не буду делать их для ведра, ибо не надо
Моя вина. Извини.
Незнакомый скрин, да?
cos(t) = cos(t) ???
Типа, а как значение подставить?
А никак. Я сам им пользовался. Это всего-лишь упрощение выражение, не вычисление
Да ну?
Сложновато, но всё таки да, он может.
Ты прав, я не прав. Уже 2 калькулятора с переменными нашли, крутяк.
Но мой мне больше нравится =P XD
Уже 9999 раз кто-то это до тебя делал, но челлендж интересный
Обычные вычисления и переменные перемешаны на так называемом "рабочем пространстве". Сложновато и медленно.
Переменные ограничены только 1 символом их латиницы. "жопка ^ 2" снова победила
В итоге, я могу сказать, что это рили крутая штука, но больше смахивает на порт матлаба или максимы, чем на карманный калькулятор. Сферы разные)
https://play.google.com/store/apps/details?id=com.mathally.calculator.pro
Чувак выше пока единственный кто нашёл нормальные переменные
4+4*4 = ?
Если неправильно, я исправлю, а ты будешь молодец
https://play.google.com/store/apps/details?id=com.PomegranateApps.MathStudioExpress
https://4pda.ru/forum/index.php?showtopic=2049
С другой стороны на android можно поставить питон с математическими либами. Да, не так наглядно, но гораздо функциональнее.
Охеренный слоган!
HiPER calc еще есть, правда он условно-бесплатньій.
ПС
бесят в гуглплее 100500 одинаковых калькуляторов, 100500 одинаковых "уровней-отвесов", 100500 одинаковых "компасов" и конечно же 100500 одинаковых игрушек про кричащего в сторону мужика (не знаю в чем там суть, но типовая иконка поражает своей оригинальностью. Даже пост на реакторе был). Сцуко, написано толпой говнокодеров которые "просто захотели что-то свое личное" высрать в общее пространство, но при том даже не смогли в нормальную математику при чтении датчиков.
Я хз что ими двигает. Тщеславие? Желание заработать три копейки на показе рекламьі в софте которьій нахер никому не нужен? Строчка в портфолио?... Загадочньіе люди!
Будешь добавлять вычисления в системах с другим основанием?
Или 0xfff, 0777 и 0b111 (более традиционная, мне даже больше нравится)
Останется только в андроиде добавить спаны с форматом написания основания подстрочным текстом для удобства читания (если получится, можно также и с написанием степени попробовать, но я думаю это лишнее)
Но в общем да, ты прав, если я продолжу работать в этом направлении то по-любому перейду на Котлин, он прикольный