search icon search icon ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ

Разработка мобильных приложений

  • Новый профиль
  • Новый профиль
Математика Информатика
  • Этап 1
    16 сентября — 5 ноября
    2024
  • Этап 2
    13 ноября — 17 декабря
    2024
  • Финал
    17 февраля — 22 февраля
    2025

Расписание

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

Согласно ежегодному отчету Digital 2024, в России, как и в мире, большинство людей предпочитают пользоваться мобильными девайсами для выхода в Интернет. Так, мобильная доля веб-трафика выросла на 10,6% составила 42,30% в 2024 году. Причем лидирующее положение, безусловно, занимает Android — его доля составляет 70,99%. Количество скачиваний мобильных приложений достигло 5,62 миллиарда и продолжает расти, а расходы пользователей на приложения с 2023 по 2024 год составили 340,8 миллионов долларов. И этот огромный рынок крайне нуждается в разработчиках, предоставляя множество возможностей для профессионального роста и развития карьеры.

На заключительном этапе профиля «Разработка мобильных приложений» вашей команде предстоит создать программный продукт с клиент-серверной архитектурой, в котором клиент будет реализован в виде мобильного приложения для платформы Android.

Этапы соревнований

Этап 1

Первый этап олимпиады состоит из предметного и инженерного туров. Оба тура выполняются участниками олимпиады индивидуально.

В рамках предметного тура участникам предстоит решать задачи по информатике и математике.

В рамках инженерного тура участники познакомятся с образовательными материалами по профилю «Разработка мобильных приложений» и будут индивидуально выполнять задания, связанные со следующими инженерными компетенциями:

1. Поиск и анализ информации, работа с документацией.

2. Установка программного обеспечения и работа с git-репозиторием.

3. Анализ исходного кода приложения.

4. Составление запросов к серверам и базам данных.

5. Сериализация структур данных.

Этап 2

Второй этап состоит из индивидуального и командного туров.

Задачи индивидуального тура второго этапа являются продолжением задач инженерного тура первого этапа. Задачи позволяют участникам продемонстрировать свои компетенции, развить их и подготовиться к решению задач заключительного этапа.

Индивидуальный тур будет содержать как общие задачи, так и задачи,  присущие конкретной роли в команде, что позволит каждому прокачать компетенции именно своей роли в команде.

Тем, кто уже успел сформировать команду на втором этапе, смогут принять участие в командном туре, в котором будет предложена одна командная задача — создание прототипа программного продукта, состоящего из клиентской части (Android приложения) и серверной части.

Финал

На заключительном этапе профиля «Разработка мобильных приложений» командам предстоит создать программный продукт с клиент-серверной архитектурой, в котором клиент – это нативное Android-приложение, реализованное в IDE Android Studio с помощью языка программирования Kotlin или Java и Android SDK.

Конкретное техническое задание будет меняться каждый сезон олимпиады. Назначение продукта выбирается исходя из социальной или бизнес значимости в данный момент времени.

Для успешного выполнения кейса к заключительному этапу участникам команды необходимо освоить несколько прикладных областей разработки и технологий, необходимых для реализации приложения. Например, для реализации клиента необходимо освоить Android SDK и множество вспомогательных библиотек, нужно уметь проектировать интерфейс мобильного приложения в соответствии с каким-либо руководством, например, Material Design. А для реализации серверной стороны продукта понадобится знание одного из web-фреймворков, например, Spring Framework, а также навыки проектирования и администрирования базы данных.

Требования к команде

Знания

Разработка мобильных приложений — абсолютно конкретное прикладное направление в разработке программного обеспечения, поэтому уже на старте участия в олимпиаде вы должны обладать некоторыми конкретными навыками, а к заключительному этапу каждый участник команды должен приобрести тяжёлый багаж hard skills, необходимых для создания Android-приложения.

Hard skills для старта

Язык программирования: знать любой язык программирования в рамках школьного курса информатики 7–9 на отлично. Желательно владеть языками программирования Java и/или Kotlin.

Инструменты разработки: иметь навыки разработки и отладки в какой-либо среде разработки, желательно в одной из IDE от JetBrains. Иметь навыки работы с git.

Работа с данными: уметь составлять простейшие SQL-запросы к какой-либо реляционной базе данных.

API-разработка: уметь составлять запросы к web-серверу.

Hard skills для финала

Роль «Android-разработчик»

Язык программирования: знание Java и/или Kotlin, как основных языков для разработки приложений под Android.

Android SDK: понимание и умение работать с Android Software Development Kit, включая библиотеки, инструменты и различные API, с помощью которых создаются нативные Android-приложения.

Инструменты разработки: умение использовать Android Studio и Gradle для разработки, сборки и развёртывания приложений.

Архитектура приложений: знание архитектурных паттернов (MVP, MVVM, Clean Architecture) для организации кода и улучшения его читаемости и поддерживаемости.

Работа с данными: опыт работы с SQLite, библиотекой Room или другими базами данных, а также навыки работы с RESTful API и JSON для обмена данными с сервером.

Роль «UI/UX дизайнер»

Инструменты дизайна: умение работать с инструментами для создания дизайна и прототипов, такими как Figma или Sketch.

Платформенные гайды: знание Android Material Design Guidelines, что позволяет создавать интерфейсы, соответствующие стандартам и рекомендациям платформы.

Вёрстка интерфейсов: владение XML или библиотекой JetPack Compose для создания макетов пользовательского интерфейса и определения ресурсов.

Инструменты для создания графики: владение Gimp и Inkscape или другими аналогичными растровыми и векторными редакторами для создания графических элементов и иконок, необходимых для приложений.

Роль «Бэкенд-разработчик»

Языки программирования: владение языками программирования, такими как Java, Kotlin или другими популярными языками, которые используются для написания серверной логики.

Базы данных: знание реляционных баз данных (например, PostgreSQL, MySQL) и нереляционных баз данных (например, MongoDB), а также умение создавать запросы.

API-разработка: опыт разработки и интеграции RESTful, включая создание и документирование эндпоинтов, а также обеспечение безопасности и производительности.

Фреймворки и библиотеки: знание серверных фреймворков и библиотек, таких как Spring Boot для Java, Ktor для Kotlin, которые облегчают разработку серверной части.

Архитектура приложений: понимание принципов архитектуры приложений, включая микросервисную и монолитную архитектуру. Способность проектировать системы с учетом масштабируемости и отказоустойчивости. Опыт работы с контейнеризацией и оркестрацией (Docker, Kubernetes) для развертывания и управления приложениями. Знание архитектурных паттернов, таких как MVC.

Роль «Тимлид»

Должен обзорно знать всё, что описано выше и кроме того:

Управление проектами и Agile: иметь опыт работы с инструментами управления проектами (JIRA, Trello). Знать и применять Agile-методологий (Scrum, Kanban).

Численность команды и роли

Для участия в командном туре второго этапа и заключительном этапе вам понадобится команда, содержащая не менее 2 и не более 3 человек, которые должны будут взять на себя следующие роли.

Android-разработчик. В команде Android-разработчик отвечает за разработку клиентской части программного продукта (Android-приложение), которое будет взаимодействовать с сервером.

UI/UX-дизайнер. В обязанности дизайнера в команде входит проектирование интерфейса, создающего комфортный пользовательский опыт Android-приложения. Роли «Android-разработчик» и «UI/UX-дизайнер» могут совмещаться.

Бэкенд-разработчик. Бэкенд-разработчику в команде предстоит реализовать серверную часть программного продукта, которая будет предоставлять необходимую информацию Android-приложению.

Тимлид. Один из членов команды должен будет взять на себя роль Тимлида. Задача роли – координировать работу команды, а также коммуницировать с организаторами профиля «Разработка мобильных приложений».

В команде не может быть человека ТОЛЬКО с ролью Тимлида, эта роль всегда совмещается с перечисленными выше ролями «Android-разработчик», «UI/UX-дизайнер», «Бэкенд-разработчик».

Материалы подготовки

Организаторы

Партнеры

background image background image background image background image background image background image background image background image background image background image background image background image
background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image