Недавно проходил собеседование на должность удаленного Android-разработчика.
Дали следующее тестовой задание:
Задание
Создать простой twitter-клиент. Приложение должно содержать следующие функции:
- Отображение списка твитов авторизованного пользователя (основной экран)
- Имена пользователей должны выделятся в тексте твита и при нажатии на имя пользователя должен отображаться список твиттов этого пользователя.
- Создание нового твита (максимум 140 символов)
Требования:
- Реализация на языке Java.
- Разрешается использовать любые библиотеки кроме непосредственно twitter-библиотеки.
После выполнения задания нужно прислать код (либо ссылку на репозитоий на GitHub), указав количество потраченного на задание времени.
Информация для чтения
Twitter API:
https://dev.twitter.com/docs/api
От себя скажу, что задание очень понравилось. На всё про всё потратил около двух суток.
С твиттером я был знаком очень слабо: раньше когда-то регистрировался, но толком не пользовался.
Также у меня не было опыта по работе с OAuth (
википедия) и REST API (
википедия). Разобравшись с OAuth авторизацией и REST API, вы сможете по такому же принципу интегрироваться почти со всеми порталами и соц. сетями.
Ниже приведу скриншоты того, что получилось.
1) При первом запуске приложение перенаправляет пользователя в браузер для авторизации. После успешной авторизации браузер обратно передает управление приложению.
2) Открывается главное окно с твитами текущего пользователя:
3) Если нажать на имя пользователя, то откроются твиты этого пользователя:
4) Нажав кнопку "Новый твит", откроете диалоговое окно ввода текста нового твита:
5) Нажав кнопку "Отправить", твит появиться в твитах авторизованного пользователя:
6) По нажатию кнопки "Выход" приложение снова откроет странице авторизации, в которой можно будет залогиниться под другим пользователем:
При написании приложения очень помог код с GitHub'а:
https://github.com/ddewaele/AndroidTwitterSample
Код моего приложения также есть на GitHub:
https://github.com/Nyquest/twitterclient
Можно также скачать исходный код
отсюда
APK-файл:
скачать
Подписанный APK-файл:
скачать
Здравствуйте. По рабочей необходимости приходиться осваивать разработку приложений на android.
C java знаком поверхностно. Мне понравился ваш пример.
Хотел спросить, какую библиотеку вы использовали, или вы все сами написали?
И еще, почему именно так вы записали callback url:
String OAUTH_CALLBACK_URL = OAUTH_CALLBACK_SCHEME + SCHEME_DELIM + OAUTH_CALLBACK_HOST ?
И в манифесте <data android:scheme="x-oauthflow-twitter" android:host="callback".
x-oauthflow-twitter — как я понимаю это название приложения…
А зачем android:host="callback?
А можно было написать просто ?
Добрый день! Точно уже не помню тонкости реализации… Дело в том, что приложение использует OAUTH авторизацию, которая происходит через браузер, т.е. внешнее приложение по отношению к приложению, поэтому после авторизации в браузере, браузер должен вернуть результат авторизации назад в приложение, а для этого используется обратный вызов(Callback). Браузер не может обратиться к Activity напрямую, а только косвенно, через параметры в <intent-filter>, другими словами, обращение идет по названию схемы(android:scheme) и хосту(android:host).
вы подцепили два jar файла signpost… для реализации протокола http, и все, да?
signpost-commonshttp4-1.2.1.2.jar и signpost-core-1.2.1.2.jar нужны для работы с OAUTH.
Для работы с OAUTH идет следующий импорт: import oauth.signpost*.;