Bu React Native Expo projesi, basit bir todo uygulaması içerir. Projede, görev eklemek, görevleri zorluğuna göre sıralamak, yapıldı olarak işaretlemek ve silmek gibi temel todo işlevleri bulunmaktadır. Bu işlemler asenkron çalışan fonksiyonlar tarafından uygulanır ve işlemler istenildiği gibi 1 saniye gecikmeli olarak çalışmaktadır. Kullanıcıların kolay bir şekilde uygulamayı kullanabilmeleri için tasarım basit ve anlaşılır tutulmuş, responsive ve user-friendly bir tasarım kodlanmıştır. Uygulama içerisinde task dökümanında istenilmeyen bir dizi ek özellik bulunmaktadır. Aşağıda bu extra özellikleri detaylıca anlatıyorum. Uygulamanın testleri için Jest kütüphanesi kullanılmış olup kullanıcının yapacağı basit işlemler ve sayfa render işlemleri test edilmiştir.
Projeyi geliştirirken aşağıdaki branch'leri kullandık:
- style: Uygulamanın tasarımsal değişiklikleri için kullanılan branch.
- taskFeatures: Görevlerle ilgili işlemlerin yapıldığı ve ek özelliklerin eklendiği branch.
- extraFeatures: Ekstra özelliklerin, örneğin görevlerin AsyncStorage'de tutulması işlemlerinin yapıldığı branch.
Proje bağımlılıklarını yüklemek için aşağıdaki adımları izleyin:
# Projeyi klonlayın
git clone https://github.com/umutlaguler/toDoTs
# Proje dizinine gidin
cd toDoTs
# Bağımlılıkları yükleyin
npm install
or
yarn install
Uygulamayı başlatmak için aşağıdaki komutu kullanabilirsiniz:
# Expo CLI ile başlat
expo start
İlgili branch'e geçmek için aşağıdaki komutları kullanabilirsiniz:
# Style branch'ine geçiş yapmak için
git checkout style
# TaskFeatures branch'ine geçiş yapmak için
git checkout taskFeatures
# ExtraFeatures branch'ine geçiş yapmak için
git checkout extraFeatures
- Uygulamanın tasarımı kullanıcı dostu olacak şekilde kurgulandı. Temel görev ekleme, görev silme ve yapıldı olarak işaretleme gibi işlemlere minimum parmak hareketi ile erişim sağlanmaya çalışıldı.
- Ayrıca farklı ekran boyutlarında hatasız çalıştırılabilmesi için de responsive bir şekilde kodlanılmasına özen gösterildi.
- Uygulamada kullanılan renk kodları ve Splash ekranında listelenen logo Rise teknolojiye aittir.
- Görevlerin device storage'da tutulması: Bu sayede kullanıcı uygulamayı kapatıp açtığında da görevleri listelenecektir.
- Görevler için zorluk seçimi: Kullanıcı görev eklerken zor, orta, kolay anlamına gelen 3 renkten birisini seçer ve görevler buna göre listelenir.
- Arama modülü eklendi: Eklenilen görevler üzerinde başlığa göre arama yapılabilir ve görevler filtrelenmiş şekilde listelenir.
- Görev sayısı kontrolü: Anasayfada kullancıya günün tarihi ve o gün yapması gereken kaç görevi olduğu bilgisi verilir.
Uygulamanın birim testleri için Jest kütüphanesi kullanıldı. Arama yapısı ve anasayfanın render edilmesi gibi basit kullanıcı işlemlerini simüle eden birim testler yazıldı.
- İOS