Что самое главное для приложения, которое пока должно являться трекером прочитанных книг? Наверно, база данных этих самых книг. Чтобы любой пользователь, зайдя в приложение, мог найти там совершенно любую книгу, которую прочел, читает сейчас или только планирует прочесть. И в идеале, чтобы в этой базе данных были все возможные издания! Ведь так же удобнее отслеживать страницы. И обложки тоже все нужны, чтобы в приложении была красивая полочка из книг. И... И... И много, чего нужно. Но в этой статье я расскажу, почему этим всем "нужно" на данный момент не суждено сбыться.
Мои задумки
Конечно, когда я только начала думать над приложением, мне хотелось взять какую-нибудь существующую бесплатную базу всех книг и просто использовать ее у себя. Почему-то мне казалось, что она просто обязана существовать в том виде, в котором мне нужно, и работать все это в связке будет просто идеально (спойлер, такие базы действительно есть, но об этом чуть позднее).
Очень быстро мне удалось узнать, что у каждого официального печатного издания есть свой уникальный ISBN (международный стандартный книжный номер) и по нему-то легче всего можно найти нужное издание, узнать название, автора, количество страниц, найти обложку. Они не повторяются и перепутать издания так невозможно.
Конечно, оставался еще вопрос с электронными книгами, но об этом я решила подумать позже, а пока я начала искать.
Существующие базы книг
Когда я начала гуглить базы книг, я в первую очереди наткнулась на несколько зарубежных. Они вроде как максимально полные, на многих зарубежных ресурсах используются именно они, давая тем самым доступ пользователям к максимальному количеству книг, но вот одна маленькая проблемка... В них почти нет русских книг. Нет, какие-то встречаются, многая классика переводилась на кучу языков, в некоторых базах даже встречались книги именно на русском, но их количество настолько мало, что использовать их не представлялось возможным.
Существуют ли такие русскоязычные? Мне попадались лишь небольшие, какие-то локальные истории, которые тоже не особо-то подходили под мои задачи, но вот я наткнулась на кое-что интересное, на что-то, что кажется мне подходит. Неужели нужная мне база нашлась?
Google Books
Да, у Гугла есть своя база книг, и как будто бы по всем параметрам она действительно самая большая, но настолько ли она идеальна?
Например, вот такое она выдает по запросу "гарри поттер"
"Тайная комната" на английском, у "Философского камня" вместо обложки скан первой страницы, а у "Даров смерти" вообще нет изображения.
Может, с классикой дела лучше?
Давайте попробуем найти "Войну и мир"
Кажется, что-то сходится, но что это за "Первый вариант романа" по первой ссылке? А вот что
Кажется, это не то, что ищет среднестатистический пользователь.
Может, случайность? Может, с другими произведениями дела лучше?
Ну почему опять все как-то криво? Почему первая ссылка без обложки? Вторая на французском языке. И только третья, кажется, более-менее то, что нужно.
Ладно, поиск по названиям действительно сложен, но давайте попробуем поискать по уникальным ISBN. Посмотрим, что получится.
О, кажется сработало!
А если попробовать что-то посложнее?
Не, снова мимо.
В обычном поиске Гугла, кстати, отлично находится, что за книгу я искала.
Эх, а счастье было так близко. На этом этапе я совсем отчаялась найти то, что меня устроило бы. Если даже решение такого гиганта как Google настолько далеко от идеала, чего требовать от более мелких участников? Кстати, мне встречались сервисы по подбору книг или трекеры прочитанного, которые используют именно эту базу, но мне она показалась очень далека от идеала. Если бы мне было бы так сложно найти то издание, что мне нужно, я бы вообще забросила сервис, либо всегда добавляла бы книги вручную, зачем тратить время на поиски, если все равно к этому все придет?
Кстати, сервисы Google сейчас официально в России не работают, зарегистрироваться, чтобы подключиться по API к этой базе официально сейчас нельзя, а тратить кучу времени, чтобы потом еще остаться у разбитого корыта, тоже не хочется.
Самописная база
Да, даже такие мысли у меня проскальзывали. Но я естественно не потяну ни в каком плане. Ни в написании, ни в поддержке, ни в хранении, ни в чем. Если даже Google не справился, куда уж мне. Где ее хранить? На платных серверах? Как ее поддерживать, кто ее будет модерировать? Как исключить дубли, и что вообще считать дублями? Тысячи вопросов. Да и как разделять электронные и печатные издания, если главная цель приложения - отслеживать прочитанное? В электронных-то страниц может быть в 10 раз больше. Больше вопросов, чем ответов.
Итоговое решение
Итоговое решение оказалось самым простым. Не знаю, что будет дальше, но на старте приложения будет возможность добавлять книги только вручную. Это, на мой взгляд, может, и не самое изящное решение, но оно совершенно точно отвечает всем моим требованиям. И количество страниц можно будет нужное загрузить, и обложку, и полочку красивую сформировать.
Любое вышепредложенное решение все равно требовало бы возможности добавлять книги вручную, идеальной базы не существует, так зачем все усложнять?
Спасибо, что прочитали до конца, если у вас есть идеи, как еще все это можно было бы реализовать, пишите в комментариях, обсудим! И подписывайтесь, дальше еще много интересного.