Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

DF2 :: ФОРУМЫ _ Программирование / Coding _ Как сделать приложение справочник на Андроид

Автор: t800 22 Apr 2017, 15:58

У нас в мае будет экзамен по истории Казахстана (в прошлом году был экзамен по Природоведению)

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

Как это лучше сделать?

Автор: hippocamus 23 Apr 2017, 00:24

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

Ну а если писать программу - я бы написал на Delphi, я сейчас именно кроссплатформенным программированием на делфи и занимаюсь - не так это сложно. Нужно просто вместо VCL немного познакомиться с системной библиотекой FireMonkey.
В Делфи 10 Сиэтл много предзаготовок.

Вот так выглядит, например, мой проект (предзаготовка - страница с вкладками).


Автор: ivyl 23 Apr 2017, 00:40

Для Delphi XE 10 Сиэтл. Взять listbox (listview), в его итемы загружать вопросы, по клику - ответы. Не забыть про searchbox для поиска.

hippocamus, и как тебе эта обезьяна?

Автор: hippocamus 23 Apr 2017, 00:53

Цитата(ivyl @ 23 Apr 2017, 00:40) *
hippocamus, и как тебе эта обезьяна?
Понтовая, а на поверку - слабоватая (попробуй, например, получить имя исполняемого файла!), но работать можно. В Delphi XE компонент интернет-браузера специализирован только под Android и iOS - а в Сиэтле - работает уже и под винду 32/64.
Под винду всё же предпочитаю VCL.
(И очень хорошее достоинство этой Огнезьяны, как я её называю - она не пытается монополизировать ресурсы и отчасти совместима с VCL - при компиляции выдаётся warning о дублировании ресурсов (курсоров, например) - но не более - всё работает.)

Автор: ivyl 23 Apr 2017, 01:14

Точно, в Сиэтле убрали приставку "XE". Меня больше раздражает, чем радует. Начиная с измененных свойств компонентов, заканчивая размером исполняемого файла.

Автор: hippocamus 23 Apr 2017, 01:38

ivyl
Размеры - да, впечатляют. Особенно под Андрюху - там около 20 метров чуть ли не за ХеллоуВорд берут... Но от дальнейшего роста приложения потом мало что изменяется. То есть - львиная доля - системные библиотеки.

Автор: t800 23 Apr 2017, 06:17

Цитата(hippocamus @ 23 Apr 2017, 03:24) *
t800
во-первых не понимаю - а почему нельзя тупо выложить какой-нибудь pdf, fb2 или подобное, а уж программ для чтения этих форматов - предостаточно.


Ну на Google Play только приложения можно выкладывать.

Цитата(hippocamus @ 23 Apr 2017, 03:24) *
Ну а если писать программу - я бы написал на Delphi, я сейчас именно кроссплатформенным программированием на делфи и занимаюсь - не так это сложно. Нужно просто вместо VCL немного познакомиться с системной библиотекой FireMonkey.
В Делфи 10 Сиэтл много предзаготовок.

Вот так выглядит, например, мой проект (предзаготовка - страница с вкладками).



Дельфи 10 это вот эта? См. http://maintracker.org/forum/viewtopic.php?t=5332874

Хммм.. А что-нибудь для Linux или Windows XP нету? И чтобы памяти так много не требовала (у меня в Ubuntu cтоит 1.5Гб) в Windows XP в VirtualBox
(750Mb)

Автор: SaintDark 23 Apr 2017, 06:22

Какие дельфи под андроид, люди. Есть же android studio и ненавистная java.

А по факту, для экзамена проще ответы загнать в word документ и сохранить как pdf. Ответы искать обычным поиском. 4 года способ не подводил.

Автор: t800 23 Apr 2017, 08:10

Цитата(SaintDark @ 23 Apr 2017, 09:22) *
А по факту, для экзамена проще ответы загнать в word документ и сохранить как pdf. Ответы искать обычным поиском. 4 года способ не подводил.


Ну мне то и ответов на форуме хватит. Просто я хочу чтобы ответы были как справочник и чтобы можно было на Google Play выложить.
И это не для себя (я могу и на форуме всегла зайти) а чтобы все могли пользоваться.

PS Ну наверно можно и PDF сделать но так чтобы он был как приложение и чтобы его можно было на Google Play опубликовать

Так ну я вот нагуглил исходники вот этого PDF viewer

https://play.google.com/store/apps/details?id=com.github.barteksc.sample&hl=ru

https://github.com/barteksc/AndroidPdfViewer

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

А как-нибудь покрасивей сделать? Чтобы программа с кнопками была и с поиском?

Автор: t800 23 Apr 2017, 10:10

Так нагуглил open-source библиотеку для epub файлов ИМХО покрасивей чем которая для PDF

См. https://github.com/psiegman/epublib

Автор: SaintDark 23 Apr 2017, 16:09

Цитата(t800 @ 23 Apr 2017, 15:10) *
А как-нибудь покрасивей сделать? Чтобы программа с кнопками была и с поиском?


Если так, то проще не изобретать велосипед с другими языками программирования и использовать java, которая предназначена именно для разработки под android. Благо, самоучителей по android разработке вагон

Автор: hippocamus 23 Apr 2017, 17:26

Цитата(t800 @ 23 Apr 2017, 06:17) *
Хммм.. А что-нибудь для Linux или Windows XP нету? И чтобы памяти так много не требовала (у меня в Ubuntu cтоит 1.5Гб) в Windows XP в VirtualBox
(750Mb)
Начиная с Delphi XE3 среда требует уже минимум висту и гектар памяти. А разработка под андроид поддерживается только с XE5 (то есть - последние версии - XE5, XE6, 10 Seatle, 10.1 Berlin (последний под 6-й андроид)).
А почему не поставить простенькую Win7Starter на отдельный раздел?

Автор: t800 23 Apr 2017, 18:05

Цитата(hippocamus @ 23 Apr 2017, 20:26) *
Цитата(t800 @ 23 Apr 2017, 06:17) *
Хммм.. А что-нибудь для Linux или Windows XP нету? И чтобы памяти так много не требовала (у меня в Ubuntu cтоит 1.5Гб) в Windows XP в VirtualBox
(750Mb)
Начиная с Delphi XE3 среда требует уже минимум висту и гектар памяти. А разработка под андроид поддерживается только с XE5 (то есть - последние версии - XE5, XE6, 10 Seatle, 10.1 Berlin (последний под 6-й андроид)).
А почему не поставить простенькую Win7Starter на отдельный раздел?



Ну не знаю. Как-то не хочется жесткий диск вообще трогоать (он у меня один) и на нем система стоит, поэтому Windows XP у меня в VirtualBox, туда же можно и Windows7 поставить и Windows8, но они тормозят очень сильно потому что больше 1Гига ОЗУ я им дать же не могу.

Автор: Эроласт 24 Apr 2017, 09:37

Ставить виндовс рядом с линуксом, чтобы поставить на него дельфи, чтобы кодить на нём под линукс (а андроид это линукс) - это идиотизм, хочу заметить.

Автор: t800 25 Apr 2017, 13:45

Я тут нагуглил что многие делают приложения для Андроид просто из своих сайтов, т.е. просто копипуют сайт целиком в приложение и все,

тогда я поставил Android Studio для Linux и скачал вот эти исходники

https://github.com/tscolari/android-webview-sample-app

Потом поменял в исходниках адрес страницы на адрес своего сайта, откомпилировал и у меня получилось вот так:


Автор: Seiffear 25 Apr 2017, 17:06

С таким же успехом можно дать ссылку на свой сайт. У всех есть браузер в смартфоне. Более того, тогда это будет уже не только Андройд, но целая мультиплатформа =).gif

Автор: t800 25 Apr 2017, 18:46

Цитата(Seiffear @ 25 Apr 2017, 20:06) *
С таким же успехом можно дать ссылку на свой сайт. У всех есть браузер в смартфоне. Более того, тогда это будет уже не только Андройд, но целая мультиплатформа


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


Автор: t800 26 Apr 2017, 16:21

Вот сделал иконку для приложения


Автор: t800 27 Apr 2017, 10:00

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


Автор: t800 01 May 2017, 10:34

Оказывается чтобы засунуть сайт в приложение надо сделать так чтобы сайт был на чистом HTML и чтобы у каждого ответ лежал в своей HTML файлике 1.html , 2.html и т.д. до 51.html потому что вопросов к экзамену 51 и , кстати, то же самое должно быть с картинками которые в ответах, а я ответы 2 недели писал постами в теме у себя на форуме который на php и mysql cделан и когдя я представил сколько надо времени чтобы по новому переделать все ответы чтобы они были в HTML файлики у меня пропало все желание это делать. Но тут, в пятницу двадцать восьмого, учительна по истории вызлала меня и Мадияра, и дала задание: Мадияру - написать ответы на вопросы в тетради, мне - тоже самое, но разницей, чтобы я распечатал ответы. И всё это ей нужно ко вторнику. А это завтра. А так как бумаги у меня нет (а там надо распечатать 200 листов) то я напряг все силы, чтобы все-таки разобратся с программой, но остался вопрос как быть с HTML файликам. И тут я вспомнил про парсер который я делал для Дяди Степы и решил попорбовать спарсить свои посты с ответами так чтобы они записали в отдельные HTML файлики и с картинками.

Тогда я откыл свой старый скрипт и отредактировал его вот так:


Код
<?php
echo '<html xml:lang="ru-ru" lang="ru-ru" >';
echo '<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>';

set_time_limit(0); // это для того чтобы скрипт не отвалился через 30 секунд


//подгружаем библиотеку
require_once 'library/simplehtmldom.php';

//создаём новый объект
$html = new simple_html_dom();
//загружаем в него данные
$html = file_get_html('http://wiki.kvkozyrev.org/forum/viewtopic.php?f=26&t=193');



$i = 0;
$path = './history/';
$header = '<html xml:lang="ru-ru" lang="ru-ru" ><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>';
$style = '<style type="text/css">.content{text-align: justify} .t800{max-width:600px;} </style>';

foreach($html->find('div[class="postbody"]') as $postbody)
{
$h3 = $postbody->find('h3',0);
echo $h3->plaintext . '<br/>';
$content = $postbody->find('div[class=content]',0);
//echo $content . '<br/>';
$html2 = str_get_html($content);
$img = $html2->find('img[alt!=tablica.png]',0);
$img->outertext = '';
echo $html2->innertext;
// Создаем и пишем в  HTML файл
$fp = fopen($path .$i . ".html", "w"); // Открываем файл в режиме записи
fwrite($fp,$header);
fwrite($fp,$style);
fwrite($fp,$html2->innertext);
//Конец записм в HTML файл


$newimg = $content->find('img[alt!=tablica.png]',0);
if ($newimg <> '' & $i < 52)
        {
        echo '<br/>Новый Имидж<br/>'. $newimg . '<br/>Конец нового имиджа<br/>';
        echo '<br/><br/>I =' . $i . '<br/><br/>';
        $url_img = $newimg->src;
        echo '<br/>ВЫВОДИМ HREF: ' . $url_img;
        $img_path = $path . $i . '.jpg';
        grab_image($url_img,$img_path);
        $img_html = '<br><img class="t800" src="'. $i . '.jpg" width="100%" height="auto" ><br>';
        fwrite($fp,$img_html);
        }
fclose($fp); //Закрытие файла
$i++;
}



//освобождаем ресурсы
$html->clear();
unset($html);



// Это функция grub_image() че картинки скачивает сurl-ом  и сохраняет  (взята из комментариев на Stack Overflow)
// ЗЫ  сurl-ом потому что curl-ом быстрее скачивается


function grab_image($url,$saveto){
    $ch = curl_init ($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    $raw=curl_exec($ch);
    curl_close ($ch);
    if(file_exists($saveto)){
        unlink($saveto);
    }
    $fp = fopen($saveto,'x');
    fwrite($fp, $raw);
    fclose($fp);
}



?>


Запустил его и через 3 минуты он создал мне в папке hystory 51 файлик html c отдельными ответами, а так же закачал и переменовал и в ставил в эти файлики 51 картинку с новыми именами. barb_metal.gif barb_metal.gif barb_metal.gif

Автор: hippocamus 01 May 2017, 12:29

Цитата(t800 @ 01 May 2017, 10:34) *
Оказывается чтобы засунуть сайт в приложение надо сделать так чтобы сайт был на чистом HTML и чтобы у каждого ответ лежал в своей HTML файлике 1.html , 2.html и т.д. до 51.html потому что вопросов к экзамену 51
Ну так тогда это просто компилятор html в chm с прикрученным лаунчером.

Автор: t800 01 May 2017, 13:34

Цитата(hippocamus @ 01 May 2017, 15:29) *
Цитата(t800 @ 01 May 2017, 10:34) *
Оказывается чтобы засунуть сайт в приложение надо сделать так чтобы сайт был на чистом HTML и чтобы у каждого ответ лежал в своей HTML файлике 1.html , 2.html и т.д. до 51.html потому что вопросов к экзамену 51
Ну так тогда это просто компилятор html в chm с прикрученным лаунчером.



chm это файл справки в Windows, в Андроид такого нету.


Автор: tolich 01 May 2017, 16:20

http://androtop.ru/ofis/chitalki-knig/item/328-android-chm-ebook-reader-215.html

Автор: t800 01 May 2017, 16:36

Цитата(tolich @ 01 May 2017, 19:20) *
http://androtop.ru/ofis/chitalki-knig/item/328-android-chm-ebook-reader-215.html


Ну это же ЧУЖАЯ программа, к тому же еще и без исходников не опенсорс и не GPL. Как я ее выложу на Google Play?

Автор: tolich 01 May 2017, 16:41

Это было в топе поиска. Тебе нужно, ты ищешь.

Автор: t800 01 May 2017, 18:02

Цитата(tolich @ 01 May 2017, 19:41) *
Это было в топе поиска. Тебе нужно, ты ищешь.


Но я же хочу сделать свою программу-справочник, зачем мне искать чужую?

Автор: t800 01 May 2017, 20:30

Фух! Наконец-то получилось! barb_metal.gif barb_metal.gif barb_metal.gif


Вот опубликовал приложение-справочник со всеми ответами см. https://play.google.com/store/apps/details?id=org.kvkozyrev.t800.history

Автор: t800 08 May 2017, 10:04

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

И мне никто не ответил кроме ученых-антропологов, которые сказали что не возражают, но только если я добавлю в свою программу-справочник
активную ссылку на страничку с их статьями. Ну я конечно же добавил, Вот так:


Автор: Эроласт 08 May 2017, 10:57

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

Хочешь, секрет расскажу? Всем похеру, даже законопослушным американцам icon6.gif

Ну, ты и сам это понял, наверное)
Цитата
И мне никто не ответил

Автор: t800 08 May 2017, 11:15

Цитата(Эроласт @ 08 May 2017, 13:57) *
Цитата
Потому что я когда брал картинки с разных сайтов для программы-справочника, то я как это требует Google послал на сайты письмо с вопросом что не возражают ли они что я вставляю ихние фото в свой справочник и что если они возражают то я их удалю.

Хочешь, секрет расскажу? Всем похеру, даже законопослушным американцам


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


ЗЫ И кстати, вот ихнее фото в программе-справочнике в примечании к одному из ответов:



(а всего от них я вроде картинок пять-шесть в справочник вставил)

Автор: t800 13 May 2017, 16:16

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


Автор: Эроласт 13 May 2017, 17:11

t800, открой уже свой блог в http://forum.df2.ru/index.php?showforum=138 и пиши там всякую хрень)

Автор: t800 13 May 2017, 17:56

Цитата(Эроласт @ 13 May 2017, 20:11) *
t800, открой уже свой блог в http://forum.df2.ru/index.php?showforum=138 и пиши там всякую хрень)


А зачем блог? Просто я решил теперь попробовать сделать умный справочник и чтобы был с настоящим поиском , а на своем справочнике пробовать боюсь потомучто его в шклое все скачали и поставили. Поэтому и решил попробовать сделать поиск на справочнике про черепа, потому что если не получится никто ругаться не будет.


Автор: ivyl 14 May 2017, 12:20

Цитата(t800 @ 13 May 2017, 17:56) *
потомучто его в шклое все скачали и поставили.
И что? А как по-твоему люди вообще обновляют программы?

Автор: t800 14 May 2017, 13:01

Цитата(ivyl @ 14 May 2017, 15:20) *
Цитата(t800 @ 13 May 2017, 17:56) *
потомучто его в шклое все скачали и поставили.
И что? А как по-твоему люди вообще обновляют программы?



Наверное так же как я обновляю через Google Developer Console. Просто экзамен ведь через неделю. А программу-шапаргалку поставили все одноклассники и еще из других классов тоже поставили. Если я сейчас что-нибудь не так сделаю так, что программа вдруг перестанет работать - на меня ругаться же все будут, поэтому я ее трогать вообще не хочу пока экзамен все не сдадут.

Автор: SaintDark 15 May 2017, 00:36

Цитата(t800 @ 14 May 2017, 20:01) *
Наверное так же как я обновляю через Google Developer Console. Просто экзамен ведь через неделю. А программу-шапаргалку поставили все одноклассники и еще из других классов тоже поставили. Если я сейчас что-нибудь не так сделаю так, что программа вдруг перестанет работать - на меня ругаться же все будут, поэтому я ее трогать вообще не хочу пока экзамен все не сдадут.


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

Автор: t800 15 May 2017, 05:44

Цитата(SaintDark @ 15 May 2017, 03:36) *
Цитата(t800 @ 14 May 2017, 20:01) *
Наверное так же как я обновляю через Google Developer Console. Просто экзамен ведь через неделю. А программу-шапаргалку поставили все одноклассники и еще из других классов тоже поставили. Если я сейчас что-нибудь не так сделаю так, что программа вдруг перестанет работать - на меня ругаться же все будут, поэтому я ее трогать вообще не хочу пока экзамен все не сдадут.


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



Ну это то все время делаешь (в эмуляторе), но почему-то получается что в эмуляторе вроде все нормально, а выложишь на Google Play
а приложение почему-то не работает и приходится по десять раз еще потом исправлять.

Автор: t800 15 May 2017, 07:02

Так ну вроде получилось сделать поиск barb_metal.gif barb_metal.gif barb_metal.gif

См. https://play.google.com/store/apps/details?id=org.kvkozyrev.t800.volcabulary

ЗЫ Если кому интересно могу рассказать как делается

Автор: t800 24 May 2017, 10:09

Всё! Сделал последнюю версию приложения Справочник-Шпаргалка - 1.00.65,

Теперь с чтением ответов ГОЛОСОМ barb_metal.gif barb_metal.gif barb_metal.gif
(Последняя версия поэтому, что до экзамена осталось только три дня)

И по этому случаю я написал подробную инструкцию по установке программы, чтобы можно было ответы слушать, а не читать!

1. Сначала устанавливаем само приложение "Ответы по Истории Казахстана" (если приложение установлено, этот пункт пропускаем).

https://play.google.com/store/apps/details?id=org.kvkozyrev.t800.history

2. Потом устанавливаем программу "RHVoice (T-800 Mod)".

https://play.google.com/store/apps/details?id=org.kvkozyrev.t800.rhvoice.android

3. Теперь ставим пакеты, которые нужны для воспроизведения синтеза речи:

* RHVoice (T-800 Mod) - Русский

https://play.google.com/store/apps/details?id=org.kvkozyrev.t800.rhvoice.android.language.russian

* Голос A - RHVoice (T-800 Mod) [или Голос B - RHVoice (T-800 Mod)]

https://play.google.com/store/apps/details?id=org.kvkozyrev.t800.rhvoice.android.voice.anna


4. Потом заходим в настройки планшета. В графе "Личные данные" ищем строку "Язык и ввод". Там ищем графу "Голосовой ввод", и жмём на строку "Синтез речи". И в графе "Система по умолчанию" ставим галочку возле "RHVoice (T-800 Mod)".



5. Потом закрываем программу "Ответы по Истории Казахстана" (если она была запущена), открываем её снова, выбираем любой вопрос, и кликаем по кнопке "Прочитать вслух".

ВСЁ! brags.gif

Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)