Pull to refresh

Comments 66

Яростно плюсую, сам все собираюсь что-нить написать, эта пошаговая история поможет :-)
Лучше попросить доступ с api
На самом деле лучше один раз сесть и сверстать хабр под мобильные устройства. Помимо телефонов на андроиде существует туева куча смартфонов и врятли под всякие нокии кто-то сядет и начнет писать приложения даже если будет апи. Сверстать сайт, тянущийся по ширине/высоте, гораздо проще чем писать приложения под всё подряд.
да-да, отличный пример. Жаль только что он только для чтения и в данной реализации мало чем отличается от RSS ленты.
зато тут я наконец смогу сделать не белый список (лента — единственная опция на хабре) — видеть в ленте только то, что выбрал, а черный список — видеть все подряд, а прятать только то, что не нравится — блоги яблочников, яндекса и пр.

зы. и проблема не в верстке, на большом экране телефона и текущая вполне нормально смотрится
public class habr extends Activity{...}

Название класса с прописной буквы… куча закомментированного кода… за что так джаву не любите?
верное замечание. писать код надо красиво и парвильно.
— юзать переменную LASTURL можно юзать и webView.reload() для перезагрузки страницы.
— имя не верное — это у вас не константа, что бы ее большими буквами писать. если константа — то слова разделяют подчеркиванием LAST_URL
— строковые константы выносить в string.xml
— javascript инекцию в константы
— saveSettings(Boolean val) — зачем передавать обект — можно просто boolean
— куча «magic numbers» в коде. все в константы.
— getSharedPreferences(PREFS_NAME, 0); -> getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
или лучше
PreferenceManager.getDefaultSharedPreferences(this);
myMenu — is never used. да еще и без модификатора доступа.
если выкладываете код — посторайтесь его «причесать»
+ может стоит подрубить кукисы к вашему вебвью?

в onCreate
CookieSyncManager.createInstance(this);

в onResume
CookieSyncManager.getInstance().startSync();

в onPause
CookieSyncManager.getInstance().stopSync();
блин, еще и картинки разного цвета в меню…
вот после таких приложений в маркете айфонщики нас и «призирают» :(
Кукисы подрубаются автоматически к вебвью, данный код не нужен в данном случае.
Нет, нет у WebView нет доступа к кукисам стандартного браузера. Каждое приложение живет в своей песочнице. Это основы безопасности. В противном случае я писал бы этот комментарий из под Вашего аккаунта. А синхронизация позволяет считать кукисы моего, локального вебвью, а затем я уже могу использовать их для кастомного http запроса, например.
если юзать вот это — CookieSyncManager, то есть, помоему
я писал приложение которое было врапером над сайтом.
сайт сохранял неокторые данные в кукисы и сайт загруженый в вебвью ими пользовался

Куки автоматически сохраняются в вебвью. Менеджер нужен если например надо передать куки в другой вебвью, http клиент и т.п. Я на враперах над сайтами уже собаку съел.
+меню лучше создавать через inflater и xml-файл.
а чем лучше?
как по мне — то все равно как. лишбы строки брали из string.xml
хотя бы — чтобы каши не было. элементы графического интерфейса, лэйауты там всякие — в xml. в коде их только подсасывать. ну или использовать тогда, когда кроме как в runtime нельзя (накололся недавно с падением приложения под 3.0 при повороте сэкрана с последующим включением/отключением ActionBar — одними лэйаутами не решалось, крэшилось).
По привычке, вероятно, т.к. автор писал и другое приложение, для блога, которого нет. ;-)
Вроде как сайт на русском языке, а клиент, судя по скринам, на английском. Это круто, что ли?
Не выпендрёжа для, тупо по-русски подписи не помещались.
потому что кириллица ))
думаете, дело в ширине букв алфавита, а не в длине слов языка? .)
ну… я намекал на вечные кодировки :)
классно, в маркете есть один клиент, который падает при попытке посмотреть карму, плюс выглядит ужасно. Надеюсь, эта статья подтолкнет энтузиастов таки написать хрошее приложение :)
С удовольствием установил приложения для обоих блогов, будем пробовать.
«Срок регистрации домена истёк» — это я вижу на своём Wildfire при запуске клиента, скаченного по ссылке из статьи. Ни F5, ни Main Page ситуации не меняют.
Это все где-то жесткий DNS кеш, на хабре были какие-то проблемы вчера )
тупой идиот, я же уже заходил на Хабр с мобильника. Очистка кеша помогла решить проблему, полёт нормальный.
Написание в «онлайн» режиме навеяно фильмом Социальная сеть?
Если честно, думал за часок напишу и все поймут как просто это можно делать. Но не срослось.
Сам пишу потихоньку оффлайн клиент для habrahabr, думаю как появится вменяемая версия выложу с исходниками. Прочив заголовок думал забросить уже, а нет это все таки не совсем то. Но все равно автору респект.
Как-то сейчас много клиентов для хабра пишется. Вот моё открытое творение (ещё не законченное) — code.google.com/p/habraclient.
Не уверен что много. Как-то читал давно, что пишется официальный вроде клиент, но что ничего не слышно про это давно. Поэтому решил потихоньку свой писать, не официальный. Да и как бы мне не совсем понятна идея онлайн клиента, если онлайн можно и m.habrahabr.ru почитать. А вот оффлайн клиентов к сожалению не видел пока.
m.habrahabr.ru урезан по функционалу. Я потихоньку пишу клиент для habrahabr.ru, который удобно предоставит данные и поможет немного с экономить трафик (вырезание картинок, css и скриптов). И в отличии от существующих, можно будет авторизоваться и писать/комментировать посты и ответы. Для оффлайн может быть будет кэш, я как-то про оффлайн почти не думал.
Если будет оффлайн, то это супер, а отключить картинки можно и в браузере.
Вы вполне можете присоединиться к разработке, опен сорс же.
жаль что не выложили там скриншоты клиента
Интерфейс сейчас как раз главная цель разработки. Скриншоты появятся вместе с более менее нормальным интерфейсом.
берете rss читалку с поддержкой закачки статей и вот вам offline.
сам писал такую одному человеку.
+ настройка качать пока в зоне wifi.
можно сделать закачку даже с картинками. небольшой краулер по странице — выдерает все ссылки какчает картики, джаваскрип и css и перебивает линки налокальные
У rss хабара одна проблема, возвращает строго N-последних топиков (хотя может я и не прав, и как то это можно обойти). Поэтому есть вероятность пропустить их закачку.
все rss ленты показывают ограниченное количество новостей
для этого делают сервис который раз в n минут ходит за обновлениями
Жаль, никто еще не сделал такого сервиса, куда можно было бы загружать большие листинги кода…
чем вам github или bitbucket не угодили?
или «ирония» это ваш коммент?
жаль, что нет поддержки android 1.5 :(
Ну код выложен же. Почему нет из коробки — я написал.
Пекедж ru.habrahabr.android больше для официального клиента годится. В Java есть правило — package должен соответсвовать вашему домену, и если вы никак не связаны с администрацией хабрахабра, то не имели права его использовать
Но у вас в профиле значится recoilme.ru. В любом случае, это не даёт права использовать чужой, который заведомо может вызвать конфликт интересов
написали бы что-нибудь типа ru.recompileme.android, зачем киберсквоттить официальное название package?
рассчитывал увидеть здесь что-то интересное, а увидел какой то браузер. смысл?
Ага, и когда уже модерацию введут на маркете…
Спасибо, так гораздо удобнее. Но! Как сделать так, чтобы по тапу на ссылке в Google Reader открывалось сие приложение. Т.е., смотреть понравившийся топик не в штатном браузере, а в habrahabr'е?
Спасибо за песенку ;) Только группа называется «Submatukana», долго не мог понять, почему не могу найти трек.
Скажите, коллеги, код рендерится мелким таким, почти нечитаемым шрифтом только у меня?
FF4, на 3.6 было ровно то же самое. Аддонов, кроме firebug не стоит, но он выключен. разрешение 1600*900
Установил данное приложение. Больше спасибо. Удобно* Только вот на устройстве LG Optimus GT540 текст с правой стороны выходит буквально на «пол-буквы» за край.
Все класс, единственное — если вы уже следите за секьюрностью, проверяя домен, то лучше сначала URL в константы,

private static final String HABR_URL = "http://habrahabr.ru";

и сразу родить из него URI

private static final String HABR_URI = Uri.parse(HABR_URL);


Ну а потом уже проверять хост

// ...
Uri uri = Uri.parse(url);
// ...
if (!HABR_URI.getHost().equals(uri.getHost())) {
         // тут идет наш интент с вызовом браузера
}
// ...
Sign up to leave a comment.

Articles