WordPress for iOS - Under the Hood

Post on 12-Apr-2017

231 views 1 download

Transcript of WordPress for iOS - Under the Hood

WordPress for iOS Under the Hood360iDev 2015

Aaron Douglas

About Me

Aaron Douglas

Milwaukee, WI USA

Mobile Developer for Automattic Inc.

Prior life Enterprise Java

@astralbodies

What’s we’re talking aboutPurpose of the App

Problems To Solve

Technologies Used

Architecture

Development Process

What’s Missing

Contributing

Purpose of the App

Text

App Walkthroughfi

Problems to Solve

Multiple Endpoints

WordPress.com

WordPress.org

XML-RPC

REST API v1, v2

Jetpack Plugin from WordPress.com

Inherited Tech Debt

Original contractors

No real planning

Small team/contributor base

Web Content

Reader - Rendering

Editor - Creating & Rendering

Markdown

Server-side Plugins

Offline Mode

Synchronization

Stability

Consistency

Conflict Resolution

Localization

Common strings

GlotPress (http://translate.wordpress.org)

RtL support

Calendars, dates, times

Dates/Time Makes Me Stabbyhttp://stabby.today

Technologies Used

Project Dependencies

CocoaPods

Xcode or AppCode

Git

WordPress.com OAuth2

Architecture

Data Model (some of it)

WPAccount (0..n)

Blog (0..n)

Blog (0..n)

Post

Page

BasePost

AbstractPost

ReaderPost

Media

Service Layers

View Controller

Local Service

Persistence

Remote Service

Interwebs

BlogService

LocalCoreDataService

BlogServiceRemote

BlogServiceRemoteREST

BlogServiceRemoteXMLRPCNSManagedObjectContext

Component Pods

WordPress-Editor-iOS

WordPressCom-Stats-iOS

WordPressCom-Analytics-iOS

WordPress-Shared-iOS

MediaPicker-iOS

The Code

Development Process

Developers

Automattic

Outside Contributors

Development Process

Three week iterations

Planning … well …

Three week testing/stablization - HockeyApp enterprise builds

Git Flow

GitHub Issues

What’s Missing

What’s Missing

WordPressKit

More Service Layers

Re-evaluate callback paradigm with new Swift techniques

Share Extension

Watch App

WordPressKit

Full-blown SDK for WP integration

Authentication, Authorization

Every action (post, edit, commenting, etc)

Reminiscent of Parse SDK

Some day :)

Contributing

ContributingGitHub

https://github.com/wordpress-mobile/WordPress-iOS

https://github.com/wordpress-mobile/WordPress-Editor-iOS

https://github.com/wordpress-mobile/WordPressCom-Stats-iOS

WordPress.org Make - http://make.wordpress.org/mobile

WordPress.org Slack - http://chat.wordpress.org

Questions?

Contact

Twitter: @astralbodies

GitHub: astralbodies

WordPress.org Slack: astralbodies

E-mail: aaron@automattic.com

Thanks :)

Please give feedback via the 360iDev app!