Architecting apps - Can we write better code by planning ahead?

  • Published on
    06-Aug-2015

  • View
    154

  • Download
    0

Embed Size (px)

Transcript

  1. 1. Architecting apps Can we write better code by planning ahead? Paul Ardeleanu @pardel
  2. 2. Thank you
  3. 3. Architecting apps Can we write better code by planning ahead? Paul Ardeleanu @pardel
  4. 4. Architecting apps
  5. 5. http://media.ofcom.org.uk/news/2015/five-years-of-tablets/
  6. 6. iOS apps available
  7. 7. 100 000 000 000 app downloads
  8. 8. https://www.flickr.com/photos/officenow/2631533044/
  9. 9. http://www.tiobe.com/index.php/content/paperinfo/tpci/Swift.html
  10. 10. http://www.tiobe.com/index.php/content/paperinfo/tpci/Swift.html
  11. 11. http://www.apple.com/live/2015-june-event/
  12. 12. http://agilemanifesto.org
  13. 13. Solutions A. Respect the process B. Prototype C. Divide & Conquer D. Testing E. Documentation
  14. 14. Respect the process
  15. 15. 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
  16. 16. Application Definition Statement
  17. 17. Application Definition Statement A concise, concrete declaration of the apps main purpose and its intended audience. https://developer.apple.com/library/ios/documentation/ UserExperience/Conceptual/MobileHIG/
  18. 18. Solve real problems "An app must solve a user's problem clearly and elegantly." Eric Hope, User Experience Evangelist, Apple
  19. 19. List of features too many features? Filter Yes Application Denition Statement App features User journeys Wirefames Prototype
  20. 20. Prototype
  21. 21. Wireframes and/or Prototype
  22. 22. 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
  23. 23. Sketching
  24. 24. Sketching
  25. 25. Sketching
  26. 26. Sketching
  27. 27. Sketching
  28. 28. Sketching
  29. 29. Sketching
  30. 30. Sketching
  31. 31. Sketching
  32. 32. Sketching
  33. 33. Sketching
  34. 34. Sketching
  35. 35. Sketching
  36. 36. Sketching
  37. 37. More sketching start Splash screen List of sequences Add sequence Sequence edit 05:12start Timer start Add timer
  38. 38. Sketching start from the most important task identify main areas of the app identify screens identify relations between screens Dont worry! You wont get it right the first time
  39. 39. Prototyping Web based Visual Presentation based
  40. 40. Divide & Conquer
  41. 41. C4 Model
  42. 42. C4 Model
  43. 43. C4 Model
  44. 44. Black Box Avoid side effects Control inter-dependencies Improve testability
  45. 45. Dont follow blindly
  46. 46. Playgrounds
  47. 47. Testing
  48. 48. Faster is always better
  49. 49. Faster is always better
  50. 50. TDD vs BDD Test-Driven Development Behaviour-Driven Development
  51. 51. TBD To Be Determined
  52. 52. Documentation
  53. 53. 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.
  54. 54. UML
  55. 55. Documentation Sanity Communication across multiple teams Inter-operability of features Good practices Sanity
  56. 56. Solutions A. Respect the process B. Prototype C. Divide & Conquer D. Testing E. Documentation
  57. 57. Off by 1
  58. 58. Motivation
  59. 59. Your Why
  60. 60. Change ones life
  61. 61. Charity
  62. 62. Help people
  63. 63. Solutions A. Respect the process B. Prototype C. Divide & Conquer D. Testing E. Documentation F. Motivation
  64. 64. Thank you! } twitter pardel@pardel.net }blog