Cuma Temmuz 5th, 2019

Swift App – Fruitrise

ile Ebubekir Sezer

Merhaba Arkadaşlar, Bugün swift kullanarak basit bir uygulama geliştirdim. Uygulamanın ad Fruitrise bu uygulama ekran’da bir kutu kullanıcıyı karşılıyor ve kullanıcı bu kutuyu açmak için telefonunu sallayabilir veya open butonuna basabilir. Kutu açıldıktan sonra kullanıcının karşısına bir meyve çıkıyor ve kullanıcı bu meyveleri telefonu sallayarak veya roll butonuna basarak güncelleyebiliyor. Adım adım bu uygulamanın nasıl oluşturulduğunu anlatmaya çalışacağım.

İlk olarak Xcode’da bir Swift projesi oluşturuyoruz. Projeyi oluşturduktan sonra arka plan için bir UIImageView koyuyorum ve bunu ekrana sığacak şekilde ayarlıyorum. Arka planı ayarladıktan sonra Kullanıcının ekranda göreceği 3 şey olacak bunlar ekranın en top kısmında bulunan Başlık, Resim ve Buton. Bunları da Main Storyboard aracılığıyla ekliyorum ve oluşan ekran şu şekilde;

Burada bulunan Resimleri github hesabımda bulup alabilirsiniz. Projeme bütün gerekli olan resimleri ve icon’umu ekledikten sonra artık bunları kod aracılığıyla birbirleriyle ilişkilendirmeye başlıyorum. Ekranda görüdüğünüz butonu, başlığı ve UIImage’i(Kutu) View Controller tarafına ekliyorum. Meyveleri özelliklerini barındıran bir class tanımlayıp bu class’ı initiliaze ediyorum. Her seferinde farklı meyveler gelsin diyede bir tane random(rastgele) sayı tanımlıyorum.

    @IBOutlet weak var fruit_box_image: UIImageView!
    @IBOutlet weak var fruit_title: UILabel!
    @IBOutlet weak var myButton: UIButton!
    
    var randomNumber : Int = 0
    
    class Fruits{
        let fruit_name : String
        let fruit_image : String

        init(name:String,image:String) {
            fruit_name = name
            fruit_image = image
        }
    }

Artık nesnelerim’i tanımladıktan sonra buton’umun tıklanma işlemlerini yapıyorum. Meyveleri güncelleme işlemlerini bir fonksiyon içerisinde yazarsam daha kullanışlı ve temiz bir kod yazmış oluruz bu yüzden bir fonksiyon içerisinde meyveleri güncelleme işlemlerini yapıyorum.

    @IBAction func buttonClicked(_ sender: Any) {
        myButton.setTitle("Roll", for: .normal)
        updateFruit()
    }

    func updateFruit(){
        randomNumber = Int.random(in: 0...9)
        fruit_box_image.image = UIImage(named: AllFruit().fruit_list[randomNumber].fruit_image)
        fruit_title.text = AllFruit().fruit_list[randomNumber].fruit_name  
  }

Bu işlemleri de yaptıktan sonra geriye sadece telefonu salladığım zaman uygulamanın kendini güncellemesi ve farklı bir meyve ekrana getirmesi içi gerekli olan basit bir fonksiyon yazıyoruz zaten daha önce meyveleri güncelleyen fonksiyonu yazmıştık şimdi sadece bu fonksiyonu telefonun sallama işleminde kullanıcaz.

   override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
        updateFruit()
        myButton.setTitle("Roll", for: .normal)
    }

Uygulamamız hazır. Uygulamayı hazırlarken biraz MVC(Model-View-Controller) yapısında yapmaya çalıştım ama proje küçük çaplı olduğu için farklı sayfalar oluşturup yapmadım bunu. Uygulamanın ekran görüntüsü aşağıdaki gibi;

Uygulamaya buraya tıklayarak erişebilir, kodları inceleyebilirsiniz. Soru ve görüşleriniz e-mail veya yorum olarak belirtebilirsiniz.