Blog Archives | Mood Up team - software house
Flutter in programming

What is Flutter and how does it work

What is Flutter?

Flutter is Google’s UI toolkit for building natively compiled applications for mobile, web, desktop, and embedded devices with a single codebase. It was released on 4th Dec 2018 and has been growing since then. Today it has over 2 million users, and that number still keeps getting bigger.

To build apps with Flutter, you need to know the Dart programming language. Dart is an object-oriented programming language that aims to be as fast as possible on all platforms that use AOT (ahead-of-time) compilation with native machine code. In this article, we will go through the basics of Flutter. You will find out are the advantages of using it and how it is different from similar solutions, like React Native.

Flutter basics

Views

Flutter uses the declarative approach to build the views. This means that you describe the effect you want to achieve. For instance, if you want to display a list with Text, ProgressIndicator,andButton, you wrap these widgets in the Columnwidget. No need to write any additional code that would handle the rendering of UI elements.

1_code (Column Widget)

This results in:
column animation

 

Widgets

It’s a good moment to establish what exactly widgets are. They are fundamental building blocks in the Flutter world. Widget is a part of the User Interface. It could be either visible, like buttons  or  form fields, or invisible and serving to define the layout structure, such as column , row , or container.  It’s all about nesting widgets inside other widgets and building more complex UI parts.

Type of Widgets

There are two types of Widgets – stateless and stateful . A stateless widget is a widget that does not have its state – which means that it is immutable. It cannot be changed during the app runtime. A stateful widget, on the other hand, can hold a state and is dependent on it. Every time the state changes, the widget is rebuilt with the new state value.

Make it faster with Flutter

Built-in widgets

One of the biggest advantages of Flutter is that you get plenty of out-of-the-box components. That means you don’t have to bother with tons of boilerplate code to make something look cool. If you want to implement some fancy, animated stuff like a collapsible app bar, you might just discover that there is a widget that lets you do that with a few lines of code.

Hot reload

Another feature that can speed up the development process is a hot reload feature. It works by injecting the updated source code straight into a running Dart Virtual Machine. In other words, the changes that you make are applied while the app is running. No more rebuilding the whole project just to see an updated text or color!

One codebase, multiple platforms

As we mentioned before, Flutter is about writing one codebase that can be delivered to different platforms. Currently, it supports mobile (Android and iOS), web, desktop, and embedded devices. This means you can build the app on the platform of your choosing.

External packages

Nobody likes reinventing the wheel. If you are working on a particular solution and you feel that you have seen something similar before, you should go to https://pub.dev/ to see if there is a package for that. There you can find solutions for various problems that have been previously experienced by other programmers. Need to work with the SqlLite database? Just grab sqllite package, import it to your project and start using it. It is that simple.

Mixing Flutter with native solutions

Imagine a situation when you need to create a custom element. There is no widget or package for that (highly unlikely!), and you need to trigger some native code to achieve it. Is it possible to run native Android or iOS code from the Flutter app level? Short answer, yes!

It is not an everyday treat to run a native code, because there is usually good Flutter-level support out there. But if for some reason you have to do that, you absolutely can!

Running native code

Flutter uses a message-passing style method to communicate with the native API. You need to create a MethodChannel object on the client (Flutter app) side. Then you can set a handler for messages from this channel on the host side (Native app). This channel allows clients and hosts to communicate with each other.

Let’s take a look at a real-life example. We will call an Android MainActivity method from the Dart code and get a result. First of all, we need to make a MethodChanel on the Flutter side. Make sure it has a unique name.

2_code MethodChanel - client side

Next, we create a method in MainActivity class and set a handler for our MethodChannel:

3_code - host side

When all this is done, we can call our native method from the Flutter app:

4_code - Calling a method on client side

The above example shows how to do that for Android, but the method is similar for iOS.

Displaying native view

Sometimes you may want to use a native view in your Flutter app – for example, Google Maps from Android and iOS. There is a Platform Views feature that allows you to do just that. By using it, you can write native views that need to touch a native code, and then just put it straight into your widget tree.

Displaying modes

Currently, Flutter can render Android native views by using Hybrid Composition or  Virtual Display.

With  Hybrid Composition , a native android.view.View  will be added to the view hierarchy, which means full support for accessibility or keyboard handling.

On the other hand, with  Virtual Display, the native view will be rendered simply as a Texture and it will not be a part of the view hierarchy. It might cause some issues with interactions such as handling a keyboard.

When it comes to performance, there are a few trade-offs. Generally speaking, Virtual Display is more efficient but also more limited than Hybrid Composition.

iOS uses only Hybrid Composition, so the native UIView  is appended to view hierarchy.

How Flutter is different from similar solutions like React Native

React Native and Flutter have a common goal – to let you deliver an app to multiple platforms by using a single codebase – but the difference lies in how they try to reach it. Here are a few basics differences:

Compilation

With Flutter, the application is compiled ahead of time into a native code, which results in better performance.

On the other hand, React Native uses the JS bridge as a mediator between the native code and the JavaScript code. The code written in JavaScript has to be properly translated into a native code – and vice versa. With Flutter, there is no middleman.

Rendering

The way the app is rendered on the mobile device screen is the biggest difference between Flutter and React Native.

React Native uses JS Bridge to translate JavaScript code into a native code, which means that RN uses native components. If you use the <Button>component, JS Bridge will translate that into a platform-specific native button. Broadly speaking, React Native is a kind of wrapper on top of the Android/iOS native components.

The Flutter way of drawing your app is radically different. Instead of using native components, Flutter draws them on a screen canvas from scratch, using a very efficient 2D graphics library – Skia. It owns and controls every pixel on the screen. That is why it is usually more efficient than the competition.

The result can be either positive or negative, depending on the point of view. Because Flutter does not rely on native components and draws everything by itself, your app will look the same on every platform and every OS version! Your Flutter app should look and behave the same on Android 5 and 12. It also means that every component will work identically everywhere. With RN, on the other hand, the situation that components have some attributes that are working only on Android or iOS is quite common.

On the screenshots below you can see the same Flutter app running on Android 11 and Android 4.1:

Android 11Android 4 app

 

As you can see, the app is using Material Design, which was created in 2014. Android 4.1 was released 2 years earlier, in 2012– so it does not have any native support for Material Design components. Flutter can still handle that because it renders every pixel by itself.

Pre-built components

As React Native is a kind of wrapper over native UI elements, it provides only basics components. With Flutter, you have access to a rich widgets catalogue. Those are not just simple elements (like buttons) but even more powerful structures, like animated app bars, bottom bars, expandable views, and much more. If you want to learn more, see the widget catalog.

Summary

Flutter has become quite popular over the years. It allows you to create for various platforms by using the same codebase and keep a native performance. A lot of built-in widgets are waiting to help you create beautiful apps.

All these things make Flutter a framework that you cannot simply ignore.

If you want to learn more, look at the official Flutter website.

two people near smarthome

Your house is your castle – are smart homes the future?

The term ‘smart home’ refers to a home arrangement where appliances and  devices can be automatically controlled from anywhere – all you need is internet access via a mobile phone or other device.

Every appliance in a smart home is connected to each other via the internet, allowing the user to remotely control functions such as home security, temperature, lights and home cinema.

 

How do Smart Homes work?

Devices in a smart home are interconnected and can be reached using a single central point – a smartphone, tablet, laptop or game console. Door locks, cameras, lights televisions, thermostats, home monitors, and even appliances such as refrigerators can all be managed by a single automated system, installed on a mobile (or any other web-connected) device.

When linked, services such as smart locks, smart security systems, and all smart gadgets become part of the Internet of Things (IoT) technology, which is a network of physical things that can gather and share electronic data.

 

Smart Home benefits

As a bonus, smart homes may help you save on energy costs. Because technologies such as Z-Wave and ZigBee restrict the operation of certain devices, they may be put to sleep and reawakened with the right command.

Electricity costs are reduced when lights are switched off automatically in unoccupied rooms, the house may be heated or cooled depending on who is there at a certain time.

Some gadgets are capable of tracking how much energy each appliance consumes and issuing commands to the energy hogs to use less power.

two people near remote

The smart home technology has the potential to provide significant advantages to elderly persons who live alone. A smart house might inform the resident when it is time to take medication, contact the hospital if the person collapses, and monitor how much the patient is eating – all at the same time.

For example, if an elderly person is prone to forgetting things, a smart home might help them out by turning off the water before a bathtub overflows or turning off the oven if the chef has walked out [of the house?]. The cost of such a system, according to one constructor, should not excceed  $20,000, which is less costly than a full-time nursing facility.

This arrangement also helps adult children who may reside in different locations to assist in the care of their elderly parent. Automated devices that are simple to use offer comparable advantages to those with movement impairments

Smart Home Disadvantages

Technological problems

Home automation systems have had a difficult time reaching a wider customer base, in part because of their technological nature. One disadvantage of smart houses is their presumed complexity; some people have trouble with technology and will give up on it if they experience troubles when setting up or using their new devices. Users of all technical levels would benefit if smart home manufacturers worked together to simplify the system and improve the user experience.

It is necessary for devices in home automation systems to be compatible with one another and to utilize the same protocol (or at least complementary protocols) in order for the systems to be really successful. Due to the fact that home automation is a relatively young industry, there is no gold standard for the time being. In order to guarantee interoperability and a smooth user experience, manufacturers should be working in partnership standard protocol developers.

smarthome disadvantages

Hackers

Another significant problem is the security of smart homes. According to a 2016 study by NTT Data Corp., 80%of customers in the United States are worried about the security of their smart home data. If hackers are successful in infiltrating a smart device, they may be able to switch off the lights and alarms or open the doors, leaving a house vulnerable to a burglary.

Hackers may possibly get access to the homeowner’s network, which can lead to a personal information leak.. A series of distributed denial-of-service (DDoS) assaults carried out by the Mirai Internet of Things botnet in October 2016 left much of the internet inaccessible on the U.S. east coast, everything because of the poorly protected cameras, DVRs, and routers as entry points.

Apart from home security concerns, many opponents of smart homes are worried about data privacy.  According to the NTT Data survey, 73 percent of customers are worried about the privacy of the data provided by their smart home gadgets. Smart home devices and platforms manufacturers may gather consumer data in order to better customize their goods or provide new and enhanced services to consumers, but building trust and rapport with customers is essential for attracting new ones.

Best Smart Home Devices & Systems of 2021

There are many smart home product categories, allowing you to manage anything from lights and thermostats to locks and home security systems. They also make excellent presents, whether you are shopping for Christmas or birthday gifts or looking for a housewarming present.

The Difference Between Smart Devices vs. Smart Systems

Before we begin our list, we must first take a look at the smart home terminology. A smart system is essentially what you talk to when you want something to happen. Think of Alexa or Google Assistant as the overall command center that manages your various items. A device, on the other hand, is a standalone product that communicates with the system – think Amazon Echo or Philips Hue lightbulbs.

Now, let’s take a look at some of the top smart home gadgets and systems, so you can determine which solutions could improve your daily life the most.

The Finest Smart Home Systems

When looking to buy a smart-home system, you should consider user reviews and integrations. While the customers’ opinions will tell you if the technology is high-quality or not, the information about product integrations will tell you how many items you can really connect your system to.

While investigating integrations, remember to keep in mind if the smart devices you currently own are compatible or incompatible with the system. The most effective smart home systems nowadays are driven by a cutting-edge technology and provide a multitude of third-party integration options.

For example, Amazon’s Alexa and Google Assistant can communicate with smart thermostats such as Nest or Ecobee, rather than focusing only on the thermostats created by their respective manufacturers.

Your smart home experiences will be much more enjoyable if all your gadgets are connected properly, function well, and are simple to use.

Here are the three major smart home systems:

1. Amazon Alexa

Alexa is, without a doubt, one of the most comprehensive smart home ecosystems available today, with hundreds of millions of compatible devices.

Amazon alexa picture

While you have probably heard of using Alexa as an Eco-speaker (“Alexa, what’s the weather today?”), you may be surprised to learn that it is now integrated into a variety of other smart devices, like thermostats and television sets. Alexa makes it simple to access and manage any element of your smart home. You can ask Alexa to switch off the lights just as easily as you can ask her to open applications like Spotify.

Because Amazon’s ecosystem is one of the most dominant in the business, most smart devices, including those manufactured by Philips, Samsung, Nest, and Schlage, connect smoothly with Alexa. The system can now shut your garage door, lock your doors, and change the temperature in your house.

Simply check for the ‘Works with Amazon Alexa’ note to see whether Alexa will function with a certain gadget.

To sum up, Alexa’s ability to connect and communicate with the majority of other smart devices and applications makes her one of the finest options for your smart home.

2. Google Assistant

If there is a real competitor to Alexa, it is Google Assistant.
Google assistant picture

Despite having fewer third-party integrations, Google Assistant can often answer queries and execute commands that Alexa cannot – thanks to Google’s dominance in the search engine market. Google Assistant has a 92.9 percent accuracy rating, whereas Amazon Alexa has a 79.8 percent rating (ZDNet).

When it comes to understanding people’s natural speech, Assistant ultimately triumphs.

For example, if you use Spotify and tell the Assistant that “I don’t like this song,” it will skip to the next one, while Alexa would simply inform you that “Thumbs up and down are not supported on Spotify.” Small differences like these may sway you toward Google, since it is often more useful (and less literal) than Alexa.

Assistant can also work with most major manufacturers’ devices, including Philips, Belkin, August, Nest, and popular applications like Spotify and Uber.

3. Samsung SmartThings Hub

This Samsung system connects with a broad range of smart devices from many manufacturers, such as smart thermostats, Wi-Fi routers, lightbulbs, and security gadgets. Users of the smart system gain full access to the smart devices linked to the hub through the SmartThings app for iOS or Android.
Samsung smart things hub

For the last several years, Samsung’s SmartThings Hub has been expanding its own smart-device capabilities. For example, the SmartThings Wi-Fi plug, SmartThings Lightbulb, and SmartThings Cam have been just recently added to the Hub’s product portfolio.

By using the SmartThings Hub, you may also program compatible smart devices to perform different actions, such as turning on or off when you enter or exit a room. While you can use the SmartThings wall hub or app to issue voice commands, you can also incorporate Amazon Alexa or Google Assistant into the system.

The Best Smart Home Devices

The best smart speaker: Amazon Echo (Fourth Generation)

It’s likely that you won’t have to seek much further than Amazon Echo for a gadget that can meet your everyday demands at a reasonable price. Echo is still the countertop king, thanks to its redesigned sphere-like shape, excellent sound output, and a few forward-thinking capabilities.

“It is 6 p.m., and it is time to head to your tennis lesson,” says Alexa as the speaker connects to it., With the help of Alexa, the speaker can also play your favorite music, make phone calls or send messages, answer queries, and set alarms for you.

This device can also communicate with other smart devices in your home, allowing you to utilize it as a link between you and your smart television. You can sync the speakers together for the multi-room sound with a powerful voice control.

Without ever leaving your couch, you can use Echo to control the television, order a pizza, and generate a shopping list.

The best lights: Philips Hue

The Philips lighting kit offers 16 million colors, including 50,000 white hues, helping the customers always find the right atmosphere. The Philips Hue bulbs allow you to control the intensity, as well as the color of your lights.

You can create color-coordinated moods – for example, by choosing the “energize” theme on your app for a specific room you’re in, or syncing it with your music. You can also set color-coordinated alarms to ensure you wake up in a bright pink bedroom every morning.

These bulbs are compatible with Amazon Alexa, Google Assistant and Apple HomeKit, making them the most adaptable option.

The best smart plug: ConnectSense Smart Outlet 2

The ConnectSense Smart Outlet 2 is not the smallest smart plug on the market, but it provides separate control for two outlets, has a convenient USB charging connection, and informs you how much power each outlet is using.

To switch the outlets on and off, you may use an Android or iOS mobile app, or you can use your voice with Alexa, Google Assistant, and Siri commands. Users of Apple HomeKit may also build Scenes and Automations to have the outlets react to triggers from other HomeKit devices.

Although IFTTT applet support would be great, the ConnectSense Smart Outlet 2 still earns its renown.

The best home security system: SimplySafe

SimpliSafe’s quick and easy installation and easy to understand DIY home security system is fantastic. It comes with a complete package of functions, security cameras, and a excellent combination of battery-powered sensors.

Starter kits start at $200, or you may design your own personalized alarm system with the precise combination of gadgets you want. A professional monitoring plan begins at $15 per month, but you’ll almost definitely want to upgrade to the $25-per-month plan, which includes mobile app controls and voice assistance through Alexa and the Google Assistant.

The best smart home automation for your dog: Furbo Dog Camera

Every element of Furbo is designed for dogs. Furbo is recommended by vets and dog trainers and can help alleviate your dog’s separation anxiety. Furbo’s life-saving Smart Alerts can detect dog-related events and alert you about what’s happening at home. Providing excellent 1080p footage even in low light, as well as barking alarms and two-way audio so you can hear and speak to your pet.

Perhaps most importantly, it allows you to throw goodies to your pet while you’re out and about.

The Furbo Dog Camera is expensive, particularly when compared to conventional security cameras, but it is as practical as it is entertaining, and it offers you peace of mind that your dog and house are secure.

The best smart kitchen appliance: Brava Oven

Smart ovens are becoming more and more popular, with a range of microwave-sized smart appliances available that can sear, broil, bake and reheat, among other types of food preparation.

The Brava Oven is one of the most advanced smart ovens available.

It can prepare food in ten various ways, has a variety of automated cooking settings for both ingredients and meals, and has built-in cameras that let you to monitor the progress of your food on your smartphone.

So, Are Smart Homes Really The Future?

After all that we have said, the future of smart homes is really looking bright.

According to Statista, there will be about 75.4 billion gadgets linked to the internet by 2025.

In today’s world, both industrial and commercial infrastructure are being equipped with IoT technology, which is powered by Power over Ethernet (PoE). With that in mind, it’s no wonder that residential infrastructure is next on the list.
smarthome 03

Devices like as Google Home and Amazon Alexa are becoming more prevalent in the typical American home. With the appropriate smart home network setup, these devices can manage HVAC, lights, door locks, windows, music, and more.

The popularity of smart homes seems to be growing in the future, which implies that the way we live our daily lives is going to alter dramatically.

 

 

mood up android

What is Jetpack Compose and why do we need it?

Jetpack compose is a modern Android UI toolkit introduced by Google. It simplifies the app development process and speeds it up. With Jetpack Compose, you can write less code compared to the current view building approach – which also means less potential bugs. There is one more great thing about it – it uses Kotlin. If you have been using React or Flutter, you will probably be familiar with the concept and find many similarities.


How does it work?
 

A main building block of Compose is the Composable function. It emits a part of the user interface. Building with Compose is about nesting the Composable functions in each other.

Zrzut ekranu 2020 12 12 o 20.06.13
This example shows a simple usage of Compose. As you can see, four Composable functions are used: Column– a built-in Composable, which renders its children in the column order, and Text, which displays a given text on the screen.

 

The declarative approach

Jetpack Compose is built upon a different programming paradigm. It uses a declarative paradigm. To put it shortly, it means that you have to change your way of thinking from: “How to do something” to “What goal I want to achieve”. In a declarative way of programming, you try to describe an expected result instead of describing every step to achieve the goal. In the previous example we simply said “I want to have a column with three texts inside” – and that is all. We don’t need to write any extra code that tells the app how to deal with the items inside the column.

In the current imperative approach, things are a bit more complicated. To render a list of elements, RecyclerView is used. It is a component that helps efficiently display large sets of data. The problem is that each RecyclerView needs an adapter, each item on the list needs a ViewHolder, and so on. An adapter is a place where programmers have to describe how RecyclerView is going to render each element. And if we want to render different types of data, it can be a little messy. For instance, if you want to display text, image, and your custom extended view, you have to write a logic to tell the RecyclerView how to do that. As you can see, it’s beginning to look a little complicated and it’s the exact opposite of the Jetpack Compose and the declarative approach. After all, we only want to create a list with some elements inside. With Compose, it is simple as:

 

jetpack2

 

Jetpack Compose ❤️ Kotlin 

One of the greatest advantages of Jetpack Compose is that it uses Kotlin. What does it mean for you? Well, for example, you can use all Kotlin structures directly in your view code. You can use If statements to choose what should be rendered, and you can use loops to display a view multiple times. You can also use functional methods like filter, map, and many others.

 

image1 1


As the picture above shows: it is really simple to choose what should be displayed, depending on the data set state. If it is empty, show a text saying “No data to display”, if it is not, map the data set elements to Composables and display those in a column.

 

The state

Updating a view is a crucial task of every single application. It’s hard to imagine the app which shows you the same data all the time. To update a view in Compose, we need to rebuild Composable functions with different sets of arguments.

This process is called recomposition. The question is “How does a Composable function know when to rebuild itself?”. The answer is – because it can have a state

The state is a value, or multiple values, assigned to a Composable function. Whenever the value is changed, it triggers a recomposition process and our composable function will be rebuilt with a new state value.

 

jetpack4

 

In this example code, we can see one state value – counter. The value of the counter is displayed using the Text Composable. Every time the state is changed, this composable is rebuilt with a new value assigned to the counter variable. In Button’s onClick method, the counter state value, which performs the decomposition process, is incremented, and a new value is displayed with Text.

 

jetpackgif

 

Pagination with Compose

Let’s take a look at a real example that shows how Compose can speed up our work and make it much easier. We are going to compare two solutions for one problem – pagination. We are going to use the current view building solution and Jetpack Compose. 

 

What does pagination mean?  

Pagination is a process of dividing a big data set into smaller chunks. It is useful when we don’t want to serve all data at the same time. It could seriously harm our app performance. The Facebook app is a perfect example – usually, when using the Facebook app, you are scrolling your wall and reading new information. Have you ever reached the end of it? Probably not. It seems endless, which means that there is a huge amount of data to display there. Imagine what would happen if we got all that data at once – it would be an overkill for our device. This shows that your Facebook wall uses pagination. The data is fetched in smaller chunks and displayed on the screen. When you are about to reach the end of the current chunk, a new one is obtained from the backend – and so on.

I want to show you how easy it is to implement pagination when using Compose, compared to the current approach. First of all, let’s see what we need to support pagination when using the current view building methods:

  • RecyclerView – responsible for displaying the data
  • Adapter – displaying logic
  • ViewHolders – keeping views references not to use findViewById() each time to obtain them. It would be really costly.

Usually, we want to somehow indicate that data is being fetched. For instance, we might want to show a progress bar as the last element of the list. With the current approach, it is a slightly complicated task. You have to put a new element into your data set and force the RecyclerView to render it as a progress bar.  There are many ways to achieve that. Usually, you end up with a lot of new code. Each new view type makes your adapter more complicated. With Compose, implementing pagination is really simple – it only takes a few lines of code! 

Let’s have a look:

jetpack5

 

We can see a ComicsResultSection composable here, which is responsible for displaying our data. The data set that should be displayed is passed as an argument – data. By using a LazyColumnForIndexed Composable, we can present our data as a list. LazyColumnForIndexed is an equivalent of RecyclerView –it renders only the data that is visible on the screen. Additionally, LazyColumnForIndexed gives us information about the currently rendered objects and their indexes. By using the index, we can simply check if the currently rendered object is the last in our dataset. If so, we can simply trigger the data fetch method and display a progress bar as the last element of our list. And this is it. No adapters and complicated logic necessary – we simply say what we want to see on the screen.

 

Summary 

Jetpack Compose is a promising and powerful modern UI toolkit that you definitely should keep an eye on. If used correctly, it can speed up the development process and reduce the size of the app. Moreover, with Compose you write less code – which, potentially, means fewer bugs. Happy coding 🙂

If you want to learn more, see the official Compose website:
https://developer.android.com/jetpack/compose

 

 

 

 

mood up blog

7 things companies can do for their employees during the pandemic

There is no doubt that the year 2020 has been a challenging one. Even if companies and their employees were not affected by the coronavirus directly, the constant changes and the uncertainty of the situation has been a strain on both mental and physical health. With all that going on, taking care of workplace morale and employees’ wellbeing has become more pressing than ever. Wondering how to do it right? Do not worry – for those who wish to earn the employer of the year title but are not sure where to start, we have prepared a list of seven proven solutions tested by MoodUp Team.

 

Remote work

Social distancing is said to be the best way of preventing infections. It’s why home office currently seems to be the safest option. Allowing employees to work from home is then recommended for every employer who cares about their health and safety. But there is more to ‘allowing remote work’ than just granting official permission. It also means providing employees with the right hardware and software that will ensure smooth communication and workflow. And let us not forget about working stations – in MoodUp, we want our employees to enjoy an ergonomic workplace even at the comfort of their homes. In our case, that means delivering their favorite and comfortable office chairs directly to their doorstep.

 

Office safety

There are some situations when working remotely is just not an option – IT administrators know that all too well. But in fact all employees have to visit their office sometimes, for example to have their hardware repaired or hold an on-site meeting with a client. And since having people in the office cannot always be avoided, it is the employer’s role to make sure that everyone can work in safe conditions. That means keeping the two-meter distance between the workstations , making sure that all surfaces are disinfected regularly, and providing employees with the right equipment, such as hand sanitizer. Reminders about safety precautions placed in the strategic areas of the office are a nice touch, too.

 

Transportation

In case there is an urgent need to visit the office, employees have to face a new problem – how to arrive there without risking an infection. Some decide to use public transportation – unfortunately, those vehicles are where many people are gathered in a relatively small area. In the current times, that seems like a health hazard – one that can and should be avoided.

We have come up with a solution. MoodUp joined the Uber for business and Bolt Business platforms and granted each employee a monthly spending limit. To make sure that our people are safe outside their working hours as well, we have separate budgets for work-related travels and their private activities. Just be warned – side effects of this solution might include employees coming to the office on time twice as often.

 

Proper healthcare

One of the most sought-after benefits offered by companies is access to private healthcare or life insurance – and during the pandemic, it has become even more crucial. We have been offering that benefit for a while now, but in MoodUp, we like to go the extra mile. That includes providing employees with antibody tests so that they can check if they had contact with the COVID-19 virus in the past months despite not showing any symptoms. We have also purchased several pulse oximeters that help monitor employees’ condition by checking the oxygen saturation level in their blood as well as oxygen concentrators for emergencies.

 

photo 02
Oxygen concentrators are ready to use

 

Taking precautions

Preventing infection starts with a healthy lifestyle. That is where employers have a chance to get creative – there are as many incentives as there are companies. We try to approach the matter from several angles. The first is promoting exercising and staying active, and it has been a big part of MoodUp’s working culture from the very beginning. We regularly rent a gym to have a game of volleyball, and just last month our employees started attending free yoga classes together. Once a week, we also offer free massages to help employees lessen the strain on their spines caused by desk work.

Another action we take to ensure our employees stay healthy is boosting their immune system – quite literally. Lately everyone in MoodUp has received a gift box that included healthy snacks, natural raspberry juice, fresh ginger and some delicious honey. It also featured a MoodUp facemask and a bottle of hand sanitizer for that extra protection.

 

photo 01
“Health box” gifted to every Mood Up employee

 

Financial security 

But what happens if an employee becomes infected anyway? In Poland, regular employees are compensated for the time they spend on sick leave – however, this is not true for all countries. What is more, some people are self-employed and prefer the B2B type of contract – and that is where the matter of compensation becomes complicated. That is why every caring employer should make sure their employees can sleep soundly, knowing that they will not lose their source of income if they happen to fall sick. 

We’ve got that covered. In MoodUp, if an employee tests positive for coronavirus, they are guaranteed to receive a major part of their salary even if they are unable to work – regardless of their type of contact. And if they decide they are still in good enough condition to work remotely, they receive as much as 150% of their salary to cover any other expenses. We are planning to throw in a small bonus too. Those unable to leave their home will get some extra funds that they can spend on the Uber Eats platform.

 

Staying in touch

It is important to remember that the pandemic is a strain on both mental and physical health. Good employers take that into account – and although face-to-face meetings are not recommended anymore, they make sure that the employees do not lose contact with their coworkers. Why not order everyone a pizza and enjoy it together at a Zoom meeting or host an online game tournament? The possibilities for virtual meetups are nearly endless.

 

Going the extra mile

Are all these solutions worth it? Definitely. Employees who feel secure about their job are guaranteed to perform better than those who worry about the pandemic affecting their careers or income. It can also be a huge boost to the workplace atmosphere or relations, which impact on the projects is often immeasurable.

What does your company do to ensure the employees’ wellbeing during the pandemic?

 

corona 02

 

mood up

11 qualities of a great QA tester


In this day and age, hardly anyone needs proof that software testing is crucial to its success. However, if you are still unconvinced,  here is an example: in 2015, a military airbus A400M had a fatal crash that was later discovered to have been caused by a programming fault. Could it have been prevented with more extensive testing? The experts seem to think so.

Not all bugs have such tragic consequences. Although, trying to save money on testing often results in the maintenance costs skyrocketing later on. And it seems that more and more software development companies – in Poland and abroad – are aware of that. Because it’s a fact that the demand for both manual and automation QA testers is growing steadily. So much, that according to the 2019 research by MarketsandMarkets, in the next five years the global automation testing market is expected to double its value, showing an 18% annual growth.

 

01 chart 1

source:marketsandmarkets.com


Finances are one thing, but there seems to be more to testing than that. In 2018, a QA analyst was voted the second happiest profession according to the Careerbliss ranking. No wonder that more and more people are considering it as a career choice. Nowadays, the job of a tester seems to be satisfying, well-paid, and in demand. But with that inevitably comes a question – what do I need to be a successful QA tester?

Our software house in Poznań hires some truly experienced and passionate QA specialists. We asked them what traits and skills they find the most important in their daily work. With their help, we have prepared a list of 11 qualities that every tester should possess  – read it and find out if you have what it takes.

  • Curiosity

The question that lies at the heart of QA testing is “What happens if…?”. What happens if I put numerals in the “First name” field or if I press Back after sending my form? A good QA tester cannot just assume that a feature works as intended. It  is the first step to miss a potential problem. They should be able to look at software from many different angles and test scenarios that no one else would even think of.

  • Strong communication skills

Both testers’ and developers’ time is precious – it would be a waste to spend it on endless back-and-forth communication. That is why QA specialists need to be able to report their findings in a clear and understandable manner.They should also know how to choose the right language and tone of voice depending on their reader – so that both technical and non-technical people can understand them.After all, if a tester cannot write down steps to replicate a bug, developer won’t be able to fix it.

  • Quality-oriented approach

Some say that a tester’s job is all about trying to break the software. While that approach is not entirely wrong, there is much more to testing. They not only try to find faults in the work of developers. A dedicated QA specialist brings a quality-obsessed mindset to work and remembers that their ultimate goal: „To refine the software into a product of the highest standard”.

  • Prioritizing

A great software tester is aware of the ever-approaching deadlines and has no trouble deciding what to prioritize. They can quickly identify the most commonly used areas and features of the software. Later this knowledge is being used to decide on the essential tests. They should also be able to execute them according to their priority level. And let’s not forget all the project-related documentation, artifacts, and reports. QA specialist always needs to have the organization skills to deliver them on time.

 

QA 01

  • Attention to detail

Not all bugs are obvious, and sometimes the smallest errors can have massive consequences. Example? In 1998 a NASA’s orbit probe worth over 600 million dollars disintegrated in space because of… wrong time units in the ground computer’s software. That’s why a QA tester should be thorough enough to catch even the tiniest problems – even if they are hidden. Double- or even triple-checking everything is a necessary habit to learn.

  • End-user perspective

Understanding your customer is crucial, and not just for product owners or designers. As a QA tester, you often have to ask yourself: Who is going to be using this software? Why? How old are they? Are they technical or non-technical people? Only adapting the end-user perspective will allow you to predict the final scenarios of product use.

  • Technical knowledge and skills

While some might think this should only apply to automation testers, we believe otherwise. Technical expertise and coding skills are essential when you have to decide which tests should be automated (and execute them). Although there are many other situations where specialized knowledge comes in handy. For example, it might help you decide which testing tools should be used for the particular application. Understanding the code also makes it easier to identify a bug or to better understand the limitations of the software.

  • Lifelong-learner mindset

The whole IT sector is constantly changing, and quality assurance is no exception here.

New technologies, automation tools, or scripting languages emerge right as you are reading this article. Though, every QA tester needs to be able to keep up with them. They should always be on a lookout for a new book, online tutorial, QA conference, or a blog entry. Everything that helps them hone their skills and improve their knowledge is crucial.

  • Team player attitude

Cooperation always yields the best results – and software development is no exception. Good testers remember that they share a common goal with developers – even if they are a constant source of bugs! – and that goal is to deliver the best product possible. They can appreciate and support their team and are willing to learn from them – but they are also not afraid to ask questions or challenge the solutions of others.

  • Analytical thinking

In the current information overflow era, this is a skill everyone should possess – but it is particularly useful for testers. It can help them comprehend the customer’s expectations and feedback and use it to define the right testing strategy. It’s also necessary for root cause, and requirement analysis, for understanding, and special behaviour analizement of the collected data.

  • Patience and perseverance

Nobody likes dealing with bugs – but that’s what a large part of a QA tester’s work is all about. They need to be constantly vigilant and ready to come up with new approaches and fresh angles on the application.Under such constant pressure, it might be easy to lose focus, get frustrated, or run out of creative juices. Still, the best testers need to be prepared to push through those obstacles and emerge victorious.

Do you feel that you have what it takes to make it in the QA world? Or maybe the list still seems intimidating? Even if it does, don’t worry – most of these skills can be learned with enough practice and diligence. What is important to remember is that testing is not only about hard skills – it requires just as much technical knowledge as it does curiosity and creativity. Fortunately, according to our QA specialists, the job can be as rewarding as it is challenging.

video call people phone tips communication

6 do’s and don’ts of video calls


Can you imagine a day of work without video conferences? Neither can we. They are convenient, easy to set up, and they help companies save time and money. And with the increased remote working time and the travel limitations caused by the global pandemics, there seems to be no better way to stay in touch with clients and team members.

Video calls are here to stay

The numbers show that even those reluctant towards video calls are warming up to the idea. Since the beginning of 2020, the number of video calls has skyrocketed, with some major players on the video conference software scene noting an increase in users as big as 2000%. That’s over 2 million downloads a day.

It is also clear that customers are eager to look for custom solutions that work best for their businesses. Statistics from a software review site TrustRadius show that in April 2020 the interest in video conference applications was up to eight times greater than in January of the same year. The time customers spent evaluating different options was also about three times longer as compared to before the pandemic.

 

screen shot 2020 05 08 at 12.17.02 pm 1024x552

Source:TrustRadius

How to stay professional during video calls

Despite the rising interest in web conference software, video calls can still be uncharted territory for some people. And while each company has its own communication standards, following some universal rules can ensure that a meeting goes smoothly and without distractions. Here are six etiquette tips that will help you leave a great impression during your video calls.

1. DO – Being on time

Everybody has experienced a situation when a meeting could not begin for several minutes because of one late joiner. Video conferences are no different. It’s not uncommon to start a lunch break or get engaged in your next pressing task just to suddenly realize that you were supposed to log into that meeting fifteen minutes ago. 

The easiest solution is to set up a reminder, by using a calendar or email app, or even a phone. However, if you cannot help joining a few minutes late or you won’t make it to the meeting at all, make sure to notify the host or a team member as soon as possible. This will help them save time they would otherwise have to spend on small talk. And remember – every five minutes wasted in a meeting of ten people amounts to fifty minutes of your company’s working time.

2. DON’T – Not setting up your space

Although working from home grants much personal freedom, company meetings are the perfect occasion to showcase your professional attitude. How to do that? Make sure that you are dressed for the audience– and while that doesn’t need to mean wearing a full shirt and collar set, pyjamas are definitely out of question. The rule of thumb is to make sure your look reflects what you would usually wear at the office. It’s also important to clean up your surroundings before the call. Dirty mugs or children’s toys lying around are not going to leave the best impression.

However, if there is nothing you can do about the state of your home office, consider blurring your background or using a virtual one. Just make sure it’s appropriate to the occasion – you don’t necessarily want to negotiate a contract with a client from the inside of an X-wing.

03 03

3. DO – Checking your equipment

Nothing slows a conference call down quite like its participants adjusting their audio or video settings for several minutes. That is why you should always check your equipment ahead of time. Call your teammates or use the testing feature of your video call application to make sure that your microphone picks up audio and the camera works as intended. Remember to make sure that your internet connection is stable– if not, consider switching to a different network, turning off your VPN, or using a wired connection.

Don’t forget about the software as well. It’s not unusual to attempt starting a call just to find out that your application needs an update. Try joining the meeting several minutes earlierso that you have time to fix any potential issues.

The right application is all the more important if you are a host of the meeting.  According to the 2019 Impact of Video Conferencing reportby lifesize, over 41% of respondents pointed at the overly difficult downloading or joining process as the main detractor to their call experience. Solution? An entirely web-based video call platformlike Vicodo. Once you schedule a meeting, Vicodo sends your customers a convenient invitation link via email and text message that they can open in any browser. No more struggling with heavy executable files or forgotten passwords.

4. DON’T – Not using the mute button

Even if you don’t work from a local coffee house, there is a chance that your remote workplaceisn’t perfectly quiet. There might be trash collection happening outside the window, or perhaps your dog refuses to stop barking. A better quality microphone might help with muting out some of the background noise, but even the best hardware won’t help if you suddenly need to cough or take a sip of water.

All of these might pose a distraction to the other participants. That is why we recommend muting your microphone whenever you’re not talking. This will help everyone focus on what the speaker is saying. Be careful not to keep it muted at all times, though – you don’t want to deliver a five minutes speech just to notice that you had been the only person who could hear it.

5. DO – Keeping your camera on

This is, without a doubt, the most controversial point on the list. While audio-only participation can be a blessing for some people, here at Mood Up Team we strongly recommend keeping the camera on throughout the whole meeting. Why? Here are our reasons:

  • It shows your engagement– your teammates or clients can see that you are paying attention instead of absently browsing your phone.
  • It builds relations. In a conversation, facial expressions and gestures are everything. Seeing them in real time not only makes you feel closer to your fellow participants, but it can also prevent you from being misunderstood.
  • It helps you feel connected. It’s natural to feel isolated or detached after a prolonged period of remote working. Seeing the faces of your coworkers helps you remember that they are more than just usernames on a screen.
  • It can be a conversation starter. It is not every day you get a glimpse into your coworkers’ private lives. Who knows, you might spot a cat demanding attention or a funny poster on the wall.01 01

6. DON’T – Getting distracted

Once you are done speaking or the current point on the agenda is not relevant to you, it might be tempting to get on with your other tasks. Try to avoid that – replying to emails, checking slack, or browsing your phone can wait. Being attentive and listening to your coworkers is guaranteed to leave a much better impression.

If you really need to reply to a message or search for a file, make sure to communicate that to the other participants to avoid long periods of silence. And if you want to show that extra attention, here’s a tip – remember to look straight into the camera. Your teammates will get the impression you’re keeping eye contact with them and will know you are listening attentively.

Doing it right

In the current challenging times, video conferences are invaluable means of communication and collaboration. As more and more companies are transitioning to remote working, the demand for upkeeping an online meetings etiquette will increase – and with our list, you’re already ahead. By following these tips and preparing ahead of time, you can make sure that your next video calls are much more smooth and efficient.

 

mood up team

6 Tips How To Make Your Home Office Efficient

Times have been shifting and with changing times the tech and the needs of people have taken a turn too. Now this change is not just confined to our personal lives where we have become highly dependent on our phones and tabs for meeting our every small need. It has spread its wings in the professional sphere also. Along with the Word and the Google documents that have replaced the paperwork in offices, the office culture is also being fast replaced by work from home concept.

Since our world has been struck down by a lethal virus, both the value and demand for work from home have recorded an increase. This is because in the times of Corona, going to the office is being recognized as highly dangerous. Covid-19 can be easily contracted by coming into contact with an infected surface and hence. The governments around the world are recommending people to stay at home and to opt for remote working. It is being said that doing so can help in containing the spread of the Covid-19 virus.

home office 03 1

 

Is working from home feasible?

In the digital age, the employees don’t need to assemble in a traditional, centralized workplace to do the “office work.” Today, with the help of digital tech you can efficiently complete the projects and even conduct meetings without being in the same room, or even in the same city or country. So, rather than working in a cubicle the employees now have the option of sitting and working from their homes or their favorite coffee shops. The only 2 requirements for remote working are a laptop and a good internet connection. And if you have them both, then you are all set. 

Now as to the question of if or not remote working is practical, let’s quickly check some facts.

  • Easy working conditions

Remote working translates into easy working conditions. So, consider if you have some issue because of which you cannot go to your office, then under normal circumstances, this would mean a leave, but with remote work, you can literally work from a park or even from a hospital. This is beneficial for both the employer and the employee as it would ensure that the work gets completed easily without dragging the deadlines.

  • It facilitates more work 

77% of the workers report more work productivity when they are working remotely. This is because in remote working conditions the normal distractions and unnecessary office hurdles are not in between you and your work when you are working from someplace else. Hence, it means more work in less time. Again something that the employers will appreciate heartily.

  • Less wasted time

When you opt for remote working, it also translates into less wasted time for the employees as now they don’t need to spend hours stuck in traffic. People don’t need to wake up 2 hours before their office time simply to look presentable and to reach office on time. They can literally just wake up, take a quick bath, settle down in their PJs, and fire up their systems to start work! This routine hardly takes 15 minutes. 

  • Automatization of companies

As per the present trend, automatization is the need of the hour. The less you start to rely on things that can ditch you at the end moment, and the more you become dependent on technology and machinery for carrying out your work, the greater will be your chances of success. And remote working or work from home is one step towards the automatization of a company. 

Hence, it can be concluded that even though work from home is a still-developing field, yet this option is a feasible one, especially when you look at it in the context of the present scenario of Covid-19.

How can you improve your remote working efficiency?

Now that we have discussed the feasibility of work from home option, let us now have a look at tips to improve your efficiency while remote working from home.

  1. Use video chat platforms like Vidoco

One of the disadvantages of remote working is that people do not get the opportunity to see their co-workers or employers face to face. Many times this leads to miscommunication. Now, if you want to correct this error, then one way of doing that would be to use video calling platforms like Zoom or Vidoco. Like zoom, which is an easy and reliable platform for video communications, Vidoco is also a feasible option for video calls.

With Vidoco, the user is granted the option of using a video calling tool without installing it on their phones or computers. Rather you can just access it on your browser. Plus, with Vidoco, the call receiver does not need to worry about registration because here one-sided registration is also enough. Other benefits of using this tool include the options of recording a conversation so that you can revisit it any time you like and the choice of sending an invite through an email or SMS to the receiver which is both an easy and practical solution.

3 1

  1. Share official documents

When you are in office, it is quite easy for your co-workers, employers, or employees to knock on your office door to ask for that file or document that you were working on yesterday. But when you are working remotely this can act as a hindrance to the work progress as your colleague may have to wait to get a document from you simply because your working timings do not match.

Hence, if you are not already doing it, then starting today onwards, get into the habit of working on Google Docs, Box, or Dropbox to share files. Having scattered files on Email, Word, or personal hard drive is not recommended. 

  1. Be pro about time management

Many employers worry if their employees are actually working during the office hours or are they skipping office work for managing their laundry tasks or for binge-watching Netflix while they are working remotely. Well, to be honest, the concern is genuine. So, what is the way around it?

Well, according to us, to deal with such issues the employee needs to be firm about deadlines and protecting time. So, consider if you are working on a project and you have set a deadline for the employees for 23, then be firm at 23. You can even send them a reminder email at 21 to ensure that they finish work in time.

  1. Have a workplace at home

While working from home, a lot of employees complain about motivation. According to a survey, 2/3rd of the people who work from home reported, they don’t feel inspired to leave their beds or to power up their laptops to get into the ‘work mode’. This has been known as a major deter in work efficiency.

Now, one good way to deal with this is to assign yourself a workspace. This is because when you work from your bed or couch, the leisurely feels do not leave your body completely. This hinders your work. Hence, getting yourself a dedicated room or surface -a specific place for work like a table or a coffee shop- that consistently remains your workspace is a good idea. It will boost your morale and help you in getting into the right frame of mind.

  1. Emphasize over communication

When working in a remote team, it happens so often that one person assumes something while that is not what the other person meant. This results in miscommunications, and it can affect your work negatively. Hence, in order to ensure that nothing of this sort happens, emphasize over-communicating, and leave nothing to assumption. 

Make sure to clarify all the doubts and lay down the expectations very clearly. Use video chatting platforms like Vidoco while communicating with your team member or your head so you can always go back to it, and have a look at the recorded conversation to clear any lingering doubts. If you still have some doubts left, then don’t hesitate to drop a mail. Remember, it is better to communicate than to work wrong.

  1. Get regular feedback

Even when you are working in the same space, it is often difficult for employees to report any problem that they might have with their colleagues or boss. It is quite hard to stand up to your superior to tell him that something is not working right. Hence, it falls upon the employer to make sure that the employees can reach him easily.

When you are working remotely you can do this by asking your employees for feedback. So, check-in on your colleagues regularly, ask them if things are working smoothly or if they would like to change something. You can either do this by dropping in their inbox or it can be managed over a phone call or over our personal favourite video call!

Conclusion 

Thus, we can see how working from home is a booming field that is assisting industries and companies in running smoothly. Using this culture the companies can tap into human resources from anywhere in the world and make maximum profits. However, it also necessitates mention that remote working has its own set of challenges. But if you plan futuristically and use your resources like the Vidoco video calling platforms smartly, then you will easily and effectively overcome the hurdles!

Man phone illustration

6 questions startup founders should ask themselves before developing an app

 

App development is all the rage these days and you might be seriously considering developing one for yourself. What you have to keep in mind, however, is that undertaking such a project requires the collaboration of a wide range of skills and can be costly for a startup. Why we say as such is the development of an app does not stop at the end of its technical development and needs to be marketed and maintained. 

Do not lose heart, as developing an app can, in fact, help you achieve your business goals, provided it is done right. How do you do it right? 

Answering the questions below might be a good start. 

1. Do I really need an app?

You might consider this strange coming from us since our main bread and butter is in app development. We are, however, also a client-first company, realise that startups are usually bootstrapped and have no hesitation in shooting down grandiose ideas that might just end up sucking money with no discernible return on investment. 

So some of the questions you need to ask yourself to answer the question on whether you need an app are 

  • Is there a gap in the market?
  • Is there a healthy return on investment in this gap?
  • Are there any direct and indirect competition? 
  • Are you committed to this or jumping on the app-building bandwagon

2. Who is my customer?

An app made for everyone isn’t going to be used by anyone. 

It’s important that you identify the end-users of your app as it is to their needs your app should be catering to. This information is pivotal in creating user personas that help the design team understand the user demographics, behaviors, motivators, goals and pain points. 

If you’re not too sure on the above information on your end-users, it’s worthwhile to invest some time and resources to do so, as this information in pivotal in communicating your idea to your app development partner. 

3. How do I plan on monetising it?

App development can be a costly investment and one in which you should be earning a good return on investment. Give some thought as to how you plan on recouping your costs with the below questions. 

  • Will the app be free to download, paid or freemium?
  • If it’s free, what strategies will you be using to earn money?
  • If it’s paid, what is the price point you will set it at?
  • If it’s freemium, which features are free and which are paid?

Inapp_revenue_drivers

Sourced from Clearbridge

4. Who’s going to develop my app?

The right answer here isn’t freelancers as a great app is a sum of many skills brought together. 

Developing an app first needs designers who are proficient in User Interfaces (UI) and  User Experiences (UX). These designs must be created using user personas and tested before being passed onto the development team who then begin work on the coding. The code developed must then be passed on the Quality Assurance (QA) team who will test it for bugs and proper functionality. 

App development is a complex process which is why we recommend you to give some careful consideration before picking one. A couple of things you might want to look at when doing so is

  • Experience – have they developed similar to yours?
  • Reviews from previous clients – look beyond the reviews on their website and on websites such as Clutch. We also urge you to reach out to their previous clients to get a first hand account of how their partnership with the said app developer was. 
  • Software development model- is the software house working on the waterfall or agile methodology?
  • Pricing model – will the software house be charging you on fixed or on an agile contract?
  • Communication model- how often can you expect updates and/or replies? What are the tools used for communicating with clients?

5. What’s my plan for marketing?

The greatest app in the world can remain unused if no one knows about it. 

Your marketing does not need to have an ad budget with many zeros behind it, but a sizable amount experimenting to understand what works and what doesn’t. Make a plan on who your customers are, where they are and what they do to better understand what you can do to get their attention. Below are a few things you might want to focus on when releasing your app to the app store. 

  • App screenshots to showcase your app in the App/Play Store 
  • App description 
  • App Store Optimisation (ASO)
  • Search Engine Optimisation (SEO)
  • Social Media Marketing 

Don’t have the necessary know-how? Look for help from an external boutique agency so as to maximise the potential of your marketing budget. 

App_marketing_best_practices

Sourced from Apptentive

6. How am I going to fund it?

As hard as it is, we must talk about the means through which you will be funding the development of your app. Giving this some serious thought from the get-go itself is important as the cost of research, design, development, testing, launch, marketing and many other expenses related to producing an app can take a sizable chunk of any start-up budget. With that being said there are several means through which you can raise capital for your app

  • Friends and family- the easiest mean of raising some capital is through those who know and have trust in your vision. Just remember to treat them as investors who trusted you and take good care of the money they entrusted you with. 
  • Partners- reaching out and locking in several partners who possess different skills is a great idea to raise funds and make use of their technical expertise. 
  • Crowdfunding- with a plethora of crowdfunding websites to pick from, there is simply no excuse for not giving crowdfunding a go if you have very limited budgets. Crowdfunding your ideas can also serve a fantastic means of validating your idea as an idea that many are willing to back via investments is one that will get traction once it’s released. 
  • Funding contests- with many organizations, companies, or even startup incubators hosting contests for those who are looking to fund their ideas, a great pitch can take you a long way. These contests are extremely competitive, so make sure you do your research, craft an engaging pitch and practice as much as possible. 
  • Angel investors- a very attractive option for some startups as angel investors bring the required financing as well their business acumen to help run the project. Do, however, remember that Angel investors can only be bought in if you are willing to hand over a portion of the equity of the project to match it.

Conclusion

We realise that wrapping your head around all the steps and processes needed to bring an app to life can be difficult. All the more so as an incorrectly developed app can fast become a liability, sucking your funds dry in comparison to the asset you expected it to be. It’s for this reason that we recommend you to hire a software consultancy company that can help narrow the idea and provide an end to end service for startups such as yourself. 

iphone money mobile app

5 top ways a free mobile app can earn money

 

One of the most important considerations when building an app is its monetization strategy.  App development isn’t cheap undertaking and the costs need to be recouped by the investors. The best way to do so is to make sure the app you develop is available to as many users as possible, increasing your monetization chances. Don’t believe me? Just take a look at the ratio of paid apps when compared to those that are free!

Free_and_paid_apps

Sourced from  Statista

It’s clear that opting to make your app downloadable for free will make it more attractive. This gives you more people whom you can provide your app to. But once this is done, how exactly will you be monetizing the app? Well, we have 5 key proven methods which you can use to earn revenue from your free app.

1. In-App purchases

Used by most app makers these days, in-app purchases are essentially a strategy of attracting a user to an app before pitching extra paid services. Earning revenue via this method is rather easy if your app is a game. That’s because players can be encouraged to buy a token in exchange for bonuses. You can do the same with non-game apps by offering an ad-free premium version. Such a strategy can be a sizable revenue generator for all the apps according to  Business of Apps (2019)

In-app purchases (50%), paid downloads (50%), and in-app advertising (49%) were the most common actually used app monetisation strategies for non-game apps

For games, only in-app advertising (81%) edged out out in-app purchases (79%)

2. Sponsorships 

Done right, sponsorships are a very lucrative method ofmonetizingyour app and can bring a steady stream of income.The trick is to build an app for a niche audience who would be interesting to a potential sponsor. Then, sponsors can model the app with their branding, for a fee.Do, however, remember that such sponsorship opportunities are only good if your appsatisfiesa niche demographic that is sizable.

3. Advertising 

Mobile_app_ad_types

Sourced from techpatio

One of the most common and best means to monetize an app is through advertisements.Setting up such advertisements is a relatively easy task as therearemany third-party networks tohelpwith this. The type of ads that you can run include, but are not limited to:

  • Banner ads– the most common ad format you might have often come across. Banner ads are pictorial and often found at the top or bottom of a mobile app. Such ads’ goal is to constantly remain in the users’ sight to increase the chances of clicks on the ad. Some banner ads, however, might get blocked by adblockers, thereby throttling your advertising efforts.
  • Native ads– heralded as the answer to adblockers, native ads are ads that are more ingrained to the app and its content. Such ads cannot be blocked and tend to be more appealing and less intrusive than banner ads. 
  • In-app video– a fantastic means of getting marketing messages across, videos on average receive more engagement than the typical ads, making it more attractive to advertisers. 
  • Interstitials– closely related to pop-ups, these ads are displayed to users during transitions in the app. Such ads are less intrusive and offer decent interaction with the users in your app. 

The important thing to remember is that advertising is not the only strategy you should depend on when monetizing your app. That’s because it takes a substantial amount of regular users to create sizable income. 

4. Referral Marketing 

Referral marketing is a strategy of monetizing a free app by displaying ads of other apps services.The revenue generated depends on several metrics and can be a very good source of income.

  • Cost per view (CPV) – this revenue model is based on the number of views on an ad, whether it be an image or a video. 
  • Cost per click (CPC) – a revenue model on which the number of clicks on the ads displayed, decide the revenue generated. 
  • Cost per install (CPI) – – equivalent to the cost of acquisition (CPA). The CPI is a revenue model based on the number of installs that result from a particular referral ad.

5. E-mail Marketing

As old as it might be, email marketing is still a very powerful method of advertising. Especially when reaching out to customers who are actively interested in your products. To do this, you can collect user emails via pop-ups that offer rewards in exchange. You can also use Facebook SDK that allows users to log in using their Facebook profiles. Once collected, these email addresses can be used to reach out to users. Those messages can inform about updates on new features on your app, offers, and news. Remember that users coming back to app increase your monetization opportunities.

However, remember to make sure that the emails you collect are done with full transparency on how they will be used. Such personal data should be collected and used carefully as failing to do so can have you incurring huge fines. Regulations such as the  General Data Protection Policy  (GDPR) of Europe, have to be taken into account.

Global_app_revenue

Sourced from gamesindustry

Conclusion

Building an app is a serious financial undertaking,and we understand that recovering these costs is a key consideration. These 5 monetization strategies, can go alongtheway towards helping you obtain a good return on investment. But only when you pick the right one that is suitable for your app, its users expectations. Remember that you can opt for either one or more strategies concurrently, provided you keep the user experience top of mind. 

Searching seo web development

Does your app need a dedicated landing page? 

 

Imagine that you are creating an app choke-full of recipes for cooking great Italian cuisine. It’s a great idea as there is definitely a demand for such an app. But how will you create buzz around this? How will you convince your audience to download the app? 

A landing page, simply put is the homepage of your app and serves as a central hub for its information. The content of such a landing page depends largely on the stage of the app development. This is a fantastic method of building a fanbase around it even before its launch. It is also the end page customers will be arriving to as a result of your marketing activities. Thus it will prompt those leads to click on your call to action to download the app one its launched.

What elements should a landing page contain?

The landing page doesn’t have any hard of fast rules about its content. However, below are a few elements that we think are important for any user to gauge an apps suitability. Note that per the product that is under development and the end-users it is aimed at, the order of such elements may differ.

  1. The headline – this has to be simple, concise and resonate with the needs your app will solve. This is where you must highlight your unique selling proposition.
  2. The hero shot – humans respond well to visuals and less to text, which is why your landing page should display images. For instance, images of your app and the context of use.
  3. The benefits – the users who were attracted by your headline and the imagery needs further convincing. They should be met with further information on your app and the features it offers.
  4. Proof – most app users are followers and look for reassurance from previous consumers on how they found the app. Inserting some reviews from how users have found your app can provide some compelling social proof. This proof will lead to downloading for those who visit your landing page.
  5. The call to action (CTA) – the most important of all the elements. CTA is the text or button that leads the user to a certain action. This may be downloading the app, subscribing to an email newsletter or taking a survey. The click made on this CTA is the end goal of the rest of the elements of the landing page. This is a very good measure of success.

Invision_landing_page

An example of a great landing page from Invision

Why should your app have a landing page?

  1. It helps to showcase your app –  a dedicated landing page is a fantastic platform to showcase the story behind the app’s creation and build awareness about it.  Such a platform where you can elaborate on the app is very important as the app marketplace today is very crowded. Awareness of this landing page must be gained via search engine optimisations. For instance public relations, social media marketing and other marketing means before being prompted to take the call to action. 
  2. It demonstrates the app’s functions – the App/Play Store provides very little space for providing information about an app. It isn’tbig enoughto convince a user to make the tap on the download button.Applications dedicated lading page, however, provides this space and can be utilized to show pictures of the apps working. We at Mood Up recommend supplementing these pictures with videos as well. Those are a quick and easy method of receiving new information.
  3. It serves as a hub of information – the landing page you created is a great portal of communication to serve information on where the app is. Whether it be in the design, development or deployment. Such a platform will serve as the central hub of information for your end-users. Also, it will drum up excitement as the app launch date is getting closer.
  4. You can recruit beta testers a landing page lets you reach out to individuals who have shown interest in the app. You can recruit them as beta testers prior to its deployment to the general public. Such beta testers will prove invaluable in the development of the app. They can be very helpful in usability testing (usually an expensive process) to ensure that the app is kept user-centric.
  5. Helps to refine marketing messages – having a landing page for your app would allow you to test and refine your marketing messages and app microcopy. Doing so using AB testing is very important. The messages and overall content that you use should match and resonate with the end-users you are targeting.
  6. Lends credibility – a dedicated landing page for an app lends credibility to the app. It’s a huge persuading factor for a user who might be torn between downloading your app and not downloading it.Think about it, would you download an app you haven’t heard about? If there was no website or mention of it upon a quick Google search?

What not to include in a landing page

Chase_landing_page

An example of a not so great landing page from Chase

  1. Too many details – your app landing page’s primary purpose is to inform, convince and persuade your visitors to take a certain action. Whether it be downloading the app, taking a survey or subscribing to an email newsletter. Allowing landing page to contain too much information, that is meant to guide a visitor to a certain outcome is distracting. Thus it may lead you to loss of visitors who would otherwise convert.
  2. Lengthy videos – videos are a great resource for any app landing page, provided they are not too long and boring. Make sure your video leaps straight to the action is well optimised for slow internet connections. 
  3. Links, links and more links – the more outbound links you have on a landing page, the more opportunities you give your hard-earned visitors to escape the landing page. Some links are important, but make sure not to confuse the visitor as the only purpose of a landing page is to guide the user to a specific action. 
  4. Cumbersome forms – landing pages as we mentioned previously is very useful for collecting email subscribers that can be communicated to. Do, however, remember that such forms have to be simple and only gather purpose-specific data that is required. Remember, you don’t want to frustrate your visitors, so make sure to run some usability tests on the forms.
  5. Unnecessary elements – most companies tend to create their landing pages to match their website elements, and this is a disastrous tactic as it provides the users with many avenues to explore and not move towards the desired action of the landing page. 

Conclusion

As you can see, the landing page is a boon and not burden as some make it out to be. Having such a landing page for an app will lend you credibility. It will also create a space for showcasing the app and can be useful for soliciting feedback from visitors. Do, however, remember to pay careful attention to the development of such a landing page with A/B and usability testing to reap its full benefits. 

Bug fixing and finding

What metrics can you use to verify the quality of software?

 

Software quality is a way to describe how accurately the product fits the project objectives, client’s needs and general requirements. Usually, the completion of all the functional requirements is the bare minimum for a product to be considered as done. The code of these functional requirements must then verified via the inspection for bugs. The manner in which the developers organise their work and use to check the code is important here as it helps in understanding the quality of the code, monitor project status and creating quality models that can be used as a benchmark for future code. 

Equally important as the testing of the code is the evaluation of non-functional requirements such as the UX , UI and many other categories. Doing so is vital as no amount of bug testing by the internal team can replace the feedback from a client who has just downloaded the app. One must, however, remember that extrinsic factors such as timelines in which the product was delivered, the degree of satisfaction from the client, users and the team play a role in measuring software quality as well. 

Why is measuring software quality important?

Ever heard of the phrase “If you can’t measure it, you can’t improve it.”? Well, this is very applicable in software development where the focus is on continuous development and the delivery of a world-class product. 

  1. Helps to reduce development costs – Measuring the quality of the software is a great way of receiving objective data on the software the team is creating, work of the QA team etc. Doing so from even the very early stages of the project is important for maintaining quality throughout the software development life cycle and provides the team with feedback on what they need to improve on. `Such monitoring and optimizations helps to reduce development costs to the client.
  2. Helps track team effectiveness – knowing how much time is taken to fix a bug can give an indication of the team’s effectiveness and help the client decide on which bugs needs to be fixed if the team is to meet a set deadline. 
  3. Aids in planning future functionalities – Gathering the data on software quality and the development process helps with planning future deadlines, estimating how many hours need to be devoted to implementing a functionality and how much would it cost.
  4. Increase client confidence – a culture of quality assurance creates confidence about a developers skills in the minds of the customer and even the end-users. This is one reason why we have no qualms about downloading apps from well-known brands such as Google and Facebook, when compared against more obscure ones.

cost_to_fix_bugs

Bugs can be expensive. Image sourced from deepsource.io

8 metrics to verify software quality

The metric you use to measure the quality of software depends on the software and its expected outcome, as there are too many to choose from. Such metrics in my opinion should be chosen carefully as per attribute you want tested and cover basics such as time spent on the project, defects of software, the size of the product and effort put into the project by the team. 

These are some of the most popular measures of software quality you can track on your project for basic insights:

  1. Code churn— a very popular metric that measures the amount of code that is deleted, added or edited in the repository over time. What is important to remember here is to interpret the data correctly as a big code churn value can be expected, in a new feature. The same in older code, however, can be a hint of trouble as the developers are then focusing too much fixing technical debt instead of working on new functionalities. cost_of_bad_code

    Image sourced from Pullrequest

  2. Lines of code (LOC)– this metric as the name suggests refers to the lines of code in a functionality and is a good indicator of how complex/efficient the code is. It can also be used as a company restriction for how many lines of code can maximally be written for a functionality to make sure it’s not overly complicated.  Generally, counting lines of code as a measure of programmer productivity is not a good practice as it might just be seen as a reason to write unnecessarily complicated code.
  3. Number of bugs or defects per KLOC (1000 lines of code)– also called defect density, KLOC helps predict the number of defects that may arise based on previously collected data. Tracking this metric is important as a high number of critical bugs per KLOC may be a signal to focus on tests and slow down on implementing new features.
  4. Lead time– an indicator of the time it takes an idea to go from being an idea, to development and deployment. It takes into account every step of the software development life cycle such as design, development, testing design, testing and is a good measure of how a project is progressing. This data can then be used to help plan, estimate releases and future work. 
  5. Burndown chart–  a chart through which you can track the amount of work that is incomplete with the time it should be completed in. Set on a horizontal axis, the burndown chart measures the work that is already done (bug fixes for example), new work that will appear in the meantime (newly discovered bugs for example) and the rate at which the bugs are fixed. Such charts in our experience help to plan the end date of a project with better accuracy and monitor the efficiency of the team. Burndown_chart

    Image sourced from Atlassian

  6. Release confidence– software quality can be measured beyond quantitative methods and take qualitative feedback such as the confidence in which the developers have in their work.  Doing so is easy with a board where developers can mark product features that they feel can be shipped soon with a high degree of confidence. 
  7. % crash free user – monitoring the crash rate of an app upon its release is important to ensure the app is functioning as it should. The crash rate should ideally be under 1% as anything larger than might mean trouble, and should be looked into, rectified and pushed out via an update.
  8. Customer satisfaction– one of the easiest and the best means through which you receive customer feedback on an app is its reviews on the App/Play Store. Qualitative feedback such as this should be gathered, sliced, diced, analysed and investigated as they can yield some very good feedback about the app and its functionalities. Pushing updates as per such feedback will help you being seen as an organisation that listens to its users and increase product uptake.

Conclusion

With a variety of metrics to measure software quality, it can be difficult to pick one that is the right one, which is why we recommend using a range of them to understand the full picture. Just remember, the metrics which you opt for in measuring the quality of software should reflect what is important for the project – for example, if a deadline is approaching, focus on monitoring the burndown chart or lead time to get a hold of whether this deadline is feasible. If providing the most reliable product is what matters most, crash rate and user reviews are a better fit for your needs.

mobile app design and development

What’s a User Persona and what should you avoid when creating them?

 

User Personas according to their creator Alan Cooper are “hypothetical archetypes of the actual users. Although they are imaginary, they are defined with significant rigor and precision.” Another fantastic definition I came across was from UXPlanet where persona was defined as “a simple tool to create your product with a specific target user in mind rather than a generic one. It’s a representation of the real target audience data, gathered in previous research such as user interview.” A more simple definition is offered by Interaction Designwho cites personas as “fictional characters, which you create based upon your research in order to represent the different user types that might use your service, product, site, or brand in a similar way.

How important are user personas in the product design?

User Personas are so important that I don’t recommend starting any design project without it. They serve a variety of uses in the success of any digital product and I have outlined 5 of them below.

  1. Provide a face to the end-users-empathy plays a large role in the design and putting a face and a name to the end-user helps in creating user-centric designs.
  2. Helps to stay clear of design bias- we are all humans and its very natural to fall back to designs that we are favorable towards and not of those who the product is being designed for. Personas serve as a constant reminder of who the end-users are and of the functionalities that should be included in the final design.
  3. An easier narrative for stakeholders-personas are simple and easy to understand which is why they are useful for explaining the end-users goals of the product to the client, stakeholders or other internal teams such as developers and QA.
  4. Helps with prioritizing the requirements-product design and development is a time-consuming affair in which most clients prefer to launch as soon as possible. Having user personas help with identifying the requirements that need to be provided in the early stages.
  5. Faster design iterations– when the team shares and agrees on the end-users, it creates a sense of unity and cohesiveness, increasing the velocity of the design process.

Here is how I created my first persona 

I was once approached by a client who was looking to create an app that can help people discover events near them. The idea sounded great, there was a real demand for such a product and plenty of design inspirations from globally successful apps. My next step, therefore, was to have a sit down with the client on the types of end-users they were looking at and how to prepare for an interview.

One of the targets the client would like to engage with were students. After the selection and recruitment process, the next step was to conduct a semi-structured interview in order to find details such as:

  • Who they are (profile); 
  • What they do, when and where (context); 
  • Why they do it (needs, goals, tasks) ; 
  • How they do it (experience); 
  • What they like or dislike (frustrations)

This is a snapshot of the user persona I have created after several interviews with students. 

User_persona_kacper_kowalski

Source –Kacper Kowalski on Behance

What do you think? Sounds pretty simple right? 

Not quite, as the creation of the user personas is a very data-driven process that must be approached distinctly. I have described 7 common mistakes that I have dealt with during my first approach.

1.  Botching the data collection

The respondent does not seem to be a good fit. Sourced from Sketchport

The user personas are created of the conversations/interviews with the end-users and of internal stuff that they interact with. This data collection needs to be conducted strategically to increase the chances of creating a user persona that is as close to the individuals that were interviewed. A couple of tips I recommend here is 

  • Create a set of questions you’d like to ask. Remember that the conversation should be semi-structured to allow for the conversation to go off-script if it’s needed. Such conversations in my experience have yielded the best insights for creating user personas.
  • Do a check-in with yourself to ensure you are asking the questions to get the answers you might be seeking. Remember not to manipulate or guide the respondents to hear answers that might match any existing notions or biases you might already possess.
  • Take notes and/or record the interview to ensure no information is lost
  • Do the interview yourself as hiring someone who has very little idea of why particular information will be useful is a waste of resources.
  • Stick to the time allocated. 15 minutes on average is enough time to ensure you receive the information you might be seeking. This, however, is not set in stone and can be lengthened depending on the quality of the information you are receiving. 

2. Creating too many personas

User Personas ux research personas ux design

How many are too many? Picture sourced from  Lorenzo Zecchin – Dribbble

A user persona’s core purpose is to narrow and give a good idea of the end-users for the team who are working on its design and development. This understanding of the end-users is what molds the app’s functionality, look and feel. 2-3 different personas types should be just enough.  

It makes sense to take the needs and pain points of an individual such as Maria who is looking to spend some extra time out with her friends since she does not like taking part in activities by herself.   

3. Ignoring the negative personas

Negative_personas

Know the wrong type to isolate the right type. Sourced from  Audience Ops

Negative personas as you might have guessed are those that must not be considered as the final target audience at all. Creating such a persona and segregating the needs of those who will not use our product provides a clearer focus on the needs of those we should cater to. This gives the team a sense of clarity and keeps the design and development neatly aligned with the user personas. 

4. Placing personal bias over research

on research

Don’t be like this guy. Just don’t. Sourced from  chainsawsuit

There is no space for personal bias in the creation of data-backed user personas as any wrong assumptions can give rise to a product that your end-users will not be attracted to.User personas as I keep on harping is a semi-fictional representation of the majority of the end-users of any digital product. I used the word semi-fictional there as the personas we create are based on the understanding of user data, behaviors and demographics gathered from real individuals. Such research allows us to discover and ensure that the real needs and pain points of our end-users are on top of mind during all the stages of the product design.

5. Not looking for updated data

Your user personas, like your users, should not stay the same. Sourced from Lucidchart

Human needs and pain points are what forms the cornerstone of user personas. What is important to remember, however, is that what the end-users need and get frustrated by today will not remain constant and can change over time. The user personas you create therefore need to be updated over time. 

It might be tempting to stick with the same user personas, but updated insights into your end-users are vital when releasing updated versions of your product.

6. Thinking user personas = demographics 

Psychographic segmentation digital marketing strategy customer segmentation Demographic segmentation

See the difference? Sourced from  Hurree

Demographic information is important, but it is not the only thing that should be inserted in your user personas. What makes a user persona powerful is the psychographic information that was discovered during the conversations with the end-users, sales teams and anyone who interacts with the end-users. Make sure to research into questions such as what the end-user is doing, their average day, challenges, hobbies and any other information which would be useful.

7. Creating personas and not using them

putting personas to work

Put them up where you can see them. Sourced from –  UXbooth

This is a cardinal sin in my opinion and there is nothing worse than creating a persona that gathers dust (the personas made on assumptions and not data-backed research comes close). Remember that creating user personas involve a sizable amount of work and can go a long way towards the success of your product. Keeping these user personas at the forefront of everything related to the product is therefore useful and helps keep the product user-focused. 

Having trouble remembering the personas? A handy trick I’ve found useful is to print them and stick them up on the walls and/or wherever I and the team will be working on. Just make sure these don’t get mixed with the negative personas!

Conclusion

I am as you might have guessed a big fan of user personas as I’ve seen how they shape the product creation. The right user persona can change the trajectory of a product from beginning to end and give rise to a product the actual users will love. I’ve also heard horror stories from other designers on how products earmarked as successes flopped due to bad data collection and interpretation. 

Creating user personas isn’t easy, but it is definitely a worthwhile investment, provided you do it right. I hope this piece of writing helps you do exactly that.

Header image credits- Wikipedia