Skip to content

Commit 7cf8d3d

Browse files
author
Serkan
committed
Add readme md
1 parent bc85891 commit 7cf8d3d

File tree

7 files changed

+55
-1
lines changed

7 files changed

+55
-1
lines changed

README.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
WaaperHD
2+
# WaaperHD
3+
Proje webservisten aldığı görsel linklerini kullanıcıya sunup kullanıcının ister ise görseli indirip ister ise görseli telefonunda arkaplan olarak kullanılmasını sağlıyor
4+
5+
# Yapı
6+
7+
- Yapı **multi modüler** bir yapıdır.
8+
- Geliştirme yapılırken **MVP** kullanılmıştır.
9+
- **Clean architecture** kullanılmıştır
10+
- **One activity multiple fragment** yapıya sahiptir (Navigator olarak https://github.com/kemaltunc/basic-custom-navigation-component kullanılmıştır)
11+
- **ViewBinding** kullanıldı
12+
- Recylerview'da **Diffutil** kullanıldı
13+
- Multi modül içinde DI için **Dagger 2** kullanıldı
14+
15+
## Modüler yapı
16+
![](img/waaperHD.png)
17+
18+
### **core_utility**
19+
20+
Projede herhangi bir t anında ihtiyaç olacak fonksiyonları içeren modüldür.
21+
22+
### **core_network**
23+
24+
İnternete çıkacak requestleri yöneten modüldür. RxJava kullanır
25+
26+
### **core_local**
27+
28+
Local veri depolamak için kullanılan modüldür
29+
30+
### **base_mvp**
31+
32+
UI kısmının base aldığı sınıfların bulunduğu modüldür
33+
34+
35+
Projede genel olarak performansa ve kullanıcı deneyimine dikkat edildi. Bunun için pagination yaparken recylerviewın en altında request atmak yerine en alta yakınken request atması sağlandı. Ekran geçişlerinde kasma veya delay olmasın diye one activity multiple fragment kullanıldı.
36+
37+
# Code Generator
38+
39+
Projede fragment ve activityler el ile manuel oluşturulmak yerine https://github.com/hsmnzaydn/android-clean-feature-creator ile otomatik oluşturuldu. Projede kullanılan modüller kullanıldığı sürece generator sizin için minimum efor ile projenizin sınıflarını oluşturmayı sağlar.
40+
41+
# Fragment Yapısı
42+
43+
Fragmentin yaşam döngüsünden dolayı yönetmek zordur ve navigation architecture kullanımı oldukça zor ve karışık bunun için fragmentleri yönetmek için **Kemal Tunç'un** oluşturuduğu component(linki yukarıda) kullanıldı ve tüm view oluşurken işlemlerin tekrardan yapılmaması için initUI() ve againOpened() fonksiyonları oluşturuldu. Bir fragmente ilkkez giriliyor ise initUI() fonksiyonu tetiklenir ve tekrar bu fragmente gelinir ise againOpened() fonksiyonu tetiklenir.
44+
45+
# Bağımlılık Yönetimi
46+
Proje multi modül olduğu için bağımlılıkları tüm modüller için teker teker yönetilmesi yerine **dependencies.gradle** dosyasında yönetildi. Burada yapılan bir değişiklik tüm modülleri etkileyecektir.
47+
48+
# Multi Modüle Compile Time
49+
Proje multi modüle olunca projenin Compile süresi uzuyor bunu minimuma indirmek için modüllerin paralel compile olması ve gradle configürasyonlarının cachelenmesi sağlandı. Detaylar içinde **gradle.properties** dosyasına bakarbilirsiniz.
50+
51+
# Uygulama Görüntüleri
52+
<img src="./img/one.jpg" width="200">
53+
<img src="./img/two.jpg" width="200">
54+
<img src="./img/three.jpg" width="200">
55+
<img src="./img/four.jpg" width="200">

WaaperHD

-1
This file was deleted.

img/four.jpg

572 KB
Loading

img/one.jpg

1.46 MB
Loading

img/three.jpg

952 KB
Loading

img/two.jpg

1010 KB
Loading

img/waaperHD.png

20.8 KB
Loading

0 commit comments

Comments
 (0)