Yeni Nesil Uygulama Geliştirme: IOS Development
IOS geliştirici ne demek?
· IOS nedir ? : Apple cihazları için kullanılan mobil işletim sistemidir.IOS,iPhone Operating System demektir.
· IOS Geliştirici: Apple cihazlar için kullanılan işletim sistemleri üzerinden IOS işletim sistemi için uygun olan uygulamaları geliştiren kişidir.
IOS geliştirici ne iş yapar? Görevleri ve sorumlulukları nelerdir?
IOS’ta uygulama geliştirme yaparken sadece kendisi ile ilgili değil IOS’un geliştirici topluluğu ile ilgili de sorumlulukları vardır. IOS geliştiricisinden, forumlar ve interaktif ortamlar ile her bir sorumluluk için destek alması, yeni teknolojileri ve gelişmeleri takip etmesi beklenir. Başlıca görevleri şu şekildedir:
- Geliştirdiği uygulamanın görsel tasarımlarını ve kullanıcı süreç akışlarının tasarımını yapmak.
- Belirlediği akış ve tasarımlara göre uygulamaların yazılımlarını yapmak,
- Uygulamanın ihtiyacına bağlı olarak farklı alt yapılar ve diğer uygulamalar ile entegrasyonu için geliştirme yapmak,
- Uygulamalar için belirlenmiş yasal kontrol yapılarını geliştirmek ve sistem takip yapısını kurgulamak,
- Güvenlik ihtiyaçlarını geliştirmek,
- Uygulamanın geliştirmesinin her adımında ve sonunda fonksiyonel testlerini yapmak,
- Kullanıcı iş akışının doğru işlediğinden emin olmak,
- Yasal güvenlik ihtiyaçlarının doğru çalıştığından emin olmak,
- Uygulama versiyon takibini ve IOS versiyon geçişlerindeki değişimlerin yönetimini yapmak,
- App Store ’da uygulama yükleme, güncelleme, kaldırma prosedürlerini yerine getirmek.
App Store nedir?
Geliştiriciler en parlak fikirlerini dünyayı değiştiren uygulamalara dönüştürürken Apple onların en büyük destekçisi olmakta çok kararlı bir görüntü çiziyor. Bu yüzden App Store’a çok önem veriyor. Ürünlerinizi geliştirirken, test ederken, pazarlarken, dağıtırken ve işinizi büyütürken baştan sona size her türlü desteği sağlıyor.
- Bir güven ve başarı hikayesi.
App Store’daki uygulamaların sayısı 12 yıl içinde 500’den 1.8 milyona ulaştı. Ve gizlilik, güvenlik, içerik bakımından yüksek standartlarımıza uyum sağlamaları için tümü incelemeden geçiriliyor.
- 5 platform zengin deneyim.
Ücretsiz sunulan geliştirici uygulamaları sayesinde IOS, watchOS, macOS, tvOS ve iPadOS için eşsiz uygulamalar geliştirebiliyorsunuz. Bunun dışında da her platformun kendine özgü özelliklerine de erişebiliyorsunuz. Örneğin iPadOS için Apple Pencil özelliklerine veya AR deneyimlerine olanak veren kameralar, sensörler ve işlem gücü gibi özelliklere.
“Son dört yılda piyasaya sürülen iPhone aygıtlarının %90’ı iOS 14 veya daha yeni bir sürümü ile çalışıyor. Böylece daha çok uygulama kullanıcısı en son teknolojilerden yararlanıyor. “
- 1.5 milyardan fazla aygıta ulaşma imkanı.
App Store, geliştirdiğiniz uygulamaları 40’dan fazla dilde ve 175 mağazada dağıtmanıza imkan sağlıyor. App Store’daki güvenli ve sorunsuz satın alma deneyimi sayesinde güvenle içerik alışverişi gerçekleştiren bir kullanıcı tabanına otomatik olarak erişebiliyorsunuz.
- Geliştiriciler için mükemmel bir başlangıç.
Özel yazılım geliştirme kitleriyle (SDK) ve geliştirici hizmetleri 250.000’den fazla API içeriyor. Böylece yazılım veya donanımlarla hemen hemen her şeyi yapabilirsiniz.
- Artırılmış gerçeklik için dünyanın en büyük platformundan yararlanın.
Apple, AR teknolojilerini destekleyen iPhone ve iPad modelleriyle dünyanın en büyük artırılmış gerçeklik platformundan yararlanmanızı sağlıyor. Güçlü ve hassas kameralar, duyarlı sensörler, 3D grafikler, sahnelerin capcanlı görünmesini sağlayan gerçek zamanlı gölgelendirme gibi teknolojiler ARKit ile birlikte geliştiricilere sunuluyor.
- Yapay öğrenme ile daha akıllı deneyimler tasarlayın.
Geliştiriciler, Apple aygıtları için optimize olmuş ücretsiz araçlarla ileri düzeyde yapay öğrenme uygulamaları geliştirebiliyorlar. Bu uygulamaları Core ML ve Create ML araçlarını kullanarak veri setlerini kolayca eğitebiliyorlar.
Swift nedir?
Swift, iOS, iPadOS, macOS, tvOS ve watchOS için güçlü ve sezgisel bir programlama dilidir. Swift kodu yazmak etkileşimli ve eğlencelidir, sözdizimi özlü ancak etkileyicidir ve Swift, geliştiricilerin sevdiği modern özellikleri içerir. Swift kodu tasarımı gereği güvenlidir ve hızlı çalışan yazılımlar üretir.
Adlandırılmış parametreler, Swift’deki API’lerin okunmasını ve bakımını daha da kolaylaştıran temiz bir sözdiziminde ifade edilir. Daha da iyisi, noktalı virgül yazmanıza bile gerek yok. Çıkarımsanılan türler, kodu daha temiz ve daha az hataya açık hale getirirken, modüller başlıkları ortadan kaldırır ve ad alanları sağlar.
Uluslararası dilleri ve emojiyi en iyi şekilde desteklemek için, Dizeler Unicode’a uygundur ve çok çeşitli kullanım durumları için performansı optimize etmek için UTF-8 tabanlı bir kodlama kullanır.
Eşzamanız davranışı tanımlayan basit, yerleşik anahtar kelimelerle eşzamanlı kod bile yazabilirsiniz, bu da kodunuzu daha okunabilir ve daha az hataya açık hale getirir.
Şimdi Swift’in bazı özelliklerinden bahsedelim:
· Güçlü ve kullanımı basit jenerikler
· Genel kod yazmayı daha da kolaylaştıran protokol uzantıları
· Birinci sınıf işlevler ve hafif bir kapatma sözdizimi
· Bir aralık veya koleksiyon üzerinde hızlı ve özlü yineleme
· Tuples’lar ve çoklu dönüş değerleri (Tuples: Birden çok değeri bir araya getirip, bir adet birleşik değer oluşturma işine yarar.)
· Yöntemleri, uzantıları ve protokolleri destekleyen yapılar
· Numaralandırmaların yükleri olabilir ve kalıp eşleşmesini destekleyebilir
· İşlevsel programlama kalıpları, örneğin harita ve filtre
· Try / catch / throw kullanarak yerleşik hata işleme
Swift Playgrounds
Swift Playgrounds, Swift dilini öğrenmeyi ve deneyimlemeyi eğlenceli bir hale getiriyor. Kod yazma bilgisi gerektirmediğinden, her kesime hitap ediyor.
- Gerçekten kolay ve eğlenceli.
Yeni çıkan yazılımlarla birlikte artık iPad’lerde de kullanılmaya başlanıldı Swift Playgrounds. ”Get Started with Code” bölümüyle gerçek kodları kullanarak 3 boyutlu bir karakteri yönlendirme imkanı sağlıyor ve gerçekten eğlenceli ve kolay bir şekilde sıkmadan kod yazma bilgisini aşılıyor.
Yerleşik Dersler
• Apple tarafından yaratılan dersler, bulmacaları çözmek için kodlama kullanarak programlamanın temel kavramları konusunda kılavuzluk eder.
• Yazdığın kodu, izleme dörtgenini kullanarak döndürebileceğin ve küçültüp büyütmek için kıstırıp açabileceğin harika bir etkileşimli 3B dünyada çalışırken görebilirsiniz.
• Bulmacalara geçmeden önce canlandırmalar her yeni kodlama kavramını genel hatlarıyla tanıtır.
• Sözlük ve yerleşik yardım, kullanılabilecek komutlar, framework’ler ve terminoloji hakkında ayrıntılı bilgi verir. (Framework: Uygulama ya da yazılım geliştirmek için geliştirilmiş bir yazılımdır.)
Keşfet ve Yarat
• Etkileşimli kodlama, çalışmanın yanı sıra yazdığın kodun sonucunu anında gösterir.
• Çalıştırılan her satırı vurgulamak için kodda adım adım ilerletir.
• Kitaplar; grafikleri ve sesleri kullanan kendi oyun alanlarını yaratman için avantaj sağlar.
• Uygulama Galerisi, sekmeli dolaşma ve veri indirme gibi uygulama yapı taşlarında ilerlemene rehberlik eder.
Uygulama Geliştir
• SwiftUI kullanarak gerçek uygulamalar yaratabilirsiniz.
• Yazdığın sırada canlı olarak yansıtılan kod değişikliklerini görebilirsiniz.
• Satır içi kod önerileriyle hızlı ve doğru bir şekilde yazabilirsiniz.
• Swift paketleri ekosistemi ile uygulamanı genişletebilirsiniz.
• Proje genelinde arama ile kodunda dolaşabilirsiniz.
Akıllı Kodlama Yardımı
• Bir kod öbeğini döngünün veya koşullu ifadenin içine almak için parantezi tıklayıp sürükleyebilirsiniz.
Yaygın kullanılan kod parçacıklarını doğrudan oyun alanına sürükleyip bırakabilirsiniz.
• Yardımcı satır içi önerilerle genel kod hatalarını düzeltir.
• Otomatik kod biçimleme ile düzenli olmayı sağlar.
Gerçek Swift ve SwiftUI Kodu
• App Store’daki uygulamaları yaratmak için profesyoneller tarafından kullanılan güçlü Swift programlama dilinin aynısını öğrenebilirsiniz.
Kullanıcı arayüzü yaratmanın modern bir yolu olan SwiftUI’ı kullanarak dinamik, şık uygulamalar geliştirebilirsiniz.
2B oyunlar için SpriteKit gibi güçlü frameworklere erişim sağlar.
• Gerçek dünyadaki aygıtlarla iletişim kuran programlar yazmak için Bluetooth API’lerini kullanın.
Paylaş veya Yayımla
Projelerini Mesajlar, Mail, AirDrop veya diğer Paylaşma Sayfası genişletmelerini kullanarak arkadaşlarına ve ailene gönderebilirsiniz.
• Uygulama projelerini Mac’teki Xcode’a getir ve sonra geri götürün.
• Tamamladığın uygulamaları App Store Connect ile App Store’a gönderin.
Xcode nedir?
Xcode, geliştiricilerin Mac, iPhone, iPad, Apple Tv ve Apple Watch için eşsiz uygulamalar yapmak için ihtiyaç duyduğu her şeyi içerir. Xcode, geliştiricilere kullanıcı arabirimi tasarımı, kodlama, test etme ve hata ayıklama için birleşik bir iş akışı sağlar. Swift programlama diliyle birleştirilmiş Xcode IDE, uygulama geliştirmeyi kolay ve eğlenceli hale getirir.
Xcode, Xcode IDE, Swift ve C/C++/Objective-C derleyicileri, Araçlar analiz aracı, simülatörler, en yeni SDK’lar ve yüzlerce güçlü özelliği içerir:
Yenilikçi araçlar harika uygulamalar oluşturmanıza yardımcı olur.
• Swift, güvenli, hızlı ve modern bir programlama dilidir.
• SwiftUI, bildirime dayalı bir Swift sözdizimi ile kullanıcı arayüzleri oluşturmak için devrim niteliğindedir.
• Oyun alanları, Swift kodunu denemenin ve etkileşim kurmanın eğlenceli bir yoludur.
• Editörleri neredeyse sınırsız şekilde ayırın, önizlemeleri gösterin veya ilgili içeriği görmek için bir asistan seçin.
• Canlı sorunlar, siz yazarken hataları görüntüler ve Düzeltmeler, yalnızca bir tıklamayla kodunuzu iyileştirir.
• Kaynak denetimi gezgini ve hizmet entegrasyonları, bir ekip genelinde kodu yönetmenize yardımcı olur.
SwiftUI ve Arayüz Oluşturucu, arayüzünüzü tasarlamayı kolaylaştırır.
• SwiftUI, arayüzünüzü net bir şekilde tanımlayan bildirimsel Swift kodu kullanır.
• Tasarım tuvali, kontroller ve değiştiriciler kitaplığını kullanarak grafiksel olarak UI görünümleri oluşturur.
• SwiftUI kodunu veya UIKit arayüzlerini farklı ekran boyutlarında, yönlerde ve yazı tipi boyutlarında önizleyin.
• SwiftUI kodu, grafik tasarım tuvali ve önizlemelerle her zaman mükemmel bir uyum içindedir.
• Animasyonlar, görmek istediğiniz eylemi açıklayan basit komutlar kullanılarak oluşturulur.
Profesyonel düzenleyici ve hata ayıklayıcı, kodunuzu önde ve merkezde tutar.
• Yeniden düzenleme, Swift, Objective-C, C ve C++ kodunun yapısını değiştirmeyi kolaylaştırır.
- Hızlıca Aç projenizdeki herhangi bir dosyayı anında açar.
- Veri ipuçları ve Hızlı Bakış, hata ayıklama sırasında farenizi kodun üzerine getirerek bir değişkeni inceleyebilir.
SWIFT TEMELLERİ
Temel Bilgiler
Farklı Kod Yazma Teknikleri
Xcode uygulamasını açtıktan sonra üst menüden file(dosya) kategorisine tıklıyoruz ve yeni dosya türü olarak “playground” seçeneği ile yeni dosya oluşturuyoruz. Boş sayfayı seçiyoruz ve proje ismini yazıyoruz. Böylece yeni bir proje sayfası önümüze geliyor.
Sayfa ikiye bölünüyor bu kısımda sol tarafta kodlar, sağ tarafta ise kodlarda yaptığımız değişikleri görebileceğimiz terminal önümüze çıkıyor. Yazdığımız kodları çalıştırmak için satırların yanında bulunan “play” tuşuna basıyoruz ve kodlar yeniden derleniyor.
Playground çalışmadığında ise şu adımlar izlenir:
1.Yeni bir proje oluşturulur.
2.Platform macOS olarak seçilir.
3. Application kategorisinden “Command line tool” (komut istemcisi aracı) seçilir ve yeni isimle bir proje oluşturulur.
4.Ekranın sol tarafında gelen dosyalarla beraber içeriden önceki yazılan ancak running time yapılamayan dosya seçilerek tekrar çalıştırılır.
Aritmetik operatörler
Swift ile tüm sayı ve veri tipleri için standart dört aritmetik operatörü destekler:
· Ekleme ( +)
· Çıkarma ( -)
· Çarpma ( *)
· Bölme ( /)
- Aritmetik operatörler matematiksel hesaplamalar dışında da kullanılabilmektedir. Örneğin ileride de bahsedeceğimiz gibi iki ayrı değişkeni birleştirmede kullanılan plus (+) operatörü gibi her birinin birçok alternatif kullanımı mevcuttur. Bu operatörler dışında mod alma yahut da kalan operatörü de vardır:
- >>10%2= 0
Karşılaştırma Operatörleri
- Swift genel olarak standart olarak altı adet karşılaştırma operatörünü destekler:
- a == b // a değeri b değerine eşit olduğunda
- a!= b // a değeri b değerine eşit olmadığında
- a> b // a değeri b değerinden büyük olduğunda
- a < b // a değeri b değerinden küçük olduğunda
- a >= b // a değeri b değerinden büyük veya eşit olduğunda
- a<= b // a değeri b değerinden küçük veya eşit olduğunda
Not: Buradaki karşılaştırma operatörleri ileride de bahsedeceğimiz gibi bir boolean ifadesidir. Çıktı true ya da false olarak ekranda yazar. Bu ifadeler genellikle döngüler ve koşullu ifadelerinde kullanılır.
Mantıksal operatörler
- Mantıksal operatörler , Boolean mantık değerlerini true ve false olarak değiştirir veya birleştirir . Swift, C tabanlı dillerde bulunan üç standart mantıksal operatörü destekler:
- Mantıksal DEĞİL ( !a)
- Mantıksal VE (a && b)
- Mantıksal VEYA ( a || b)
Değişken Tanımlanması
- Değişken tanımlanması yapmadan da 20+10 yazılırsa yine sağ taraftaki terminalde işlemin çıktısı oluşabilmektedir. Ancak değişken tanımlanması ve atanması gereken durumlar vardır.
- “var” veriable (değişken) sözcüğünün kısaltmasından gelmektedir. Bu anahtar kelime ile bir değişken oluşturulur ve değişken türü sayı yahut da mesaj olabileceği için bu formata uygun syntax dediğimiz söz dizilimine uygun yazılarak ilerleyen kod satırlarında değiştirilebilen değişken tanımlanması yapılabilir.
- Bir diğer değişken tanımlaması için kullandığımız anahtar sözcük “let” anahtar sözcüğüdür. “let” sabit (constant) demektir. Bu anahtar sözcük kullanılarak oluşturulan değişkenlere atanan veriler ilerleyen kod satırlarında değiştirilemez niteliktedirler ve ilk atanan veri değerini korumaya yarayan değişken tipidir.
- Değişken ataması yapmak için anahtar kelime olan “var” veya “let” kullanılarak derleyicimize “ben bir değişken ataması yapıyorum” komutu vermiş oluruz. Esasen bu anahtar sözcüklerden sonra kullanıcının belirlediği bir değişken ismi yazılır ve değişkenin türüne göre veri girişi yapılır.
1.let anahtar kelimesi gösterimi:
let degisken_adi= veri
2.var anahtar kelimesi gösterimi:
var degisken_adi= veri
>>Neden değişken ataması yapılır?
1.Değişken tanımlanmasını yahut da atamasını yapmak kod yazanın kullanıcıdan ne talep ettiğini belirlemesinde yardımcı olur.
2.Değişkene atanan veriyi her yerde kullanabilme özelliği gelir. Böylece veriyi, istenilen yerde tekrar çağırabiliriz.
3.Tek bir projede birden fazla çağrılması gerektiği için kodlama yapana büyük zaman ve avantaj sağlar.
Not: var anahtar sözcüğü ilk değişken oluştururken kullanılır. Atanan veriyi değiştirmek için tekrar “var” kullanılmaz. Çünkü kodlar yukarıdan aşağıya doğru oluşturulduğu için bir kez sisteme tanımlamamız yeterlidir. Atanan veriyi değiştirmek için ise değişkenİsmi= “yeni değişken” şeklinde gerçekleştirebiliriz.
>>Değişken tanımlanması yapılırken dikkat edilmesi gereken hususlar nelerdir?
1.Değişken ismi rakam veya özel karakterle başlayamaz:
var 89isim= “fatma”
let %isim= “eren”
2.Okunabillir değişken adı seçilmelidir:
var yeniveriekle=10 // Bu gösterimin özel ismi camelCase’dir. En çok bu gösterim tercih edilir.
let yeni_veri_ekle=10 // Bu gösterimin özel ismi snake_Case’dir.
3. Değişken tanımlandıktan sonra türü değiştirilemez bu yüzden girilen veri değiştirilecekse gerekli hususlara uygun değiştirme yapılmalıdır:
var sayi=10 // değişkenin türü tamsayıdır ve ilerleyen kod satırlarında değişkenin türü değiştirilmeden değeri değiştirilebilir.
let sayi=10 // değişken türü tamsayıdır ve değişkenin hem türü hem de değeri ilerleyen kod satırlarında değiştirilemez.
sayi= 62.5 // error: cannot assign value of type ‘Double’ to type ‘int’ (hata: ‘int’ yazmak için ‘Double’ türünde bir değer atanamıyor)
4.Genellikle ilk kelimeye küçük sonraki kelimelere büyük harfle başlanmalıdır.
var myNumber=12 // doğru kullanım
let myNumber=12 // hatalı kullanım
Veri Tipleri
“let” anahtar sözcüğü ile değişkenlerimizi değiştirilemez veriler olarak sisteme tanımlayabiliriz. Örneğin:
let yeni_deger=10
print(yeni_deger)
yeni_deger=40 // değişkeni tanımlarken let anahtar sözcüğünü kullandık böylece bu satırdan sonraki kod bloklarında constant olarak kaydedilen veri üzerinde değişiklik yapılamaz.
>>let anahtar sözcüğünün kullanım alanları:
Pi sayısı, Euler sayısı. Epsilon sayısı gibi değeri belli ve değiştirilmeyen matematiksel işlemlerde kullanılır.
string veri türü ile metin içeren ve istenilen uzunlukta veriler tanımlanabilir.
Örneğin:
var isim= “fatma”
let isim= “Amasya Üniversitesi Bilgisayar Mühendisliği Öğrencileri Medium’da!”
- integer veri türü ile tamsayı olan veriler tanımlanabilir.
Örneğin:
var my_Number=10 //değiştirebilir bir değişken
let my_number=15 // değiştirilemez bir değişken tanımlandı
Not: Değişkeninin yanına nokta koyduğumuzda her değişkenin türüne göre özellikler çıkmaktadır.
Örneğin:
let numara=10
numara.isMultiple(of:2) // Burada ekran çıktısı “True ” olacaktır. Çünkü bu özellik ile önceden tanımlanmış ve veri atanmış değişkenin 2 sayısına tam bölünüp bölünemediğini sorgulamaktadır.
var isim= “fatma”
isim.uppercased() // Buradaki noktadan sonra gelen özellik stringler için oluşturulmuştur ve string içeren değişkenin harflerini büyük harfe dönüştürür.
· Float veri türü en fazla 7 basamaklı ondalıklı sayıları içeren verileri tanımlar.Örneğin:
var float_sayim=10.4547
>>Floatın Kullanım Alanları
Hesaplamalar yapılırken karışık ve uzun işlemlerin çözülmesinde kullanılmaktadır.
Not: Aritmetik işlemler yapılırken iki değişkenin türünün aynı veya farklı olması önemlidir. Örneğin:
let sayi1=10
let sayi2=5
sayi1/sayi2 // Ekran çıktısı 2 olacaktır zira tamsayıyı tamsayıya bölüyoruz. Ancak;
let sayi1=14.5
let sayi2=12.0
sayi1/sayi2 //Ekran çıktısı 1.208333 olacaktır zira float bir değeri yine float bir değere bölüyoruz.
· Double veri tipi en fazla 15 basamaklı ondalıklı sayıları içeren verileri tanımlar. Örneğin:
var double_değişkenim= 54.564649846498
· Boolean veri tipi sayesiyle sonucun True (doğru) yahut da False (yanlış) olarak ekran çıktısı alınabilir. Örneğin:
var boolean_Tanımlaması= false
1==1 //Ekran çıktısı true
3<9//Ekran çıktısı true
4>7//Ekran çıktısı false
10<=10//Ekran çıktısı true
11!=11//Ekran çıktısı true
Not: Boolean veri tipinin kullanılmasının avantajlarından birisi de döngüler kullanılırken hızlı cevaplar alınabilmesi ve kod bloklarını en aza indirgemeye çalışılmasıdır.
Verilerin Önceden Veri Tipini Belirleme
Verilerin veri tiplerini nasıl belirlendiğini gördük ancak bazı durumlarda örneğin kullanıcıdan yaş, doğum tarihi gibi verilerin alınmasını istediğimizde tüm verilerimizin integer yani tamsayı olmasını isteriz bu durumda en başta veri tanımlaması yaparken derleyiciye şu şekilde belirtiriz:
let yas: Int // burada “Int” yazdığımızda derleyici Int 8, Int 16, Int 32 gibi seçenekler sunuyor. Bu seçenekler girilecek verinin bellek dediğimiz RAM’de ne kadar yer kaplayacağını seçmemiz için yardımcı olur.
let yas : Int16=50 //16 bitlik bir veri tanımlaması yapılmalıdır.
var yas : Double=3.14 // Double veri tanımlaması yapılmalıdır.
Not: Verilerin veri tiplerini önceden sisteme tanımlarken veri girişi de yapılmalıdır:
let myString : String // yanlış kullanım error: constant ‘myString’ used before being initialized (başlatılmadan önce kullanılan sabit ‘String’)
let myString : String = “eren aşkın” // doğru kullanım
Veri tiplerini birbirine Dönüştürmek
Verilerimizin her zaman aynı veri tipiyle devam etmesini istemediğimiz durumlarda veri dönüşümü ile yapabiliriz:
let myNumber : Int
myNumber=10 // verimizin türünü sisteme tanımlarken veri atamasını bu şekilde yapabiliriz.
let string_olan_numaram : String
string_olan_numaram = String (myNumber) //Ekran çıktısı “10” olacaktır. Çift tırnak ile çıktı olduğu için integer değer string bir değere dönüştürülmüş demektir.
Aynı şekilde integer bir değeri string bir değere de dönüştürmek bu şekilde yapılabilir.
Diziler (koleksiyonlar)
Diziler (arrays) index mantığıyla yani konum bilgisiyle çalışan ve bir değişken adında birden fazla aynı türden verileri ayrı ayrı konumlandırıp saklayan bir yapı türüdür. Buradaki esas husus dizimizdeki elemanların veri türlerinin aynı olmasıdır.
>>Dizilerin Avantajları nelerdir?
1. Uzun ve karmaşık hesaplamaları, verileri tek çatı altında toplayarak daha kısa sürede netice almamızı sağlar.
2. Kod kalabalığının önüne geçer.
3. Aynı kodları tekrar yazmak yerine bir satırda yazmayı sağlar.
Dizilerin genel gösterimi şu şekildedir:
var degisken_ismi= [ ]
Örneğin:
var diziler =[ “eren”, “yamaner”, “fatma”, “aşkın”] // 4 elemanlı bir dizi tanımlandı.
İndexlerdeki elemanlara bakacak olursak:
0.index “eren”
1.index “yamaner”
2.index “fatma”
3.index “aşkın”
Herhangi bir elemana erişmek için:
diziler[2] // Ekran çıktısı 2.indexte bulunan eleman yani “fatma” metnidir.
Herhangi bir elemanı çıkarıp yeni eleman ile değiştirmek için:
diziler [2] = “Amasya Üniversitesi”// Ekran çıktısı “Amasya Üniversitesi” olur. Ancak artık dizide 2.indexte bulunun “fatma” elemanı yerine gelmiştir ve değişim gerçekleşmiştir.
Dizilerde işlem yapabilmek için:
var myArray= [1,2,3,4,5]
myArray[2]*6/9 //Öncelikle derleyici myArray dizisindeki 2.indexte olan “3” sayısına erişecek ve işlem basamaklarını gerçekleştirecek. Hülasa bu adımlardan sonra ekran çıktısı 2 olacaktır.
Not: Bir dizide aynı veri türleri olmalıdır. Aynı veri türlerine sahip olmayan verileri tanımlamak için:
var random_array= [1,2, “eren”, “fatma”,true,false,10.5,45.6] // yanlış gösterim
var random_array= [1,2, “eren”, “fatma”,true,false,10.5,45.6] as [Any]// burada any(herhangi bir şey), as(gibi)
random_array dizisini any dizisi olarak tanımladık.
random_array[2] // Ekran çıktısı any olarak tanımlanmış dizideki 2.indexteki eleman olan “eren” metnidir.
>>Dizilerde Kullanılan bazı fonksiyonlar
print(dizi.count) // dizinin eleman sayısı öğrenildi.
print(dizi.first!) // ! işareti sonucun opsiyonel olmasını önledi.
print(dizi[2]) // dizinin 2.indisinde bulunan değeri gösterdi.
dizi.append(7) // ekleme fonksiyonudur.
dizi.remove(at: 2) // silme fonksiyonudur.
print(dizi.last!) // dizinin son elemanını verir.
dizi.sort() // sıralama fonksiyonudur. Küçükten büyüğe doğru dizi elemanları sıralanır.
Not: any olarak tanımlanmış dizilerin özel fonksiyonları bulunmamaktadır. Çünkü her dizinin veri türüne göre fonksiyonlar tanımlanır. Any olarak bildirilen bir dizi için karışıklık olacağından fonksiyonlar tanımlanmaz. Ancak veri tipi gözetmeyen özellikler tanımlanabilir:
var random_array= [1,2, “eren”, “fatma”,true,false,10.5,45.6] as [Any]
random_array. .append(5) // Ekran çıktısı son indexe “5” sayısı gelecek şekilde tekrar yazılır:
[1,2, “eren”, “fatma”,true,false,10.5,45.6,5]
Set Koleksiyonu
İçinde birden fazla veriyi barındırmak için oluşturulan bir yapıdır. Bir veri yalnızca bir kez yazılabilir.
var myNumber= [2,3,3,3,22,2,4,4] //bu normal bir dizi gösterimidir ve integer değerleri istediği kadar tekrarlanabilir elemanlara sahiptir.
var myNumber: Set= [2,3,3,3,22,2,4,4] // Ekran çıktısı [4,22,3,2] şeklinde teke indirilmiş karışık elemanları barındıran bir set dizisi olacaktır.
Not: Set olarak tanımlanan bir dizide index mantığı yoktur ve çıktı random (karışık) olarak ekrana yazılır.
Not: Set olarak tanımlanan dizilerin fonksiyonları da farklıdır.
Sözlük koleksiyonu (dictionary)
Sözlük, bünyesinde barındırdığı girdilere hızlı erişim sağlayan rastgele dizilimli koleksiyondur. Anahtar değer eşleşmesi (Key -value pairing) olarak tanımlanan sözlük ile önce anahtar sözcük belirlenir daha sonrasında anahtar sözcüğüne tekabül eden veri girişi sağlanır. Bu sayede bir dize içinde gerçek anlamda “sözlük” oluşturabilmem mümkündür.
let meyve_kalorisi= [“armut:100”, “muz:150”, “elma:200”, “karpuz:210”]
meyve_kalorisi [“karpuz”]// Ekran çıktısı 210 olacaktır. Çünkü sisteme karpuz kelimesinin değer verisini girdik (key-value pairing)
Not: Sözlüklerde değer ve anahtar kelime herhangi bir veri türüne sahip olabilir.
Döngüler
1.While döngüsü
Bir olay devam ederken diğer olayın devam etmesini sağlayan ve ilk belirlenen olay sınırı aştığında tüm durumların durduğu bir döngüdür. Somutlaştırırsak ; oyuncu ölmediği sürece oyun devam etsin döngüsü.
While döngüsünün genel gösterimi:
while condition{
code
}
Örneğin:
Döngü 1 kez çalışacağı için ekran çıktısı 9 olacaktır.
Döngünün 1 kez çalışmasının sebebi ise 28.satırda yer alan x değişkenini +1 yapma işlemidir. Döngü 2.kez çalışmak için 23.satıra döndüğünde artık x değişkeni 10 sayısıdır ve while döngüsünün içine giremez.
2.For döngüsü
En genel kullanımı dizilerle olan bir döngüdür.
Ekran çıktısı: Atıl
Atıl
Mahmut
Mehmet
Zeynep
Burada “for isim in myArray “ kod bloğunun açıklaması şu şekildedir:
myArray dizisine ait bir isim nesnesi oluşturur ve bu isim nesnesi myArray dizisi içerisinde gerektiği kadar döngü devam eder.
in” ifadesinden sonra yazılan “1..10” ifadesi 1’den 10’a kadar olan sayıları yeniNumara değişkenine ata ve döngüyle birlikte 10 elemanı ekrana yazdır demektir.
HESAP MAKİNESİ PROJESİ
İlk olarak label ve buttonları tanımlamayla başlamak istiyorum. Label ve buttonları önce libraryden label ve buttonları storyboarda sürüklüyoruz ve istediğimiz konuma getiriyoruz. Sonrasında label ve buttonları kontrol tuşuyla ViewController sekmesinde bulunan class kod bloğunun altına Mouse yardımıyla sürüklüyoruz.
Fonksiyonları yazma işlemiyle devam ediyoruz.Toplama, çıkarma, bölme, çarpma fonksiyonlarını if let yapısıyla gerekli değişkenleri gerekli değişken türleriyle tanımlayıp işlem kod bloğunu tamamlamalısınız. Override satırının üstünde bulunan var summarize=0 satırının amacı da her fonksiyon kod bloğunda tekrar tekrar uğraşmamak için yaptık.
If let kullanarak hesaplama ve değerlendirmeyi tek bir ifadede birleştirdik.
Burada dikkat edilmesi gereken şey, değişken indeksinin if koşulunda boş bırakılabilir bir değişken olduğu halde, izin durumunda boş bırakılamaz olmasıdır.
Yazarlar