26 Aralık 2016 Pazartesi

KAMERALAR

DİJİTAL KAMERALAR :

Dijital kameralar vasıtası ile fotoğraf çekip bunları bilgisayara aktarabilir ya da fotoğraf yazıcıları yardımı ile baskı yapabilirsiniz.
Dijital fotoğraf makineleri, elektroniğin temelini oluşturan direnç değişimlerini esas alarak çalışır


TARAYICI (SCCARNER)

Kitap, dergi, gazete, fotoğraf gibi çeşitli basılı dokümanlarda bulunan renkli veya siyah beyaz yazıları, resimleri bilgisayar ortamına aktarmak için tarayıcılar kullanılmaktadır.  Tarayıcılar,  dokümanın ince bir satır hâlinde ışıklandırılıp yansıyan ışığın algılanması prensibi ile çalışır


Tarayıcı Çeşitleri : 

Tarayıcılar değişik türlerde karşımıza çıkabilmektedir. Çok fonksiyonlu yazıcılarda tümleşik olarak bulunan tarayıcılar, sadece tarayıcı özelliği olan ve genellikle A4 boyutundaki kâğıtları tararken kullanılan tarayıcılar (flatbed) ve küçük boyutlardaki belgelerde tarama işlemini gerçekleştirebileceğiniz el tarayıcıları mevcuttur. 

Tarayıcıların Bağlantıları :
 Bağlantı noktasının bant genişliği ne kadar yüksekse aktarım o kadar hızlı gerçekleşir. Günümüzde paralel port, SCSI, USB ve firewire arayüzüne sahip tarayıcılar bulunmaktadır.



 


 

CAPITALIZEDSTRING (KELİMELERİN İLK HAFLERİNİ BÜYÜK YAZDIRMA)

Birden fazla kelimeden oluşan bir string ifadede ki her kelimenin ilk harfini büyük yazmak için capitalizedString metodu kullanılır.


var isim2:String =" kardelen gülen"
isim2.capitalizedString
/*Sonuç
Kardelen Gülen
/*

LOWERCASESTRING (KÜÇÜK HARFE ÇEVİRME )

LowerCase string bir ifadenin tamamını küçük harfle yazmamızı sağlayan metoddur.

var sehir:String="Amasya"
sehir.uppercaseString
/*Sonuç
amasya
*/

UPPERCASESTRING(BÜYÜK HARFE ÇEVİRME)

UpperCase string bir ifadenin tamamını büyük harfe çevirmemizi saylayan metoddur.


var sehir:String="Amasya"
sehir.uppercaseString
/*Sonuç
AMASYA
*/

HASSUFFIX (BİTİŞ KONTROLÜ )

String bir ifadenin bitiş karakterlerini kontrol etmek için hasSuffıx metodu kullanılır.


var isim:String="Kardelen"
isim.hasSuffıx("en")
/*Sonuç
true
*/

HASPREFIX (BAŞLANGIÇ KONTROLÜ)

String bir ifadenin başladığı bir karakteri kontrol etmek için hasPrefıx metodu kullanılır. Eğer string karşılaştırdığınız ifade ile başlıyorsa true , başlamıyorsa false değerini döndürür.

var isim:String="Kardelen"
isim.hasPrefıx("Kar")
/*Sonuç
true
*/

APPEND CONTENTSOF (STRİNG EKLEME)

AppendCotentsOf metodunu kullanmalısınız.


var isim2:String ="Kardelen"
isim2.appendCotentsOf (isim2)
/*Sonuç
KardelenKardelen
*/

APPEND (KARAKTER EKLEME )

String bir ifademin sonuna karakter eklemek için append metodu kullanılır.



var isim: String="Kardelen"
var karakter:Character ="@"
isim.append(karakter)
/* Sonuç
Kardelen@
*/

VEYA (OR) || OPERATÖRÜ

Ve operatöründen farklı yanı karşılaştırma işlemlerinden sadece 1 tanesinin true olası genel sonucun da true olması için yeterlidir.

var sayi = 5
sayi >1|| sayi <4
/*Sonuç
true
*/

VE (AND) && OPERATÖRÜ

Bir veya birden fazla olan karşılaştırma işlemlerinde he sonucun true dönmesi durumunda genel sonuçta true olur.

var sayi=5
sayi>1&& sayi < 8
/* Sonuç
true
*/

NOT OPERATÖRÜ

True olan bir değerden false , false olan bir değerden ise true değerini alabilirsiniz.  Burada ki asıl önemli nokta mevcut değerin aslını değiştirmeden tersini vermektedir. Yani değerin aslı aynen kalmaktadır.

KÜÇÜKTÜR (<)KÜÇÜK EŞİTTİR OPERATÖRÜ (<=)

Küçüktür operattörü ile 1.sayının 2. sayıdan küçük olup olmadığını öğrenebilirsiniz.


var sayi1=5
var sayi2=3
sayi1<sayi2
sayi1<=sayi2
/* Sonuç
false
false
*/

BÜYÜKTÜR (>) BÜYÜK EŞİTTİR OPERATÖRÜ (>=)

Büyüktür öperatörü ile 1.sayının 2.sayıdan büyük olup olmadığını öğrenebilirsiniz. Eğer 1. sayı büyükse geriye true değeri , 2.sayının büyük olması veya eşitlik durumunda da  false değeri dönecektir. Büyük eşittir (>=) öperatör büyüktür (>) öperatöründen farklı olarak iki sayının eşit olması durumunda da true değerini döndürür.


var sayi1=5
var sayi2=3
sayi1>sayi2
sayi1>=sayi2
/* Sonuç
true
true
*/

EŞİTLİK ÖPERATÖRÜ (= = )

İki verinin birbirine eşit olup olmadığını gösterir . Eğer veriler birbirine eşitse true değilse false değeri dönecektir.
Bu öperatör ile atama yapılamaz sadece kontrol amaçlı kullanılabilir.

var sayi1=5
var sayi2=3
sayi1==sayi2
/*Sonuç
false
*/




KARŞILAŞTIRMA ÖPERATÖRÜ

İki verinin eşitlik, büyüklük, küçüklük bakımından karşılaştırılmasını sağlayan operatörlerdir. Bu karşılaştırma işlemlerinden sonra duruma göre true veya false değerlerinden birisi dönecektir.

LOJİK ÖPERATÖRLER

Programın akışını mantıksal olarak etkileyecek konuların belki de başın da gelmektedir.
Programımızın bir yerde davranışını bir den fazla koşul belirleyecekse lojik operatörlere başvurmamız gerekir.

AZALTMA ÖPERATÖRÜ (- - VE - = )

Değişkenin değerini 1 azaltmak istediğimizde  - - öperatöründen yararlanmalıyız.


var sayi=5
- -sayi
/* Sonuç
4
*/


Artırma işleminde olduğu gibi eğer azaltmak istediğimiz değer 1 değil de daha fazlaysa  -= öperatörünü kullanabiliriz.

var sayi=5
sayi-=4
/*Sonuç
1
*/ 

ARTIRMA OPERATÖRÜ(++ VE+=)

Bir değişkendeki değeri 1 artırmak için ++ öperatörü kullanılır. Bu öperatörde ki başka dillerdebaşka dillerde değişkenden sonra yazılırken swift dilinde değişkenin başına yazılır.  Fakat XCode 'un yeni sürümlerinden (7.2 ve sonrası) birini kullanıyorsanız değişkenden sonra da yazabilirsiniz.


Kullanım Şekli !

var sayi=5
++sayi
/*Sonuç
6
*/
 
Eğer istediğiniz şey değişkenin değişkenin değerini 1   arttırmak değilde daha fazla arttırmak ise += öperatörü ile istediğiniz kadar arttırabilirsiniz.

sayi+=5
/*Sonuç
10
*/

17 Aralık 2016 Cumartesi

ARİTMETİK OPERATÖRLER

Bu öperatörler değer atama, matematiksel işlemler gibi durumlarda kullanılmaktadır.

  • var sayi1=5//EŞİTLEME(=)
  • var sayi2=3+4//TOPLAMA(+)
  • var sayi3=4-2//ÇIKARMA(-)
  • var sayi4=6/2//BÖLME(/)
  • var sayi5=5*2//ÇARPMA(*)
  • var sayi6=5%2//MOD(%) (KALAN BULMA)
Yukarıda ki sayi4 yapılan bölme işleminde 6/2 yerine 5/2 yazsaydık sonuç yine 2 olacaktı. Bölme işleminde sonucu tam olarak elde etmek istiyorsanız değişkenlerin türlerini uygun biçimde belirtmeliyiz.

var sayi4:Float=5/2
/* Sonuç
2.5
*/


DİCTİONARY DİZİLER

Dictionary dizilerin farkı index yerine sizin belirtiğiniz ifadelerin kullanılmasıdır.


var dictionaryDizi=[
"Ankara" :6 ,
"Erzurum":25,
"İzmir":35,
]


25,değerine yani 2. sıradaki elemana ulaşmak için index numarası olan 1 değerini kullanarak ulaşabilirdik.  İndex numarası yerine Erzurum ifadesini kullanmamız yeterli olacaktır.

dictionaryDizi["Erzurum"]
/* Sonuç
25
*/



DİZİLERDE ARAMA VE FİLTRELEME İŞLEMİ

ARAMA İŞLEMİ


Dizilerde arama işlemi dizi içindeki tüm elemanların olup olmadığını kontrol edilmesidir. Bir örnek ile inceleyelim.

arabalar.indexof("Audi")

Bu arama işleminden sonra geriye Audi elemanın dizideki index numarası  olan 2 değeri dönecektir.

arabalar.indekxOf("Toyota")

Bu arama işleminde ise Toyota elemanı dizi içinde olmadığından geriye nil değeri dönecektir.

FİLTRELEME İŞLEMİ

Sayilar isminde içerisinde bir kaç tane sayıyı tutan bir değişkenimiz olsun. Bu değişken içindeki 3 'ten büyük sayıları elde etmek istediğimizde  filter {} metodunu kullanabiliriz.



var sayilar [2,8,3,5,1,7]
var filtre= sayilar.filter {S0>300}
filtre
/*Sonuç
8,5,7
*/

DİZİLERDE SIRALAMA İŞLEMİ

Aşağıdaki gibi arabalar isminde bir diziye sahip olduğumuzu düşünelim. Bu dizide sıralama işlemi , A'dan Z'ye (küçükten büyüğe)  veya Z'den A'ya  (büyükten küçüğe) olmak üzere iki farklı şekilde olabilir.

var arabalar = ["BMW" , "Mercedes", "Audi", "Jaguar"]


Swift dilinde sıralama yapmak için sort () metodu kullanılır.

arabalar.sort ()
/*Sonuç
Audi,BMW,Jaugar,Mercedes
*/

Yukarıdaki sıralama sonucunda küçükten büyüğe yani A'dan Z'ye sıralama yapışmıştır. Tersini yani Z'den A'ya sıralama yapmak için bu yapıyı biraz değiştirmeliyiz. Çıkan sonucu ise siraliListe isimli bir diziye atarak bu dizi aracılığıyla görüntüleyeceğiz.


var siraliListe=arabalar.sort{S0>S1}
siraliListe
/*Sonuç
Mercedes ,Jaguar,BMW,Audi
*/

ELEMAN SİLME VE DİZİYİ BOŞALTMA

Silmek istediğiniz eleman ilk veya son elemansa elamanlar arasında gezinme konusunda olduğu gibi bazı metotlar bize yardım edecektir.

sehirler.romoveFirst()//ilk elemanı siler
sehirler.removeLast//son elemanı siler

İsterseniz silmek istediğiniz elemanı index numarasını belirterek de silebilirsiniz. 
Örneğin ; 3. sıradaki elanı silmek isterseniz aşağıdaki gibi bir yol izleyebilirsiniz.

sehirler.removeAtIndex(2)

İndeks numarasını belirterek de ilk ve son elemanı silmemiz mümkün. İlk elemanı silmek için  index parametresine 0 vermeniz yeterli olacaktır. Fakat son elemanı silmek için aşağıdaki gibi bir yol izlemelisiniz.

sehirler.removeAtIndex(sehirler.count -1)

Bu kodda yapığımız işi açıklayacak olursak parametre olarak dizinin eleman sayısının 1 eksiğini verdik. Böylece son elemanı  işaret etmiş olduk.

Diziyi Boşaltma

Dizideki bütün elemanları  silme işini 2 farklı yoldan yapabiliriz. Bunlardan birincisi removeAll komutunu kullanmak , diğer yol ise diziyi boş bir kümeye eşitlemek.

sehirler.removeAll()

veya


sehirler=[]




ELEMANLAR ARASINDA GEZİNME

Dizideki herhangi bir elemana erişmek için işimizi kolaylaştıran bir çok metot veya yol mevcut. Örneğin; ilk veya son elemana erişmek için fırst ve last metotlarını kullanabiliriz.


sehirler.fırst//sehirler dizisinde ilk elemanı verir.
sehirler.last//son elemanı verir

Eğer ulaşmak istediğiniz eleman başta veya sonda değilse index numarası ile erişebiliriz.

sehirler[1]

Yukarıdaki indeks numarası 1 verilerek 2. sıradaki elemana girmiş olduk. Eğer bu yolla ilk elemana erişmek isteseydik 1 yerine 0 yazmamız gerekirdi.

16 Aralık 2016 Cuma

ELEMAN EKLEME

Diziye bir eleman eklemek istediğimizde append komutunu kullanmalıyız. Append komutu ile  eklediğimiz veriler dizinin sonuna eklenir.

sehirler.append("Ankara")

Eleman eklemek için kullanabileceğimiz bir diğer yol operatörler konusunda öğreneceğimiz += operatörü ile eklemektir.
sehirler+=["Antalya"]

Append komutu ile eklediğiniz eleman dizinin en sonuna eklenecektir.  Eğer en sona değil  de araya  veya en başa eleman eklemek isterseniz insert komutu ile ekleme yapmalısınız.

sehirler.insert("Sivas", atIndex:  2 )

Yukarıdaki ekleme işleminde atIndekx parametresine 2 değeri verilerek eklemek istediğiniz elemanın 3. sırada konumlamasını sağladık.

NOT: Programlama dünyasında indeks değerlerinin 0'dan başladığını unutmayalım.

DİZİNİN ELEMAN SAYISINI ÖĞRENME

Dizinin içerisinde kaç eleman olduğunu kolaylıkla öğrenebiliriz.

sehirler.count

sehirler dizesinde 3 tane eleman olduğundan yukarıdaki kod 3 değerini döndürecektir.

DİZİ OLUŞTURMA

Aşağıda şehirler isminde bir dizinin nasıl oluşturulduğunu görmekteyiz.

var sehirler = ["Amasya " , "Bayburt " , "İstanbul" ]

Bu dizi içinde üç tane eleman bulunmaktadır.  Diziler içerisinde sadece string değil istediğiniz türden veri saklayabilirsiniz.

var plakalar = [05,69,34]

DİZİ NEDİR???

Birden fazla veriyi , tek çatı altında , düzenli bir şeklide tutmak için diziler kullanılmaktadır.  Bir değişken içinde sadece bir veriyi tutabilirken diziler sayesinde birden fazla veriyi tek çatı altında toplayabiliriz.  Ayrıca dizilerin bize sunduğu özel metotlar sayesinde  rahatlıkla dizilere hükmedebileceğiz.
Bir dizide temel unsur dizinin elamanlarının aynı türden olmasıdır .  Dizideki bir eleman int tipindeyken diğer bir eleman string tipte veya başka bir tipte olamaz. Dizideki her bir eleman için  ise iki parçadan oluşmaktadır.  Bunlardan birisi referans diğeri ise elemanın diğeridir. Dizilerdeki bir diğer terim olan indeks değeri dizideki elemanın referansı yani sıra numarasını belirtir.  Bu sayede elemanların referansına ulaşabiliriz. Bunu illerin plaka kodlarına benzetebiliriz.

TIP DÖNÜŞÜMLERİ

Bir örnek üzerinden gidecek olursak , aşağıdaki gibi iki değişenimiz olsun . Bunlardan biri isim bilgisini saklayacak diğeri kişinin yaş bilgisini saklayacak.  Bu iki veriyi metinsel olarak toplama işlemine yani birleştirme işlemine tabi tutalım. Aşağıda gördüğümüz gibi her iki veriyi de string olarak tanımladığımızda istediğimiz sonuca ulaşıyoruz. Fakat yaş bilgisini  string bir değişken içinde saklamak mantıklı bir yol değildir. Yaş bilgisini ınt tipindeki bir değişkende sakladığımızda ise yaş  bilgisi string olduğundan toplama işleminde hata meydana gelmektedir.

ÖRNEK: 

var isim:String= "Kardelen"
var yas:Int=16
isim + yas + "yaşındadır" // HATA




var isim:String ="Kardelen"              
var yas:Int =16                                                       "Kardelen"    
isim+yas+"yaşındadır"                16




Bu sorunu ortadan kaldırmak için yas bilgisini string ' e çevirerek yazdırmak gerekmektedir.  Bunu sağlayan kod ise description metodudur.


var isim :String "Kardelen"
var yas = 16
isim+yas.desciption + " yaşındadır "


var isim:String = "Kardelen"                                   "Kardelen"
var yas:Int=16                                                          16
isim+yas.description+ "yaşındadır"                         "Kardelen 16 yaşındadır "


yas2.description ile yas2 değişkenini string ' e çevirerek yazdırmış olduk. Burada yas2 değişkeninin aslı değişmemektedir.
Aslında bir çok tip dönüştürme işlemi bulunmaktadır . Fakat temel dönüştürme işlemlerini öğrenmemiz yeterli olacaktır.

  Başka bir tip dönüştürme işlemi ise strin içindeki bir sayıyı matematiksel işleme tabi tutmak için kullanılmaktadır.

var sayi:String="5"
sayi+4 // HATA

sayi isimli string tipindeki değişken içinde 5 değeri saklanmaktadır.  Değişken türü string olduğundan 5 değerini matematiksel işlemde kullanmak istersek yukarıdaki gibi bir hatayla karşılaşırız.  Böyle bir hatayla karşılaşmamak için sayi  değişkenini sayısal bir tipe dönüştürmeliyiz. Int (sayi)  ile  sayi değişkenini  bir Int türünde  ifadeymiş gibi  matematiksel işleme tabi tutabiliriz. Eğer sayi değişkeninin içinde 5 ifadesinin yanı sıra rakam olmayan bir ifade olsaydı yine hatayla karşılaşacaktık.

var sayi:String="5"
Int (sayi)!+4

NOT:  Yukarıdaki Int sayi (sayi) ifadesinin sonundaki ünlem (!) işareti bu değerin nil yani boş olmayacağını anlatmaktadır.


Tip dönüşümü sadece int ve string ifadeleri arasında olmamaktadır . Ondalık sayi tipindeki bir değişkenle  tam sayı tipindeki bir değişken için de tip dönüşümleri önem arz etmektedir.


var sayi1:Float =13.5
var sayi2:Int=4
print(sayi1 * sayi2)

Float tipteki bir sayı ile int tipindeki bir sayıyı çarpma işlemine tabi tutmak istediğimizde  aşağıda ki örnekte gördüğünüz hatayla karşılaşıyoruz.

var sayi1:Float =13.5
var sayi2:Int =4
print (sayi1 *sayi2 )   (hatalı kısımdır)


Bu hatadan kurtulup istediğimiz sonuca varmak için sayi1 veya sayi2 değişkeninin tipini değer değişkeninin tipiyle aynı yapmalıyız.
Şuna dikkat etmeliyiz ki eğer sayi1 değişkenin tipini değiştirip tam sayı bir tip yaparsak veri kaybı ile karşılaşırız. Bunun sebebi ondalıklı bir sayı olması ve tam sayı tipine çevirdiğimizde aşağıda göreceğiniz üzere  sayının ondalıklı kısmı silinir ve geriye tam sayı kısmı kalır.


print(Int(sayi1))
/*Sonuç
13

*/

 Aşağıdaki kod satırında sadece sayi2 üzerinde tip dönüşümü yapmış olduk.

print(sayi1 * Float (sayi2))
/*Sonuç
54.0
*/

 Yukarıdaki örnekte eğer sayi2 yerine sayi1 değişkeninin tipini değiştirseydik sonuç aşağıdaki gibi olacaktı ve sonuca dikkat ederseniz veri kaybı yaşamış olacaktık .

print (Int(sayi1) *  sayi2 )
/* Sonuç
52
*/


SABİT TANIMLAMA

Bir değişkene atadığımız değeri sonraki satırlarda istediğimiz kadar değiştirebiliriz.  Bazı durumlarda ise tanımladığımız değişkene sadece bir defa değer ataması  yapılmasını ve daha sonra atanan bu değerin değiştirilmemesini isteyebiliriz.  Örnek olarak pi sayısı verilebilir. Bu tip durumlarda değişken yerine sabit tanımlamalıyız.
Sabit tanımlamanın değişken tanımlamaya göre sadece 1 farkı bulunmaktadır. Bu farkta var ifadesi yerine let ifadesinin kullanılmasıdır.

Tanımlama Şekli :

let değum_tarihi:Int=1991

NOT :
Bu konu hakkında şunu da bilmeliyiz ; Tanımladığımız sabit ister sayısal olsun ister metinsel ,bu sabitin değerini değiştirmeye yeltenecek herhangi bir işleme tabi tutamayız.   

       

15 Aralık 2016 Perşembe

TAM SAYI TİPLERİ

Tam sayı tipleri sadece tam sayı ifadeleri saklayabilen veri tipleridir. Aşağıdaki tabloda bu veri tiplerini ve özelliklerini görebilirsiniz.


NOT:   8 bitlik işaretli veri tipi 28=256 sayı alabilir. İşaretli olduğu için ise - 128 ile +127 arasındaki değerleri alabilir.


Tanımlama Şekli :   1.var sayi1:Int//İlk değer ataması yapılmamış değişken
                                2. var sayi2:Int=25 // İlk değer ataması yapılmamış değişken



Birinci tanımlama şekli ile ikinci tanımlama şekli arasında tek fark , ikinci tanımlamada ilk değer ataması yapılmıştır. İster ilk değer ataması yapılmış olsun , ister yapılmamış olsun sonraki satırlarda değişkene tekrardan değer ataması yapılabilir. Değer ataması yapılmış bir değişkene ve sonradan tekrar değer ataması yapılır ise önceki atanan değer bellekten silinir.

Bir sonraki resimde numaralandırılmış kısımları inceleyelim :)



1. Play ground uygulamasını ilk açığımızda zaten var olan kodlar.
2. Biraz önce tanımladığımız değişkenleri görüyoruz. Birinde ilk değer ataması yapılmış diğerinde yapılmamıştır.
3.İlk değer ataması yapılmış olan değişkene 10 değerini atıyoruz.
4. İlk değer ataması yapılmış ve 25 değeri verilmiş olan değişkene  20 değerini atıyoruz.  Bu satırdan sonra artık bellekte 25 değeri değil 20 değeri saklanmaktadır.
5. Print komutu ile bir değişkenimizde saklı değeri alt kısımda yer alan konsolda görebiliyoruz.
6. Konsol panelini açıp kapamaya yarayan düğme.
7.Konsol ekranımız yer almaktadır.


Int türündeki veriler üzerinde matematiksel işlem yapabilirsiniz. Burada dikkat etmemiz gereken nokta iki Int tipindeki veriyi matematiksel işleme tabi tuttuğunuzda çıkan sonuç tam sayı tipinde olacaktır. Yani kalanlı  bir bölme işleminde kalan gösterilmeyecektir.


REEL SAYI TİPLERİ

Ondalık sayıları saklayabilen değişken  tipleridir. Reel sayı tipleri sadece ondalık değil tam sayıları da kapsamaktadır. Ondalık sayıları değişkende tabi tutmak istediğimiz de   integar gibi tam sayı tipleri yetersiz kalmaktadır.  Burada başvurmamız gereken veri tipleri float veya double olmalıdır.


Tanımlama Şekli
                                                        var ondalikSayi1:Float=10.2
                                                        var ondalikSayi2:Double = 5.5

Reel sayı tiplerinde yapacağınız bölme işlemlerinde kalan varsa gösterilecektir.


var sayi1:Float =19.3
var sayi2:Float=3
sayı1/sayi2


                                                                   MANTIKSAL TİPLERİ                                                        

Makine dilinin iki temel karakteri olan 0 veya 1 değerinden sadece bir tanesi saklayan veri türüdür.  Bellekte en az yer kaplayan veri  türü de yine mantıksal tiplerdir.  Programlamada 0 değeri false , 1 değeri ise true olarak karşımıza çıkar.


Bool Veri Tipi

True veya False değerlerinden sadece bir tanesini saklayabilen veri tipidir. 1 bayt'lık yer kaplar . Genellikle askerlik durumu , evli-bekar ,kadın erkek gibi 2 ihtimalli bilgilerde kullanılır. 

Tanımlama şekli :

var evli:Bool= false

14 Aralık 2016 Çarşamba

VERİ TÜRLERİ

Biraz önce verilerin hafızada saklandığını söylemiştim.  Bellek yönetimi bizim için önemli .  Her ne kadar günümüzdeki bilgisayarların geçici belleği  ( RAM ) genellikle yüksek olsa da mobil aygıtları veya Apple Watch gibi aygıtları düşündüğümüzde bellek  konusunda çok rahat olmamalıyız.  Bellek yönetimine en iyi şekilde hükmetmek için veri türlerini  ve bu verileri türlerinin özelliklerini iyi bilmeliyiz.


 METİN TABANLI TİPLER    
Adında anlaşılacağı üzere metin tabanlı ifadeleri saklamak için kullanılan veri veri tipleridir.


STRİNG VERİ TİPİ

Metin tabanlı ifadeleri sakladığımız bir veri türüdür. String türde bir değişkenin içinde sayısal bir veri saklamamız mümkündür . Ancak saklayacağımız sayısal veriler metin tabanlı olarak saklanmaktadır.  Eğer string değişken içerisinde bir sayıyı sayı tabanlı bir işleme tabi tutmak istiyorsak tip dönüşümüne abi tutarak sayısal bir türe dönüştürmemiz gerekecektir.


NOT :  Metin tabanlı bir değişene değer ataması yapmak istersek , atanacak olan değeri çift tırnak ("") içinde yazmamız gerekmektedir.

Tanımlama Şekli  : var metin1:String
                                varmetin2:String = "Amasya"

Aşağıdaki örnekte iki string verinin birleştirilmesini görmekteyiz.   String ifadelerin birleştirilmesine , string verilerde toplama işlemi de denilmektedir.

ÖRNEK : 
var isim.String = "Kardelen"
"Merhaba " + isim


CHARACTER VERİ TİPİ :

Saklayacağımız karakter harf ,  rakam veya bir noktalama işareti olabilir .

 
NOT:  String veriler character verilerin bir araya gelmesiyle meydana gelir.


 Character veri tipiyle bilmemiz gereken son bilgi ise iki baytlık bir veri tipidir.


Tanımlama Şekli :   var karakter1:Character
                                 varkarakter2:Character="!"





DEĞİŞKEN TANIMLAMA VE UYULMASI GEREKEN KURALLAR !!!

Swift programlama dilinde değişken tanımlamak en basit hali ile aşağıdaki örnekteki gibidir.
ÖRNEK: var isim = "Kardelen"
 Bu değişkeni inceleyecek olursak var ifadesi ile değişken tanımlayacağımızı belirtiyoruz. var ifadesinden sonra değişkenin ismini yazıyoruz. Sonrasında ise = ile değişkene bir değer ataması yapıyoruz . Bu öğrendiğimiz kalıpta oluşturduğumuz değişkenlere  = ile değer ataması yapmamız gerekmektedir.
Bu aşamalardan sonra 3 tane noktaya dikkat etmeliyiz .
1. = karakterinden önce ve sonra boşluk bırakmalıyız.
2. Değişkende tür belirtmedik.
3. Değişkene atadığımız değer metinsel bir ifade olduğu için "" (çift tırnak ) içine yazdık.

DEĞİŞKEN NEDİR ?

İster bilgisayar olsun , isterse mobil cihazlar olsun kullanıcının muhatap olduğu kısım her zaman işletim sistemidir.
Değişkenler  genel olarak verileri saklayıp daha sonra tekrar tekrar kullanmak için kullanılan yapılardır.  Değişkenler sayesinde verilerimizi istediğimiz isim altında hafızada geçici olarak saklayabiliriz.

XCODE ORTAMINI TANIMA


XCode programını ilk açtığımızda bizi karşılayan ekranda ister yeni bir proje oluşturabilirsiniz. İstersek sağ taraftaki panelden daha önce oluşturduğumuz bir projeyi  açabiliriz.  Proje oluşturmadan önce Swift dilinin temellerini atmamız gerekmektedir. Bunun için XCode programının bize sunduğu imkanlardan sonuna kadar yararlanacağız. Playground proje türü daha çok ufak oyun uygulamaları , kod parçalarını derlemeye gerek kalmadan deneme ve hızlı sonuç alma , algoritma öğrenme /öğretme işlemleri için üretilmiş bir türdür.

Playground projesi oluşturmak için yukarıdaki resimde gördüğünüz üzere Get started with a playground seçeneğini seçmeliyiz. Bu seçeneği seçtikten sonra karşımıza gelen ekranda Name ve Platform olmak üzere iki tane alan bulunmaktadır.

Bu alanlardan Name kısmına proje için belirteceğimiz ismi girmeliyiz. Platform kısmına ise bize üç seçenek sunulmaktadır. Bunlar : OS X , İOS ve tvOS seçenekleridir . tvOS adından anlaşılacağı üzere Tv vb. aygıtlara , OS X  Apple firmasının masaüstü işletim sistemidir. OS X ise Mac bilgisayarlarda standart  olarak gelen işletim sistemidir. Diğer yandan , İOS ise İPhone ve İPad gibi mobil cihazlar için kullanılmaktadır.  Seçtiğimiz platforma göre kodlar kısmen de olsa farklılık göstermektedir. Özellikle İOS ile OS X  için yazdığımız kodlarda ciddi farklılıklar bulunmaktadır.
Masaüstü uygulamalar için Cocoa proje türü kullanılmaktadır. 
Sırada karşımıza çıkacak ekranda ise oluşturacağımız projeyi kaydedeceğimiz yer  sorulacaktır. Burada istediğimiz bir yeri seçerek sağ alt taraftaki  Create  butonuna tıklayın.,

Playground proje türünde ortam çok sade ve basittir. Yukarıdaki resimde 3 tane temel kısım görmekteyiz.

  • Birinci kısım en çok muhatap olacağımız kısımdır. Kodlarımızı birinci kısma yazacağız Playground uygulamasına has olarak.
  • İkinci kısımda yazdığımız kodların çıktısını (sonucunu ) göreceğiz. Daha önce de belirttiğim gibi derleme işlemine gerek kalmadan yazdığımız kodların sonucunu hızlıca göreceğiz.
  • Son olarak değinmemiz kısım ise Üçüncü kısım olan butonların yer aldığı kısımdır. Burada ki butonlar panelleri gizlemeye , tekrar göstermeye vb. işlemlere yaramaktadır.





13 Aralık 2016 Salı

XCODE PROGRAMINI İNDİRME VE YÜKLEME

Apple 'ın işletim sistemlerinde (OS X ) bir uygulama yüklemek isterseniz ilk başvurmanız gereken yer App Store olmalıdır. Eğer yüklemek isteğiniz uygulama App Store  ' da mevcut değilse başka kaynaklara yönelebilirsiniz. Bunun sebebi ise App Store güvenlik açısından Apple garantisi taşımaktadır. Biz de XCode uygulamasını App Store 'dan indireceğiz. App Store 'u açmak için bir çok yol bulunmakla beraber en kolayı Dock panelinden açmak olacaktır.


App Store açıldığında aşağıda benzer bir görüntüyle karşılaşacağız.

Resimde dikkat edeceğiniz üzere Sağ taraftaki kısımda kategoriler yer almaktadır. Kategorilerden Geliştiriciler için Uygulamalar yazısına tıkladıktan sonra aşağıdaki gibi bir görüntü elde edeceksiniz.

Yukarıdaki görüntüyü elde etmek için isterseniz App Store penceresinde sağ üst tarafta bulunan arama kutusuna xcode yazıp ENTER   tuşuna basmanız yeterlidir. Bazı bilgisayarlar  da XCode yüklü olduğu için App Store ' da XCode uygulamasının altında GÜNCELLE  yazmaktadır. Eğer bilgisayarda yüklü olmasaydı İNDİR yazacaktı.  İNDİR  butonuna basarak uygulamanın bilgisayarımıza yüklenmesini başlatabiliriz. Yüklenme esnasında sizden sadece Apple hesabınızı ve şifrenizi isteyecektir. Geriye kalan işlemler otomatik olarak tamamlanacaktır.
Yükleme işlemi bittikten sonra Finder ' da (yani herhangi bir pencerede ) sol taraftaki panelden uygulamalara tıklayarak XCode uygulamasına erişebilirsiniz ve isterseniz XCode uygulamasını Dock paneline sürükleyerek her zaman erişebileceğiniz bir yerde durmasını sağlayabilirsiniz.

  



ANDROİD VE İOS



Android denildiğin de akla gelen ilk programlama dili Java'dır. Tabi ki Swift ve Java dilini karşılaştırmak oldukça saçma bir durum. Buna bir kaç sebep söyleyebiliriz.  Örneğin ; Java'nın platformdan bağımsızlığı söz konusuyken Swift dilinde sadece Apple cihazlar için ürün geliştirilesi bunlardan  birisi. Diğer bir belirgin fark ise  Java dili yıllardan beri oturmuş bir programlama diliyken Swift dili yeni olduğundan  Swift programcıları bazı durumlarda mağdur olabilmektedir. Swift 1 ile yazdığınız kodların nerdeyse tamamı Swift 2'de çalışmamaktadır. Tabi bu söylediklerimden sonra Swift diline karşı hisleriniz asla olumsuz olmasın. Biraz önce de bahsettiğim gibi para kazandırma anlamında en iyi ikinci programlama dili ile karşı karşıyasınız.
İOS işletim platformunun bir çok insan tarafından daha prestijli ve daha şık göründüğü aşikar. Özellikle İPhone 6 satışlarından da bunu  daha net anlayabiliriz. Tabi donanımsal etmenlerin de ilgisi var fakat insanların bir çoğu teknik özelliklerden anlamamaktadır. Sadece yüzeysel olarak özelliklere bakmaktadırlar. Özellikle İPhone ve İPad cihazlarda  donanım ve yazılım olarak Android sistemlere nazaran daha fazla uyumluluk söz konusu. Android cihazlar farklı farklı markalar tarafından kendi temaları ile kullanılabilmektedir.

12 Aralık 2016 Pazartesi

SWIFT OBJECTİVE-C VE DİĞER DİLLER

SWIFT OBJECTİVE-C VE DİĞER DİLLER

Objective-C dilinin isminden de dikkat edeceğiniz üzere C dilinden gelmektedir. Bu Objective-C dilini her ne kadar güçlü yapsa da hem öğrenilmesinin zorluğu hem de programcıların kodlama esnasında yaşadığı yönetim zorlukları oldukça fazlaydı. Kısmen de olsa Apple firması bu sebeplerden dolayı 2014 yılında Swift programlama dilini duyurdu.
Apple firmasının Objective C dilinden Swift diline geçmesine sebep olan diğer etmenleri anlayabilmemiz için C programlama dili günümüzde kullanılan bir çok programlama dilinin atası konumundadır. Bunlardan en bilindikleri JAVA ve Objective-C  dilleridir.
C , her ne kadar çok güçlü bir programlama dili olsa da programcılar tarafından öğrenmesi kolay değildir. Ayrıca C ile büyük projeler geliştirmek ciddi uzmanlık gerektirecek kadar zor. Bunun  sebebi ise hassas bir dil olması ve hata yönetiminin zor olmasıdır. Bu zorlukların üstesinden gelebilmek için Objecive-C dilinde yapısal programlama kullanılmaktadır. Yapısal programlama problemlerinin ufak parçalara bölünerek giderilmesi mantığına dayanan bir yapıdır. Günümüzde ki bir çok programlama dili hala yapısal programlamayı kullanmaktadır. Android  platformu için geliştirilen uygulamalar ve Google Play üzerindeki uygulama zenginliği her geçen gün artarken App Store'un bu zenginliği yakalayamaması Apple firmasının geliştiriciler için bazı kolaylıklar sunmaya itti. Bunun sonucunda da biraz önce belirttiğim üzere Swift Programlama dili ortaya çıktı.
Swift programlama dilinin ortaya çıkması her ne kadar bazı sorunlar beraberinde getirse de Apple'ın bu konuda  çözümleri oldukça esnekti. Ayrıca her ne kadar Swift ile Objective-C dili çok farklıymış gibi görünse de mantıksal benzerlikler Apple adına ciddi mühendislik becerileridir. Swift programlama dili piyasaya çıktığında yeni bir programlama dili olmasından ötürü bazı korkuları da beraberinde getirdi. Yeni bir programlama dilinin güçlü olmaması konusunda insanların çekinceleri vardı. Fakat kısa bir süre sonra bu korku yerini güvene bıraktı.
Hem swift dilinin güç ve esneklik olarak beklentilerin üstünde olması hem de Objecive-C dilinin kütüphanelerini kullanabilmesi geliştiricileri mutlu etmeyi başardı. Apple mühendislerinin Swift  üzerindeki başka bir beceri de geliştiricinin Objecive-C dilinde geliştirdiği modülleri Swift dilinde de problemsiz bir şekilde kullanabilmesidir.
Objective-C ile swift dilinin en byük ortaklığı belki de sadece İOS ve OS X platformları için uygulama geliştirilebilmesidir. Aslında bu biraz Apple firmasının dijital ortamdaki ırkçılığından kaynaklanmaktadır. Tabi buna anlam vermek az da olsa mümkün. Çünkü swift dili ile diğer mobil platform için uygulama geliştirmemizi sağlayan  diller  arasında belirgin farklar var. Bunlardan en çok göze çarpan farklılık tasarımdaki farklılıklardır. Swift programlama dilinde geliştirdiğiniz uygulamalara harika görsellikler katabiliyorsunuz. Swift programlama dilini kullanmanızın bir farklı avantajı ise hedef kitlenizdir. Yani İPhone veya İPad kullanıcıları hatta MAC kullanıcıları Windows veya Android  kullanan kişilere nazaran uygulamalara daha fazla para harcamaktadır. Bu da sizin daha fazla kazanacağınız anlamına gelmektedir.
Swift programlama dili  Objective-C kadar güçlü bir dildir. Hem güçlü hem de konuşma diline yakın olması ise sık sık dile getirdiğim gibi Apple mühendislerinin büyük bir başarısıdır.