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

How to create a conference Android app with Groovy and Wordpress?

How to create a conference Android app with Groovy and Wordpress?

Sergio del Amo

March 19, 2016
Tweet

More Decks by Sergio del Amo

Other Decks in Programming

Transcript

  1. HOW TO CREATE A CONFERENCE
    ANDROID APP WITH GROOVY
    AND WORDPRESS?

    View Slide

  2. SERGIO DEL AMO
    [email protected]
    @SDELAMO

    View Slide

  3. IOS APP
    APP STORE

    View Slide

  4. GR8CONFAGENDA
    GOOGLEPLAY

    View Slide

  5. GROOVYCALAMARI.COM
    A “weekly” curated email
    newsletter full of
    interesting, relevant links
    about the Groovy
    Ecosystem

    View Slide

  6. AUDIENCE BACKGROUND
    ▸ WORDPRESS AFICIONADO?
    ▸ WORDPRESS DEVELOPERS?
    ▸ ANDROID DEVELOPERS?
    ▸ GROOVY DEVELOPERS?

    View Slide

  7. SMALL ( < 20 EMPLOYEES )
    MEDIUM-BIG ( > 20 EMPLOYEES )

    View Slide

  8. WHY?

    View Slide

  9. IS IT POSSIBLE TO HIRE
    GROOVY DEVELOPERS FOR
    A START-UP?

    View Slide

  10. View Slide

  11. View Slide

  12. SHOPTIMIX PROFILE?

    View Slide

  13. IS GROOVY TOO
    NICHE?

    View Slide

  14. TEXT

    View Slide

  15. TEXT

    View Slide

  16. View Slide

  17. View Slide

  18. TEXT

    View Slide

  19. DOES GROOVY NEED
    TO BE IN THE TOP 10?

    View Slide

  20. GROOVY CAN BE
    ANDROID’ SWIFT

    View Slide

  21. WORDPRESS

    View Slide

  22. WHY WORDPRESS?

    View Slide

  23. View Slide

  24. POWERS 25% OF ALL
    SITES ACROSS THE WEB
    WORDPRESS
    SOURCE W3TECHS

    View Slide

  25. CHEAP HOSTING

    View Slide

  26. PRODUCT IS USER
    FRIENDLY

    View Slide

  27. PRODUCT IS
    FLEXIBLE

    View Slide

  28. LOTS OF PLUGINS!

    View Slide

  29. HOW TO CREATE A
    CONFERENCE APP
    POWERED BY WORPRESS?

    View Slide

  30. View Slide

  31. View Slide

  32. CUSTOM POST TYPES
    ▸ CONGRESS
    ▸ SPEAKER
    ▸ TALK

    View Slide

  33. View Slide

  34. View Slide

  35. View Slide

  36. View Slide

  37. View Slide

  38. View Slide

  39. View Slide

  40. View Slide

  41. HTTP://EXAMPLE.COM/WP-JSON/POSTS?TYPE=TALK

    View Slide

  42. View Slide

  43. ANDROID

    View Slide

  44. https://github.com/groovy/groovy-android-gradle-plugin

    View Slide

  45. http://mariogarcia.github.io/grooid-templates/

    View Slide

  46. SQLite
    ENTITIES
    grooid_wpapi
    Activities
    Fragments
    Adapters
    USE CASES
    INTERFACE
    ADAPTERS
    BotConf grooid_wpapi

    View Slide

  47. REFRESH
    ▸ BACKGROUND TASK TO
    DOWNLOAD JSON
    ▸ UPDATE LOCAL
    DATABASE
    ▸ NOTIFY UI OF CHANGES
    IN THE DATABASE AND
    DISPLAY CHANGES

    View Slide

  48. https://github.com/Arasthel/SwissKnife

    View Slide

  49. View Slide

  50. GROOID_WPAPI
    ▸ https://github.com/sdelamo/grooid-wpapi

    View Slide

  51. View Slide

  52. View Slide

  53. View Slide

  54. View Slide

  55. View Slide

  56. ADAPTER PATTERN
    ▸ CONVERTS THE INTERFACE OF A CLASS INTO ANOTHER
    INTERFACE THE CLIENTS EXPECT. ADAPTERS LETS
    CLASSES WORK TOGETHER THAT COULDN’T OTHERWISE
    BECAUSE OF INCOMPATIBLE INTERFACES
    SOURCE HEAD FIRST PATTERNS

    View Slide

  57. View Slide

  58. GROOID_WPAPI
    void loadConferenceData { List conferences,
    List speakers,
    List talks ->
    }
    JSON PAYLOAD
    void fetchAllPosts(String url, String type, Closure customFields) {
    List posts ->
    }
    SpeakerWPAPIPostAdapter SpeakeTalkWPAPIPostAdapter
    class RemoteRepositoryUseCase implements IRemoteRepository

    View Slide

  59. PAGINATION

    View Slide

  60. STRING INTERPOLATION

    View Slide

  61. JAVA
    GROOVY

    View Slide

  62. GROOVY WITH OPERATOR

    View Slide

  63. AgendaSessionTimeHeader
    TalkCard
    AgendaSessionTimeHeader
    AgendaSessionTimeHeader
    TalkCard
    TalkCard
    TalkCard

    View Slide

  64. View Slide

  65. CHRONOLOGICAL
    ORDER
    REVERSE
    CHRONOLOGICAL
    ORDER
    12 Dec 2014
    11 Dec 2014
    13 Dec 2013
    12 Dec 2013
    14 Dec 2015
    15 Dec 2015

    View Slide

  66. View Slide

  67. SPOCK ON ANDROID
    ▸ https://github.com/pieces029/android-spock

    View Slide

  68. View Slide

  69. JAVA
    GROOVY

    View Slide

  70. SHARED PREFERENCES

    View Slide

  71. TRAITS

    View Slide

  72. View Slide

  73. MAIN ACTIVITY
    TALK ACTIVITY

    View Slide

  74. View Slide

  75. View Slide

  76. CHALLENGES

    View Slide

  77. MULTI-DEX IS A NIGHTMARE
    ▸ Android 64k method limit
    METHOD COUNT COMPARISION
    0
    7500
    15000
    22500
    30000
    OKHTTP IO.FABRIC GSON RETROFIT GROOVY ANDROID
    SOURCE: HTTPS://GITHUB.COM/GROOVY/GROOVY-ANDROID-GRADLE-PLUGIN/ISSUES/65

    View Slide

  78. ANDROID STUDIO
    SUPPORT

    View Slide

  79. CALL TO ACTION

    View Slide

  80. WORK IN PROGRESS
    ▸ GROOID_WPAPI (https://github.com/sdelamo/grooid-wpapi)
    ▸ BOTCONF (https://github.com/sdelamo/botconf)

    View Slide

  81. CODE ANDROID
    PROJECTS ON GROOVY

    View Slide

  82. GROOVYCALAMARI.COM
    A “weekly” curated email
    newsletter full of
    interesting, relevant links
    about the Groovy
    Ecosystem

    View Slide

  83. https://play.google.com/store/apps/details?id=com.botconf.ggx

    View Slide

  84. ?

    View Slide