You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2.[Сайт для пошуку координат latitude.to](https://latitude.to/map/ua/ukraine/regions)
6
33
7
34
```
8
35
Задачка:
@@ -28,29 +55,6 @@ P.S. Міста можна хардкодити (id чи геолокацію,
28
55
- пакет api потрібно перевістити в середину пакету data (нетвокрінг, як і зберігання даних це частина data шару)
29
56
- Спробуй використовувати ViewBinding
30
57
- Спробуй зробити завантаження даних через пагінацію (ми наперед знаємо кількість областей)
31
-
- ListAdapter міняємо на RecyclerViewAdapter
58
+
- ListAdapter міняємо на RecyclerViewAdapter
32
59
- Не варто писати все в одному методі. Краще в тому ж методі 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 архіву.
0 commit comments