If you need to run MySQL on your Mac (e.g. for development) one the good ways to do it with Docker. It is pretty straightforward to install and use. You can have multiple MySQL instances running side by side. Most importantly they can run different MySQL versions, including version 8. Which is still not supported by other popular option, MAMP. Here is a short guide how to get it up and running in no time.

Install Docker

Installing Docker on macOS is pretty straightforward these day. They provide a desktop application with a convenient UI and native means to install it. …


Sometimes you might need to get the duration of an audio file, located somewhere on the network. There are a lot of libraries for any programming language as well as command-line tools that can do that for a locally available MP3 file. However, downloading the full MP3 file might not be desirable. The problem with MP3 files is that the nature of the file format doesn’t allow for quick and easy extraction of the duration data.

To get the 100% accurate duration, you do need to read (or rather skim) through the whole file. However, it is possible to get…


The dark side is on the march this autumn. Both iOS 13 and Android 10 are introducing the setting to opt into the dark version of the interface on the mobile phone. It saves battery life, reduces digital eye strain and makes the Dark Lord happy. System applications obviously support it out of the box, but third-party app developers don’t get the dark support for free. Certain steps need to be taken and code written in order to add the support for this shiny (or actually the opposite of “shiny”) new feature.

iOS

Dark Mode colors will be imposed by iOS…


React Native has recently gained a lot of traction. Those, looking to commission an application development, are attracted by the promise of reduced development costs and a single codebase for iOS and Android. My team has accumulated certain experience with React Native for the last couple of years. I’d like to share some general tips on what to do and what not to do if you develop with React Native in 2018.

  1. Most likely you will end up using Redux. Although it is not a dogma and some alternatives like MobX exist, Redux is a de-facto standard. …


If you have recently considered developing a mobile application, you have likely heard of React Native. Developers either love it or hate it. But here is a short guide for those are looking to make a business decision whether to use React Native or not bother.

Actually, I am going to save your time and jump right to my conclusion: the only good reason to use React Native is to save money in a short term.

Now, here is the long story…

A year ago I talked about the pros and cons of cross-platform VS fully native mobile development in…


It has been at least 2 years since my friend Sergey and I have started our “campaign” in Command & Colors: Ancients. C&C is a popular series of board wargames, first published by GMT Games in 2006. We love it mostly because playing a single scenario takes no more than a couple of hours on average. So some years ago we have started playing the core game scenarios one by one and tracking the results with the intent to play them all. Whoever would have won more scenarios at the end, wins the campaign. Simple.

This year we have played…


While working on the user interface in their applications, mobile developers tend to make the same mistakes over and over again. If the development process is properly organized, these are normally fixed during the quality assurance phase. However, the mobile developers should normally avoid making them before the code is passed to QA engineers or even merged into the code base. To help our developers in Factorial Complexity I have compiled the list of the most common mistakes.

1. Image view is reused, but is not reset

Both iOS, Android and cross-platform SDKs have a mechanism of reusing the cells of the long lists for the purpose of performance…

Vitaliy Ivanov

Mobile Developer / Co-owner of Factorial Complexity

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