Collection View iOS 6'dan beri hayatımızda, table view’un aksine çok daha esnek yapılar sunmamıza olanak sağlayan collection view günümüzdeki bir çok uygulamanın çeşitli yerlerinde kullanılıyor. Ancak collection view’un da kendine göre sorunları ve problemleri var. Örneğin Bir collection view’un sadece tek akış yönü vardır. Bir sayfada hem dikey hem de yatay kayan alanları iç içe kullanmak istersek genellikle yapılan dikey kayan bir cell’in içine bir collection view daha ekleyip bunu yatay kaydırmak olur. Peki bu ne kadar kolay 😔

Böyle bir sayfayı tek collection view’da nasıl oluşturursunuz?

WWDC 2019'da tanıtılan ve biraz da SwiftUI’ın gölgesinde kalmış olan bir yenilik olan…


Merhaba bu yazımda null safety ve bunun Dart dilinde nasıl ele alındığını ve kodumuzda nasıl kullanabileceğimizi aktaracağım. Ancak önce konuya girmeden önce anlamamız gereken bazı noktalar var.

Nedir bu null?

Null konusunu anlamak için biraz daha derine yolucuk edelim. Şimdiki durağımız bellek yani bildiğimiz RAM. Bellek bloklar halinde çalışır, ilgili bloktan verilerimizi yazarız okuruz. Bu veriler bizim bir sınıfımızın referansı olabilir ya da bir değişkenimizin içindeki veri olabilir. Peki bizim elimizde bir sınıf var ancak biz buna henüz bir eşitleme yapmadık, bu durumda elimizde hiçbir yeri gösteren bir değişken var. Evet bu değişken bellekte bir yer kaplıyor, bu kapladığı alanda aslında sakladığımız verinin…


Selamlar, daha önce hiç iki label’ı yan yana koyup auto layout ile düzgün hizalanmasını denediniz mi, eğer denediyseniz size X ekseninde hizalayamamadığını bildirerek bir hata verecektir. Bakalım nasılmış?


Merhaba, bu yazım Swift’te kontrol yapıları nasıl kullanılır, farklı kontrol yapıları hakkında olacak. Kontrol yapıları kodlamamız içerisinde sıklıkla kullanmamız gereken kod parçacıkları oluyor. Gelin hep birlikte bakalım nasıl yapılıyor.

If Blokları

Kodlamaya ufak bir giriş yapmış olanların bile bileceği bu blok tahmin edersiniz ki yazdığımız kodun Boolean sonucuna göre işlem yapıyor ya da yapmıyor. Hemen bakalım:

if 10 == 5 // 10 değeri 5 değerine eşit mi? Sonuç: False işlem yapılmaz
{ }
if 10 > 5 // 10 değeri 5 değerinden büyük mü? Sonuç: True işlem yapılır.
{ }

Basit bir şekilde if kullanımı yukarıda ki gibi. Temel mantık operatörlerini kullanarak…


Başlık biraz karışık oldu farkındayım ancak detaylı anlatınca daha iyi anlaşılacaktır. Bu yazıda kod bloklarımıza etiket nasıl verebileceğimize bakacağız.

İç içe for döngüsü yazıp belirli senaryolarda en dıştaki for döngüsünü kırıp ya da atlamayı nasıl yapabiliriz? Elbette uzun uzadıya if blokları yazmak pek mantıklı olmayacaktır, bunun basit çözümü olmalı değil mi? Kod bloklarımıza etkilet vererek değişken adı verir gibi onları yönetebiliriz.

Nasıl Yapılır?

forLabel: for element in array
{
// İşlemler
}

ifLabel: if statement1 == statement2
{
// İşlemler
}

swichLabel: switch(myEnum)
{
// İşlemler
}

Yukardaki örnekler basit kullanımları, şimdi iç içe (nested) for döngümüze gelelim.

outerFor: for each in…


Uygulamamızda ekranlar arası geçiş işlemi için bir segue oluşturmak ya da kod içerisinde present etmemiz gerekiyor. Ancak SwiftUI ile işler tamamen değişti. Bu yazıda üç farklı yöntem ile bir ekrandan nasıl diğer ekrana ulaşabileceğinizi anlatacağım, gelin başlayalım.

NavigationLink Kullanarak Geçiş

UIKit’te NavigationController’ımıza bir Buton ekleyerek bu butonla geçiş işlemi gibi diyebiliriz. Nasıl yapacağımıza hemen bakalım:


Swift ile View Controller’ımız içinde herhangi bir döngü yardımıyla istediğimiz kadar view oluşturup bu viewları başka bir view’a subView olarak ekleyebiliyoruz. Ancak SwiftUI ile işler biraz değişti. Her kodu view oluşturmada kullanamıyoruz Xcode bize şöyle kızıyor “Closure containing control flow statement cannot be used with function builder ‘ViewBuilder’”.

Bu yazıda kullanacağım senaryo bir hesap makinesi uygulaması olacak. Hesap Makinesinin butonlarını döngü yardımıyla çok az kod kullanarak gerçekleştireceğiz.


Sign in with Apple özelliği WWDC 2019’da tanıtıldığında diğer bir çok üçüncü parti giriş servislerinden çok daha iyi özellikleriyle geldi. Vermek istediğiniz bilgileri kontrol edebilmek araya bir email yönlendirmesi koymak gibi. Gizlilik konusunda atılan bu güzel adımda Apple’a güvenebildiğimiz kadar gizliliğimizi korumuş oluyoruz. Artık kullanmadığımız, hesabımızı kapattığımız hizmetlerden spam mailler almayacağız. Birde hangi uygulamalar bilgilerimizi satıyor görebileceğiz

Yıl sonuna kadar bu özellik uygulamada üçüncü parti giriş hizmeti kullananlar için zorunlu olacak, Apple bazen gerekli konularda iyi yaptırımlar uyguluyor. Hadi şimdi bu özelliği nasıl kolayca uygulamamıza ekleyebileceğimize bakalım.

Başlamadan eklemek istediğim şeyler var:

  • Bu özellik iOS 13 ve daha üst sürüm…


The feature Sign in with Apple was first introduced in WWDC 2019, with far better features than other third-party log in services. For instance, having the ability to control the information you would like to give away or implement an e-mail referral system, etc.

We are now able to control our privacy as much as we trust Apple. We won’t be receiving spam mails from the services that we no longer have any accounts for. And also, we will have access to the information of applications that sell our information :)

Until the end of the year, this feature will…


Dün yani 3 Haziranda Apple WWDC’de geliştiricileri oldukça heyecanlandıran yeniliklerini tanıttı. Elbette biz geliştiriciler için SwiftUI inanılmazdı ve birçok geliştirici hemen denemelere başladı. Eğer şu ana kadar benim gibi StoryBoard üzerinden arayüzünüzü oluşturup auto layout ile düzgün oturtmaya çalışan biriyseniz size biraz farklı gelebilir. Daha önceden Flutter, React vs ile ilgilenmiş olanların aşina olacağı bu kavram kod bloklarımız ile arayüzümüzü oluşturmamızı sağlıyor ve yanında canlı ön izleme ile.

Şu ana kadar uygulama geliştirmek için ihtiyacımız olan kütüphane UIkit oluyordu artık SwiftUI ile de geliştirebileceğiz. Bu sayede Apple iOS, iPadOS ve MacOS için tek uygulama ile tümünde çalıştırmanın önünü açmış oldu.

Yusuf Özgül

iOS developer @Trendyol

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