Разработка Android-приложений на Kotlin

На треке вы познакомитесь с разработкой мобильных приложений для платформы Android. В процессе обучения вы изучите язык Kotlin, научитесь создавать интерфейсы и работать с сетью.

Во время школы вы сформируете команды, каждая из которых разработает свое приложение. Это научит совместной работе, позволит увидеть этапы и подводные камни реальной разработки. Финальной целью данного трека является создание каждой командой Android-приложения и презентация его на закрытии Школы.

Куратор трека:

  • Руслан Давлетшин, основатель workingeeks.com, руководитель Android разработки

Тестовое задание для поступления на трек:

Для успешного выполнения задания требуется разработать мобильное приложение для поиска пользователей Github. Данное тестовое задание разделено на несколько этапов, и выполнение уже первого будет являться отличным результатом. Задание дается не только для того, чтобы мы могли оценить вашу способность к программированию и самостоятельной работе, но и для того, чтобы у вас была мотивация самостоятельно изучить базовые вещи для разработки на каждой платформе. На каждом этапе специфических требований к интерфейсу нет и можно давать волю воображению.

Функциональные требования на первом этапе:
  • Создание окна с поисковой строкой
Для выполения задания вам может пригодиться:
data class User(val name: String, val repositories: List<Repository>)
data class Repository(val name: String, val description: String, val lang: String, val userName: String)

...
val reposForUser1 = listOf(
Repository(name = "HelloWorld", description = "I'll be a next Hokage of this programming world", lang = "Kotlin", userName = "User2"),
Repository(name = "Cells", description = "I have got a new arm", lang = "Cobol", userName = "User1")
)
val reposForUser2 = listOf(
Repository(name = "OldKey", description = "I want to know what are this cellar contains", lang = "Kotlin", userName = "User1"),
Repository(name = "Sea", description = "I'll kill all titans and go to the sea, witch contains salt", lang = "Java", userName = "User2")
)
Функциональные требования на втором этапе:
  • Создание всех трех окон
  • Возможность просматривать информацию о пользователях
  • Вся информация о пользователе (ID, названия и описание репозиториев) задается внутри программы
Для выполения задания вам может пригодиться:
data class User(val name: String, val repositories: List<Repository>)
data class Repository(val name: String, val description: String, val lang: String, val userName: String)

...
val reposForUser1 = listOf(
Repository(name = "HelloWorld", description = "I'll be a next Hokage of this programming world", lang = "Kotlin", userName = "User2"),
Repository(name = "Cells", description = "I have got a new arm", lang = "Cobol", userName = "User1")
)
val reposForUser2 = listOf(
Repository(name = "OldKey", description = "I want to know what are this cellar contains", lang = "Kotlin", userName = "User1"),
Repository(name = "Sea", description = "I'll kill all titans and go to the sea, witch contains salt", lang = "Java", userName = "User2")
)
Функциональные требования на третьем этапе:

С использованием открытого Github API уметь поддерживать актуальность поиска пользователей и информации о них

Функциональные требования на четвертом этапе:

С использованием открытого API уметь поддерживать актуальность поиска пользователей и информации о них, а также с использованием реляционной базы данных собирать историю поиска и отображать ее в отдельном окне, для отметки сохранения пользователя можно добавить вот этот флажок

Выполнение первого этапа является отличным результатом. Остальные этапы являются скорее дополнительным заданием для людей, имевших ранее опыт разработки под мобильные платформы.

Материалы, с которых можно начать, для iOS:

https://swiftbook.ru/content/1-index/

https://swiftbook.ru/content/35-index/

Для Android:

https://stepik.org/course/4792

Сдача задания

Результатом выполненной работы должен являться открытый github-репозиторий с проектом приложения.

Ссылку на репозиторий присылайте на почту csmobile@hse.ru

Когда будет отправлять на почту задание, пишите тему письма: Ваше ФИО_название трека на латинице_задание (например, Иванов Петр Алексеевич_Android_задание).