Topic
- Introduction
- Instructor
- Students
- Course format
- Course synopsis
- Goals:
- Make attendees competent programmers
- Enable attendees to work effectively as a member of a team including professionals of other related disciplines
- Train attendees to successfully deliver an application project
- Course contents
- Project
- Sample app: directory service with integrated chat.
- MVC class structure
- LSO to store friends/login info
- Remoting / XML for model (user list, lookup/ logged in)
- FlashComm for taking your picture, text and video chat
- custom chat component?
- Review
- IDE
- Timeline
- Symbols
- Library
- New features of FlashMX 2004 Professional
- Class based programming
- Form-based projects
- AS File editiing
- Project pane
- ci/co
- Components
- Programming:
- Programming basics
- AS1.0 vs. AS2.0: typing, case-sensitivity (#strict pragma)
- Variables, conditionals, boolean logic, loops, functions, built in events, recursion
- Interface programming basics
- Timeline control, movieclip manipulation, textfield manipulation
- Events
- Dynamic instantiation
- Drawing API
- Data Architecture
- Linked list, doubly linked list
- http://en.wikipedia.org/wiki/Linked_list
- FIFO (queues), LIFO (stacks)
- http://en.wikipedia.org/wiki/LIFO
http://en.wikipedia.org/wiki/FIFO
http://en.wikipedia.org/wiki/Stack_(computing)
- Arrays
- Objects / Libraries / Indexes / Associative Arrays
- Nested objects
- Classes
- Object Oriented Programming Theory
- Encapsulation
- Polymorphism
- Abstraction
- Inheritance
- Pros/Cons
- OOP in Flash MX 2004
- AS1.0 vs AS2.0
- Class definition
- Instantiating: the new keyword
- Members: Properties and methods
- Constructor
- Private/public
- Discussion of compile time features
- Interfaces
- Enforcing with implements
- Inheritance
- Theory
- Extends keyword
- Member overwriting
- Using super
- Events
- Callbacks
- Handlers
- EventDispatcher
- More OOP goodies
- Get/Set
- Static
- Dynamic
- Packages
- Efficient code
- Choosing the right data structures
- Eliminating unnecessary processes
- Idle processes
- Intervals, frame loops, listeners, etc
- Extraneous calls
- Garbage collection
- Windex (cleaning the screen)
- Registers
- http://www.markme.com/jd/archives/004077.cfm
- Scope
- Object Oriented Analysis and Design
- coupling / cohesion
- analysis
- What will it do?
- Identify characters
- Use cases
- Determine interface requirements
- List applications responsibilities
- Define and evaluate CRC Cards
- design
- How will it do it?
- UML
- http://tnerual.eriogerg.free.fr/uml.html
http://gmodeler.com/
- Define attributes, methods, and relationships
- Plan ahead
- Evaluation
- Design patterns
- MVC, Singleton, Proxy, Decorator, Mixins, Command, Composite, Delegation, Visitor
- http://www.mindspring.com/~mgrand/pattern_synopses.htm
- Organizing Your Project
- Package layout
- Include files
- Library organization
- Shared libraries
- External SWFs
- Debugging
- Using trace
- Debugging strategies (isolate, identify, repair)
- http://www.markme.com/cantrell/archives/004053.cfm
- Using the debugger
- try...catch
- unit testing
- External data:
- Loadvars
- XML
- WebServices
- FlashRemoting
- FlashComm
- Local Shared Objects
- Occassionally connected applications
- Team work:
- Working in a team
- Other developers
- Designer, marketer, client
- Backend developer
- Structuring communication
- Other developers
- CI/CO
- CVS
- http://www.cvshome.org/
http://www.cvshome.org/docs/manual/
- Ownership/responsibility of classes
- Code commenting
- look up standards?
- Block commenting
- Edits commenting
- // GDS 01.12.2004 I changed this because.
- Documentation
- Designer - Usability
- Identify states and elements
- Tools
- Wireframes
- Paper prototypes
- Functional prototypes
- Heuristics
- Design patterns: direct manipulation, explorable interface, ephemeral feedback, disable irrelevant things, form, limited selection size
- Back-end developer
- I/O specs
- Process diagrams
- Implementing application projects:
- Project management
- Managing client expectations
- Preloading
- Creating states
- UI components
- Architecture overview
- Event model
- Styling
- DataProvider?
- Extending existing components
- Component parameter panel?
- Creating components
- Testing
- Evaluating results