Transcript
Page 1: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 2: Community Code: The SenchaCon App

About us

Wednesday, November 2, 11

Page 3: Community Code: The SenchaCon App

The SenchaCon app team

Development Design

Wednesday, November 2, 11

Page 4: Community Code: The SenchaCon App

The SenchaCon app supporters

Web API Sencha Engineers

Wednesday, November 2, 11

Page 5: Community Code: The SenchaCon App

The SenchaCon app

• Uses Sencha Touch 2

• 35 classes

• Takes advantage of Ext Loader (debug)

• Implements MVC (extensively!)

Wednesday, November 2, 11

Page 6: Community Code: The SenchaCon App

The SenchaCon app

• Leverages Local Storage

• Uses app cache (offline storage)

• Implements ComponentQuery

• Not a single component with a static id!

Wednesday, November 2, 11

Page 7: Community Code: The SenchaCon App

The SenchaCon app

Wednesday, November 2, 11

Page 8: Community Code: The SenchaCon App

The SenchaCon app

• Highly optimized custom components

• Reusability kept in mind throughout code base

• Code developed with minification in mind

• Minified with Sencha SDK Tools 2.0

Wednesday, November 2, 11

Page 9: Community Code: The SenchaCon App

Breaking the ice

• Develop individual views & models in their own sandbox

• Views should work independently

• One HTML file per view for testing

• Test fired events via Webkit console

• Allowed for us to divide and conquer

Wednesday, November 2, 11

Page 10: Community Code: The SenchaCon App

Pass #1

• Initial development done in Sencha touch 1.0

• Used MVC

• Router

• History

• Best practices for extending components

• Paved the way for the Sencha Touch 2.0 migration

Wednesday, November 2, 11

Page 11: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 12: Community Code: The SenchaCon App

Enter Sencha Touch 2!

Wednesday, November 2, 11

Page 13: Community Code: The SenchaCon App

Migrate to the new class system

Wednesday, November 2, 11

Page 14: Community Code: The SenchaCon App

Sencha Touch 2.0 migration

• Change the namespace to match the new MVC pattern

• Views

• Models

• Controllers

• Utilities

Wednesday, November 2, 11

Page 15: Community Code: The SenchaCon App

Quick MVC thoughts

• Controller is at the center

• Controller subscribes to events from the view

• Controller updates the model

• Model drives the view

Model

Controller

View

Wednesday, November 2, 11

Page 16: Community Code: The SenchaCon App

Quick MVC thoughts

• Application extends Controller!

• Controllers can talk to the application via events or direct methods calls

ModelView

Controller

AppController

Wednesday, November 2, 11

Page 17: Community Code: The SenchaCon App

Multi-controller application

ModelView ModelView

Controller Controller

AppController

Wednesday, November 2, 11

Page 18: Community Code: The SenchaCon App

The class architecture

SchedulePanelViewport

Viewport

SessionsList

SessionsList

NavBar

NavBar SchedulePanel

App

SessionDetail

SessionDetail

SessionSpeakers

List

SpeakersList

SpeakerSpeakerDetail

SpeakerDetail

DataManager Util

Wednesday, November 2, 11

Page 19: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 20: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 21: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 22: Community Code: The SenchaCon App

Building the Viewport

Viewport

App

History store

Viewport

Wednesday, November 2, 11

Page 23: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 24: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 25: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 26: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 27: Community Code: The SenchaCon App

Building navigation

Viewport NavBar

App

NavBar

History store

Viewport

Wednesday, November 2, 11

Page 28: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 29: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 30: Community Code: The SenchaCon App

Adding the schedule panel

SchedulePanelViewport NavBar

NavBar SchedulePanel

App

History store

Viewport

Wednesday, November 2, 11

Page 31: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 32: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 33: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 34: Community Code: The SenchaCon App

Adding the sessions list

SchedulePanelViewport

Viewport

SessionSessionsList

SessionsList

NavBar

NavBar SchedulePanel

App

Wednesday, November 2, 11

Page 35: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 36: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 37: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 38: Community Code: The SenchaCon App

Adding the schedule panel

SchedulePanelViewport

Viewport

SessionsList

SessionsList

NavBar

NavBar SchedulePanel

App

SessionDetail

SessionDetail

Session

Wednesday, November 2, 11

Page 39: Community Code: The SenchaCon App

A highly optimized view!

Wednesday, November 2, 11

Page 40: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 41: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 42: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 43: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 44: Community Code: The SenchaCon App

Adding session speaker details

SchedulePanelViewport

Viewport

SessionsList

SessionsList

NavBar

NavBar SchedulePanel

App

SessionDetailSession

SpeakerDetail

SpeakerDetail

SessionDetail

Speaker

Wednesday, November 2, 11

Page 45: Community Code: The SenchaCon App

Adding session speaker details

Wednesday, November 2, 11

Page 46: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 47: Community Code: The SenchaCon App

Wednesday, November 2, 11

Page 48: Community Code: The SenchaCon App

Adding session speaker details

SchedulePanelViewport

Viewport

SessionsList

SessionsList

NavBar

NavBar SchedulePanel

App

SessionDetail

SessionDetail

SessionSpeakers

List

SpeakersList

SpeakerSpeakerDetail

SpeakerDetail

Wednesday, November 2, 11

Page 49: Community Code: The SenchaCon App

Questions?

• Contact info:

• twitter :

• @moduscreate

• @_jdg

[email protected]

Thank you!

Wednesday, November 2, 11


Top Related