Pull to refresh

Клиент WP7 соц. сети «Вконтакте» с открытым кодом

Reading time3 min
Views5.5K

Сегодня уже есть множество демонстрационных проектов под WP7.

Я тоже решил добавить свою «каплю в море» в виде исходных кодов одного из своих проектов «для фана» — клиент социальной сети «Вконтакте» который писался в свободное от работы время.

Проект далек от идеального, но буду рад если код окажется кому нибудь полезен.
На текущий момент функционал очень скуден: сообщения/переписки, список друзей, просмотр фотографий, возможность закрепления на главной почти каждой страницы.

Под катом небольшое описание следующих на очереди функций и возникших проблемах.

Клиент работает через официальное API, соответственно авторизация реализовано через встроенный браузер.

Исходный код
Исходный код и xap файл можно найти по адресу:
http://vkontaktewp.codeplex.com/releases/view/75456

Ожидаемые функции:
В скором времени будут добавлены следующие функциональности:

ProgressBar — одна из самых мелких и тем не менее самая необходимая функция — индикатор процесса загрузки контента.
Pin to start — сейчас почти все страницы можно закрепить на главной, по возможности планируется добавить разную стилизацию для каждой страницы.
Сохранения контактов — легкореализумая, но порой очень нужная функция (прошу прощения за тафтологию :) сохранения контакта из «вконтакта» в список контактов на телефоне.
Навигация — на данный момент навигация не совсем корректно выстроена. Кнопка Home на каждой странице предназначались для возможности перехода в корневую страницу при открытии приложения из закрепленных иконок. По идее, эта кнопка должна отображаться только если мы перешли из закрепленной иконки. В данный момент реализация этой функции была невозможно из за проблем с AppBar (изложено ниже). Не был уверен насколько правильно оставлять в том виде как сейчас есть. Возможно было бы лучше вообще отключить переход на главную чем всегда показывать эти кнопки.

В дальнейшем предполагается добавление возможности комментирования фотографий, добавления новых, поддержки «стены сообщений» и т.д. и т.п. по мере востребованности.

Проблемы с кодом:
В самом коде тоже есть несчетное множество недоработок и недостатков.
Сразу хочу предупредить, что код далек от идеала, он множество раз рефакторился, местами есть копи-паст, местами не оптимален, местами нарушает принцип MVVM, но тем не менее решил выложить в том виде как есть.

Обработка ошибок — основная проблема которая сейчас недореализована — частично реализованная обработка ошибок. Например, ошибка авторизации обрабатывается корректно, но при этом сейчас приложение падает при отсутствии подключения к сети, что, мягко говоря, не хорошо.

AppBar — другая тоже значительная проблема, которую сейчас надо исправить. Это знаменитая, печально известная проблема с привязкой данных к AppBar — любая попытка привязки данных приводит к исключению.
Вторая проблема с тем же AppBar связана с тем что у кнопок в AppBar нет свойства IsVisible — т.е. просто взять и скрыть кнопку не получится. В другом проекте эта проблема решалась собственной реализацией ApplicationBar — здесь, скорее всего, тоже будет такое же решение.

Код менялся множество раз, некоторые вещи остались «в наследство». Например сборка DataLayer, предназначенная для хранения данных в кеше, для обеспечения возможности работы в офлайн режиме, в данный момент отключена, код почти вычищен и эта сборка не используется. С другой стороны «унаследованного» кода не так много на самом деле.

P.S.
Доклад/подробная статья
Мне бы хотелось написать статью или снять доклад на тему разработки приложений под WP7, как всегда, останавливает неизвестность о целевой аудитории. С одной стороны не хочется утомлять банальностями, с другой стороны не хочется упустить важные детали. Буду рад любым пожеланиям/вопросам/замечаниям, которые потом могли бы помочь расставить акценты в статье/докладе.

P.P.S.
Сливающим карму- мне в принципе все равно сколько кармы останется, лишь бы была возможность писать, просто интересно было бы узнать чем вызвано недовольство — может стиль изложения или ошибки в статье, ошибки в коде?

P.P.P.S.
Выложил несколько скриншотов http://vkontaktewp.codeplex.com/. Чуть позже постараюсь оформить домашнюю страницу поприличнее.
Tags:
Hubs:
Total votes 58: ↑41 and ↓17+24
Comments20

Articles