Many software companies that are using Flash in their software products have to find a solution of the FlashPlayer end of life. One option is to replace their Flash based software solution with something written in modern web technologies like HTML5, JS, CSS. Another option is to keep supporting Flash even after the end of 2020 in a “custom” browser (Chromium in new clothes for example). These two are not the only solutions, but they are the most popular ones.

The preferred workaround for supporting FlashPlayer is to create an Electron (Chromium) based native app that uses PepperFlash (alternative of the FlashPlayer that’s working in Chrome) to support any legacy Flash content. …

Image for post

07 February 2020

With every new version of your mobile app you have something new to share with the user. The best solution is to hint it with a visual clue. But how to make that gently without annoying the user and keep him curious?

The best and most common approach is to add a notification badge. Yes, this is the tiny red dot at the top which we all know. This might not fit to your color scheme, then let’s discuss how to make that with code so you can customize it later. The follow snippet shows an elegant solution. The developer can override the default behavior. Protocol oriented principle is used here. …

Once we switched to iOS 13 we found slightly different behavior in our app. The following code was working perfectly fine on iOS 12.

Login form with password field that can reveal its content

We found out that behavior is a known issue. Here is a short description how to you can fix similar behavior.

UIKit — Known Issues

  • Prior to iOS 13, UITextField assumed that the frames of its leftView and rightView were correctly set when assigned and would never change. Starting in iOS 13, the implementation of leftViewRect(forBounds:) and rightViewRect(forBounds:) now ask the view for its systemLayoutSizeFitting(_:). To achieve the previous behavior when linking against and running on iOS 13, add explicit sizing constraints on the view, wrap it in a plain UIView, or subclass the view and implement systemLayoutSizeFitting(_:). (51787798)
  • Specifying UIWindowScene.DestructionRequestOptions in Swift is currently unavailable. (51036709)

Here is the fixed version of the class.

This is how it looks on iOS 13.

Login form with properly working password input filed.
Properly working password field.

Image for post
Which technology to pick? (read further)

Everyone, who tried to implement and bring to life his own digital idea has been facing the tough reality — which is the best technology to use when developing the first prototype?

Should I develop the software which will be good enough to prove my idea worth something and then I’ll hire a great team to help me polishing this solution. Probably, I’ll re-implement it using different technologies and this will be waste of time and money. I’m in the beginning and I can’t afford to spend x2 — x4 time for developing the same thing using another technology. …


Emil Atanasov

IT Consultant & Technical Architect, Freelance-Network Founder, Mobile Development Expert

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