Skip to content

antonbadretdinov/TinkoffSolutionCup

Repository files navigation

TinkoffSolutionCup Final

Task

Develop a design system based on layouts from Figma in the form of a Gradle project.

Functional requirements:

  • The library should come with a demo application that includes all components in all styles.
  • No crashes and frame drops.
  • Minimum SDK version: Android 7.0 (API level 24)

Technology requirements and limitations:

  • Only Kotlin.
  • You can only use View/ViewGroup.
  • Dependencies on third-party libraries are prohibited during development.
  • You can use third-party frameworks for testing.

Preview of all elements

Button

This custom button inherits from AppCompatButton, so it has all the same properties. For example:

android:text="Button"

Item

Change the title and description like this:

app:title="Item title"
app:description="Any description"

Change the style to dark:

app:isDarkStyle="true"

Header

Change the header and subheader like this:

app:header="Header text"
app:subheader="Any subheader text"

Change the style to dark:

app:isDarkStyle="true"

Header with button

Change the header and subheader like this:

app:header="Header text"
app:subheader="Any subheader text"

Change the style to dark:

app:isDarkStyle="true"

Change button text:

app:buttonText="Button"

Vertical list

The vertical list is implemented through a recycler view. Each element of the list is represented by the item shown above. For each item, a model is used in which there are two fields: a title and a description.

Change the header like this:

app:header="Header text"

Change the style to dark:

app:isDarkStyle="true"

Vertical list with button

Change the header like this:

app:header="Header text"

Change the style to dark:

app:isDarkStyle="true"

Change button text:

app:buttonText="Button"

Horizontal list

The horizontal list is implemented through a recycler view. Each element of the list is represented by a special item for the horizontal list. For each item, a model is used in which there are two fields: a title and a description.

Change the header like this:

app:header="Header text"

Horizontal list with button

Change the header like this:

app:header="Header text"

Change button text:

app:buttonText="Button"