GoetzDeBouville / TakeYourJob

TakYourJob πŸ“± Android application built with Kotlin, MVVM+StateFlow, Clean Architecture

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Take Your Job

Diploma project at Yandex.Practicum course

badge-Android Kotlin Hilt

TakeYourJob app is using HeadHunter API
The app is created as diploma project.
Implemented options for searching for vacancies (with a custom filters by location, industry, salary), collect/remove vacancies from favorites, view details of an individual vacancy, change the application theme

Stack:

  • Android Studio
  • Coroutines + Flow
  • Arcitecture: MVVM+StateFlow, Single Activity + Android Navigation
  • DB: Room Persistent Library
  • Network: Retrofit2
  • DI - Hilt
  • Coil
  • WebView

Screencast

Getting Started πŸ› 

  1. Clone this repository to your local machine.

    git clone https://github.com/GoetzDeBouville/TakeYourJob.git
    
  2. Get application token (read)

  3. Open the project in Android Studio.

  4. For setting the application token, create file develop.properties in the project folder and add there the only one property:

hhAccessToken=my_access_token

Instead of my_access_token insert the HeadHunter API access token received after registration (point 2). After changing the value synchronize the project.

File develop.properties is ignoring by default. Values, texted into develop.properties file will be added to ypur app on building process that calls BuildConfig (read)

  1. Set up your Android device/emulator/simulator.

  2. Build and run the project.

Static analysis

A basic static analyzer - detekt - is configured in the project. It will check for a large number of standard errors when writing Kotlin code.

The detekt configuration file is located here. A description of the meaning of the rules can be found in the official detekt documentation - for example, here are the rules for the comments group.

To check for detekt errors in a project, open a terminal and run the command ./gradlew detektAll. After execution you will see a list of errors in the terminal output, if you have any, and next to each error there will be a link to a piece of code, where detekt a link to the piece of code where detekt found the error.

There is also a command set up in the project that fixes a large number of detekt formatting errors. To run it, open a terminal and run the command ./gradlew detektFormat.

Github Actions

The project uses the Github Actions service to configure CI. It allows automating basic application quality checks such as compilation of the project and running the static analyzer detekt. project and running the static analyzer detekt. CI configuration.

In order to allow automatic checks to run on each pull request created, you must do a few additional steps:

  • Activate Github Actions in your thesis fork.
  • And add the HeadHunter API token to the repository secrets.

Step 1 - Activate Github Actions

By default, Github disables customized Github Actions for each fork of the original repository. This is done in order to To ensure that every developer and developer is consciously applying the described CI configurations (there's not much configured in the original repository!).

To activate Github Actions in the diploma project fork, you need to go to the Actions tab:

Actions tab

And then click the green button - this is how you give your consent to run the repository described in the the `Github Actions configuration files described in the repository:

Green button

Step 2 - Add HeadHunter API token to project secrets

The develop.properties file is not stored in the commit history, but the value of the HeadHunter API token is necessary for successful APK application build. In order for the CI server to retrieve the token value, it must be added to repository secrets for Github Actions.

Open the Settings tab from the main page of the fork:

Settings tab.

On the left side of the screen, find the Security section, there is a Secrets and variables item (number (1) in the screenshot). When click on this item, a drop-down list will appear, which will contain the Actions list item (number (2) on the screenshot).

Security -> Secrets and variables -> Actions

Click on this list item and on the right side of the screen you will see a block called Repository secrets:

Empty Repository secrets

Click on the New repository secret button. In the window that appears, specify GH_HHH_ACCESS_TOKEN as the name of the secret, and the value is the same token you added to the develop.properties file:

Add new secret

After entering the key and value, click the Add secret button. If you've done everything correctly, you should see an updated Repository secrets block:

Secret successfully added

Contributing ✍️

Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.

Contributors πŸ“’

Contact me πŸ“¬


ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ настройка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°


Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ сСкрСтного Ρ‚ΠΎΠΊΠ΅Π½Π° для API HeadHunter

Для проброса сСкрСтного Ρ‚ΠΎΠΊΠ΅Π½Π°, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… послС рСгистрации прилоТСния для использования API HeadHunter, создайтС Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ„Π°ΠΉΠ» develop.properties ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ‚ΡƒΠ΄Π° ΠΎΠ΄Π½ΠΎ свойство:

hhAccessToken=my_access_token

ВмСсто my_access_token Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ послС рСгистрации Ρ‚ΠΎΠΊΠ΅Π½ доступа ΠΊ API HeadHunter. ПослС измСнСния значСния синхронизируйтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π€Π°ΠΉΠ» develop.properties игнорируСтся ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ… Π² Git, поэтому ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π±ΠΎΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΏΠΎΠΏΠ°Π΄Ρ‘Ρ‚ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ доступ. ЗначСния, записанныС Π² Ρ„Π°ΠΉΠ» develop.properties, Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° стадии сборки ΠΈ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся BuildConfig. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

БтатичСский Π°Π½Π°Π»ΠΈΠ·

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ настроСн Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ статичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ - detekt. Он ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ большого количСства стандартных ошибок ΠΏΡ€ΠΈ написании Kotlin-ΠΊΠΎΠ΄Π°.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» detekt находится здСсь. ОписаниС смысла ΠΏΡ€Π°Π²ΠΈΠ» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ detekt - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ comments.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок detekt Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ./gradlew detektAll. ПослС выполнСния Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список ошибок, Ссли ΠΎΠ½ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ, рядом с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ошибкой Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ссылка Π½Π° кусочСк ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ detekt ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ настроСна ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая исправляСт большоС количСство ошибок форматирования detekt. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Ρ‘, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ./gradlew detektFormat.

Настройка Github Actions

Π’ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСрвис Github Actions для настройки CI ( Continuous Integration). Π­Ρ‚ΠΎ позволяСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ качСства прилоТСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ компиляция ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡ€ΠΎΠ³ΠΎΠ½ статичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° detekt. Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ CI Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ здСсь.

На ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ созданный pull request CI-сСрвСр:

  • Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ собСрёт APK прилоТСния, описанного Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ app. Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ APK ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° свой Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° тСстированиС Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΠ»ΠΈ Ρ€Π΅Π²ΡŒΡŽΠ²Π΅Ρ€Π°ΠΌ.
  • И запустит статичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ detekt, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈΠ»ΠΈ отсутствиС ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Π½Π΅ запуская ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ частности, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ принятый Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΊΠΎΠ΄-стайл.

Π§Ρ‚ΠΎΠ±Ρ‹ автоматичСскиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ созданный pull request, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий:

  • ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Github Actions Π² вашСм Ρ„ΠΎΡ€ΠΊΠ΅ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • И Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ API HeadHunter Π² сСкрСты рСпозитория.

Π¨Π°Π³ 1 - Активация Github Actions

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Github ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ настроСнныС Github Actions для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΊΠ° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†Π° осознанно примСняли описанныС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ CI (ΠΌΠ°Π»ΠΎ Π»ΠΈ Ρ‡Ρ‚ΠΎ настроСно Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ!).

Π§Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Github Actions Π² Ρ„ΠΎΡ€ΠΊΠ΅ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡ‚ΠΈ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Actions:

Π’ΠΊΠ»Π°Π΄ΠΊΠ° "Actions"

А Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° Π·Π΅Π»Ρ‘Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ - Ρ‚Π°ΠΊ Π²Ρ‹ Π΄Π°Ρ‘Ρ‚Π΅ своё согласиС Π½Π° запуск описанных Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²-ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Github Actions:

ЗСлёная ΠΊΠ½ΠΎΠΏΠΊΠ° согласия

Π¨Π°Π³ 2 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π° API HeadHunter Π² сСкрСты ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π€Π°ΠΉΠ» develop.properties Π½Π΅ хранится Π² истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π° API HeadHunter Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ сборки APK прилоТСния. Π§Ρ‚ΠΎΠ±Ρ‹ CI-сСрвСр смог ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π°, Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² сСкрСты рСпозитория для Github Actions.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Settings с Π³Π»Π°Π²Π½ΠΎΠΉ страницы Ρ„ΠΎΡ€ΠΊΠ°:

Π’ΠΊΠ»Π°Π΄ΠΊΠ° "Settings"

Π’ Π»Π΅Π²ΠΎΠΉ части экрана Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» Security, Π² Π½Ρ‘ΠΌ Π΅ΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ Secrets and variables (Ρ†ΠΈΡ„Ρ€Π° (1) Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅). ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° этот ΠΏΡƒΠ½ΠΊΡ‚ появится Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ элСмСнт списка Actions (Ρ†ΠΈΡ„Ρ€Π° (2) Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅).

Security -> Secrets and variables -> Actions

НаТмитС Π½Π° этот элСмСнт списка ΠΈ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части экрана Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся Repository secrets:

ΠŸΡƒΡΡ‚ΠΎΠΉ Repository secrets

НаТмитС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ New repository secret. Π’ появившСмся ΠΎΠΊΠ½Π΅ Π² качСствС названия сСкрСта ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ GH_HH_ACCESS_TOKEN, Π° Π² качСствС значСния ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΎΠΊΠ΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹ добавляли Π² Ρ„Π°ΠΉΠ» develop.properties:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ сСкрСта

ПослС Π²Π²ΠΎΠ΄Π° ΠΊΠ»ΡŽΡ‡Π° ΠΈ значСния Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Add secret. Если Π²Ρ‹ всё сдСлали ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Repository secrets:

Π‘Π΅ΠΊΡ€Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½

About

TakYourJob πŸ“± Android application built with Kotlin, MVVM+StateFlow, Clean Architecture


Languages

Language:Kotlin 99.5%Language:Shell 0.5%