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

How to create a conference android app with Groovy and Android

  • Upload
    gr8conf

  • View
    290

  • Download
    0

Embed Size (px)

Citation preview

HOW TO CREATE A CONFERENCE ANDROID APP WITH GROOVY

AND WORDPRESS?

SERGIO DEL [email protected] @SDELAMO

GROOVYCALAMARI.COM

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

GR8CONFAGENDA GOOGLEPLAY

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

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

AUDIENCE BACKGROUND▸WORDPRESS AFICIONADO?

▸WORDPRESS DEVELOPERS?

▸ANDROID DEVELOPERS?

▸GROOVY DEVELOPERS?

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

WHY?

IS IT POSSIBLE TO HIRE GROOVY DEVELOPERS FOR

A START-UP?

SHOPTIMIX PROFILE?

IS GROOVY TOO NICHE?

TEXT

TEXT

TEXT

DOES GROOVY NEED TO BE IN THE TOP 10?

GROOVY CAN BE ANDROID’ SWIFT

WORDPRESS

WHY WORDPRESS?

POWERS 25% OF ALL SITES ACROSS THE WEB

WORDPRESS

SOURCE W3TECHS

CHEAP HOSTING

PRODUCT IS USER FRIENDLY

PRODUCT IS FLEXIBLE

LOTS OF PLUGINS!

HOW TO CREATE A CONFERENCE APP

POWERED BY WORPRESS?

CUSTOM POST TYPES▸CONGRESS

▸ SPEAKER

▸ TALK

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

ANDROID

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

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

https://github.com/rvanderwerf/grooid-templates

SQLite

ENTITIES

grooid_wpapi

Activities Fragments Adapters

USE CASES

INTERFACE ADAPTERS

BotConf grooid_wpapi

REFRESH▸ BACKGROUND TASK TO

DOWNLOAD JSON

▸UPDATE LOCAL DATABASE

▸NOTIFY UI OF CHANGES IN THE DATABASE AND DISPLAY CHANGES

https://github.com/Arasthel/SwissKnife

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

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

GROOID_WPAPI

void loadConferenceData { List<IConference> conferences, List<ISpeaker> speakers, List<ITalk> talks -> }

JSON PAYLOAD

void fetchAllPosts(String url, String type, Closure customFields) { List<WPAPIPost> posts -> }

SpeakerWPAPIPostAdapter SpeakeTalkWPAPIPostAdapter

class RemoteRepositoryUseCase implements IRemoteRepository

PAGINATION

STRING INTERPOLATION

JAVA

GROOVY

GROOVY WITH OPERATOR

AgendaSessionTimeHeader <IAgendaSession>

TalkCard <IAgendaSession>

AgendaSessionTimeHeader <IAgendaSession>

AgendaSessionTimeHeader <IAgendaSession>

TalkCard <IAgendaSession>

TalkCard <IAgendaSession>

TalkCard <IAgendaSession>

CHRONOLOGICAL ORDER

REVERSE CHRONOLOGICAL ORDER

12 Dec 2014 11 Dec 2014 13 Dec 2013 12 Dec 2013

14 Dec 2015 15 Dec 2015

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

JAVA

GROOVY

SHARED PREFERENCES

TRAITS

MAIN ACTIVITY

TALK ACTIVITY

ASTSHTTPS://GITHUB.COM/MARIOGARCIA/MGUG-ANDROID

FROM:

TO:

CHALLENGES

MULTI-DEX IS A NIGHTMARE▸ Android 64k method limit

METHOD COUNT COMPARISION

0

7500

15000

22500

30000

OKHTTP IO.FABRIC GSON RETROFIT GROOVY ANDROIDSOURCE: HTTPS://GITHUB.COM/GROOVY/GROOVY-ANDROID-GRADLE-PLUGIN/ISSUES/65

ANDROID STUDIO SUPPORT

CALL TO ACTION

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

▸ BOTCONF (https://github.com/sdelamo/botconf)

CODE ANDROID PROJECTS ON GROOVY

GROOVYCALAMARI.COM

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

?