-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add GAID fetching and saving to google_ad_id #93
base: master
Are you sure you want to change the base?
Conversation
comfrt1k
commented
Dec 24, 2024
- https://github.com/rees46/development/issues/417
import com.google.android.gms.ads.identifier.AdvertisingIdClient | ||
|
||
class GaIdDataSource { | ||
internal fun fetchGaId(context: Context): String = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не уверен, что есть смысл в этом классе DataSource. Кажется проще сразу вызвать в репозитории нужную функцию. Я понимаю, что у нас для некоторых других составляющих имеется DataSource, и в части этих мест от него, на мой взгляд, отсутствует какой-либо толк. По крайней мере, я не понимаю необходимость наличия таких классов в ряде случаев.
Общая проблема в том, что у нас отсутсвует единая архитектурная карта приложения, которой мы могли бы следовать при добавлении новой функциональности.
А текущие архитектурные решения, если я правильно понял Андрея, не являются удовлетворительными.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Удалила data source, перенесла логику получения gaid в репозиторий
- Репозиторий переименовала на AdvertisingRepository
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
advertising.repository.kt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
advertising.repository.kt
Что это значит?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Кодстайл котлина говорит о том, что если в файле единственный класс/интерфейс, то название файла должно быть таким же, как и имя класса/интерфейса. А так же название файла должно быть с большой буквы и в CameCase стиле.
Мы отходим от каждого из принятых правил кодстайла котлина для нэйминга файлов? И называем их с малькой буквы, а все слова разделяем через точку?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Я не против нейминга котлина, однако, предпочитаю camelCase, а у тебя PascalCase, так как у нас вся кодовая база приводится к данному контракту. Далее
- Если вы научитесь именовать классы "говорящими" - я не против, называйте файлы также как классы
- Не всё разделяем точками, только специфики, которые не относятся напрямую к неймингу, вот пример из той же доки https://kotlinlang.org/docs/coding-conventions.html#multiplatform-projects
...sdk/src/main/kotlin/com/personalization/sdk/domain/usecases/userSettings/FetchGaIdUseCase.kt
Outdated
Show resolved
Hide resolved
...sdk/src/main/kotlin/com/personalization/sdk/domain/usecases/userSettings/FetchGaIdUseCase.kt
Outdated
Show resolved
Hide resolved
...ization-sdk/src/main/kotlin/com/personalization/sdk/data/repositories/gaid/GaIdDataSource.kt
Outdated
Show resolved
Hide resolved
…etching the advertising ID and move logic to repository
...in/kotlin/com/personalization/sdk/data/repositories/advertising/AdvertisingRepositoryImpl.kt
Outdated
Show resolved
Hide resolved
...sdk/src/main/kotlin/com/personalization/sdk/domain/usecases/userSettings/FetchGaIdUseCase.kt
Outdated
Show resolved
Hide resolved
import com.personalization.sdk.domain.repositories.UserSettingsRepository | ||
import javax.inject.Inject | ||
|
||
class FetchAdvertisingIdUseCase @Inject constructor( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Этот юзкейс можно назвать InitializeAdvertisingIdUseCase. Он будет выполнять роль получения юзкейса при инициализации SDK и сохранения его в SharedPref.
При этом нужен еще один юзкейс - GetAdvertisingIdUseCase, который уже будет позволять получить юзкейс из SharedPref. Именно оттуда и будут брать токен при работе с приложением.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Переименовала usecase и добавила в sdk метод для получения gaid
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
*.usecase.kt