Рейтинг 6 бесплатных приложений для решения задач и примеров по математике
Содержание:
- Visual Studio наподобие Sublime
- Anima2D, персонажи и дёрганая улыбка
- Статистика Apple и Google хорошо, но Unity Analytics лучше
- Photomath
- Сочный iTween
- What Do Users Think about Photomath?
- Примеры предложений с приложениями
- Калькулятор остался в прошлом… Лови ответ не просто калькулятор!
- Calculator +
- Разнообразие режимов
- Монетизация и удовольствие
Visual Studio наподобие Sublime
В прошлом, когда мне нужно было править какой-то код (будь-то python, html или node.js) я использовал Notepad++ (полностью бесплатный, но только под Windows) и Sublime Text (платный под все ОС, но можно полноценно пробовать бесплатно).
В Unity я сидел на MonoDevelop, но он меня так задолбал своими глюками (типа невозможность переключаться между раскладками или вставить что-то, скопированное за пределами Mono), что я решил — пора бросать тонущий корабль и перелез на Visual Studio Community 2017 (благо, она бесплатная для одиноких, как я, разработчиков).
Для разработчиков на Unity 2018 сейчас это не актуально, так как в составе 2018-ой версии идёт мультиплатформенный Visual Studio Code. Но я хотел, чтобы моё приложение работало под iOS 7 (поскольку iPhone у дочери именно с этой iOS), поэтому нужно было использовать любую версию Unity старее 2018-ой.
Помогло мне с переходом на VS видео How to setup Visual Studio with Unity.
С коробки VS не имеет всех тех классных штук, к которым я привык в других редакторах, поэтому я упростил себе жизнь:
- добавил расширение SemanticColorizer, которое позволяет более гибко настраивать цвета кода. Конкретно мне оно понадобилось, чтобы отличать глобальные переменные от локальных по цвету.
- установил расширение Match Margin, которое выделяет слово под кареткой и все его копии по тексту кода, а также делает это на миникарте. Это очень удобно для быстрой навигации по коду, чтобы найти все места, где используется какой-то метод или переменная:
Мои скрипты для этого приложения на GitHub. Там только мои скрипты, а не весь Unity проект — извините, если из-за этого их невозможно будет понять. Я до последнего момента не планировал давать ссылку на исходники, поскольку не считаю мой код таким, на который стоит ориентироваться. Но потом передумал из-за шанса, что более опытные разработчики могут указать на мои ошибки.
Это конец первой части. Продолжение читайте во второй части, где я расскажу:
- О написании кода
- О контроле версий
- Об озвучке
- Об иконке
- О сборке под Android
- О сборке под iOS
- О названии и продвижении
- Статистика
- О чём жалею
- Что понял
Ссылки
Список ссылок из тела статьи в очерёдности их упоминания:
Simple C# FTP Class.Идентификатор сессии для iOS.Пишем плагин для Unity правильно. Часть 1: iOSМетоды для сериализации объектов в JSONScriptableObjectGame Architecture with Scriptable ObjectsкодOverthrowing the MonoBehaviour Tyranny in a Glorious Scriptable Object RevolutionкодВидеодемонстрация работы моего приложения в редактореплагин Anima2D для скелетной анимации 2D персонажейLean Localization.Juice it or lose itThe art of screenshakeiTweenдемонстрация типов изингаiTweenUnity AnaliticsNotepad++Sublime TextVisual Studio Community 2017Visual Studio CodeHow to setup Visual Studio with UnitySemanticColorizerMatch MarginStrip’em
Anima2D, персонажи и дёрганая улыбка
На видео выше видно, что когда падает новая копейка, то другие копейки начинают широко улыбаться, а когда падает какашка, то копейки в ужасе.
Я долго не мог победить глюк, когда при переключении с одного типа улыбки на другую, смена происходила не мгновенно, а моргала (из одного состояния в другое) какое-то время. Дальше я расскажу, как я это реализовал и как победил этот глюк.
Смена выражений лица реализована с помощью скрипта Sprite Mesh Animation, входящего в состав мощного плагина Anima2D (который Unity недавно выкупила и сделала бесплатным). Этот скрипт по сути просто переключает спрайты для рта (улыбка, открытая улыбка, испуганный рот) с помощью ползунка Frame:
Вся засада в том, что значение ползунка Frame нельзя изменять напрямую из скриптов, а только через систему анимации. Поэтому я создал новый анимационный слой OpenSmile (стрелка 1 на рис. ниже) в режиме смешивания Additive с весом Weight=1 и добавил туда анимацию ужаса (Coin_scared) и широкой улыбки (SmillingWide).
Кстати, вы заметили, какой плохой пример я подаю, с именами анимации? Я всё ещё в процессе приведения имён к единому стилю. Правильно было бы изменить Coin_scared на A_CoinScared (почему именно так читайте в разделе «О чём я жалею»).
Я создал новый слой, а не использовал старый, поскольку не хотел перезаписывать анимацию рта. Мне нужно было только менять спрайт рта (с улыбки на широкую улыбку или с улыбки на ужас) и чтобы при этом анимация рта осталась с базового слоя. Именно поэтому я выбрал режим смешивания Additive — добавление новой анимации к уже существующей (не перезаписывая её).
По своей сути, анимации SmillingWide и Coin_scared — это просто анимация ползунка Frame в позицию 1 и 2, соответственно.
Вся проблема была в том, что переход из любого состояния в состояние ужаса (при клике на переход (стрелка 2 на рис. выше), в инспекторе открываются свойства этого перехода (стрелка 3 на рис. выше)) происходил не моментально, а плавно на протяжении отрезка времени Transition Duration (стрелка 4 на рис. выше), которое было не нулевым по умолчанию. Таким образом, значение ползунка Frame не могло изменяться правильно, ведь там были только целые числа, а значит между 0 и 1 нету промежуточного значения. Поэтому, чтобы избавиться от моргающего глюка, нужно было всего лишь обнулить величину Transition Duration.
Ну а условием перехода в состояние ужаса служит trigger isScared (стрелка 5 на рис. выше). Я активирую этот триггер в коде с помощью следующего обращения к объекту, на котором висит компонент Animator (с контролером, слои которого я показал выше):
Статистика Apple и Google хорошо, но Unity Analytics лучше
Ещё по опыту прошлых игр я знал, что иметь свою собственную статистику — это очень классно. Сначала я хотел создать какую-то свою систему логирования, но потом вспомнил о Unity Analitics. И какое же было моё удивление, когда оказалось, что у бесплатной версии функционал для моего случая ничем не ограничен. Хуже мне пришлось бы, будь у меня какая-то монетизация, тогда инструменты аналитики доступны только для Pro подписчиков.
Просто встраивая Analytics.CustomEvent в нужное место кода, я могу отслеживать какие примеры пользуются большей популярностью, сколько дети решают примеров в первые дни или спустя время и т.д.
Я могу в одном месте сравнивать данные с разных платформ (iOS и Android).
А сколько там всего интересно, что хотелось бы попробовать, да всё руки не доходят. Типа Remote Settings (изменение контента приложения без заливки обновления) или A/B Testing или Tutorial Manager.
Photomath
Для решения математических задач и проверки домашних работ, подготовки к предстоящим экзаменам используют приложение Photomath. Его уже использовали для решения миллиарда различных уравнений. Ключевые особенности связаны со следующими моментами:
- Сканирование учебников. При желании проводится загрузка всех рузльтатов на память мобильного устройства.
- Встроенный научный калькулятор. Он позволяет вводить информацию вручную, что требуется при неправильном ее отображении.
- Пошаговое объяснение выбранного пути решения. Оно используется в качестве обучающего материала. Подобным образом можно быстро подготовиться к предстоящим экзаменам.
- Для использование приложения не требуется постоянное подключение к интернету.
- Поддерживается более 30 языков.
- Интерактивная графика упрощает чтение информации. Она делает изучение материала более эффективным и интересным.
Использовать ПО просто. Для начала делается фотография печатного или рукописного текста, после чего начинается обработка информации и выдается результат с подробным описанием.
Сочный iTween
Когда-то давно я посмотрел шикарнющее видео Juice it or lose it о том, как всякие маленькие микродвижения и нюансы анимации помогают из скучной игры сделать захватывающее дух действие. А ещё до этого мне в душу запало другое видео — The art of screenshake, которое на самом деле не только и не столько о дрожании экрана.
Всё время, пока создавал Math4Ami, я держал в уме концепции из вышеприведённых видео, а также ту мысль, что вся эта дополнительная анимация должна быть максимально короткой и действовать больше на подсознание, чем на сознание. Порой, я тратил больше времени на добавление «сочности», чем на добавление полезного функционала.
Только одно место меня смущает очень сильно — финальный подсчёт заработанных денег (вы можете видеть этот момент в конце моей видеодемонстрации выше). Я его укоротил как только мог, но он всё равно занимает чуть больше 4 секунд (исчезает клавиатура, появляется надпись победа, идёт подсчёт копеек, выезд таблицы рекордов, получение шильдика «Новый рекодр», отображение кнопки «Еще»).
Лучшим «источником сока» для меня является бесплатное дополнение iTween. Даже не представляю, как без него вообще можно что-то делать в Unity. Я его использую везде, где нужна хоть какая-то анимация (будь то анимация кнопки или появление пункта меню или анимация подсчёта копеек).
Я пробовал реализовывать что-то подобное самостоятельно на основе корутинов и Mathf.Lerp или Mathf.MoveTowards, но это было не гибко и не универсально (а порой и работало по разному в редакторе и на устройстве). Поэтому сейчас я не стараюсь изобретать велосипед, а просто наслаждаюсь iTween.
Есть и подводные камни у этой системы анимации, с которыми я неправильно боролся поначалу:
- Если во время работы iTween спрятать объект (через SetActive(false), к примеру), а потом показать его снова, то iTween продолжит исполняться с прерванного места.
- Если во время работы одного iTween запустить другой (который влияет на те же значения), то по окончанию исполнения обоих, объект может не вернуться в исходное положение.
- Нужно следить за тем, какой именно GameObject запускает iTween, а на каком эта анимация работает.
К примеру (по последнему пункту), объект А запускает iTween, чтобы он работал на объекте Б. Чтобы остановить iTween анимацию, нельзя просто запустить iTween.Stop() на объекте А. Нужно запустить iTween.Stop(объект Б).
Сильной стороной iTween является возможность использования разных типов изинга (type of easing). Изинг — это параметр, который смягчает движение (чтобы оно не начиналось рывком и не заканчивалось тупо).
Обалденной находкой для меня стали типы изинга:
- spring
- easeOutBounce
- easeInBack
- easeOutElastic
Чтобы подобрать нужный изинг, я использую наглядную Easing Demo (нужен флеш). А здесь я беру документацию ко всем типам анимации iTween.
What Do Users Think about Photomath?
Incredible, in-depth explanation.
Apr 5
Zebeka
Student
This is a fantastic app. The text recognition is near perfect, even with my sloppy handwriting. The solution, no matter how complicated, is accompanied with steps which go in detail to explain the problem and it’s properties. I use this app mostly to check my work and see exactly where I went wrong in solving. I use this on all of my homework and practice notes. Five out five stars, hands down.
This gave my son his confidence in math
Aug 25
Hwill6475
Parent
Since my son started middle school his math has gotten significantly more difficult than elementary school. This overhelmed him and he felt ashamed because he didn’t «get it» right away like he always had. I tried to help but that didn’t work out too well. Photomath was able to show him how to get to the correct answer and the light bulb came on. The joy he felt when he actually understood the problem he was looking at was amazing. He now doesn’t feel hopeless and has a sense of accomplishment. Thank you!
The most awesome math app ever!!
Mar 19
Bigger Mama
Teacher
Two snaps and a twist. Yes, I tech kids math. I love math but on occasions, no matter how much you show your students how to do long division they just can’t get it. This app works. The animated explanations are the best. All of my students have this app and I am seeing an improvement with their comprehension and understanding of basic and complicated math facts. Well done to the creators of this app.
Примеры предложений с приложениями
Гаврила-плотник так и обмер, братцы мои, а она знай хохочет да его все к себе этак рукой зовет. (И. Тургенев)
Дочь Дарьи Михайловны, Наталья Алексеевна, с первого взгляда могла не понравиться. (И. Тургенев)
Тут выдался холмистой картинкой частый осинник, а в нем стоял рогатый великан лось. (М. Пришвин)
От полка спасибо наше вам за сына-храбреца. (А. Твардовский)
Ко мне обратился небольшого роста человек с французской черной бородкой, с усами-стрелами, торчащими к глазам. (М. Булгаков)
Чабан-татарчонок с высоким крюком в руке стоял вдали, возле серой отары овец. (И. Бунин)
Да иначе и быть не могло: не так уж часто встречались на Волне женщины-штурманы. (К. Паустовский)
В селе, где я родился, сзади двора протекала речушка Журавка. (А. Новиков-Прибой)
Я и нацелился на барк «Потози», который недавно перешел на рейсы Европа — Южная Америка. (И. Ефремов)
А враги, дурни, думают, что мы смерти боимся. (А. Фадеев)
Шорник Антип Калачиков уважал в людях душевную чуткость и доброту. (В. Шукшин)
Калькулятор остался в прошлом… Лови ответ не просто калькулятор!
ЛовиОтвет на Apple AppStore
Помимо версии под Android(Google Play), программа ЛовиОтвет доступна
для использования на платформах iOS версии 5.1 и выше.
Работает на всех устройствах Apple: iPhone 3GS, iPhone 4, iPhone 4S,
iPod touch (3rd generation), iPod touch (4th generation) и iPad.
Новое в версии 6.0.80:
- Для работы программы больше не требуется системный сервис
- Улучшен механизм обновления программы
Новое в версии 6.00:
- Улучшенный интерфейс программы в новом дизайне
- Добавлены новые математические функции
- Еще лучше решает домашние задания
- Повышенная стабильность работы
Новое в версии 5.00:
- Обновленный дизайн интерфейса программы
- Решение практически любых математических задач
- Возможность выбора уровня детализации решения при просмотре результатов
- Вывод решения как со столбиками, так и в сокращенном виде
- ри варианта решения — Стандартное, с обыкновенными дробями и решение «в столбик»
Новое в версии 4.00:
- Решение уравнений
- Упрощение выражений
- Дроби
- Точность расчетов до 80 знаков
Новое в версии 2.01:
- Добавлено более 50 математических функций и теперь позволит использовать
калькулятор не только школьникам, но и студентам и инженерам,
в том числе тригонометрические функции (от sin() — синуса до arccsch()
— гиперболического арккосеканса), факториалы, логарифмы и много-много
полезных функций. - Возможность копирования решения или ответа в буфер обмена
- Возможность отключения подсчета «в столбик» идеально для проффесионального вычисления
Используя Лови Ответ вы сможете проверить правильность решения домашних заданий по математике вашим ребенком.
Программа предназначена для школьников и студентов всех курсов. Также отлично зарекомендовала себя среди родителей, в качестве отличного инструмента для проверки домашних заданий.
Calculator +
Еще один удобный инструмент для операционной системы Android, который позволяет вычислять математические задачи. С помощью камеры определяет путь решения уравнения, задачи или тригонометрического равенства. Основные характеристики:
- Простой и удобный в использовании интерфейс, который обладает привлекательным дизайном.
- Встроены базовые алгоритмы расчетов.
- Приложение решает задачи по сделанным фотографиям и введенной информации.
- Устройство ведет несколько вычислений одновременно.
- Выполняется конвертация всех единиц измерения.
- Многофункциональный калькулятор.
- Проверка правильного ответа по фотографии. При этом результат может не выводится, функция используется для контроля проведенной работы.
Большая часть отзывов носит положительный характер. Это связано со стабильной работой приложения, а также функциональностью. При оформлении использовался простой и сдержанный стиль, при этом интерфейс считается интуитивным. Все функции переведены на русский язык, что существенно упрощает использование ПО.
Разнообразие режимов
На странице настроек режима можно задавать необходимые параметры генерации примеров по математике для любого класса.
Тренажер устного счета позволяет отрабатывать 4 небезызвестных арифмитических действия на шести уровнях сложности.
Далее корректируете вид математического примера выбирая тип, устанавливая количество слагаемых, манипулируя числовыми множествами.
На данном этапе разработки были продуманы и реализованы режимы, позволяющие работать с двумя множествами чисел: Положительными и Отрицательными. В каждом из ним можно попрактиковаться в различных типах заданий: «Пример», «Уравнение», «Сравнение».
— этот режим включает в себя обычные арифмитические примеры по математике состоящие из двух или трёх чисел.
— режим, искомое число в котором может находиться на любой позиции.
— режим, в котором необходимо правильно поставить знак сравнения между результатами двух примеров.
Все изменения настроек сразу применяются и Вы тут же можете увидеть как будет выглядеть новый пример в графе «Например». А когда подбор нужных характеристик окончен, нажмите на кнопку ПОЕХАЛИ.
Бонусом является возможность загрузить и в дальнейшем распечатать «самостоятельную работу» в формате PDF, состоящую из 26 примеров соответствующего режима, кликнум по значку Принтер.
Монетизация и удовольствие
Изначально я делал это приложение (рабочее название было Math4Ami) исключительно под iPod touch 5 дочери. Я даже не думал делать приложение доступным на всех iOS устройствах или публиковать его для всех и, тем более, не думал выпускать его для платформы Android (наслушался страшных историй от iOS разработчиков плюс, мне не на чём тестировать Андроид версию).
Какое-то время назад я загорелся желанием опубликовать его в AppStore (меня очень манила мысль, что у меня будет своё приложение в Apple магазине и все это смогут увидеть).
Подумал, что за месяц управлюсь. Ведь весь функционал был готов, оставалось дело за малым — сделать его рабочим для всех соотношений сторон экрана и понятным не только для меня, но и для других родителей. И вот, спустя полгода, я опубликовал его в AppStore и Google Play.
Я изначально решил сделать Math4Ami полностью бесплатным без намёка на монетизацию. Причин для этого решения несколько.
Первая. Как вы уже поняли, я изначально делал его бесплатным для дочери и не хотел ничего прикручивать в «конце» разработки.
Вторая. Я решил, что это будет разработка для собственного удовольствия. У меня уже есть подобный опыт — я делаю блог для удовольствия (который изначально только кушал средства: деньги на хостинг и на доменное имя, время на написание статей и их продвижение). Моя логика была следующей: если я плачу деньги за посещение аквапарка, покупку книги или мороженного, чтобы получить удовольствие, то почему я не могу себе позволить платить деньги за хостинг, доменное имя или членство в Apple Developer Program, если это тоже приносит мне удовольствие.
Третья — ради более широкой аудитории, которая бы значительно урезалась, сделав я приложение платным (как делают многие разработчики детских приложений). Другие типы монетизации я отмёл по нижеописанным причинам.
Внутриигровую рекламу я на дух не переношу — не люблю когда дизайн приложения уродуют рекламные сообщения (разве что кроме рекламы в виде просмотров видео по желанию, а не когда видео выскакивает из-за угла). К тому же, для участия в программах «Made for kids» у Apple и «Designed for Families» у Google, нужно строго фильтровать показываемую детям рекламу.
Внутриигровые покупки я сам, как родитель, блокирую на всех устройствах и дети, когда качают приложения самостоятельно, просто физически не могут ничего купить внутри приложения. Другое дело, когда родитель сам изначально покупает приложение для ребёнка (но об этом я уже сказал выше).