Krististudio.ru

Онлайн образование
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Создание книги на андроид

Пишем читалку электронных книг на Android с помощью FBReader SDK

В настоящее время наиболее популярными и удобными способами чтения являются электронные книги. Их можно взять с собой куда угодно, они экономят бумагу, отображение текста в них можно настраивать так, как удобно читателю. По этим причинам появилось множество форматов электронных книг, основные из которых это EPUB, FB2 и MOBI. Всем известные DOC и TXT тоже являются форматами электронных книг, однако их возможности по сравнению с вышеуказанными весьма ограничены. У каждого из форматов есть свои преимущества, однако наиболее часто используемыми являются EPUB и FB2, причём второй популярен только у нас в России.

Одной из особенностей этих форматов является то, что для них нужна специальная программа, которая может работать с конкретным форматом. Поэтому в App Store или Google Play можно найти большое количество разнообразных читалок под все известные форматы. В этой статье мы попробуем написать свою собственную читалку электронных книг. Для этой цели мы воспользуемся специальной SDK от разработчиков FBReader, который доступен по следующей ссылке.

В сентябре этого года FBReader выпустили свой собственный SDK для Android, позволяющий создавать свои собственные читалки на его основе. FBReader SDK обладает большим функционалом, который включает в себя следующие возможности:

  • Открытие любых файлов электронных книг (ePub, fb2, mobi, и так далее)
  • Чтение метаданных из файла книги
  • Особенности движка FBReader
  • Возможность менять стиль текста книги

Кроме того, библиотека предоставляет и различные дополнительные возможности для реализации в приложениях, такие как:

  • Выделение текста
  • Закладки
  • Поиск по тексту
  • Оглавление
  • Дополнительная навигация по тексту
  • Поддержка сносок и гиперссылок
  • Настройка яркости

Отдельно стоит отметить, что, хоть FBReader SDK и можно скачать с сайта бесплатно, после встраивания в приложение она будет работать в демо-режиме, который имеет полный функционал, но показывает только несколько первых страниц книги. Для того, чтобы получить полную версию библиотеки, нужно купить её на сайте разработчика и, следуя инструкциям, получить специальный ключ SDK, который затем добавляется в приложение.

В этой статье мы рассмотрим, как на основе FBReader SDK создать свою собственную читалку электронных книг и посмотрим её возможности.

Начнём с добавления SDK в свой проект. Для этого создадим новый проект с пустой активностью. В качестве минимального API укажем API 16.

В файле build.gradle модуля проекта добавим в блок allprojects ссылку для скачивания нужных нам библиотек.

Затем в файле build.gradle модуля приложения добавим зависимости с библиотеками в блок dependencies.

Как вы можете заметить, здесь также присутствует библиотека «com.googlecode.json-simple:json-simple:1.1». Она пригодится чуть позже для работы с JSON-файлами.

Библиотек, входящих в FBReader SDK довольно много, однако они разделены так, чтобы можно было подключать только те, которые нужны для конкретного случая.

В этом же файле в блок android добавим следующие строки, которые должны обеспечить успешную сборку проекта.

На сайте SDK разработчики также предоставляют исходный код различных компонентов, которые упрощают реализацию интерфейса. Скачаем его и добавим в проект. Для этого перенесём оттуда папку fbreader в папку своего проекта. После этого в файле settings.gradle пропишем эту папку и пути до нужных модулей.

Теперь добавим зависимости с ними в файле build.gradle модуля приложения.

Когда IDE пересоберёт проект, мы увидим добавленные модуле в списке слева.

На этом подключение SDK завершено и можно приступать к непосредственно созданию приложения. В конце статьи у нас должна получиться простая читалка с двумя активностями, одна из которых будет отображать список электронных книг на устройстве, а вторая открывать выбранный файл.

Начнём с разметки. Для MainActivity добавим на экран компонент RecyclerView, который будет содержать собственно список файлов. Для этого добавим в файл layout/activity_main.xml следующий код.

Теперь инициализируем этот объект в коде активности. Откроем файл MainActivity.java и добавим следующий код.

Для того, чтобы работать с файлами, хранящимися на устройстве, нам потребуется запрашивать специальное разрешение. Добавим в манифест приложения AndroidManifest.xml следующие разрешения.

Начиная с API 23 это разрешение необходимо запрашивать у пользователя в рантайме. Для этого при запуске приложения будем проверять версию Android на устройстве и при необходимости отправлять пользователю запрос на получение разрешения.

Получить результат запроса можно, переопределив метод активности onRequestPermissionResult(). Если разрешение приложению было предоставлено, продолжаем дальнейшую работу.

В методе generateList() мы будем искать нужные файлы на устройстве и отображать их в списке приложения. Для этого создадим AsyncTask, который будет выполнять всю работу в отдельном потоке и возвращать готовый список с найденными файлами. Добавим следующий код в MainActivity.

Полученный результат нужно отобразить. Для этого нам понадобится адаптер для RecyclerView и модель, в которой будут храниться данные элементов списка. Создадим простой класс BookFile, в котором мы будем хранить имя файла и путь до него на устройстве.

Читать еще:  Шрифты используемые в книгах

Теперь нам нужен адаптер, в который мы будем загружать список. Добавим разметку для элемента списка, для этого создадим файл layout/file_list_item.xml и добавим в него следующий код.

Теперь создадим класс BooksAdapter, который будет наследовать от RecyclerView.Adapter<>. В нём нам нужно инициализировать элементы списка, загружая в них пути и имена файлов электронных книг. Таким образом, код адаптера будет выглядеть следующим образом.

Кроме того, между активностью и адаптером пробрасывается интерфейс, с помощью которого мы будем передавать в активность файл, который пользователь хочет открыть.

Вернёмся в главную активность. В методе generateList() мы запускаем AsyncTask и привязываем к нему слушатель, который должен вызывать метод onTaskCompleted() при завершении работы. В этом методе нам нужно составить список, отсортировать его по имени и передать в адаптер. Добавим сюда следующий код:

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

Однако нам нужно этот файл открыть и прочитать, в этом нам и поможет FBReader SDK. Создадим новую активность, назовём её ReaderActivity. Теперь из скачанного исходного кода нам понадобится несколько классов. Откроем в папке с исходным кодом samples/extensions/src/main и скопируем себе в проект целиком папку res, за исключением res/layout/main.xml, и из java/org/fbreader/sample/extensions скопируем все классы, кроме MainActivity.java. Эти классы содержат готовые компоненты, которые помогут нам в создании читалки, при желании их можно модифицировать в соответствии с потребностями.

Теперь откроем layout/reader_activity.xml и добавим в него следующий код разметки.

TextWidgetExt является обёрткой класса библиотеки TextWidget, этот класс является основным и именно он отображает содержимое книги.

Инициализируем теперь эти объекты в коде активности ReaderActivity.java.

Мы должны получить от главной активности путь до файла, который пользователь хочет открыть. Для этого мы будем передавать интент из одной активности в другую, содержащий нужный путь. Вернёмся в MainActivity.java и добавим код создания интента в метод onBookOpen() интерфейса адаптера.

После этого отправленный интент нам нужен получить в ReaderActivity.java при старте активности. Добавим в onCreate() запись пути файла.

Полученный путь мы передаём в метод setBook() у объекта TextWidgetExt. После этого он должен нам вернуть объект Book, который можно получить с помощью метода TextWidgetExt controller(). Если объект не будет равен null, значит загрузка содержимого прошла успешно и можно показать книгу пользователю.

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

Однако это не весь функционал, на который способна данная SDK. Ранее мы добавляли файлы ресурсов: различные разметки, иконки и меню. Добавим меню в наше приложение, для этого в ReaderActivity.java переопределим метод onCreateOptionsMenu() и добавим в него следующий код.

Также переопределим методы onPrepareOptionsMenu() и onOptionsItemSelected() для работы с этим меню.

Таким образом мы добавим в читалку меню, позволяющее нам:

  • Менять размер текста
  • Менять стиль текста
  • Искать по тексту
  • Открывать оглавление

По поводу оглавления стоит сказать отдельно. В коде, взятом из библиотеки, оглавление представлено в виде отдельной активности, мы её скопировали ранее, но не добавили в манифест. Поэтому откроем файл манифеста AndroidManifest.xml и зарегистрируем в нём новую активность.

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

При выборе главы обратно в ReaderActivity будет возвращаться номер страницы, на которую нужно перейти. Чтобы получить этот результат, в ReaderActivity.java мы переопределим метод onActivityResult(), в который добавим следующий код.

Как можно увидеть, библиотека предоставляет разработчикам весь свой функционал, единственным ограничением бесплатной версии здесь является то, что она открывает только первые несколько страниц книги, о чём говорится при открытии книги.

Если вы купили ключ SDK и хотите добавить его в своё приложение, вам понадобится в файле build.gradle модуля приложения добавить в блоке buildTypes следующий код.

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

Итак, с помощью FBReader SDK и небольшого количества кода мы смогли создать простую читалку для электронных книг. Можно уже оставить как есть, либо продолжить модифицировать, изменяя интерфейс и дизайн так, как нужно разработчику. Пока что SDK есть только на Android, но разработчики планируют к концу года выпустить версию и для iOS.

Пишем читалку электронных книг на Android с помощью FBReader SDK : 2 комментария

В начале написали бы что SDK платная )) причем оочень дорогая ))

Читать еще:  Создать книгу на андроид

SDK не только платная, но еще и очень дорогая. 1000 долларов за лицензию на одно приложение это уж слишком.

Подборка книг по разработке под Android

Подборка книг по разработке под Android

    Книги , 25 марта 2020 в 17:10

Отсмотрели разные подборки материалов по Android-разработке и собрали для вас список годных книг.

Android. Программирование для профессионалов. 3-е издание

Эта книга познакомит вас с интегрированной средой Android Studio, которая сильно облегчает разработку приложений. Вы не только изучите основы программирования, но и узнаете о:

  • возможностях самых распространенных версий Android;
  • новых инструментах, таких как макеты с ограничениями и связывание данных;
  • модульном тестировании;
  • средствах доступности;
  • архитектурном стиле MVVM;
  • локализации;
  • новой системе разрешений времени выполнения.

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

Head First. Программирование для Android. 2-е издание

Эта книга простым языком учит правильно формировать структуру приложений, проектировать гибкие и интерактивные интерфейсы, запускать службы в фоновом режиме, обеспечивать работу на разных устройствах и многое другое.

Всё, что от вас требуется — базовые знания Java.

Android для разработчиков. 3-е издание

В основе книги лежит принцип разработки, ориентированной на приложения, — концепции показаны на примере полностью работоспособных приложений Android, а не фрагментов кода.

Более миллиона человек уже воспользовались книгами Дейтелов, чтобы освоить Java, C#, C++, C, JavaScript, Python и другие языки программирования. Вы сможете не только приступить к разработке приложений для Android , но и быстро опубликовать их в Google Play. Третье издание книги было полностью обновлено и познакомит вас с возможностями Android 6 и Android Studio.

Android. Сборник рецептов. Задачи и решения для разработчиков приложений. 2-е издание

Книга облегчает создание работоспособных приложений для платформы Android с помощью 230 проверенных рецептов. Здесь вы найдёте рецепты для работы с пользовательскими интерфейсами, мультисенсорными жестами, механизмами определения местоположения, веб-службами и конкретными возможностями устройства, такими как телефон, видеокамера и акселерометр. Вы также научитесь упаковывать свое приложение для магазина Google Play Market.

Книга идеально подходит для разработчиков, владеющими языком Java, основами платформы Android и интерфейса Java SE API. Она содержит рецепты, предоставленные более чем тридцатью разработчиками. Каждый рецепт содержит четкое решение и пример кода, готовый к использованию.

Проектирование пользовательского интерфейса в Android

В книге рассматриваются следующие основные темы:

  • реализация материального дизайна в приложениях для Android с сохранением обратной совместимости;
  • знакомство с виджетами, основными строительными блоками пользовательского интерфейса Android;
  • обработка ввода и прокрутки;
  • приемы проектирования интерфейса с ориентацией на пользователя;
  • создание анимационных эффектов с интересными переходами;
  • рекомендации по увеличению загрузок приложения за счет создания необходимых ресурсов для Интернет-магазина приложений и прочие вещи, важные для создания хорошего интерфейса.

Эффективное использование потоков в операционной системе Android. Технологии асинхронной обработки данных

Эта книга с практической точки зрения описывает несколько асинхронных механизмов, доступных в программной среде Android SDK, а также рассматривает основные принципы и правила выбора одного из них, лучше всего подходящего для создаваемого приложения. В первой части книги рассматриваются основополагающие компоненты, отвечающие за асинхронную обработку. Во второй части главное внимание уделено библиотекам и программным конструкциям Android, используемым для разработки быстрых, эффективных и правильно структурированных приложений.

Mastering Android Development with Kotlin: Deep dive into the world of Android to create robust applications with Kotlin

Эта книга обучает основам разработки на Kotlin под Android и объясняет ключевые моменты в создании Android-приложений. Также вы узнаете, как:

  • настраивать внешний вид приложения;
  • сохранять данные приложения;
  • использовать разные механизмы параллельности;
  • писать эффективные тесты;
  • портировать существующий Java-проект на Kotlin.

Реактивное программирование с использованием RxJava

В наши дни, когда программы асинхронны, а быстрая реакция — важнейшее свойство, реактивное программирование поможет писать более надежный, лучше масштабируемый и быстрее работающий код. Благодаря этой книге программист на Java узнает о реактивном подходе к задачам и научится создавать программы, вобравшие в себя лучшие черты этой новой и весьма перспективной парадигмы. Данная книга содержит глубокое и подробное изложение концепций и принципов использования реактивного программирования вообще и RxJava в частности.

Книга может использоваться как для последовательного изучения предмета, так и в качестве справочника по библиотеке.

И ещё один важный ресурс — официальная документация по Android, которая будет полезна всем разработчикам под платформу.

Программы для писателей. Android-приложения для создания, редактирования и публикации материалов

Недавно нас попросили написать статью о программах для писателей на Android. И сегодня мы спешим поделиться с вами очень ценной информацией: теперь писать, редактировать и публиковать свои тексты можно и с помощью Android-устройств, причем абсолютно удобно и бесплатно! Итак, вот он, писательский софт для Android.

Читать еще:  Лучшая книга про маркетинг

WordPress

Хорошее предложение для наполнения и модерирования сайтов на платформе WordPress. Нужно просто войти под своим именем, и вы получите возможность добавлять текст, изображения, аудио- и видеофайлы, редактировать и публиковать статьи. Действительно очень удобный интерфейс, особенно для использования на планшетных Android-устройствах с диагональю экрана 9+ дюймов. Еще один большой плюс – программа бесплатная.

Blogger

Программа позволяет достаточно просто создавать электронные журналы. Как и WordPress, это приложение помогает блоггеру писать, редактировать и публиковать материалы на своей страничке. Интерфейс Blogger напоминает электронный дневник, в котором можно работать как с черновиками, так и с уже опубликованными статьями. Пользоваться очень просто – даже начинающие смогут уверенно вести свой блог с телефона или планшета. Платить за Blogger тоже не придется, так как приложение бесплатное.

Quip

С помощью этого бесплатного текстового редактора можно создавать документы на телефоне, планшете или компьютере. Используя Quip, вы можете работать над файлом одновременно вместе с несколькими другими пользователями, при этом не упустите ни одного обновления текста. Установив приложение на все свои устройства, вы быстро синхронизируете между ними всю новую информацию, подсоединившись к Интернету.

Evernote

Удобный блокнот, а особенно – для писателей. Теперь можно собирать в одном месте абсолютно всю информацию и пользоваться ею с любого устройства. Все, что вы добавляете в вашу учетную запись Evernote, при подключении к Интернету синхронизируется с другими гаджетами, на которых установлена программа. Кроме того, информация также хранится и на сервере программы. Evernote сохраняет и тесты, и аудиофайлы, и фотографии, и подчеркивания. Чтобы сделать поиск заметок более удобным, используйте теги.

А вы уже пользуетесь приложениями для писателей? Если да, то какими? Отвечайте в комментариях.

Рекомендуем к прочтению:

Отзывы

Пользуюсь личным дневником Diaro из плюсов, так это возможность создания категорий(!), так же банально выбирать цвет и метки.
Сейчас упорно пытаюсь найти подобное приложение только с более расширенными возможностями, очень мне нужны для работы подкатегории(подразделы). К сожалению
не в Диаро, не в том же Блоггере это невозможно, а ради личных заметок делать сайт и прилеплять вордпрес, ну не стоит оно того.

Я тоже диаро пользовалась для книг))) очень удобно!

Пользуюсь OneNote из пакета office
Очень удобно!

Это просто п*здец автор идиот в глубочайшем смысле этого слова 🙁 я перешел сюда дабы скачать софт для писателей на андроид а нахожу клиент-блоги на андроид если ты читаешь это ответь пожалуйста ты чувствуешь разницу между этими словосочетаниями? Софт должен помогать писакам, что-то подобно разбивки на сцены, главы, комментарии к героям в виде закладок, может вставление каких-то сторонних файлов в виде графики и аудио, а ты полный кретин прости но это чистейшая правда и все со мной согласятся!

Согласен с Арсеном.
Все кого заинтересовало название статьи «Программы для писателей…» действительно были заинтригованы темой — неужели, что-то толковое появилось именно для нас — писателей, а мы ещё не в курсе.
И после беглого просмотра списка предлагаемых приложений, сложилось впечатление, что автор статьи только-только вот сам начал пользоваться смартфоном. Что это вообще за детский бред в перечне … Evernote, …
Да этим тупизмом наверное ещё наших бабушек пугали, когда появились первые смартфоны. Если уж говорить просто о блокнотах, так за последние годы целая тьма толковых вариантов появилась. Но сейчас речь не о них. Сейчас когда у вас возникает мысль или идея набросать пару абзацев своей книги, а вы в это время едете к примеру в транспорте, очень важно не тратить время на поиск и открытие файла и пр. Все ваши мысли сфокусированы на новом сюжете и поэтому единственное, что требуется — быстро открыть, сделать наброски текста, поправить и спешно закрыть не отвлекаясь на кнопки сохранить или указать место куда и прочее.
Перебрав гору функциональных блокнотов, я оставил из них у себя только пять, но и ими я в конечном итоге также не пользуюсь.
Самым удобным на практике оказались заметки «Google Keep».
Ни дня у меня не проходит без использования этим удобнейшим приложением.
Заметки можно вести не только списком но и текстом и при этом они могут быть вполне вместительными. Их можно удобно систематизировать выделяя цветом и присваивая метки.
И главное они моментально синхронизируются со смартфона через Google аккаунт с моим планшетом и стационарным компьютером. Отработав часть текста, в более удобное время его можно перенести в ваш файл книги используя уже какой-либо блокнот.
Просто попробуйте и вы влюбитесь в это приложение.

Google Keep очень хороший блокнотик, но не всегда все синхронизировал пару лет назад. Попробую ещё раз им попользоавться.

Ссылка на основную публикацию
Adblock
detector