
Giriş videosu. İçerik oluşturmaya başlarkenki temel motivasyonumdan bahsettiğim. Kurs ilerleyişinden bahsedip eğitimi tamamladıktan sonra kayda aldığım video olduğu içinde kurs süresinde yapacağımız projenin nihai halini gösterebildiğim bir video. Lütfen izleyin; "Şuna hiç değinilmemiş, şu anlatılmamış" durumu olmasın diye neyi neden ve ne kadar anlatacağım ile ilgili açıklamaları burada yaptım.
Temel manada "TypeScript nedir?" sorusuna cevap vermeye çalıştıktan sonra proje taslağını anlattım.
Bu video'ya başlamadan önce bilinmesi gereken şey yarn ya da npm gibi paket yöneticileri ile proje oluşturacağımız zaman oluşturmak üzere olduğumuz projede kullanmak istediğimiz template'i belirtebiliyoruz. Bu videoda TypeScript için düzenlenmiş React Template'i kullanmayı öğrenip. Temel TypeScript tiplerini öğrenmiş olacağız.
Projeye başlamadan önce ufak bir TypeScript tekrarı.
Bu videoda Fonksiyonel tipte bir React Bileşeni nasıl oluşturulur, props objesinde olacak alanlar nasıl belirtilir öğrenmiş olacağız.
Bu videoda Sınıf tipinde bir React bileşeni nasıl oluşturulur, State ve props objelerinin alanları nasıl belirtilir bunu öğrenmiş olağız bir yandan da kartlarımızı listeleyecek ve oyunun temel mekaniklerinin gerçekleştirileceği bileşenimizi geliştirmeye başlamış olacağız.
Bu bölümde bir Kart nesnesinde hangi alanların ve bu alanların değerlerinin ne olacağını belirleyecek ve temel kart bileşenimizi fonksiyonel tipte bileşen olarak oluşturacağız.
Bu videoda bir kart tıklandığı zaman içerik gösterme işlemini nasıl yapacağımızı göreceğiz ve aynı anda sadece iki kartın tıklanmış olmasını sağlayacağız.
Tıklanan iki kartın içeriklerinin aynı olup olmadığının kontrolünü gerçekleştireceğiz. Bu kontrol sonunda içerikler aynı ise kartların durumlarını "matched" yapacağız ya da eşleşmedi ise "unmatched" olarak güncelleyeceğiz.
Bu videoda sınıf tipi bileşenlerde state güncelleme ile ilgili sıkça yapılan hatalardan olan peşpeşe state güncelleme işlemi ve sebep olduğu karmaşaların anlaşılması adına detaylı bir inceleme yapacağız, bu hatalardan nasıl kaçınabileceğimizi göreceğiz.
Bu videoda kart eşleşme kontrolündeki hatayı düzeltip oyuncuya dilediği zaman desteyi sıfırlayıp yeni bir kart destesi oluşturma seçeneği ekleyeceğiz. Tabi burada karşılaşacağımız "Referans yoluyla kopyalama"(copy by reference) hatası ile karşılaşıp nasıl çözeceğimizi de göreceğiz.
Bu "Referans yoluyla kopyalama"(copy by reference) hatası pek çok kez geliştiricilerin karşılaştığı ve gerek bilgi eksikliği gerek dikkatsizlik nedeni ile üzerinde epey vakit kaybettiği bir hata olduğu için hatanın sebebinin ve çözüm yönteminin anlaşıldığından emin olun bir sonraki videoya geçmeden
Bu videoda ise bir diğer hatamız olan tıklanan iki kartın kontrolü esnasında tıklanan kartların kontrol bittikten sonra içeriklerinin gösterilmesi hatasının nedenini inceleyip çözüme kavuşturacağız.
Bu videoda oyunumuzun oynanabilirliğini artırmak için en gerekli özelliğini ekleyeceğiz; "Her seferinde rastgele bir kart destesi oluşturma". Bu sayede oyuncuya her seferinde bir öncekinden farklı bir kart destesi verebileceğiz. Tabi bununla birlikte oyuncuya bir de zorluk seviyesi seçme imkanı vereceğiz. Böylece oynamak istediği kart sayısını bir ölçüde kendisinin belirlemesine imkan sağlayacağız.
Bu videoda zorluk sistemini geliştirmeyi sürdürürken bir yandan da oyuncunun bu zorluk seviyelerinde yaptığı en iyi(en az) hamle sayılarını da "En iyi skor" bilgisi altında hafızada tutacağız.
Bu videoda oyuncu tüm kartları eşleştirdikten sonra oyunu bitti durumuna getirip, oyuncunun yaptığı hamle sayısını ekrana yazdırma işlemini yapacağız. Tabi bu yeni yapılan hamle sayısı en iyi skor bilgisinde tutulan değerden daha küçük ise yeni en iyi skor bilgisinin güncellenmesi işlemini de gerçekleştireceğiz.
Bu videonun ilk kısmında kart içeriklerinin daha hoş görünmesi için FontAwesome ikon kütüphanesinden faydalanarak kart içeriklerini hayvan ya da onları temsil eden çizimler ile değiştireceğiz.
Merhabalar,
İlk olarak nasıl bir uygulama yapacağımızı görmek isterseniz:
https://memcard.web.app/
adresine giderek uygulamayı test edebilirsiniz.
İkinci olarak kurs ile ilgili 4 temel uyarım olacak:
Kurs temel Seviye React bilgisine ihtiyaç duymaktadır.
Kurs içeriği "scripted" yani metin ve içeriği önceden hazırlanmış değil, tamamen spontane ilerliyor ve anlatım bu nedenle akıcı olmayabilir.
Devrik ve kendini tekrar eden cümleler sıkça duyabilirsiniz.
Kayıt için tam profesyonel bir mikrofona sahip olmadığım için ses seviyesi yetersiz olabilir ya da çok temiz gelmeyebilir.
Kurs hakkında konuşacak olursak;
Eğitimde TypeScript ve React kullanılarak bir Hafıza Oyunu yapacağız. Bunu yaparken de TypeScript'i anlayabilmek adına temel bir JavaScript bilgisi olmak ile birlikte React konusunda da temel bilgiye sahip olmak gerekmekte. Temel bilgi dışında State Yönetimi, Hooks gibi ileri sayılabilecek konular anlatılmayacak ve ihtiyaç da duymayacağız(tabi bunları öğrenmek istiyorsanız önceki eğitimlerime de bakabilirsiniz). Çünkü eğitim boyunca yapılan işlemler temel aritmetik ve mantık işlemlerinden oluşan metodlar ile gerçekleştirilecek.
Sanırım Eğitim için söyleyebileceklerim bu kadar.
Umarım faydalı bir eğitim olur.
Anlaşılmayan kısımlarda soru sormaktan çekinmeyiniz.
"Happy Coding!"
Genel Bilgilendirme
Eğitimlerimde günümüzün "hello world"ü diyebileceğimiz "ToDo" app ya da benzeri uygulamalar yapmak yerine farklı uygulamalar ile "İlgi çekiciliği" yakalamayı, bununla birlikte de anlatmak ve anlaşılmak istediğim konulara odaklanmayı tercih ediyorum. Aynı işin tekrar tekrar yapıldığı bir eğitim olmaması için elimden geldiğince de çabalıyorum.