DOU Проектор: мобільний застосунок для читання статей на DOU

У рубриці DOU Проектор всі охочі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про що розповісти — запрошуємо взяти участь. Якщо ні — можливо, серія надихне на створення власного made in Ukraine продукту. Питання і заявки на участь надсилайте на  Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. .

Усім привіт. Я Максим, Android-розробник, і в цій статті я хотів би представити вам DOU Reader — мобільний застосунок для читання статей на DOU.

Декілька слів про себе: я займаюсь мобільною розробкою вже понад 4 роки. Із самого початку знайомства з програмуванням я зрозумів, що мене надихає створення своїх проектів, які були б корисними для інших людей. Думка про те, що моя робота може принести комусь задоволення, заощадити час та зусилля, була дуже захопливою.

Крім основної роботи, я завжди виділяв час на реалізацію своїх ідей. Згодом я об’єднався зі своїм товаришем UX-дизайнером Олексієм. І невеликою командою ми почали втілювати наші ідеї у життя.

Ідея

Я, як і більшість сучасних програмістів, читаю доволі багато публікацій на ІТ-теми, щоб дізнаватися про нові технології та підходи. Щодня дорогою на роботу я читаю статті на багатьох ресурсах, зокрема DOU. Одного разу мені стало цікаво: чи існує мобільний застосунок для DOU, адже, переважно, застосунок більш зручний у навігації і має додаткові функції та можливості (як, наприклад, перегляд статей офлайн), що зручніше порівняно з мобільною версією сайту. Пошук застосунку на Google Play та сайті DOU не дав результатів. Тому ми з Олексієм вирішили власноруч реалізувати такий проект.

Реалізація

Передусім нам необхідно було дізнатися, чи існує API для DOU. Звернувшись до працівників DOU, ми одержали список команд для отримання статей з фільтрами по категоріях, автору, даті і т. п. На цьому етапі ми зіткнулися з першими труднощами: у відповідь поверталися тільки короткі описи, проте не тіло статті. Для вирішення цієї проблеми я став отримувати статті напряму з сайту і парсити за допомогою бібліотеки Jsoup.

Визначившись із вхідними даними, ми з Олексієм почали окреслювати концепт застосунку. Зважаючи на особливості наданого API, ми вирішили, що в першій ітерації застосунку зосередимося на найважливіших складових контенту, а саме списку статей, рубриках та закладках зі збереженими публікаціями. Після цього я почав реалізацію технічної сторони проекту, а Олексій — створення прототипів.

Зі своєї сторони, я обрав такий технологічний стек: застосунок побудований із використанням архітектурного патерну MVP і розбитий на прості компоненти, кожен з яких виконує одну логічну функцію. На базі RxJava я реалізував патерн EventBus для спілкування між різними компонентами, а також модулями проекту. Використав Dagger 2 для впровадження та зручного керування залежностями. Для збереження даних використовувався Realm. Вибір цього стеку був зумовлений планами на майбутнє, щоб і надалі вдосконалювати та маштабувати наш проект.

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

Крім базового функціоналу, ми додали декілька цікавих можливостей. Одна з них — обчислення часу читання статті. Така ідея з’явилася спонтанно при перегляді публікацій на Medium. Натрапивши на статтю про те, як у Medium визначають цей час, я зрозумів, що алгоритм розрахунку достатньо простий: необхідно порахувати кількість слів та поділити на середню швидкість читання, котра складає приблизно 275 слів на хвилину. Наче проста в реалізації «feature», а користувачеві приємно :)

Варто також зазначити, що в застосунку реалізовано кешування. Статті можна додавати в закладки для перегляду офлайн. Крім цього, усі відкриті за сесію публікації зберігаються в runtime, що дає можливість повернутися до них у разі відсутності інтернету.

Отож, у першій ітерації застосунок надає користувачу такі можливості:

  • перегляд статей у Стрічці;
  • сортування статей за рубриками;
  • створення закладок;
  • можливість переглядати закладки офлайн;
  • можливість поділитися статтею;
  • обчислення часу читання статті.

Факап

Не обійшлося і без промахів. Вже при публікації готового, відтестованого застосунку на Play Market, ми отримали відмову з такою причиною: «Issue: Violation of Device and Network Abuse policy».

Для нас це стало неприємним сюрпризом. Виявилося, що в статтях можуть міститися вбудовані відео з YouTube, відтворення котрих у фоні заборонено політикою використання ресурсу. А в нашому випадку оброблення цього сценарію не було. Тому довелося пофіксити цю проблему, після чого я залив оновлену версію, яка успішно пройшла перевірку. Сподіваюсь, цей невеликий досвід допоможе комусь із розробників у майбутньому.

Результати і плани

За три місяці роботи у вільний час ми змогли створити простий і зручний у використанні застосунок для перегляду статей на улюбленому ресурсі. Ми сподіваємось, він стане у пригоді багатьом користувачам.

Плануємо й надалі підтримувати і вдосконалювати проект. Найближчі цілі, яких ми хотіли б досягти:

  • реалізація пошуку;
  • вдосконалення стрічки статей;
  • можливість відкривати посилання зі сторонніх ресурсів у статті через застосунок;
  • реалізація сповіщень про вихід нових статей.

У майбутньому хотілося б зробити повноцінний застосунок із авторизацією та навігацією по ресурсу. Будемо дуже вдячні за ваші зауваження та побажання і будемо їх враховувати.

Також висловлюємо подяку команді DOU за надання API і можливість реалізувати цей проект.

Похожие статьи:
As a popular tourist destination on Mexico’s Yucatán Peninsula, Cancún is considered a tropical paradise with beautiful beaches, coral reefs, water sports and vibrant nightlife. To visit Cancun is therefore ideal to enjoy the sun and...
Недавно компания Philips представила флагманский аппарат линейки Xenium, основной особенностью которого стала аккумуляторная батарея...
Компания Acer расширила свою линейку планшетов «2-в-1» серии Switch 10, добавив в нее новую модель с 10,1-дюймовым экраном, четырехъядерным...
Після всіх антиукраїнських заяв Ілона Маска в українському просторі виникло питання: чи можуть відключити Україну від...
До вашої уваги дайджест навчальних програм для тих, хто починає свою кар’єру в ІТ. В цьому номері зібрані можливості,...
Яндекс.Метрика