17
Geo Champs – сервис о красивых людях Mashpit Project

[JAM 1.1] Geo Champs (Mashpit Team)

Embed Size (px)

DESCRIPTION

Geo Champs

Citation preview

Page 1: [JAM 1.1] Geo Champs (Mashpit Team)

Geo Champs – сервис о красивых людяхMashpit Project

Page 2: [JAM 1.1] Geo Champs (Mashpit Team)

Как это работает?

Если вы встречаете на улице или в заведении симпатичную девушки или молодого человека – вы фотографируете её или его на телефон и публикуете с указанием вашего местоположения в городе.

Page 3: [JAM 1.1] Geo Champs (Mashpit Team)

Что это дает?

Постепенно формируется карта, на которой отображены области скопления красивых людей.

Появляется возможность присылать уведомление, если рядом красивый человек

Для каждого человека можно построить географический район в котором он проводит время

Page 4: [JAM 1.1] Geo Champs (Mashpit Team)

Веб-интерфейс

Page 5: [JAM 1.1] Geo Champs (Mashpit Team)

Мобильные клиенты

iPhone

WP7

Android через Flex

Symbian через Qt

Web

Page 6: [JAM 1.1] Geo Champs (Mashpit Team)

WP7

Особенности разработки: Новый UI – Metro + Panorama/Pivot XAML based Model-View-ViewModel Ограничения платформы

Page 7: [JAM 1.1] Geo Champs (Mashpit Team)

WP7

Что радует: Silverlight & .Net Libraries Хороший help Отличный интсурментарий Blend/VS Мобильный контролы

Page 8: [JAM 1.1] Geo Champs (Mashpit Team)

WP7

Что разочаровывает: Ограниченный эмулятор Малое количество информации

Page 9: [JAM 1.1] Geo Champs (Mashpit Team)

Camera Proxy

1. public class CameraProxy : ChooserBase<PhotoResult>

2. private ChooserBase<PhotoResult> _camera;

3. if (useEmulation){ _camera = new CameraCaptureTask();}else{ _camera = new CameraProxy("http://192.168.1.136:1688/", this);}

4. _camera.Completed += CameraCompleted;

Page 10: [JAM 1.1] Geo Champs (Mashpit Team)

Reactive Extensions Location Service

1. void StartStatusEmulation(){ var statusEventsToObservable = EmulateStatusEvents().ToObservable(); var statusFromEventArgs = from s in statusEventsToObservable select s.Status;

statusFromEventArgs.Subscribe(InvokeStatusChanged);} 2. yield return new GeoPositionStatusChangedEventArgs(EmulatedStatusValue);

3. void InvokeStatusChanged(GeoPositionStatus status){ Deployment.Current.Dispatcher.BeginInvoke(() => StatusChanged(status));}

Page 11: [JAM 1.1] Geo Champs (Mashpit Team)

Android

Что радует: Новенький Flex Hero SDK(preview) PS -> Catalyst -> FB SWC’s, Components, Controls Eclipse (?) TDD Debugging(Emulators / Devices) Data Binding Community, Help, References Android Guidelines

Page 12: [JAM 1.1] Geo Champs (Mashpit Team)

Android

Что печально: BUGS!!1 (mostly AIR runtime) Slow ComponentsNEVER USE MX Debugging on devices Пока только Android Мало оптимизированных контролов

Page 13: [JAM 1.1] Geo Champs (Mashpit Team)

Кластеризация

До После

Page 14: [JAM 1.1] Geo Champs (Mashpit Team)

Кластеризация

«Тяжелая» кластеризация на стороне сервера, запускаемая по расписанию (QT-clustering)

«Легковесная» кластеризация на стороне клиентов (Canopies)

Page 15: [JAM 1.1] Geo Champs (Mashpit Team)

Мультиплатформенная разработка

Разработка ведется на разных языках Дублирование кода Сложность одновременного развития и

поддержки Единство UI на всех платформах и Native UI

Guidelines

Page 16: [JAM 1.1] Geo Champs (Mashpit Team)

Возможные решения

Native код

MonoDroid, MonoTouch

HTML5 мобильный клиент, PhoneGap

Necessitas (Qt для Android)

Page 17: [JAM 1.1] Geo Champs (Mashpit Team)

Спасибо за внимание