Я работаю над мобильным приложением в течение одной недели, для личного обучения и повышения квалификации.У меня есть некоторый опыт работы с WPF и MVVM, у меня нет опыта разработки мобильных приложений.
Идея заключается в создании кроссплатформенного приложения при тестировании некоторых принципов кодирования:
Я планирую использовать следующие компоненты:
- Prism.Unity.Forms: кажется, обеспечивает структуру приложения, ioc, навигацию, кажется широко используемым и выполняется высококлассными людьми
- ReactiveUI, ReactiveUI.XamForms, ReactiveUI.Fody: WhenAnyValue, ObservableAsPropertyAttribute, ReactiveAttribute ( учебник ), без их использования выглядит для меня огромной упущенной возможностью
ТекущийМоя Visual Studio имеет следующую структуру:
- Csproj
- ViewModels
- CreateExercisePageViewModel
- HomePageViewModel
- Просмотров
- CreateExercisePage
- HomePage
Мне удалось выполнить следующее:
- Установить домашнюю страницув качестве начальной страницы, содержащейся в NavigationPage, с использованием навигационных функций Prism.
- Объявление именованной кнопки в XAML, установка ее свойства Command с помощью привязки OneWay, созданной в коде позади, с использованием функций ReactiveUI (как показано в учебном пособии, с использованием метода WhenActivation)
- Перейдите квторая страница (CreateExercisePage), использующая навигацию Prism
Одна проблема заключается в том, что, хотя я видел несколько статей, касающихся вертикальной нарезки, в основном это были веб-приложения.
Так чтоВопрос в следующем: Применимо ли вертикальное срезание к мобильным приложениям?
Я хотел бы реструктурировать свой проект с помощью вертикального среза, но при поиске статей о формах Xamarin мне было трудно.
Редактировать : мое понимание концепции вертикальной нарезки заключается в том, что вы должны группировать код, связанный с функцией, в одном физическом пространстве (папке).Таким образом, это дает разработчикам огромный намек на сплоченность этих файлов.
Учитывая, что мобильное приложение состоит из экранов, я предполагал группировать код по экрану независимо от их типа (представление, логика, постоянство).будет иметь смысл.
Переписав приложение, вы получите следующее csproj:
- Csproj
- Экраны
- Home
- HomePage
- HomePageViewModel
- CreateExercise
- CreateExercisePage
- CreateExercisePageViewModel
Добавление нового экрана будет означать добавление новой папки в папку «Экраны», что уменьшит риск изменения существующих файлов / логики.