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

C2M - Mobile App Design

C2M - Mobile App Design

This presentation was used in episode 4 of Pune Mobile Developer's C2M (Concept to market) mobile meetup series.

Pune Mobile Developers: https://www.meetup.com/Pune-Mobile-Developers/
Event page: https://www.meetup.com/Pune-Mobile-Developers/events/251232545/
Recording of the event: https://youtu.be/-AimZpphkQM

Kaushal Dhruw

June 09, 2018
Tweet

More Decks by Kaushal Dhruw

Other Decks in Technology

Transcript

  1. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved.

    C2M – App Design MVP and implementation - Kaushal Dhruw (@drulabs)
  2. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 2 Guidelines • Cell phones in silent mode • No ungentlemanly conduct please – No abuse of Wi-Fi or other resources – Respect fellow members • Suggestions are welcome • It is an open session, ask your questions anytime, unless specified otherwise.
  3. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 3 Pune Mobile Developers • Started in August 2013. Part of Google Developer Communities since Jan 2017 • “Increase awareness of fast growing mobile technology among Developers” • Currently has around ~4900 members • 38 meetups so far
  4. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 4 Announcements • Volunteers • Collaborative projects 4
  5. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 5 Introduction • Why x-platform mobile app development? • Why NOT… – Flutter, Xamarin, React Native etc.? – Hybrid apps? – Android architecture components?
  6. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 6 C2M meetup series • Cover all the phases of app development. • Learn the 2 dominating players in the market. • Create same app on Android and iOS (in parts). • Take your first step towards becoming complete mobile developer. • Learn from the community. 6
  7. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 7 Contents • Basics revisited • MVP revisited • UI • Implementing Model • Implementing View and Presenter • Testing the View with dummy data • Conclusion 7
  8. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 8 Basics • D d = new D() ? • C c = new C() ? • A a = new A(){…} – anonymous? • B b = new B() ? • B b = new B() {…} - anonymous? • D d = new C() ? • C c = new D() ? • X x = new C(), x = new D()? • A a = new D(), C c = a? • B b = new C(), X x = b?
  9. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 9 I will do it my way One activity / view controller will do everything The cleanest code ever 9
  10. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 10 What is this code doing here? Did I really write this? After some time
  11. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 11 Put everything in one class?? Do not put everything in one class, it makes the code: • Spaghetti • Tightly coupled • Hard to read, maintain and unit test • Error prone • Difficult to debug
  12. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 12 SOLID Principles 5 design principles intended to make software designs more understandable, flexible and maintainable • S – Single Responsibility Principle • O – Open / Closed Principle • L – Liskov Substitution Principle • I – Interface Segregation Principle • D – Dependency Inversion Principle
  13. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 13 The MVP pattern 13
  14. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 14 The MVP pattern 14
  15. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 15 The MVP pattern 15
  16. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 16 Enough theories lets code 16
  17. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 17 MVP in Android App 17
  18. Copyright © 2016 Talentica Software (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talentica Software (I) Pvt Ltd. All rights reserved. 18