View
156
Download
0
Category
Tags:
Preview:
Citation preview
Architecting apps Can we write better code by planning ahead?
Paul Ardeleanu @pardel
Thank you
Architecting apps Can we write better code by planning ahead?
Paul Ardeleanu @pardel
Architecting apps
http://media.ofcom.org.uk/news/2015/five-years-of-tablets/
iOS apps available
100 000 000 000 app downloads
https://www.flickr.com/photos/officenow/2631533044/
http://www.tiobe.com/index.php/content/paperinfo/tpci/Swift.html
http://www.tiobe.com/index.php/content/paperinfo/tpci/Swift.html
http://www.apple.com/live/2015-june-event/
http://agilemanifesto.org
Solutions
A. Respect the process
B. Prototype
C. Divide & Conquer
D. Testing
E. Documentation
Respect the process
Ask the right questions
• usually starts with an idea / project requirement
• sell the vision to the team
• shoot the idea down and scale according to the platform constraints
• communication, communication, communication
• proposal
Application Definition Statement
Application Definition Statement
“A concise, concrete declaration of the app’s main purpose and its intended
audience.”
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/
Solve real problems
"An app must solve a user's problem clearly and elegantly."
Eric Hope, User Experience Evangelist, Apple
List of features
too manyfeatures?
Filter
Yes
ApplicationDefinitionStatement
Appfeatures
User journeys
Wirefames
Prototype
Prototype
Wireframes and/or Prototype
Wireframing
• identify main areas of the app
• identify screens
• identify relations between screens
• start from the simplest things and build up
• start from the main task of the app
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
More sketching
start
Splash screen
List of sequences
Add sequence
Sequenceedit
05:12start Timer
start
Add timer
Sketching
• start from the most important task
• identify main areas of the app
• identify screens
• identify relations between screens
• Don’t worry! You won’t get it right the first time
Prototyping
• Web based
• Visual
• Presentation based
Divide & Conquer
C4 Model
C4 Model
C4 Model
Black Box
• Avoid side effects
• Control inter-dependencies
• Improve testability
Don’t follow blindly
Playgrounds
Testing
Faster is always better
Faster is always better
TDD vs BDD
• Test-Driven Development
• Behaviour-Driven Development
TBD
To Be Determined
Documentation
UML
The Unified Modelling Language (UML) is a general-purpose modelling language in the field of software engineering, which is designed to provide a standard way to visualize the design of a system.
UML
Documentation
• Sanity
• Communication across multiple teams
• Inter-operability of features
• Good practices
• Sanity
Solutions
A. Respect the process
B. Prototype
C. Divide & Conquer
D. Testing
E. Documentation
Off by 1
Motivation
Your Why
Change one’s life
Charity
Help people
Solutions
A. Respect the process
B. Prototype
C. Divide & Conquer
D. Testing
E. Documentation
F. Motivation
Thank you!
}
pardel@pardel.net}blog
Recommended