Popover for Flutter — https://github.com/minikin/popover

A popover is a transient view that appears above other content onscreen when you tap a control or in an area. Typically, a popover includes an arrow pointing to the location from which it emerged. Popovers can be nonmodal or modal. A nonmodal popover is dismissed by tapping another part of the screen or a button on the popover. A modal popover is dismissed by tapping a Cancel or other button on the popover.

Source: Human Interface Guidelines.

From time to time in Flutter apps, we need to use popovers as dialog to interact with users. Flutter doesn’t provide a…

SoundCloud Audio Player for Flutter

This is a quick implementation of a SoundCloud audio player for a Flutter. Enjoy!

SoundCloud Audio Player Video Demo


- SoundCloud Audio Player
- Value types powered by built_value and built_collection
- State management by the bloc pub
- Stream audio from a remote server
- Load JSON data from local assets


  • Flutter: the latest version on the `flutter beta channel`
  • Dart: 2.10.0+

Source Code:

Apple Music / Tidal Style Audio Player for Flutter powered by Dart, Streams, Value Types and BLoC.
Apple Music / Tidal Style Audio Player for Flutter powered by Dart, Streams, Value Types and BLoC.
Cross-platform Apple Music / Tidal Style Audio Player for Flutter powered by Dart, Streams, Value Types, and BLoC’s.

A couple of months ago, I developed a cross-platform audio player for one of my Flutter projects. During these weird times and home isolation, I had some free time. So I decided to open-source this project. Maybe it can be helpful for someone. Don’t forget to clap and share if you found it valuable. Enjoy!

The source code is distributed under the MIT license and available on GitHub:

🎉 Features

  • Apple Music / Tidal Style Audio Player
  • Supported platforms: iOS, iPadOS, macOS, Android
  • Background audio playback for iOS/Android
  • Audio files fetched and streamed from a remote server
  • Responsive to screen size changes

🌍 Experimental responsive web app powered by Flutter and Dart: http://minikin.me/flutter-web-demo

One week ago Google presented Flutter for web. This week I had a few hours to build a simple but not a nonsense web application, deploy to Github pages and even use Codemagic CI/CD.

The code is on GitHub:

The main features set of the web app:

  • Photos are fetched from a server
  • Infinity scrolling
  • Responsive to screen size changes including mobile device orientation changes
  • Powered by build_value and built_collection
  • Background JSON parsing

One point which I’d like to mention that integration with Codemagic was flawless. So I’m going to give it a try for the next commercial Flutter app.

Interactive charts are available here: http://minikin.me/extensions

🤼‍ Motivation

A few weeks ago I had a discussion with an iOS programmer whom has many strong beliefs. One of them sounds like: “Use of Swift extensions is very bad practice due to compilation times dramatically increasing and decreases readability and code clarity”. I’m not going to judge about readability and clarity. Those are personal style preferences, but I was quite confused with the argument about compilation time. I recall there were discussions about the topic three or more years ago. Three years for Swift, sounds to me, like 50 years for mankind. I was quite sure that the situation is…

When you have frameworks which you need to share between iOS developers inside a company without going public you can do it with a private CocoaPods repository. In this blog post, I’m going to show you how to do so step by step.

You should have a CocoaPods installed otherwise install it:

sudo gem install cocoapods
  1. Create private repository on your company’s Github, Bitbucket or Gitlab:

I’ve just finished watching interesting presentation “To be! Or not? Optionals in practice” by Rob Napier

And I’d like to share one of Rob’s good ideas how to handle custom fonts with UIFont extension + NSFont extension for macOS

Here is a code snippet for UIFont:

and NSFont version:


Sketch Cache Cleaner is an app that deletes hidden Sketch history files that can take a lot of space on your hard drive and that you would probably never use.

Idea & design: Yuriy Oparenko

Development: Sasha Prokhorenko

Voice Controlled Drum Machine

A few months ago I saw somewhere on Twitter that somebody developed a voice controller record player. That’s inspired me to try to make a voice-controlled midi device. I was very excited so it took only about two relaxed days to develop. Back in that days I only had one midi device LXR Digital Drum Synth so that’s why this project based on this machine.

To continue you have to choices:

The first one is just to watch short video demonstration to check how it works.

Voice Controlled Drum Machine: Siri + DRUM MACHINE

The other one is going deeper. Visit GitHub page of the project and try to make it by yourself. That’s not hard, you can do it!

Photo by: Roman Bozhko, Los Angeles, United States. Source: https://unsplash.com

Only a few days left before WWDC 2017. I hope that we’ll see a lot of great and useful stuff, besides Swift 4, from Apple which can help us to make the world a better place.

One of the exciting features of upcoming Swift 4 is Multi-Line String Literals. I often need a quick way to create a prototype app with JSON data. Usually, I need to save data to local JSON file and then read from file or use network layer. That takes time.

In Swift 4 we can use Multi-Line String Literals.
I used http://beta.json-generator.com to generate fake JSON data for this example. The result JSON looks like:

Sasha Prokhorenko

Software Engineer with a decade of experience in software engineering — https://minikin.me

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