создание приложения для WP7, Iphone и Android - PullRequest
5 голосов
/ 23 марта 2011

Я собираюсь приступить к созданию приложения, которое будет использоваться на всех платформах.Я буду использовать monotouch и monodriod, чтобы я мог хранить вещи в .net

Я немного ленив, поэтому хочу иметь возможность использовать как можно больше кода.

Допустим, я хочу создать приложение, в котором хранится контактная информация.например, имя и номер телефона

Мое приложение должно иметь возможность извлекать данные из веб-службы, а также хранить данные локально.

Шаблон MVVM выглядит как способ, но я не уверен, что мойПодход ниже на 100% правильный

Это правильно?

  1. Проект, который содержит мои модели
  2. Проект, который содержит мои представления, методы локального хранения, а также представлениемодели, с которыми я связываю свои взгляды.В этом случае было бы 3 разных проекта на основе 3 * * * * * * * * * * * * * * * * * * * * * Уровень доступа к данным, который используется для привязки к сервисам и локальному хранилищу данных. * 101 8 *
* 1020..

Спасибо за ваше время

Ответы [ 4 ]

5 голосов
/ 23 марта 2011

Точно не отвечаю на ваш вопрос, но вот несколько ленивых указателей ...

  • Вы можете определенно использовать много кода на всех 3 платформах (плюс MonoWebOS?!)
  • повторно использовать код довольно просто, но вам нужно будет поддерживать отдельные файлы проекта для каждой библиотеки на каждой платформе (это может быть непростой задачей)
  • MVVM определенно работает для WP7. Это не так хорошо, как в MonoTouch и MonoDroid
  • Некоторые из основных областей, которые вам необходимо кодировать отдельно для каждого устройства:
    • Абстракции пользовательского интерфейса - каждая платформа имеет свое представление о "вкладках", "списках", "тостах" и т. Д.
    • сетевые операции - возможности System.Net немного отличаются в каждом
    • файл IO
    • возможности многозадачности
    • взаимодействие с устройством (например, местоположение, совершение звонков и т. Д.)
  • интерфейсная абстракция и IoC (Ninject?) Могут помочь со всеми этими
  • Одни и те же модульные тесты должны быть в состоянии запустить все 3 платформы?

Обновление - я не могу поверить, что я наткнулся на свой собственный ответ ... :) В дополнение к этому ответу вы, возможно, захотите взглянуть на MonoCross и MvvmCross - и, без сомнения, на пути к множеству других гибридных платформ:

2 голосов
/ 18 сентября 2011

Доклад Джонаса Фоллезо о кроссплатформенной разработке : должен быть самым полным ресурсом на данный момент. Он рассказывает о том, как лучше всего делиться кодом и ресурсами, абстрагируется от большинства UI и UX-различий, демонстрирует жизнеспособное многократное использование MVVM на разных платформах и хорошие методы для создания почти автоматизированной сборки. (да, это включает в себя способ компиляции однотонного материала в Visual Studio)

Лучше всего у него есть доступный исходный код для готового продукта и для ряда основных компонентов, индивидуально размещенных в его собственном проекте мастерской, и 50+ страниц в формате pdf, подробно описывающих шаги для этого. TicketsNorway на github

ИМО, единственное, чего не хватает, так это того, как лучше всего обрабатывать локальное хранилище данных на всех платформах. В этом случае я бы направил вас к Vici Cool Storage ORM, который может работать с WP7, MonoTouch и (хотя официально не поддерживается) MonoDroid.

* Отказ от ответственности * Документация сайта не самая последняя, ​​но доступен исходный код. (Поскольку документация является Kriptonite для многих программистов)

1 голос
/ 23 марта 2011

Вы можете начать с просмотра инфраструктуры MonoTouch MVVM Роберта Козака. Это только начало.

MonoTouch MVVM

1 голос
/ 23 марта 2011

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

...