Больше чем два месяца назад мы анонсировали отбор в школу Android-разработчиков в Казани. За это время мы получили 575 заявок на участие и 70 выполненных тестовых заданий (невероятная цифра с учетом того, что задание было непростым, а почти 40% из тех, кто подавал заявку, вообще не имели опыта в разработке для Android).
К сожалению, у этой популярности есть и обратная сторона — мы не смогли взять многих участников, которые выполнили тестовое задание на хорошем уровне и справились бы с обучением в школе. Конкуренция оказалась очень высока, и мы с большим удовольствием поздравляем тех, кто прошел через все препятствия!
В итоге мы отобрали 15 человек:
- Искандар Шабаев
- Артур Бадретдинов
- Денис Михайлов
- Константин Родионов
- Айдар Фаррахов
- Азат Галиуллин
- Юрий Перменко
- Сергей Микевич
- Артур Ельжанов
- Алексей Антончик
- Аркадий Шарапов
- Ольга Тележникова
- Сергей Рябов
- Ярослав Судник
- Антон Казаков
Кстати говоря, у школы получилась очень широкая география — в ней принимают участие люди из 6 городов и 2 стран!
Тестовое задание
Теперь подробнее о том, как проходил процесс отбора. Курс изначально был нацелен на то, чтобы научить участников, которые уже умеют делать клиент-серверные приложения для Android, делать это лучше с точки зрения архитектуры. Поэтому участникам предлагалось реализовать простое клиент-серверное приложение, которое позволяет просматривать информацию о погоде в разных городах. Приложение подразумевало как минимум один серверный запрос и 2-3 экрана (список городов, экран с отдельным городом и экран с добавлением нового города). Более подробные требования к тестовому заданию описаны в документе.
Тестовое задание проверялось по двум ключевым компонентам: сначала с точки зрения пользователя, то есть различные решения по дизайну, неудачные моменты, неправильное поведение и краши. После этого уже изучался код приложения, мы выявляли неудачные или ошибочные решения, а также предлагали варианты, как можно улучшить код и упростить реализацию. Оценки за оба этих компонента были равноценны, они складывались, образуя общий результат.
Каждый участник, выполнивший тестовое задание, получил от нас подробный фидбэк с указанием всех ошибок и предложениями по улучшению. Мы также собрали список неточностей и ошибок, которые встречались в тестовых заданиях особенно часто. В этом же документе мы указали рекомендации по дальнейшему изучению для участников, которые не смогли пройти в школу. Мы стараемся уже сейчас выполнять принцип открытости по всем ресурсам и надеемся, что и вы найдете что-нибудь полезное в этом документе.
Нас также просили поделиться образцами выполненных тестовых заданий. В качестве такого образца хотелось бы особо выделить приложение Искандара Шабаева, которое сделано на очень высоком уровне как с точки зрения использования приложения, так и с точки зрения кода. Это не значит, что только с таким заданием можно было пройти в школу — можно было сделать и куда меньше, но это проект, на который можно равняться.
Программа курса
После обсуждения с участникам школы мы скорректировали курс таким образом, чтобы он был максимально интересен и полезен. Сейчас план курса выглядит следующим образом:
- Введение в архитектуру приложений. Проблема пересоздания Activity.
- Классические паттерны A/B/C для обеспечения клиент-серверного взаимодействия.
- Фреймворк RxJava и его использование в Android.
- Принципы Clean Architecture и их применение в построении архитектуры приложений.
- Паттерн MVP.
- Unit-тестирование Android-приложений.
- UI-тестирование Android-приложений.
- Фреймворк DataBinding и его использование в паттерне MVVM
Также участники высказали немало пожеланий, поэтому мы проведем и небольшие дополнительные лекции по следующим темам:
- Проблема Backpressure и способы ее решения.
- Фреймворк Google Agera для построения архитектуры приложения.
- Фреймворк Mosby для построения архитектуры приложения.
- Методология TDD (test-driven development).
- Dagger2 как библиотека для реализации принципа Dependency Injection.
- Профилирование и поиск узких мест в коде.
И теперь самое главное, после окончания курса 24 сентября, в течение недели все презентации, лекции в текстовом виде и примеры кода по всем озвученным темам будут выложены в свободный доступ для всех желающих! Следите за новостями в блоге компании e-Legion или же за группой GDG Kazan в VK.
Автор: e-Legion Ltd.