I’ve been writing Flutter apps since 2019. And in the beginning I was very optimistic about it. Just imagine — I didn’t need to write two apps in two different languages to make one product! I tried React Native and Xamarin earlier, but they didn’t cover my needs. Flutter did.

What I liked the most in Flutter is that you can integrate native code in your projects. Any amount of native code. Some libraries don’t have Flutter versions, so it was a really helpful feature. Most of my projects had a function or two written in Swift and Kotlin. It…

Photo by Antonio Scalogna on Unsplash

I’ve been using Apple computers since their CPUs had PowerPC architecture. I experienced the transition to Intel, I saw the evolution of Xcode since its early versions, I used Rosetta when it used to run PowerPC binaries on Intel CPUs. That’s why when I saw Apple announcing it would be switching to a new ARM-based architecture, I couldn’t ignore it. It was kind of…life-changing.

Quite recently I got my first MacBook with M1, and in this article I’m going to share my experience with you.

Worries and Expectations


Apple Silicon (the current model is M1) is a mobile processor. If you have an…


Photo by J. Kelly Brito on Unsplash

2021 has already started, but many of us are still locked at home, having minimum contact with other human beings and maximum free time. For some people it’s a synonym of boredom, for others— an opportunity to learn something new. And as 2020 showed us the importance of the IT industry, which continues to grow more and more, learning a new programming language can be a good idea. But which one? Which programming language has the potential to boost your career, increase your salary, make your dreams come true or let you enter IT world?

JavaScript and TypeScript

JavaScript is one of the…


QR codes are an easy way to exchange small amounts of data between smartphones (data reader) and any media (data provider). They are easy to generate and to scan, you can customize them, add logos, change colors, and make them “yours”.

Photo by Albert Hu on Unsplash

Two smartphones with Flutter apps can easily generate and scan QR codes, but generating QR codes for export is a little bit trickier.

Scanning QR codes with Flutter

Let’s start with scanning. Any iOS or Android device with a camera can scan and decode QR codes. As an example, we’ll use the flutter_qr_bar_scanner.

It provides a widget showing the camera feed — QRBarScannerCamera. You…

Add some additional style to your app with blurs and shadows

Shadows on a wall
Shadows on a wall
Photo by Agata Create on Unsplash.

For most of my projects, I get the app designs from my clients. And if I need to say what the most used design elements have been in 2020, I’d say that they’ve been flat elements, blurs, and shadows. There’s no problem with flat elements, as the native iOS design is pretty flat. So let’s see how to add blurry backgrounds and shadows to your iOS apps.

Once I got a rather simple-looking task from a regular client of mine: he needed to make a screen for an iOS app with several switches. The switch was long and thin. It was different from both the UISwitch, which has size 51x31 points, and the Material switch, which is more flexible in size, but the thumb is bigger than the track.

Switches from client’s design

I found many solutions on GitHub, but they were either modifications of existing UISwitch, or variations of Material switch. Other options didn’t look like switches at all.

I’ll give some references, in case you’re looking for something different:

Photo by Markus Spiske on Unsplash

Back in 1936 the computer scientist Alan Turing invented a model of a computational device later known as The Turing Machine. This machine did simple operations and had a state. This state was actually a piece of data, and the machine was “running” algorithms to perform operations over that data.

“Algorithms + Data Structures = Programs”

— Niklaus Wirth, 1976

All that a computer program does is actually just data receiving, sending and processing. Data is that unit with which our code works. …

Photo by Warren Wong on Unsplash

During my career as an iOS developer I wrote around 50 apps. Some of them were small and stayed in the stores just for several months, others stayed alive and got regular updates for years. I’m not a designer myself, I get designs from my clients or a third-party designer. And almost all designs I saw included custom back button on most screens.

Using iOS storyboards to develop UIs, I tried to find an easy way for the user to return to a previous screen, some kind of backward segue. …

Syntactic sugar to make alerts, text fields, and more easier to work with

Photo by Samson Vowles on Unsplash

Showing even simple pop-up dialogs requires several lines of code in Swift. When you have data validation or proper error handling, you have tens or even hundreds of places where you can show a pop-up. Let’s write several UIViewController extensions that’ll do the work for us.

self.show(message: "Let's start!")

Showing Errors and Warnings

The first two extensions will show simple pop-ups with only one button. The difference will be only in the title. You can add some styling, but Apple doesn’t usually motivate developers to customise pop-up windows, so I’ll use the basic UIAlertController here:

As you can see, the title is predefined…

Photo by Anton Darius on Unsplash

When you write mobile apps in Swift, you usually have a lot of background work. I’ve been working as a mobile developer for almost 10 years and I can hardly remember a single project without Internet requests. Each Internet request requires time to be processed. Usually an unknown amount of time, possibly, endless.

If you do such work in the main or UI (which is the same) thread, your UI will get stuck. That’s why asynchronous tasks in Swift are designed the way they will never do so. The most common way is to avoid it is to use a…

Alex Nekrasov

Game and software developer with more than 15 years experience. Founder and CEO at Mariposa Studios, freelancer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store