Файл: Проектный семинар.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 116

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Характиристика/Функционал

Toshl

Monefy

Дзен-мани

Отслеживание расходов и доходов

+

+

+

Создание бюджетов

+

+

+

Планирование финансовых целей

+

+

+

Генерация отчетов

+

+

+

Интерфейс

Интуитивно понятный

Простой и понятный

Простой и интуитивно понятный

Синхронизация с несколькими устройствами

+

+

+

Автоматический импорт данных из банковских выписок

+

+

+

Цена

Бесплатно / $1.99-4.99 в месяц

Бесплатно / $2.49-4.99 в месяц

Бесплатно / $1.99-4.99 в месяц


Из таблицы 3 видим, что в целом, все три приложения имеют схожий функционал и основные характеристики, но Monefy и Дзен-мани обладают более продвинутым функционалом, что делает процесс учета финансов более удобным и эффективным.

Сравнительный анализ мобильных приложений может помочь в выборе наиболее подходящих технологий для разработки приложения, основываясь на опыте других разработчиков и функциональных возможностях конкурирующих приложений. Таким образом, проведение сравнительного анализа может существенно упростить процесс выбора технологий для разработки мобильных приложений.

1.3.2. Выбор технологий для разработки мобильных приложений


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



Рис.2. Диаграмма популярности Фреймворков за 2019г.

Для анализа были выбраны технологии Flutter, ReactNative, Ionic и Xamarin.


  • Flutter– это кроссплатформенная среда пользовательского интерфейса, созданная Google, которая позволяет создавать современные, нативные и реактивные приложения для iOS и Android, а также использовать ее как основу пользовательского интерфейса для операционной системы GoogleFuchsia [8].

Flutter поддерживает внедрение на встраиваемых устройствах, таких как RaspberryPi, домашние устройства, автомобильная промышленность, настольных и веб-платформ. Были выпущены инструменты для разработки приложений для Windows, macOS, Linux и веб.

Платформы iOS и Android получают высокую производительность благодаря приложениям, созданным с использованием Flutter. В процессе разработки Flutter использует горячую перезагрузку, которая обновляет работающее приложение за миллисекунды при изменении исходного кода для добавления новых функций или изменения существующих. Этот способ позволяет увидеть изменения, внесенные в код на симуляторе или устройстве, сохраняя на экране состояние приложения и данные. Интерфейс Flutter основан на виджетах, которые создаются на современных реактивных фреймворках и используют собственный механизм рендеринга для отображения на экране. Каждый виджет является строительным блоком приложения Flutter и представляет собой неизменное объявление пользовательского интерфейса.

  • ReactNative– это кроссплатформенный инструмент для разработки приложений на основе JavaScript, который был разработанFacebook. Он имеет общие принципы и некоторый исходный код с ReactJS– библиотекой JavaScript для создания веб-приложений. Подобно React для веб-приложений, ReactNative использует смесь языков JavaScript и XML, известную как JSX, для создания приложений. С помощью ReactNative разработчики могут создавать нативные интерфейсы и получать доступ к компонентам, специфичным для платформы, используя JavaScript. Это отличает ReactNative от других гибридных сред приложений, которые используют веб-представления, созданные с использованием HTML и CSS, в нативном приложении. ReactNative компилирует JavaScript в настоящее нативное приложение, что позволяет использовать специфичные для платформы API и компоненты.

  • IonicFramework– это инструмент с открытым исходным кодом, который фокусируется на пользовательском интерфейсе и элементах управления, таких как взаимодействия, жесты, анимация. Он позволяет разработчикам создавать приложения для всех основных платформ из одной кодовой базы и иметь нативный внешний вид благодаря возможности адаптивного стиля на основе текущей платформы.

Одним из главных преимуществ Ionic является возможность создания гибридных мобильных приложений, которые работают на всех основных платформах из одной кодовой базы. Это позволяет избежать сложностей наличия нескольких команд на разных платформах и повышает производительность. Ionic также позволяет развертывать приложения на iOS, Android, Electron и PWA.



Ionic упрощает создание веб-приложений, которые работают на мобильных и десктоп устройствах, а также в веб-версии, как прогрессивное веб-приложение. Capacitor– это продолжение идеи ApacheCordova и AdobePhoneGap, и он обеспечивает обратную совместимость с многими существующими плагинами Cordova[9].

  • XamarinForms– бесплатная платформа с открытым исходным кодом для разработки Кроссплатформенных приложений, позволяя им использовать общий код, тесты и бизнес-логику на разных платформах. Также Xamarin предоставляет возможность написания кроссплатформенных приложений на языке C# в VisualStudio. Платформа Xamarin ориентирована на индивидуальных разработчиков, которые ищут гибкую и надежную платформу для создания кроссплатформенных мобильных приложений для Android и IOS. Он имеет специальные инструменты, позволяющие разработчикам писать собственные приложения, а также известен своей производительностью.

XamarinForms предоставляет возможность быстрого создания прототипов приложений, которые затем могут быть доработаны в сложные приложения. Так как приложения XamarinForms являются собственными, они не имеют ограничений, присущих другим инструментам, таким как браузерные песочницы, ограниченные интерфейсы API или низкая производительность. Приложения, разработанные с помощью XamarinForms, могут использовать все возможности и интерфейсы API базовой платформы, такие как CoreMotion, PassKit и StoreKit в iOS, NFC и Сервисы GooglePlay в Android и Плитки в Windows. Кроме того, можно создавать приложения, которые используют части пользовательского интерфейса, основанные на XamarinForms, и другие, использующие собственный набор средств пользовательского интерфейса [10].

По своей архитектуре приложения XamarinForms ничем не отличаются от традиционных кроссплатформенных приложений. Наиболее распространенный подход заключается в использовании переносимых библиотек или общих проектов для общего кода и создании приложений для конкретных платформ, в которых используется этот общий код [11].

Существуют два метода создания пользовательского интерфейса в XamarinForms. Первый метод – это создание пользовательского интерфейса с помощью исходного кода на языке C#. Второй метод – это использование XAML, декларативного языка разметки, который служит для описания пользовательского интерфейса. XAML позволяет разработчикам определять пользовательские интерфейсы приложений Xamarin.Forms с помощью разметки вместо кода. Хотя XAML не является обязательным в Xamarin.Forms, он часто используется, так как является более кратким и визуально привлекательным, чем эквивалентный код, и поддерживает использование средств разработки. XAML также хорошо подходит для использования с популярными архитектурами приложений MVVM (Model-View-View-Model): код XAML определяет представление, связанного с кодом ViewModel через привязки данных на основе XAML [12,13].


XAML имеет несколько преимуществ по сравнению с эквивалентным кодом:

  • XAML часто является более кратким и удобочитаемым, чем эквивалентный код.

  • Иерархия «родители-потомки», присущая XML, позволяет XAML имитировать с большей визуальной ясностью иерархию объектов пользовательского интерфейса с родительским дочерним элементом.

Существуют также недостатки, в основном связанные с ограничениями, присущими языкам разметки:

  • XAML не может содержать код. Все обработчики событий должны быть определены в файле кода.

  • XAML не может содержать циклы для повторяющейся обработки.

  • XAML не может содержать условную обработку. Однако привязка данных может ссылаться напреобразователь привязки на основе кода, который эффективно позволяет выполнять условную обработку.

  • XAML обычно не может создавать экземпляры классов, которые не определяют конструктор без параметров, хотя это ограничение иногда может быть преодолено.

  • Как правило, XAML не может вызывать методы, хотя это ограничение иногда может быть преодолено[10].

Важным фактором в выборе данного фреймворка является наличие множества инструментов, которые позволяют быстро и качественно разрабатывать приложения с удобным интерфейсом и приемлемым внешним видом.

Для разработчиков выбор подходящей технологии является задачей, которая не всегда тривиальна. Чтобы проиллюстрировать преимущества и недостатки конкретной технологии, были установлены критерии сравнения и проведен сравнительный анализ.

Для полноты исследования в сравнительный анализ были включены и нативные технологии, помимо кроссплатформенных. Результаты сравнительного анализа отображены в таблице 2.

Таблица2. КритериевсравненияNative, Ionic, Flutter,ReactNativeиXamarin.

Фреймворк

Native

Ionic

Flutter

ReactNative

Xamarin

Язык программирования

Java/Kotlin (Android)

Objective-C/Swift (iOS)

HTML, CSS, JavaScript

Dart

JavaScript

C#

Кроссплатформенность

Нет

Да

Да

Да

Да

Производительность

Высокая

Средняя

Очень высокая

Высокая

Высокая

Доступ к аппаратным возможностям платформы

Да

Нет

Да

Да

Да

Наличие CLI

Да

Да

Да

Да

Да

Степень сложности

Высокая

Низкая

Средняя

Средняя

Высокая

Сообщество

Большое

Большое

Большое

Большое

Большое



Как показывает сравнительный анализ, Xamarin обладает рядом преимуществ перед другими фреймворками. Он позволяет писать кроссплатформенные приложения на языке C#, что облегчает процесс разработки и позволяет использовать общий код, тесты и бизнес-логику на разных платформах. Xamarin обеспечивает высокую производительность, что важно для мобильных приложений. Он также имеет доступ к аппаратным возможностям платформы и CLI, что упрощает и автоматизирует процесс разработки.

Конечно, на рынке есть и другие хорошие фреймворки для разработки кроссплатформенных мобильных приложений, такие как Flutter, ReactNative и Ionic. Однако, выбор фреймворка зависит от многих факторов, включая опыт разработчика, целевую аудиторию, требования к приложению и многое другое.
Таким образом, для разработки прототипа мобильного приложения планировщика бюджета будет выбрано Xamarin, ибо выбранная технология является наиболее приемлемой для создания приложений на Android и IOS.

2. Разработка прототипа мобильного приложения на примере планировщика бюджета

2.1. Структура мобильного приложения


Для разработки прототипа мобильного приложения планировщика личного бюджета надо определится с структурой, функционалом и изюминкой, которая отличала бы его от других, основываясь на то, что есть у конкурентов в разделе 1.4 .

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

Разделы приложения:

  • Главный экран – на этом экране пользователь может увидеть общую информацию о своем бюджете, такую как баланс и сумму расходов за последний период времени. Также на главном экране может быть размещена кнопка перехода в другие разделы приложения.

  • Раздел "Расходы" – здесь пользователь может внести вручную/ автоматически информацию о своих расходах, разбив их на категории, например, питание, транспорт, развлечения и т.д. Каждая категория может содержать несколько подкатегорий, например, рестораны, продукты, кафе и т.д. Пользователь может указать сумму, дату и время расхода, а также добавить комментарий.

  • Раздел "Доходы" – здесь пользователь может внести вручную/ автоматически информацию о своих доходах, разбив их на источники, например, зарплата, бонусы, дивиденды и т.д. Каждый источник дохода может содержать несколько подкатегорий, например, основной доход, дополнительный доход и т.д. Пользователь может указать сумму, дату и время дохода, а также добавить комментарий.

  • Раздел "Статистика" – здесь пользователь может просмотреть статистику своих расходов и доходов за определенный период времени. На этом экране могут быть различные графики и диаграммы, отображающие информацию о расходах и доходах по категориям и подкатегориям, а также общую сумму расходов и доходов.

  • Раздел "Настройки" – здесь пользователь может настроить приложение под свои нужды. Например, изменить валюту, установить цель по сбережениям, настроить уведомления о предстоящих расходах и т.д.