Page MenuHomePhabricator

Improve article loading performance in iOS app by integrating new content service.
Open, HighPublic

Description

Definition Progress

The following is a checklist for completion of the definition of the Epic. Make sure to check these off as you complete each item.

  • Summary
  • Rationale
  • Success Metrics
  • External Dependencies
  • Unknowns
  • Product Plan
    • Prototyping
    • MVP
    • User stories
    • User Story Phab Tickets
    • Metrics Implementation
    • Metrics Phab Tickets
    • Estimates
    • Delivery Date

Summary

Replace the "mobile view" service with the new mobile specific content service to decrease article load times in the web view.

Goal Visibility

Internal

Rationale

The current app uses the mobile view API to download article content, and then subsequently applies js transforms to further customize the HTML for the mobile app. js transforms on iOS devices are slow for a majority of reasons, and users frequently complain that the app "loads slower than mobile Safari". WMF employees have also noticed this slowness. While other steps are being taken to increase performance within the app (See Native Rendering), offloading work to the server will help to increase performance across the app and directly impact the reading experience.

Additionally, since transforms will be "shared"

Success Metrics

Improve rendering time of articles by 50%

Demonstrates a raw speed improvement that will directly affect users.

All client side javascript transforms are removed from the code base

Demonstrates that the development burden of js has been moved from the client to the server where maintenance can be shared among the Readership team.

External Dependencies

Content Service must be completed and deployed to production. (Being worked on within Readership, but outside of iOS development)

Unknowns

The format and schema of the data being downloaded from the content service (HTML / JSON)
When the content service will be deployed

Product Plan

Prototyping

No

MVP

  • Mobile View API calls are replaced by Content Service
  • Client-side js is removed from the iOS codebase

User Stories

Write out the user stories needed to accomplish this goal. Each of these user stories should become a Phab ticket. Link to each Phab ticket here.

User StoryTicket
A user should be able to use this featureTXXXXXX
A user should feel good after using this featureTXXXXXX

Metrics Implementation

Define any tasks needed to be completed to enable the success metrics to measured. Create a Phab task and link to it here.

Timeline Estimate

List estimates below. These do not have to be exact. These are just used to validate proposed timelines and ship dates.

TaskEstimate
Prototyping1 week
User Testing2 weeks
Mockups2 weeks
Development2 weeks
Beta Testing1 week

Delivery Estimate

What is the estimated ship date to end users?

Event Timeline

Fjalapeno created this task.Jul 4 2015, 5:32 PM
Fjalapeno updated the task description. (Show Details)
Fjalapeno raised the priority of this task from to Needs Triage.
Fjalapeno added a project: Mobile-App-Goals.
Fjalapeno added a subscriber: Fjalapeno.
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJul 4 2015, 5:32 PM
Fjalapeno moved this task from Unscheduled to Q1 iOS on the Mobile-App-Goals board.Jul 5 2015, 6:24 PM
Fjalapeno renamed this task from Improve article loading performance by integrating new content service. to Improve article loading performance in iOS app by integrating new content service. .
Fjalapeno set Security to None.

Orphaned task (member of closed project(s) only) → tagging with the seemingly closest relevant tag.

JMinor renamed this task from Improve article loading performance in iOS app by integrating new content service. to Improve article loading performance in iOS app by integrating new content service..Aug 17 2016, 12:55 AM
JMinor triaged this task as High priority.

Added a blocking task - the V2 API for mobile sections.

Estimated time to development is sometime in Q1 - likely end of Q1 (this is prioritized after Reading Lists)