iOS Software Engineer | WWDC20 Swift Student Challenge Winner | Content Producer - Contact: canbalkya@gmail.com | Twitter: @canbalkya

Exploring how to store data in SwiftUI

Swift logo next to folder

I previously wrote an article explaining what is and how it can be used with UIKit. I recommend reading it before moving on to today’s article:

In this article, we will learn what is and how to use it. We will learn how to use in a simple SwiftUI project. Let’s start with what is.

Note: You can download this article’s example project and sources on GitHub.

What’s FileManager?

enables us to create and edit data for JSON or plist file types, and to use this data in our apps.

is very similar to Core Data…


SwiftUI doesn’t have a TextField exclusively for numbers, so let’s build one with UIViewRepresentable

Photo by Sumudu Mohottige on Unsplash

In SwiftUI, we normally don’t have the choice to properly use numbers in a object. For example, if you try to use the variable on a element, you’ll see an error in your code, like below.


Multiple variadic parameters, extended implicit member syntax, result builders, and more

Photo by the author.

Swift 5.4 brings us a lot which is why I like it. In this article, we learn what is new in Swift 5.4.

Note: You can download this article’s example project and sources on GitHub. To open and edit these files, you have to use Xcode 12.5 beta. You can download Xcode 12.5 beta here. Instead of downloading Xcode 12.5 beta, you can download Swift 5.4 directly here.

The Most Important Improvement😄

As anyone who has created an Xcode project or playground file before will know, when you create a new playground or a new Xcode project, the following value will be written on…


Let’s build a mobile and desktop app using a single codebase

Photo by Vista Wei on Unsplash

Since their launch, universal apps (multiplatform apps) have been worth considering for both indie developers and large companies. As an indie developer who wants to develop apps especially in the Mac app market, universal applications have been really great for me.

In this article, we’ll learn what a universal app is and develop a simple universal app so we can better understand how universal apps work.

What’s a Multiplatform App?

The new multiplatform app concept launched at WWDC20. Before that, we were able to develop somewhat similar applications, but with WWDC20, SwiftUI’s gotten pretty good — so you can actually develop an app with…


Onboarding screens help new users understand your app and ensure a smooth user experience

Photo by Bagus Hernawan on Unsplash

Onboarding screens are important to help new users fully understand the application and have a smooth user experience. If you’re creating an indie app, you should think about onboarding screens.

Although I would like to discuss the design of onboarding screens, I’ll leave that for another article. Here, I’m going to explain how onboarding screens are coded.


First part can be true, even it's true.

Second, I have to use Combine for using AnyCancellable object.


Your Github Gist code blocks can disappear in an instant!

Image for post

A few days ago I browsed through my old articles and noticed that my articles’ code blocks were

missing! This was pretty bad for me because most of my programming articles became unreadable. That’s why my views have dropped a lot…

In this article I explain how I solved this problem and why we should use other tools instead of Gist.

The Problem

While looking at my old articles, I noticed that my articles’ code blocks are missing! …


Basit bir extension ile hex değerini UIColor objesine dönüştürmek mümkündür.

Bir objesi tanımlamanın birçok yolu vardır ama bu yolların çoğunda objesinin ne kadar opaklıkta olacağı ve ne kadar içerisinde yeşil renk olacağını ayrı ayrı tanımlamanız gerekebiliyor. Çok fazla renk barındıran bir uygulama üstünde çalışıyorsanız veya uygulamanızın internet üzerinden bir hex renk bilgisini çekip işlemesi gerekiyorsa bu bahsettiğim yollar sizin için pek iyi olmayabilir. Bu yüzden değerini kullanarak objesi tanımlamak çok daha kolaydır.

Normalde formatı ile bir objesi tanımlayamıyoruz. Bundan dolayı bir extension oluşturmamız gerekiyor. Bu extension, formatında bir değeri girilip girilmediğini kontrol edip değerinde yazılan karakterlere göre bir objesi döndürecektir.


Explore Firebase with SwiftUI 2.0

Photo by the author.

SwiftUI 2.0 brought us a lot of new features. My favorite is the new application lifecycle because it is simpler than the old one, but configuring it with Firebase can be tricky.

In this article, we will learn how to configure Firebase with SwiftUI’s new lifecycle.

First, let’s look at the difference between the new and old app lifecycle!

Note: You can download this article’s example project and sources on GitHub.

UIKit App Delegate Lifecycle vs. SwiftUI Lifecycle

With UIKit’s lifecycle, you need to write Firebase’s function in the method. …


VoiceOver ile görme güçlüğüne sahip kullanıcılarınızın da uygulamanızı en iyi şekilde kullanabilmesini sağlayın.

Image for post

VoiceOver, bir cihaz içerisinde etkileşime geçilebilecek arayüz elemanlarını sesli olarak kullanıcıya söyleyen bir ekran okuyucusudur. Bir uygulamayı erişilebilir yapan ana teknolojilerden birisinin -hatta birincisinin- VoiceOver olduğu söyleyebiliriz.

Bu makalede bir uygulama geliştirirken VoiceOver’ı nasıl kullanabileceğimizden ve test edebileceğimizden bahsedeceğim. İlk önce VoiceOver teknolojisinin tam olarak nasıl çalıştığına göz atalım.

Genel Bakış

Cihazınızda VoiceOver’ı aktive ettiğiniz zaman bazı veya bütün arayüz elemanlarında sırayla kareler oluşur ve aynı zamanda cihazınız bu arayüz elemanlarını size sözlü olarak anlatır.

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