Как сделать свой клиент ВК

​Давайте обсудим вопросы: «Зачем каждый второй делает клиенты VK?», и «Сколько их, этих неофициальных творений»?

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

— Почему официальный клиент ВКонтакте на Android теряет интерес у пользователей?

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

Официальное приложение ВКонтакте с отсутвием Material Design уже немало времени с презентации Google I/O 2014, лишь с мелкими набросками и частичками MD, что наложены на основу приложения, у пользователей, что с версией Android ниже, чем 5.0, до сих пор тема приложения в Holo стиле, когда почти все «гугловские» приложения обновили свой дизайн до MD и для таких версий «андроида» еще в прошлом году. Именно та причина, описанная мной, и подталкивает молодых энтузиастов делать свои клиенты на основе открытого VK API, а обычных пользователей переходить на другие разработки. Разумеется, есть и другие на это причины. Например, на iOS официальному клиенту в целом не нужна замена, ибо приложение соответствует стилю операционной системы и удовлетворяет пользователя функционалом, ну разве что не хватает раздела «Аудиозаписи».

Как сделать свой OFFLINE-клиент из обычного приложения ВКонтакте на Android [ROOT]

— Какие же сторонние клиенты и мессенджеры существуют на Android?

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

Внимание! Ссылаюсь на источники этих приложений, чтобы вы смогли с ним ознакомится!

• Kate Mobile — самый функциональный клиент и самый популярный в своей сфере. Функционал огромнейший, а дизайн не сильно подходящий к «гайдам гугла». Подробнее: http://vk.com/kate_mobile

• Lynt — лучший клиент в Material Design, есть вопросы к работе сообщений, но пререканий к остальному функционалу нет. Подробнее: http://vk.com/loungeapp

• Полиглот — третье место отдаю этому молодому клиенту за частоту обновлений и функционал, тоже с Material Design. Подробнее: http://vk.com/polyglotmobile_vk

• Messenger for VK — лучший, стабильный, красивый с Material Design мессенджер, переростающий в клиент, советую лично. Подробнее:http://vk.com/messenger_for_vk

• Candy — клиент в MD с огромной стабильностью и с хорошими фичами. Подробнее: http://vk.com/codingdesigners

• Mira — функциональный, с большим кол-вом анимаций, клиент. Подробнее: http://vk.com/vkmira

• VK Plus — функциональное приложение в разработке с MD. Подробнее: http://vk.com/vk_com_plus

Приложение VK на Swift с нуля за 60 минут

• Zeus VK — молодой и простой мессенджер в Material Design. Подробнее: http://vk.com/vkmaterial

• SweetVK — легкий и понятный мессенджер, переростающий в клиент в Material Design. Подробнее: http://vk.com/sweetvkontach

• Amberfog — удобный клиент в Material Design. Подробнее:http://trashbox.ru/link/vkontakte-amberfog-android

Еще по теме:  Как посмотреть посещаемость страницы в ВК с телефона

Как видите, почти все с Material Design, но если вы привыкли к официальному клиенту, можно попробовать моды.

— Если вы хотите приобщиться к моде «создания своего клиента».

Вообще, чтобы написать свой клиент нужно знать язык программирования Java, иметь опыт создания приложений на Android, важен опыт работы со сторонними API, нужно уметь работать с разными методами и быть готовым решению разных сложных задач, которые будут возникать при разработке. Многие программисты могут завести дискуссии на эту тему, так что извините, если не учёл что-то важное.

Так вот, имея опыт в этой сфере, могу сразу сказать, «кодить» на Java не может вызывать особых трудностей, но человеку, не знающих основ и всего перечисленного выше, будет тяжело справиться с разработкой клиента. Так что не стоит думать о том, что написание клиентов для ВКонтакте — это раз плюнуть или просто высмеивать «моду на создание своего клиента», все перечисленные проекты, серьёзные, и это не просто «Hello world!».

Если вы хотите начать разрабатывать клиент для ВКонтакте на Android, то пожалуйста — социальная сеть любезно предоставляет VK API, а на Github можно найти исходники с примерами запросов к API (авторизация, постинг на стену)Самое интересное, что если проект популярный, то неофициальный клиент может принести деньги. Многие ищут прибыль путем «доната»: пользователи платят вам назначенную сумму, а вы им открываете в качестве поощрения доступ к большим возможностям. Это самый популярный способ заработать на своем творении. Но главное — не попасть на крючок мошенникам, доверяйте только официальным источникам, чтобы не отблагодарить разработчика впустую.

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

Для связи со мной:

Моя страничка ВКонтакте: vk.com/vojtenko14

Источник: spark.ru

webOS Forums — форум пользователей телевизоров LG на webOS

П.С. Товарищ Администратор не обязательно мну постоянно банить!

Последний раз редактировалось denizkin 24 мар 2011, 23:13, всего редактировалось 1 раз.

Урок №4 ( Пишем клиент ВКонтакте часть 1)

Спонсор » 23 мар 2011, 23:49

Реклама показывается только незарегистрированным пользователям. Войти или Зарегистрироваться

Re: Урок №4 ( Пишем клиент ВКонтакте часть 1)

Voronoff » 24 мар 2011, 00:08

Накопился ряд замечаний к Вам, уважаемый denizkin:

1. Вы называете себя «русское сообщество пользователей HP WebOS». Название на мой взгляд не слишком скромное. А самое главное, где у Вас эти пользователи и сообщество обитают? Нашел на форуме единственное размещенное сообщение.
2. Данный форум является место общения и обмена информацией. И странно, что вместо информации вы указываете в своем сообщении ссылку на другой сайт.
3. Сейчас готовится новая редакция правил, в соответствии с которой на форуме будут запрещены:

2.1. сообщения с неприкрытой рекламой. Прямой спам.
2.2. сообщения с замаскированной рекламой()
2.3. сообщения с «продолжением» ( продолжение читай на моём сайте: «мойсайт.ру») или (фотографии можно посмотреть здесь: ссылка)
2.4. промоушен чего-то либо.

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

Как позитивный момент отмечу, что результаты Вашего труда — видео-уроки, — на самом деле весьма полезны тем, кто осваивает программирование webOS.

Re: Урок №4 ( Пишем клиент ВКонтакте часть 1)

denizkin » 24 мар 2011, 00:30

Так вы добавьте для Яндекса как для ютуба бб-код)) Могу поделиться своим как у меня на форуме в личку кину, чтоб не посылать туда, сами поняли куда!
По поводу пользователей! Могу показать статистику посещений сайта от 20 до 60 уникальных каждый день! и это не накрутка,а мы только появились, я назвал сайт просто hp-webos.ru!

Еще по теме:  Что такое ретрив страница ВК

Но у нас есть второй админ Горохов Андрей мальчик является инвалидом и я всячески потворствую его идеям!

Re: Урок №4 ( Пишем клиент ВКонтакте часть 1)

rburakou » 24 мар 2011, 02:28

Давно мечтаю о клиенте ВКонтакте Самому писать некогда.
Так что когда будет готов с радостью потестирую

Re: Урок №4 ( Пишем клиент ВКонтакте часть 1)

smanic » 24 мар 2011, 03:03

А будет интерграция в Synergy?

Re: Урок №4 ( Пишем клиент ВКонтакте часть 1)

denizkin » 24 мар 2011, 21:29

Работы щас у меня тоже валом, поэтому быстрое добавление уроков не гарантирую!

По поводу Synergy, я честно не думал, но думаю сделаем, но после написания клиента, дабы сразу не нагромаждать проект чтоб у новичков головы не пухли!))

Источник: webos-forums.ru

VK.com — твой бесплатный бэкенд. Пишем свой клиент для стены группы vk.com

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

Опять теория

Для получения записей со стены используется метод wall.get.
Он вернет нам массив записей (JSON), начиная с последней (если нам нужно получать записи с начала списка, то придется использовать в запросе параметр offset ), а в поле соunt попадет число всех записей.

Стоит отметить, что пока этот метод построен не очень гибко. Придется делать два запроса к API вместо одного, первый раз — чтобы получить количество записей (count), а второй раз — уже нужные записи, используя первое значение как смещение. Записи в массиве будут располагаться в порядке от ранних к поздним.

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

response: < count:65, items:[ < id:92, from_id:-50536551, owner_id:-50536551, date:1469733672, marked_as_ads:0, post_type:’post’, text:’Привет ][акер!’, can_edit:1, created_by:3102253, can_delete:1, can_pin:1, attachments:[ < type:’photo’, photo:< id:374032462, album_id:-7, owner_id:3102253, photo_75:’https://pp.vk.me/. ad5/JN_ChKLiMZo.jpg’, photo_130:’https://pp.vk.me/. ad6/Z-84c1FuwVc.jpg’, photo_604:’https://pp.vk.me/. ad7/o79JN_hwnWs.jpg’, width:350, height:163, text:’Original: https://static38.cmtt.ru/comment-media/77/f0/00/0e8971de9c4360.jpg’, date:1435299352, post_id:1003, access_key:’1b927475e9be6cedd1′ >>, < type:’video’, video:< id:171623222, owner_id:-50536551, title:’Напоминатель паролей’, duration:90, description:’https://play.goog. delphi.wifipassword’, date:1452846402, views:14, comments:0, photo_130:’https://pp.vk.me/. ideo/s_31105838.jpg’, photo_320:’https://pp.vk.me/. ideo/l_88896102.jpg’, photo_800:’https://pp.vk.me/. ideo/x_c377669a.jpg’, access_key:’71fedc69404803dcb7′, can_edit:1, can_add:1 >>, < type:’audio’, audio:< id:456239307, owner_id:2000390511, artist:’Научно-технический рэп’, title:’Тыж программист’, duration:172, date:1469733672, url:’https://cs1-32v4. 3XvIToniOQ6tamk8E7A’, lyrics_id:196340205, genre_id:3 >>, < type:’doc’, doc:< id:422991754, owner_id:3102253, title:’Французские переменные.txt’, size:4017, ext:’txt’, url:’https://vk.com/do. c46f98d38> ], post_source:< type:’vk’ >, comments:< count:0, can_post:1 >, likes:< count:0, user_likes:0, can_like:1, can_publish:1 >, reposts: < count:0, user_reposted:0 >> ] >

Поле type указывает на тип вложения, каждый из них нужно обрабатывать по-своему. Для новостного приложения обычно достаточно текста и картинок. Текст мы получим из поля text , а описание картинки нужно брать из аттача с типом photo , который обладает такими характеристиками, как ширина, высота, ссылки на картинку в разных размерах и собственно описание.

Для обработки видео нам нужно получить его id и сделать дополнительный запрос к методу video.get с параметром videos . Значение для этого параметра должно состоять из owner_id + id (-50536551_171623222) . Если владелец видео — группа, то owner_id берется со знаком — . В ответ придет описание видеообъекта.

response:< count:1, items:[ < id:171623222, owner_id:-50536551, title:’Напоминатель паролей’, duration:90, description:’https://play.goog. delphi.wifipassword’, date:1452846402, views:14, comments:0, photo_130:’https://pp.vk.me/. ideo/s_31105838.jpg’, photo_320:’https://pp.vk.me/. ideo/l_88896102.jpg’, photo_800:’https://pp.vk.me/. ideo/x_c377669a.jpg’, files:< external:’http://www.youtub. watch?v=vdacaryKf1A’ >, player:’https://www.youtu. ryKf1A?__ref=vk.api’, can_edit:1, converting:0, can_add:1 > ] >

Еще по теме:  Vk api сколько запросов в секунду

В поле files лягут прямые ссылки на видео в разном разрешении или ссылка на внешний источник. В нашем примере это YouTube.
Приложение с типом audio (как и doc ) обладает еще и полем url со ссылкой на файл — MP3 или текстовый соответственно.

Получение данных

Для клиентского приложения важно получить данные из сети, сохранить их и отобразить пользователю. Способов работы с сетью предостаточно — это могут быть стандартные инструменты или сторонние библиотеки. Для работы с интернетом в SDK есть стандартный класс URLConnection. Ответ нужно разбирать вручную и как-то обрабатывать. Обычно для ответов собирают массив классов, где классы описывают объекты из API.

Сегодня для работы с сетью многие предпочитают использовать сторонние инструменты. Часто это вызвано необходимостью обеспечивать адекватную работоспособность при плохой связи (да-да, во многих местах нашей обширной родины качество мобильного интернета оставляет желать лучшего — операторы связи арендуют друг у друга оборудование, и в пиковые часы оно бывает тупо перегружено).

Сейчас в отрасли стандартом де-факто стало использование связки Retrofit + OkHttp. Хорошую статью по ее применению ты найдешь здесь. Удобна эта связка тем, что позволяет работать с сетью как синхронно, так и асинхронно, что очень важно, поскольку Андроид не дает работать с сетью в главном потоке.

Разбор ответа

Разбор ответов сервера делается автоматически, через механизм описания модели данных. Проиллюстрирую этот процесс кодом. Здесь мы в главном потоке запрашиваем список новых GIF-картинок для таблички с котами:

API

Работа с методами API описана в интерфейсе:

Если API сервиса написан сложно, то приходится делать дополнения к парсингу ответов с помощью класса JsonDeserializer . Иногда бывает трудно понять, что ушло на сервер, а что вернулось, в этой ситуации нам поможет HttpLoggingInterceptor . Вот так выглядит рабочий сервис-генератор:

Из описания записи со стены приложения нам нужно получить лишь текст и ссылку на документ. В тексте содержится разрешение картинки, а ссылка нужна для загрузки картинки.

Загружать картинку в пользовательский интерфейс можно вручную с помощью AsyncTask. А можно немного полениться и воспользоваться библиотекой Fresco (от Facebook) или Glide (рекомендует Гугл). Они же позаботятся о кеше и сэкономят трафик.

Glide.load(URL) .diskCacheStrategy(DiskCacheStrategy.SOURCE) .into(imageView);

Тут все просто: говорим, откуда грузим картинку, куда вставляем и как работаем с кешем.

Хранение данных

Работа с видео, аудио и базами данных — темы обширные и достойные отдельных статей. И по этим направлениям андроид-кодеры имеют неплохой простор для творчества. В качестве БД можно использовать родную SQLite (кстати, создатели Telegram пересобрали ее и получили нехилый прирост производительности), кому-то нравится библиотека Realm — по некоторым тестам она в разы обгоняет SQLite.

Если структура данных не очень сложная, то можно наш массив классов сохранить как текст (gson) в SharedPreferences:

SharedPreferences sp = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); Gson gson = new Gson(); String json = gson.toJson(mCatsSet); editor.putString(«cats», json); editor.apply();

И восстанавливать его при каждом запуске:

SharedPreferences sp = getPreferences(MODE_PRIVATE); Gson gson = new Gson(); String json = sp.getString(«cats», null); Type type = new TypeToken>() < >.getType(); if (json != null) mCatsSet = gson.fromJson(json, type);

Не забудь подключить библиотеку gson в файле gradle:

compile ‘com.google.code.gson:gson:2.6.2’

Вот и все

Этой статьей я заканчиваю наш мини-цикл по использованию возможностей VK.com в качестве бесплатного бэкенда для твоих приложений. Надеюсь, полученные знания помогут тебе написать настоящий шедевр и сэкономить при этом немного денежек. Удачи и до новых встреч на наших виртуальных страницах!

Источник: xakep.ru

Рейтинг
( Пока оценок нет )
Загрузка ...