Views and User Properties are supplementary data types that compliments Events to give you a picture of where your users at on your application and in which state they are.
Views
Views helps you to see the user's visual journey and things like time spent on a view, landings, exits and bounces. While most SDKs has the ability to track views automatically, due to platform limitations and diverse array of application UI's it is best advised for you to define what a view is for you and track it manually.
Your main pages that a user visit through navigation are good candidates for a view. Starting a view as soon as the user opens a new page will give you the information about where the user is at. For SPA's or scrollable pages you might want to start new views as the user scrolls down according to places you think are significant.
Using a 'one view at a time' approach would be easy to implement and save you from many headaches. But if you have applications that stretches over multiple screens then recording multiple views at the same time is also possible with SDKs that do support it.
To check how Views are used on your dashboard and how you can implement them you can check out these documents:
User Properties
As your users use your application they will gather new sets of permissions, qualities or properties. An unpaid user can become a paid power user, a veteran user can accumulate a significant amount of bookmarks or they can add a new tool to their system. For gathering these kind of user 'state' information Countly offers a feature called User Properties.
User Properties are information that is tied to the user that shows who they are and what properties they have at the time being. When you open a user's profile you will be able to directly see what user properties do they have.
There are predefined user properties like username and email address but you can send any custom user properties as you see fit. However important part is keep custom user properties to a minimum as there is an initial limit of 20 custom user properties (which you can increase from settings if you want but it can cost you in performance.)
It is best to select things that do not change frequently for custom user properties. Something like a 'wireless connection state' is something that can change frequently during the day so it better be tracked as a segmentation with an event. However something like a 'membership tier' is a great candidate as a user property.
You can further check what you can do with User Properties in your dashboard and how to track them with the SDK from here: