Skip to content

Latest commit

 

History

History
48 lines (39 loc) · 5.56 KB

MAINPAGE.md

File metadata and controls

48 lines (39 loc) · 5.56 KB

GoodHabits application

Felgo features and/or components

  • App -- as main application instance. It provides lots of useful properties, like tablet -- to check if it is tablet mode, settings for persistent settings storage, values for work with pixel density on different screens etc.

  • For application structure and navigation:

    • Navigation -- as a native look and feel navigation control. Respectively:
    • NavigationItem -- as a base type for items inside Navigation.
    • NavigationStack -- as a stack of Pages with navigation.
    • Page -- container for the contents of a single page, designed to be used together with components like Navigation or NavigationStack to provide a native-looking UI and user experience.
  • As Native-looking controls:

    • AppCheckBox -- widely used as native component "check box".
    • AppListView -- as a native-looking view with scroll indicator.
    • AppText -- a styled text control.
    • AppButton -- native-looking button.
    • AppSlider -- native-looking slider with one handle.
    • Dialog -- dialog with custom content and one or two buttons.
  • For data manipulations:

    • JsonListModel -- very easy to use proxy view model for JSON data sources.
    • SortFilterProxyModel -- sort and/or filter proxy model to apply filter and/or sorting settings to QML ListModel items.
    • Storage -- for persistent and offline storage for arbitrary key-value pair data. In future it could be changed for WebStorage.

Developed components

Standalone components

  • Constants -- to ease usage of components. We created one component that holds all constants, that could be used application wide.
  • DaysPicker -- visual component that has days checkboxes on a grid.
  • IconPicker -- as component for choosing icon from available in IconType icons. unfortunately IconType have no possibility to use and store human names for icons. That's why IconTypeHelper was created.
  • WarningPaper -- as AppPaper override for any in-place message boxes. Appearance and dissappearance of this box is animated.
  • Secrets.qml -- file didn't presented in repository and excluded from .gitignore. See Secrets.qml_template for reference. This file intended to be secret and available only on build-machine. One just can put Felgo license string here, gameId and gameSecret.

Helper UI components

  • GHDeleteButton -- button with trashcan on it.
  • GHPaper -- AppPaper override for ease of use inside the application. Component has predefined radius and could react to clicks.
  • GHScrollView -- simple ScrollView override with predefined \c padding, \c spacing and \c ScrollBar policies.
  • GHTextInputTime -- simple TextInput with predefined \c placeholderText (as "00:00") and with applied \c RegExp validator to filter only time in 24H format.

Pages

  • HabitDetailPage -- application page for display habit details.
  • HabitsListPage -- application page for displaing a list of habits.
  • ImportExportPage -- application page where user can import and export data managed by this application.
  • ProfilePage -- application page that contains information about application and leads to another pages where user can Export/Import his habits, records, apply settings, etc.
  • RecordPage -- application page that displays details on specific record. It gives ability to view and edit record.
  • ReportPage -- application page that display list of user's records.
  • SettingsPage -- application page to access to settings. Mostly check-boxes for settings user can change.