Ура, свершилось! У платформы с открытыми онлайн-курсами Stepic.org появились приложения под iOS и Android.
В этом коротком посте мы расскажем о процессе работы над приложениями — выборе платформ, используемых технологиях и API, и даже дадим ссылки на исходный код.
Скажем честно, мы долго сомневались, так ли это необходимо. Посудите сами — каким бы ни было учебное мобильное приложение, в нём никак не получится удобно писать код на Haskell или вводить десяток-другой команд в линуксовый терминал. Поэтому речь не шла о приложении, которое полностью бы передавало функциональность Стэпика, но помогло бы разнообразить и улучшить обучение наших пользователей.
Часто нас спрашивают — почему нет приложения под Windows Phone?
На момент начала разработки (сентябрь 2015 года) статистика Stepic.org по мобильным ОС была такова:
При этом с мобильных устройств заходили 11% пользователей сайта Stepic.org (6% с планшетов и 5% с телефонов).
Как только было решено делать приложения под Android и iOS, нашлись и разработчики: Кирилл Макаров и Александр Карпов — студенты третьего курса факультета компьютерных наук НИУ ВШЭ и стажёры Stepic.org, мобильное приложение им также зачтется в качестве курсовой работы в вузе.
Основную функциональность реализовали с помощью REST API Stepic.org, авторизация происходит с помощью OAuth 2. Дизайн было решено делать нативным, например в iOS используются нижние табы, а в в Android — navigation drawer. Кстати это может повторить любой желающий: OAuth регистрация приложений – stepic.org/oauth2/applications/, автодокументация API – stepic.org/api/docs/.
Для воспроизведения видео в приложении было решено давать пользователю возможность воспроизводить видео в его любимом плеере, так кстати советует Google. Конечно, это влечет к тому, что плееры имеют свои недостатки, некоторые, например, не поддерживают функцию регулирования скорости воспроизведения видео, которая является полезной для просмотра онлайн-курсов. Для тех, кому критична данная фича, мы рекомендуем использовать видео плеер с открытым исходным кодом VLC for Android. Android-приложение выполнено в соответствии с гайдлайном Material Design Google. Для инъекции зависимостей используется Dagger 2.0, о его преимуществах можно почитать здесь. Для работы с API используется Retrofit, который позволяет добавлять новые методы API буквально в одну строчку. Для управления событиями в проекте используется Otto, который позволяет избежать множества ошибок, связанных с обновлением пользовательского интерфейса, когда этот интерфейс уже не существует, такое часто возникает при возвращении ответов от сервера.
Для работы с API использовались библиотеки Alamofire и SwiftyJSON. Для хранения данных в БД используется Core Data. Для работы с AutoLayout использовался очень полезный фреймворк FLKAutoLayout. Для мобильной аналитики используется Crashlytics.
Можно просматривать текстовые и видео материалы, а также загружать их для просмотра оффлайн. Также можно просмотреть описание курсов и записаться на них, просмотреть профиль пользователя. Совсем скоро будет добавлена возможность решения некоторых типов заданий. Обновления случаются в среднем каждые две недели.
Приложения доступны для скачивания бесплатно, будем рады вашим отзывам:
Кстати, исходный код приложений открыт:
В этом коротком посте мы расскажем о процессе работы над приложениями — выборе платформ, используемых технологиях и API, и даже дадим ссылки на исходный код.
Скажем честно, мы долго сомневались, так ли это необходимо. Посудите сами — каким бы ни было учебное мобильное приложение, в нём никак не получится удобно писать код на Haskell или вводить десяток-другой команд в линуксовый терминал. Поэтому речь не шла о приложении, которое полностью бы передавало функциональность Стэпика, но помогло бы разнообразить и улучшить обучение наших пользователей.
Часто нас спрашивают — почему нет приложения под Windows Phone?
На момент начала разработки (сентябрь 2015 года) статистика Stepic.org по мобильным ОС была такова:
- Android – 51%,
- iOS – 47%,
- Windows Phone – менее 3% пользователей ?\_(?)_/?.
При этом с мобильных устройств заходили 11% пользователей сайта Stepic.org (6% с планшетов и 5% с телефонов).
Как только было решено делать приложения под Android и iOS, нашлись и разработчики: Кирилл Макаров и Александр Карпов — студенты третьего курса факультета компьютерных наук НИУ ВШЭ и стажёры Stepic.org, мобильное приложение им также зачтется в качестве курсовой работы в вузе.
Немного подробностей о самих приложениях
Основную функциональность реализовали с помощью REST API Stepic.org, авторизация происходит с помощью OAuth 2. Дизайн было решено делать нативным, например в iOS используются нижние табы, а в в Android — navigation drawer. Кстати это может повторить любой желающий: OAuth регистрация приложений – stepic.org/oauth2/applications/, автодокументация API – stepic.org/api/docs/.
Android
Для воспроизведения видео в приложении было решено давать пользователю возможность воспроизводить видео в его любимом плеере, так кстати советует Google. Конечно, это влечет к тому, что плееры имеют свои недостатки, некоторые, например, не поддерживают функцию регулирования скорости воспроизведения видео, которая является полезной для просмотра онлайн-курсов. Для тех, кому критична данная фича, мы рекомендуем использовать видео плеер с открытым исходным кодом VLC for Android. Android-приложение выполнено в соответствии с гайдлайном Material Design Google. Для инъекции зависимостей используется Dagger 2.0, о его преимуществах можно почитать здесь. Для работы с API используется Retrofit, который позволяет добавлять новые методы API буквально в одну строчку. Для управления событиями в проекте используется Otto, который позволяет избежать множества ошибок, связанных с обновлением пользовательского интерфейса, когда этот интерфейс уже не существует, такое часто возникает при возвращении ответов от сервера.
iOS
Для работы с API использовались библиотеки Alamofire и SwiftyJSON. Для хранения данных в БД используется Core Data. Для работы с AutoLayout использовался очень полезный фреймворк FLKAutoLayout. Для мобильной аналитики используется Crashlytics.
Что умеют приложения?
Можно просматривать текстовые и видео материалы, а также загружать их для просмотра оффлайн. Также можно просмотреть описание курсов и записаться на них, просмотреть профиль пользователя. Совсем скоро будет добавлена возможность решения некоторых типов заданий. Обновления случаются в среднем каждые две недели.
Приложения доступны для скачивания бесплатно, будем рады вашим отзывам:
- iOS: https://itunes.apple.co?m/ru/app/stepic.org/id1064581926
- Android: https://play.google.com/store/apps/details?id=org.stepic.droid
Кстати, исходный код приложений открыт:
Комментарии (2)
vdmitriyev
22.01.2016 19:24+3Спасибо большое за отличное приложение. Пользуюсь уже неделю, очень удобно. Особенно нравится функциональность по скачиванию (кэшированию) видео — очень удобно, чтобы скачать нужные видео не нужно много бродить, достаточно нажать одну кнопку. Немного огорчает отсутствие хотя бы «тестирования» в самом приложении.
Agaspher20
Круто будет, если еще и Windows Phone версию сделаете