- PVSM.RU - https://www.pvsm.ru -

Мобильные приложения Stepic.org под iOS и Android

Ура, свершилось! У платформы с открытыми онлайн-курсами Stepic.org появились приложения под iOS и Android.
В этом коротком посте мы расскажем о процессе работы над приложениями — выборе платформ, используемых технологиях и API, и даже дадим ссылки на исходный код.
Мобильные приложения Stepic.org под iOS и Android - 1

Скажем честно, мы долго сомневались, так ли это необходимо. Посудите сами — каким бы ни было учебное мобильное приложение, в нём никак не получится удобно писать код на Haskell или вводить десяток-другой команд в линуксовый терминал. Поэтому речь не шла о приложении, которое полностью бы передавало функциональность Стэпика, но помогло бы разнообразить и улучшить обучение наших пользователей.

Часто нас спрашивают — почему нет приложения под Windows Phone?
На момент начала разработки (сентябрь 2015 года) статистика Stepic.org по мобильным ОС была такова:

  • Android – 51%,
  • iOS – 47%,
  • Windows Phone – менее 3% пользователей ¯_(ツ)_/¯.

При этом с мобильных устройств заходили 11% пользователей сайта Stepic.org [1] (6% с планшетов и 5% с телефонов).

Как только было решено делать приложения под Android и iOS, нашлись и разработчики: Кирилл Макаров [2] и Александр Карпов [3] — студенты третьего курса факультета компьютерных наук НИУ ВШЭ и стажёры Stepic.org, мобильное приложение им также зачтется в качестве курсовой работы в вузе.

Мобильные приложения Stepic.org под iOS и Android - 2

Немного подробностей о самих приложениях

Основную функциональность реализовали с помощью REST API Stepic.org, авторизация происходит с помощью OAuth 2. Дизайн было решено делать нативным, например в iOS используются нижние табы, а в в Android — navigation drawer. Кстати это может повторить любой желающий: OAuth регистрация приложений – stepic.org/oauth2/applications/ [4], автодокументация API – stepic.org/api/docs/ [5].

Android

Для воспроизведения видео в приложении было решено давать пользователю возможность воспроизводить видео в его любимом плеере, так кстати советует Google [6]. Конечно, это влечет к тому, что плееры имеют свои недостатки, некоторые, например, не поддерживают функцию регулирования скорости воспроизведения видео, которая является полезной для просмотра онлайн-курсов. Для тех, кому критична данная фича, мы рекомендуем использовать видео плеер с открытым исходным кодом VLC for Android [7]. Android-приложение выполнено в соответствии с гайдлайном Material Design Google [8]. Для инъекции зависимостей используется Dagger 2.0 [9], о его преимуществах можно почитать здесь [10]. Для работы с API используется Retrofit [11], который позволяет добавлять новые методы API буквально в одну строчку. Для управления событиями в проекте используется Otto [12], который позволяет избежать множества ошибок, связанных с обновлением пользовательского интерфейса, когда этот интерфейс уже не существует, такое часто возникает при возвращении ответов от сервера.

iOS

Для работы с API использовались библиотеки Alamofire [13] и SwiftyJSON [14]. Для хранения данных в БД используется Core Data. Для работы с AutoLayout использовался очень полезный фреймворк FLKAutoLayout [15]. Для мобильной аналитики используется Crashlytics [16].

Мобильные приложения Stepic.org под iOS и Android - 3

Что умеют приложения?

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

Приложения доступны для скачивания бесплатно, будем рады вашим отзывам:

Кстати, исходный код приложений открыт:

Автор: Stepic.org

Источник [21]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/ios/109883

Ссылки в тексте:

[1] Stepic.org: https://stepic.org

[2] Кирилл Макаров: https://github.com/KirillMakarov

[3] Александр Карпов: https://github.com/Ostrenkiy

[4] stepic.org/oauth2/applications/: https://stepic.org/oauth2/applications/

[5] stepic.org/api/docs/: https://stepic.org/api/docs/

[6] советует Google: http://developer.android.com/intl/ru/distribute/engage/intents.html

[7] видео плеер с открытым исходным кодом VLC for Android: https://play.google.com/store/apps/details?id=org.videolan.vlc

[8] гайдлайном Material Design Google: https://www.google.com/design/spec/material-design/introduction.html

[9] Dagger 2.0: http://google.github.io/dagger/

[10] здесь: http://habrahabr.ru/company/ncloudtech/blog/274025/

[11] Retrofit: http://square.github.io/retrofit/

[12] Otto: http://square.github.io/otto/

[13] Alamofire: https://github.com/Alamofire/Alamofire

[14] SwiftyJSON: https://github.com/SwiftyJSON/SwiftyJSON

[15] FLKAutoLayout: https://github.com/floriankugler/FLKAutoLayout

[16] Crashlytics: https://try.crashlytics.com/

[17] https://itunes.apple.co​m/ru/app/stepic.org/id1064581926: https://itunes.apple.co​m/ru/app/stepic.org/id1064581926

[18] https://play.google.com/store/apps/details?id=org.stepic.droid: https://play.google.com/store/apps/details?id=org.stepic.droid

[19] https://github.com/StepicOrg/stepic-ios: https://github.com/StepicOrg/stepic-ios

[20] https://github.com/StepicOrg/stepic-android: https://github.com/StepicOrg/stepic-android

[21] Источник: https://habrahabr.ru/post/275713/