Skip to content

Commit 272f91c

Browse files
committed
Update README.md
1 parent 24c410d commit 272f91c

File tree

1 file changed

+30
-26
lines changed

1 file changed

+30
-26
lines changed

README.md

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,34 @@
22

33
Мобільний застосунок для відстеження погоди. Android 5.0 і вище (Lollipop API 21+).
44

5-
https://github.com/vvban/task1-android-app/assets/48902183/c49d949e-a46b-4be3-a017-515920add688
5+
6+
7+
(Координати міст не точні, тому є похибка в кліматичних умовах)
8+
9+
### Реалізація
10+
1. MVVM архітектура.
11+
- data
12+
- data.api.weather
13+
- ui.cityDetail
14+
- ui.cityList
15+
- utils
16+
2. Патерни
17+
- Adapter
18+
- Factory
19+
- Singleton
20+
3. Використано ViewBinding, для Retrofit застосовано GsonConverterFactory.
21+
4. Ввімкнене кешування запитів на 15 хвилин та кеш для картинок.
22+
5. Бібліотеки
23+
- [Retrofit](https://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java.
24+
- [Picasso](https://square.github.io/picasso/) - A powerful image downloading and caching library for Android.
25+
26+
### Недоліки рішення
27+
1. В безплатній версії плану сервісу погоди не можливо здійснити bulk request, тому для кожного міста відправляється окремий запит.
28+
2. Картинки погоди стягуються через CDN з автоматичним кешуванням від Picasso, ефективніше буде завантажувати їх із zip архіву.
29+
30+
### Корисні посилання
31+
1. [API сервіс погоди weatherapi.com](https://www.weatherapi.com/api-explorer.aspx#current)
32+
2. [Сайт для пошуку координат latitude.to](https://latitude.to/map/ua/ukraine/regions)
633

734
```
835
Задачка:
@@ -28,29 +55,6 @@ P.S. Міста можна хардкодити (id чи геолокацію,
2855
- пакет api потрібно перевістити в середину пакету data (нетвокрінг, як і зберігання даних це частина data шару)
2956
- Спробуй використовувати ViewBinding
3057
- Спробуй зробити завантаження даних через пагінацію (ми наперед знаємо кількість областей)
31-
- ListAdapter міняємо на RecyclerViewAdapter
58+
- ListAdapter міняємо на RecyclerViewAdapter
3259
- Не варто писати все в одному методі. Краще в тому ж методі onCreate викликати інші методи. До прикладу: observeData, initAdapter, initViews...
33-
```
34-
35-
(Координати міст не точні, тому є похибка в кліматичних умовах)
36-
37-
### Реалізація
38-
1. MVVM архітектура.
39-
- data
40-
- ui.cityDetail
41-
- ui.cityList
42-
- utils
43-
2. Патерни
44-
- Adapter
45-
4. Ввімкнене кешування запитів на 15 хвилин та кеш для картинок.
46-
5. Бібліотеки
47-
- [Retrofit](https://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java.
48-
- [Picasso](https://square.github.io/picasso/) - A powerful image downloading and caching library for Android.
49-
50-
### Недоліки рішення
51-
1. В безплатній версії плану сервісу погоди не можливо здійснити bulk request, тому відправляються окремо 26 звернень. Міста завантажуються по одному і так само додаються в список. Залежно від кількості локацій можна зробити баланс між швидкістю показу перших елементів та часу очікування даних з сервера. Наприклад, завантажувати по 100, щоб користувач довго не чекав на відповідь від сервера, і щоб швидко появилася перша інформація на екрані.
52-
2. Картинки погоди стягуються через CDN з автоматичним кешуванням від Picasso, ефективніше буде завантажувати їх із zip архіву.
53-
54-
### Корисні посилання
55-
1. [API сервіс погоди weatherapi.com](https://www.weatherapi.com/api-explorer.aspx#current)
56-
2. [Сайт для пошуку координат latitude.to](https://latitude.to/map/ua/ukraine/regions)
60+
```

0 commit comments

Comments
 (0)