Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
mr_aleks
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 131
#1

Подскажите план на прогу, как лучше написать и реализовать - Программирование Android

27.04.2016, 17:02. Просмотров 369. Ответов 10
Метки нет (Все метки)

Недавно посетила идея написать пока только для себя прогу с взаимодействием сайта. Собственно хочу реализовать такое. Есть сайт lostfilm tv(надеюсь не реклама). Для начала хочу что б прога загружала с ленты, последнии серии которые были переведены. Проще говоря практически перенести эту страницу в приложение. К концу данной задумка прикрутить push уведомления на выбранные/интересующие тебя сериалы. Вышла серия, тебя прога уведомила, когда серию переводят они сразу же туда её постят.

Теперь самое интересное, как это реализовать. Через парсер jsoup, читать определенный текст и изображения, но с картинками там все сложно, в идеале должно быть так (как я идеал представляю, но возможно я ошибаюсь) прога парсит изображения, загружает их сразу же при открытии видимый экран, далее кеширует их и при следующих открытиях смотрит если это изображение было загружено уже, то его не загружает дабы не плодить мусора (это отностится и к описанию т.к. тексту). Через парсер можно на сколько я понял, передавать ссылки на эти картинки и в дальнейшем с ними работать загружать/сохранять и т.д.
Жду ваших мыслей куда мне копать, что читать. Как с точки зрения нормальных современных прогеров это реализовать ? т.к. читал, некоторые картинки загружают в озу, она там чет переполняется, прога вылетает и.д.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2016, 17:02     Подскажите план на прогу, как лучше написать и реализовать
Посмотрите здесь:

Как лучше реализовать компоновку? - Программирование Android
Здравствуйте! Имеется вот такой макет: Как это лучше реализовать? GridView не подходит, а жестко привязывать к одному слою другой с...

Как лучше реализовать вывод объёмного текста?! - Программирование Android
Приветствую. Есть такая проблема в приложение типа туристического справочника нужно выводить текст в активити, и текста этого...

Как лучше реализовать игру стандартными средствам SDK? - Программирование Android
Пример игры на флеш во вложениях скинул

Подскажите, как лучше сделать (справочник организаций) - Программирование Android
Здравствуйте уважаемые! В программировании для Android я новичок. Заинтересовал вопрос разработки справочника организаций. Создал...

Подскажите как реализовать задуманное - Программирование Android
Всем привет,я новичок. Хочу создать приложение-справочник,на подобии кулинарной книги. Информация вся находится в pdf файлах но много...

Подскажите как реализовать задачу с Navigation Drawer - Программирование Android
Снова всем привет.очередной ламерский вопрос. Есть один активити, в нем я реализовал получение с кнопки операнда или оператора.Т.е. в...

Подскажите как и сложно ли написать кнопку выключения планшета - Программирование Android
Все доброго времени суток! Я новичок по программированию, но если не сложно подскажите как и сложно ли написать кнопку выключения планшета?...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
27.04.2016, 19:55     Подскажите план на прогу, как лучше написать и реализовать #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
господи, да что там делать...у них есть rss лента - ее и надо парсить https://www.lostfilm.tv/rssdd.xml

1. подключаем библиотеку jsoup в файле build.gradle в зависимостях добавляем строку
XML
1
2
3
dependencies {
    compile 'org.jsoup:jsoup:1.9.1'
}
2. создаем класс-модельку для rss айтема и Runnable класс, который будет все вытягивать и парсить
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
 
public class LostFilmRssParser implements Runnable {
 
    private final RssParserCallback listener;
    private final String url;
 
    LostFilmRssParser(RssParserCallback listener, String url) {
        this.listener = listener;
        this.url = url;
    }
 
    @Override
    public void run() {
        ArrayList<RssItem> items = null;
        final Elements elements = getElements();
        if (elements != null && elements.size() > 0) items = createItems(elements);
        if (listener != null) listener.onParse(items);
    }
 
    private ArrayList<RssItem> createItems(Elements elements) {
        ArrayList<RssItem> items;
        items = new ArrayList<>();
        for (Element e: elements) {
            RssItem item = new RssItem();
            item.pubDate = e.getElementsByTag("pubDate").get(0).text();
            item.title = e.getElementsByTag("title").get(0).text();
            item.description = e.getElementsByTag("description").get(0).text();
            item.link = e.getElementsByTag("link").get(0).text();
            items.add(item);
        }
        return items;
    }
 
    private Elements getElements() {
        Elements items = null;
        try {
            Document document = Jsoup.parse(new URL(url).openStream(), "Cp1251", url);
            items = document.getElementsByTag("item");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return items;
    }
 
    public interface RssParserCallback {
        void onParse(ArrayList<RssItem> items);
    }
}

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
public class RssItem {
    public String pubDate;
    public String title;
    public String description;
    public String link;
}


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

допустим у нам MainActivity, тогда
Java
1
public class MainActivity extends AppCompatActivity implements LostFilmRssParser.RssParserCallback
ide предложит добавить метод onParse(), копипастим
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    @Override
    public void onParse(ArrayList<RssItem> items) {
        if (items == null) {
            // что-то пошло не так, нет инета или сайт в коме, вобщем ошибка
            // если надо разширенная обработка ошибок - рефакторим самостоятельно )
        } else {
            // все замечательно, список не пустой, в нем олжно быть 15 объектов (столько в ленте)
            // в идеале, из полученного списка делать RecycleView с адаптером, но это отдельная история, уроков полно
            for (RssItem item: items) {
                System.out.println(item.pubDate);
                System.out.println(item.title);
                System.out.println(item.description);
                System.out.println(item.link);
                System.out.println("---------------------------------------");
            }
        }
    }
и где-то в коде, например в onCreate, стартуем задачу
Java
1
2
3
        final String url = "https://www.lostfilm.tv/rssdd.xml";
        LostFilmRssParser parserTask = new LostFilmRssParser(this, url);
        new Thread(parserTask).start();
4. а, да, в манифесте надо добавить разрешение
XML
1
    <uses-permission android:name="android.permission.INTERNET" />
5. PROFIT
SergioO
93 / 182 / 63
Регистрация: 13.12.2015
Сообщений: 986
27.04.2016, 22:06     Подскажите план на прогу, как лучше написать и реализовать #3
mr_aleks, я в андройд новичок, но обычно все делается стандартно и в андройде это есть:
1. получаешь контент со страницы(стандартный метод)
2. парсить можно regex (тоже билотека)
3. выводишь на экран (есть в андройд лайот html)
mr_aleks
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 131
28.04.2016, 02:16  [ТС]     Подскажите план на прогу, как лучше написать и реализовать #4
Паблито, да реально профит. Но как по мне лучше парсить с самой страницы хоть это и не правельно, почему то линк не парсит, и в теге "description" парсит все что в нем а не только текст, почему то. Но вот опять же, на картинки получаешь ссылки, дальше видимо нужно искать стороннюю реализацию кэширования картинок...
Далее..., как это сделать что б прога сохраняла, и в последующем обновление и открытие проги обновленная инфа добавлялась к уже имеющемуся. Но напрашивается вопрос, зачем такая прога если можно сразу зайти на сайт, т.е. нужно как то пилит сервис который в фоне бы обновлял инфу постоянно (походу нужна будет бд или чет подобное), и уже потом прикручивать push уведомления да хотя бы на все новые серии. Это все пока только в голове, как реализовать без молейшего понятия, тут что б изучить эти парсеры уходит скок времени. Да Я ток начинаю в андроиде.

SergioO, jregex ?
На словах все так просто А с картинками как ?
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
28.04.2016, 08:11     Подскажите план на прогу, как лучше написать и реализовать #5
Аналогичная прога есть у меня, скажу сразу, время от реализации до выкладки на маркет составит для новичка минимум полгода-год. Это при прилежном старании и уделении часа по 2 разработке в день.
Нужно знать минимум: Regex, jsoup, notification, service, sql.
И дизайн, вьюхи еще красивше сделать, чтоб юзер не плевался.
mr_aleks
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 131
28.04.2016, 09:18  [ТС]     Подскажите план на прогу, как лучше написать и реализовать #6
Rube, я исключительно для себя пишу, а вот когда полностью доработаю, мб и выложу во всеобщее обозрение. Для начала очень хочется для себя написать, т.к. появилось желания после того как я не нашел подобной проги в гугл маркете
Если я правильно догадался все таки надо бд и пилить сервис. А уже потом с пуш уведомления возиться.
Подсказали бы макет проги, или как обходиться с картинками...
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
28.04.2016, 11:08     Подскажите план на прогу, как лучше написать и реализовать #7
Цитата Сообщение от mr_aleks Посмотреть сообщение
Но как по мне лучше парсить с самой страницы хоть это и не правельно
это просто тупо

насчет кеширования картинок, библиотек полно - Glide/Picassa/куча разных image-loaderов
по уму картинки никуда скачивать не нужно, glide или любая другая библиотека сама их скачает, перекодикует под нужный размер и закеширует...внимание....одной строкой, обычно это делается в RecyclerView адаптере

парсить description тоже можно, но в мои планы не входило написание полностью готового приложения, я дал направление куда двигаться и как парсить
Цитата Сообщение от SergioO Посмотреть сообщение
1. получаешь контент со страницы(стандартный метод)
2. парсить можно regex (тоже билотека)
3. выводишь на экран (есть в андройд лайот html)
это вообще бред сивой кобылы и набор слов
к тому же "андройд" пишется через "и"
mr_aleks
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 131
01.05.2016, 23:52  [ТС]     Подскажите план на прогу, как лучше написать и реализовать #8
Цитата Сообщение от Паблито Посмотреть сообщение
это просто тупо
а как по другому если в rss нет всего того что мне нужно?
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
02.05.2016, 10:43     Подскажите план на прогу, как лучше написать и реализовать #9
а чего нет в их ленте, но нужно?
можно парсить и страницу, тем же JSOUP-ом
mr_aleks
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 131
02.05.2016, 16:01  [ТС]     Подскажите план на прогу, как лучше написать и реализовать #10
Паблито, я про него в первом же посте упомянул, но вы сказали что так не правильно, вот я и спрашиваю а как правильно.
А вообще, вопрос, концепции, у них в ленте rss (цифры для примера) отображаются 5 последних переводов, но если они вдруг опубликовали больше 5ти серий за день, то лента показывает только пять последних и получается что они в ленте не отображаются а видны только на странице полного списка. Так вот, если так случиться я хочу видеть список за текущий период и за предыдущий. Я бы про это не писал если бы сам не видел... Через sql бд?

ПС, я надеюсь хоть немного понятно объяснил.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2016, 16:26     Подскажите план на прогу, как лучше написать и реализовать
Еще ссылки по теме:

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

Через что лучше всего реализовать Кликабельный TextView - Программирование Android
Доброго времени суток. Натолкните на мысль пожалуйста, через что лучше всего реализовать. Получаю список в файлов в папке, вывожу...

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

Как лучше сделать? - Программирование Android
Всем доброго времени суток. Интересует Ваше мнение как лучше реализовать. Есть приложение, по типу справочника (Life-Hacks). Что лучше...

Как лучше поступить? - Программирование Android
Есть уже законченное приложение. Принцип которого вэб приложение, грузящее основную часть через инет. Но не суть - тут всё работает. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
02.05.2016, 16:26     Подскажите план на прогу, как лучше написать и реализовать #11
Цитата Сообщение от mr_aleks Посмотреть сообщение
я про него в первом же посте упомянул
да, просто там сказано про ленту, поэтому я и показывал как парсить ленту

по ссылке из первого сообщения ведь не только переводы, там все новости
ну а так да, mysql база
Yandex
Объявления
02.05.2016, 16:26     Подскажите план на прогу, как лучше написать и реализовать
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru