Recently I upgraded my ID3TagEditor swift package to the latest Swift tools version (5.3). During the upgraded I discovered that now you can bundle reources with your Swift package. In this post I will show you how you can do this, and also a interesting trick in order to be able to build a project as a Swift Package and as a standard project from Xcode.

In the last weeks I started to work again on my ID3TagEditor library. Before starting to add new interesting features (do you wanna see the roadmap? check the kanban board or the milestones) I…


Recently I migrated my website to Webpack and TypeScript. I decided also to give a try to Workbox, a set of Google libraries to improve the creation of a Progressive Web App. Let’s see how easy it is to create a PWA with this tools.

I already talked extensively in some previous post about what a progressive web app is and how it can improve the user experience of your website. In the first development iteration I create the service worker that runs on this website without any kind of library or framework to support. This enabled me to learn…


Do you know that it is possible to use UKit components in SwiftUI? Let’s see how you can use UIViewRepresentable and UIViewControllerRepresentable to use your UIKit based component or to fill the gap for missing SwiftUI API.

SwiftUI has been around for more than a year now. With its reactive paradigm approach it is a big step forward when compared to the UIKit imperative approach. But as a consequence of the fact that UIKit has been with us for almost twelve years and there are millions of apps already publish on the app store, a lot of developers have tons…


Dark mode support has been around for quite some time. Let’s see how you can create a light theme and a dark theme for your website that will be selected automatically based on the user system preference.

Dark mode has been around for a while on all the major platforms: macOS, iOS, Android, Microsoft Windows and now also Linux. Well, aside from the discussion to decide if dark mode is better for your eyes of not, it’s clear that it gives you a big style improvement on your site. So it’s a perfect time to add a Dark theme to…


There are a lot of dependency injection framework in the open source swift world with really cool features like object graph, persistence etc. But what if all you need is a lightweight dependencies container? In this post I will show you how to create it by leveraging the Metatype Type, Generics, the Hashable protocol and the Equatable protocol.

The open source Swift world is full of useful framework. You can find almost everything you need (there are rare cases where you need to write something that still doesn’t exist out there). Anyway, a lot of the frameworks and libraries you…


SwiftUI has been introduced by Apple during the last WWDC. I started to use it for a personal project to understand its potential. Let’s see how I used SwiftUI to create a custom TabBar with modal and detail navigation.

NB.: Considering the success of this blog post, I decided to create a new custom TabBar SwiftUI library called TabBarUIAction. Go and check it out!!!

In the last week I started to develop a new personal project: a new iOS mobile app (that I will show you in the following months). As a consequence of the fact that this was a…


React native 0.60.4 has a new cool feature for Android: a new JavaScript engine called Hermes. Let’s see how you can turn it on in your React Native application to get all its benefits.

As you already may know, there has been some complains in the past related to the performance of React Native on the Android platform. One of the main reason was due to a big difference in the React Native architecture implementation between Android and iOS: the JavaScript engine used to execute your code. On iOS React Native uses the JavaScript Core engine exposed in the iOS…


PWA offer great native alike offline capabilities. But what about tracking? In this tutorial I will show you how simple it is to implement offline tracking with Google Analytics in your PWA.

As you may already understood from my previous post, I felt in love with PWA. For the ones “late to the party” of PWA, let’s see the definition of what they are:

Progressive Web Apps are user experiences that have the reach of the web, and are:

* Reliable — Load instantly and never show the downasaur, even in uncertain network conditions.

* Fast — Respond quickly to…


Implementing a pull to refresh component in vanilla js for your progressive web app (PWA) it’s really easy using cutting edge web technology (service worker, CSS new properties). Let’s do it now!

Some months ago I transformed my website into a Progressive Web App (yes, the one you’re reading now). By leveraging the power of service workers (and other some cool tricks that I will discuss in other posts 😜) my website page load time is below 50 milliseconds 😮.

But with “the great power of service workers comes also great responsibility” (you remember uncle Ben quote, right?), and one…


Javascript Interface can be helpful when you need to call native code from a webview on Android.

In a previous post I described how you can call native Swift code from the JavaScript code of web page loaded inside a WKWebView. Today I will show you how to achieve the same result for tan Android Apps. I will a part of the Android SDK called JavascriptInterface.

Implementation

I will use the same simple I used in the previous post for iOS. The html page contains a form with 2 input fields and a button. We want to be able to read…

Fabrizio Duroni

I'm a software developer 🤓. I ❤️ mobile application development, computer graphics and web development. I ❤️ computers. https://www.fabrizioduroni.it/

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