Как я сделал своё андроид приложение
Ещё учась в университете, я задумался над тем, чтобы сделать сайт с тестами, который бы помогал подготовиться к экзаменам и собеседованиям для программистов. В то время уже были сайты, которые выполняли похожие задачи, например quizful.net. Однако все эти сайты не были адаптированы для мобильных устройств, были частично платными (например 3 теста бесплатно, остальное платно), либо были на английском языке. Я не знал на каком языке программирования хочу окончательно остановиться, поэтому решил сделать сайт с тестами сразу для многих языков. Было понятно, что основной ценностью данного сайта будет не только сама фукнциональнасть но и база вопросов. Поэтому изначально было решено составить эту базу. Это заняло уйму времени, вопросы в основном придумывались самим собой при помощи онлайн ресурсов и сохранялись в простом текстовом формате. В связи с загруженность в то время эта идея канула в небытие на долгое время.
По прошествии нескольких лет я всё же решил завершить задуманное. Однако было решено делать не сайт, так как поддержка сайта требует затрат на хостинг и постоянной поддержки. Я решил остановиться на минималистичной версии андроид приложения - пользователь должен иметь возможность выбрать язык, сложность, пройти тест и посмотреть результаты. Как базу решил использовать вопросы придуманные ранее.
Создание этой версии не заняло много времени, приложение содержит всего несколько окон и не сохраняет никакой истории. При установке приложения база вопросов каждый раз копируется из приложения на телефон, что даёт возможность обновлять и добавлять вопросы. К моему удивлению вся база вопросов в сжатом виде заняла менее одного мегабайта. Единственная проблема возникла с подсветкой кода в тестах - большинство библиотек для андроид делают это плохо, либо не поддерживают многие языки программирования. Поэтому пришлось выбрать нестандартное решение - для отображения вопросов было решено использовать WebView и подсвечивать код с помощью highlightjs.
А вот собственно и результат двухнедельной работы:
Окно конкретного языка программирования:
Окно прохождения теста:
Результаты теста:
Ответы с пояснениями:
В приложении множество недоработок, небольшое количество вопросов и отсутствует множество пояснений. Однако основную задачу оно уже выполняет, что меня очень радует.
А вот собственно и ссылка на само приложение.