Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Journey to Reach a Good Architecture

The Journey to Reach a Good Architecture

A presentation given during the Google Launchpad Start in Santiago, Chile.
This presentation talk about elements to be present on technical teams, in particular, mobile teams

Armando Picón

April 12, 2019
Tweet

More Decks by Armando Picón

Other Decks in Programming

Transcript

  1. The Journey to reach a good architecture Armando Picón Android

    Engineer at Cornershop Inc. @devpicon https://medium.com/@devpicon
  2. Lifelong learning developer • 11 years as Software Developer •

    3 years as Android Developer • Participated on projects in Peru, Mexico and Chile • Speaker • Android Engineer at Cornershop Inc.
  3. Lean Startup Startups require an MVP to validate their ideas

    In Early Stages, Startups spend a lot of time trying to find good developers with enough experience to build the MVP
  4. How to recognize a good developer? A good developer looks

    for challenges, for continuous learning
  5. SOLID Principles Follow these principles help you to avoid that

    any change you have to do, break any other feature on your app.
  6. SOLID Principles • Single Responsibility • Open/Close Principle • Liskov

    Substitution • Interface Segregation • Dependency inversion https://apiumhub.com/es/tech-blog-barcelona/principios-solid/
  7. Design Patterns You don’t need to invent the wheel again,

    many design problems could be boarded using design patterns. The design patterns are proven strategies to solve common problems.
  8. Design Patterns Website Reference: Design Patterns - Object-Oriented Design https://www.oodesign.com/

    Book Reference: Design Patterns: Elements of Reusable Object-Oriented Software https://www.amazon.com/dp/0201633612/ref=cm_sw_em_r_mt_ dp_U_ysbSCb2X1CH6E Book Reference: Agile Software Development, Principles, Patterns, and Practices https://www.amazon.com/dp/0135974445/ref=cm_sw_em_r_mt_ dp_U_AtbSCbKRKC7XB
  9. Clean Code Follow standard conventions. Keep it simple stupid. Simpler

    is always better. Reduce complexity as much as possible. Boy scout rule. Leave the campground cleaner than you found it. Always find root cause. Always look for the root cause of a problem.
  10. Clean Code Clean Code: A Handbook of Agile Software Craftsmanship

    by Robert C. Martin https://www.amazon.com/dp/B001GSTOAM/ref=cm_sw_ em_r_mt_dp_U_tubSCb5T48XVT
  11. Testing Fundamentals of Testing https://developer.android.com/training/testing/fund amentals#testing-pyramid Effective Android Testing form

    Mobile Developers https://www.lynda.com/Android-tutorials/Effective-A ndroid-Testing-Mobile-Developers/609011-2.html
  12. Architecture Patterns Android Architecture Patterns - Part 1: Model-View-Controller https://medium.com/upday-devs/android-architecture-pattern

    s-part-1-model-view-controller-3baecef5f2b6 Android Architecture Patterns - Part 2: Model-View-Presenter https://medium.com/upday-devs/android-architecture-pattern s-part-2-model-view-presenter-8a6faaae14a5 Android Architecture Patterns - Part 3: Model-View-ViewModel https://medium.com/upday-devs/android-architecture-pattern s-part-3-model-view-viewmodel-e7eeee76b73b Florina Muntenescu
  13. Clean Architecture Testable Independent of frameworks Independent of the UI

    Independent of the database Independent of any external agency
  14. Clean Architecture Clean Coder Blog by Robert C. Martin (Uncle

    Bob) http://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-archite cture.html Uncle Bob
  15. Mobile Clean Architecture Testable Independent of frameworks Independent of the

    UI Independent of the database Independent of any external agency
  16. Mobile Clean Architecture Architecting Android - The Clean Way https://fernandocejas.com/2018/05/07/architecting-android-reloaded/

    Architecting Android - The Evolution https://fernandocejas.com/2015/07/18/architecting-android-the-evoluti on/ Architecting Android - Reloaded https://fernandocejas.com/2014/09/03/architecting-android-the-clean- way/ Fernando Cejas
  17. UI / UX Don't just be it but also look

    it. Material Design https://material.io/ Human Interface Guideline https://developer.apple.com/design/human-interface-guidelines/
  18. UI / UX Don’t Make Me Think, Revisited: A Common

    Sense Approach to Web Usability https://www.amazon.com/dp/B00HJUBRPG/ref=cm_sw_em_r_mt_dp_ U_LabSCbXEETCT7
  19. As Developer or CTOs, we MUST leave the office A

    better comprehension of how our product works, it’s possible not only waiting for feedback from our customers, we should use that we built. “The shoemaker's son always goes barefoot.” This expression does not apply to us. Read the feedback received through App Store or Play Store MUST BE read. Every negative review should be investigated
  20. Developer Stack - Tools & Components Kotlin Programming Language It’s

    not only the best choice technically speaking even business https://kotlinlang.org/ Architecture Components https://developer.android.com/topic/libraries/architecture Retrofit https://square.github.io/retrofit/ RxJava o LiveData + Kotlin Coroutines https://github.com/ReactiveX/RxJava
  21. Developer Stack - Tools & Components Kotlin Coroutines in Practice

    by Roman Elizarov https://www.youtube.com/watch?v=a3agLJQ6vt8 Android Suspenders by Chris Banes https://www.youtube.com/watch?v=P7ov_r1JZ1g Introduction to Coroutines by Roman Elizarov https://www.youtube.com/watch?v=_hfBv0a09Jc
  22. Beyond all of these Reach technical excellence Monitoring & Analytics

    Collect data Discover insights Generate improvements