Мобільні додатки Stepic.org під iOS і Android

Ура, нарешті! У платформи з відкритими онлайн-курсами Stepic.org з'явилися додатки під iOS і Android.
У цьому короткому пості ми розповімо про процес роботи над додатками — вибір платформ, використовуваних технологіях і 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.



Що вміють програми?

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

Програми доступні для скачування безкоштовно, будемо раді вашим відгукам:
До речі, вихідний код програм відкрито:


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.