- PVSM.RU - https://www.pvsm.ru -
Уже почти год я занимался написанием клиента для вконтакте под Windows 8. Сейчас более-менее стабильная версия доступна в магазине и я решил рассказать о нем. Как говорится сам себя не похвалишь, никто не похвалит.
Ссылка в магазине [1].
Разработкой я занимался почти весь последний год в свободное время и считаю результат неплохим, учитывая мои никакие знания на начальном этапе.
Уже сейчас приложение может многое, чего ожидаешь от клиента социальной сети, по крайней мере той части, которой я пользовался. В этом плане сильно не хватает обратной связи от пользователей.
Этот пост я создавал прежде всего с целью получить отзывы программистов, что сделано неправильно и как делать правильно, ведь книги только молчаливые советники, но никоим образом не критики :)
Как итог всей этой работы я планирую залить весь код в открытый доступ, вдруг кому-либо будут полезны мои наработки.
За это время набилось много шишек, от которых хотелось бы уберечь других начинающих разработчиков.
Практически все приложения так или иначе показывают перечень элементов пользователю. Изначально у меня был собственный велосипед, который был реализован через кнопочки вперед-назад и фиксированное количество элементов для загрузки. На самом деле проще и быстрее реализовать интерфейс ISupportIncrementalLoading и привязать его к GridView. Когда пользователь прокручивает список до определенной точки происходит проверка свойства bool HasMoreItems и при его истинности вызов метода LoadMoreItemsAsync. От программиста требуется только правильно реализовать эти две сущности.
К сожалению тут есть свои подводные камни
У вконтакте есть ограничение на количество запросов в секунду, но при этом не все методы возвращают достаточное количество дополнительной инофрмации.
Например лента новостей выдает только ID пользователей, добавивших новости. Загружаем 20 новостей, нужно выполнить 20 запросов на получение имени и фотографии. Несложная арифметика показывает, что для этого нам прийдется подождать больше 5 секунд.
Я решил использовать хранилище объектов, которое выдает объект моментально по его ID, при этом объекты которые не заполнены информацией добавляются в очередь загрузки. Раз в пол секунды срабатывает таймер и загружает информацию для всех незаполненных объектов одним запросом.
Минус этого подхода в том, что пользователь около полусекунды видит на месте фотографии и имени товарища серый квадрат.
Ну и в конце пара ссылок на мой блог, чтобы не переписывать по новой:
Автор: TIgorA
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/vkontakte/42077
Ссылки в тексте:
[1] Ссылка в магазине: http://apps.microsoft.com/windows/ru-ru/app/vk-uno/87dc7d15-1241-4e75-b7c9-a0aa802714d6
[2] раз: http://tigors.net/modern-ui-background-music-windows-8/
[3] два : http://tigors.net/net-async-upload-photo-vkontakte/
[4] Источник: http://habrahabr.ru/post/188680/
Нажмите здесь для печати.