Widget testing in Flutter with Codemagic

Widget testing in Flutter with Codemagic

Testing is a very important phase in application development. This ensures that the application is of high quality. The purpose of the test is to prove that the widget's user interface looks and interacts as planned. The tested widget has the ability to receive user actions and events, and respond to them, build a tree of child widgets. Therefore, widget tests are more complex than unit tests.


How does Indoor Positioning work?

Positioning terms and topic history

To help you understand how in-door positioning works, we would love to give you a quick tour to the history of a topic as well as define some basic terms and red flags. Before addressing the issue of interior positioning, it is important to understand how outdoor positioning works. Basically, there are two ways to figure out the position: to compute a precise position at a given time (it’s called Absolute Positioning) and another approach to get one’s position consists in computing speed and direction from the last known point of departure(it is called relative positioning a.k.a. Dead Reckoning).


How to use Isolates in Flutter

Isolates in Flutter

Flutter is single-threaded but it is capable of doing multi-threading stuff using Isolates (many processes).
When Dart starts, there will be one main Isolate(Thread). This is the main executing thread of the application, also referred to as the UI Thread.
In simple Flutter apps you will only ever use one Isolate, and your app will run smoothly.
Isolates are:


How it’s made: Image to Speech application.

In this article we describe how the application “Image to Speech” was made. Some code hints and documentation links . Application reads aloud and saves to audio track any text on image you give it and based on Google’s Cloud ML technology. Application built with Flutter framework using Dart language and available for free on Google PlayMarket and Apple AppStore.

Integration of android .aar library in Flutter project

Imagine that you have already completed a flutter project, and here the client tells you that he has a ready Android project that he wants to add to the flutter project. Here you have two ways. Completely rewrite the Android application to the flutter or import it into the flutter project, which we will do.
For example, I will use the application Chat-bot.
So let's open Android Studio and create a new one Flutter project.

Flutter animation

(future language)

I understand that the flutter language is still too young compared to Xamarin or React Native and can cause mistrust in both developers and customers. In this article I will try to convince otherwise you on the example of a simple animation.


Problem Solving as a Technique

Found absolutely gorgeous article dedicated to problem solving techniques: read this original article or find some teether here below.

Most interested for us as for software developers is part where developing algorithms steps and stages are formalised. So, from this prospective,

steps involved in algorithm development are:


Estimation/Planning Fallacy

Our very dear customer has a nice article published, dedicated to  Planning Fallacy. As software developers we constantly struggling it here so this article does really ring a bell for us. Please find short version here, for the full version go to original post, for definition of a problem please read the wiki article.


Weekly Puzzle#3: Problem solving

Write a program, solving problem below in any new for you language:

There are 1000 lockers in a high school with 1000 students. The
problem begins with the first student opening all 1000 lockers; next
the second student closes lockers 2,4,6,8,10 and so on to locker 1000;
the third student changes the state (opens lockers closed, closes
lockers open) on lockers 3,6,9,12,15 and so on; the fourth student


Weekly Puzzle#2: Guess, what this code does?

Can you guess what this code in Swift does?

func secretFunction(of num: Int) -> Int {
if num == 1 {
return 1
} else {
return num * secretFunction(of:num - 1)