android chat in the cloud: restful apis, authentication, push notifications ad someadditional...
DESCRIPTION
Slides from Alfredo Morresi talk @ codemotion roma 2014TRANSCRIPT
$OIUHGR�0RUUHVL'HYHORSHU�5HODWLRQV�#�*RRJOH
$QGURLG�FKDW�LQ�WKH�FORXG5(67IXO�$3ΖV��DXWKHQWLFDWLRQ��SXVK�QRWLILFDWLRQV�DQG�VRPH�DGGLWLRQDO�JRRGLHV
52/(
'HYHORSHU�5HODWLRQV�3URJUDP�0DQDJHU
&28175<
,WDO\
3$66,216
&RPPXQLW\��'HYHORSPHQW��6QRZERDUGLQJ��7LUDPLVX
5($&+�0(
DOIUHGRPRUUHVL#JRRJOH�FRPSOXV�JRRJOH�FRP��$OIUHGR0RUUHVL#UDLQERZEUHH]H
$OIUHGR�0RUUHVL
:KR�Ζ�DP
'RZQORDG�IURP�KWWSV���SOD\�JRRJOH�FRP�VWRUH�DSSV�GHWDLOV"LG RUJ�DOH[LVPS�FORXG�EDFNHQG
/HWȇV�VWDUW�ZLWK�WKH�FKDW�GHPR�DSS
ΖQ�OHVV�WKDQ����PLQXWHV"
*RRJOH�FRQILGHQWLDO��'R�QRW�GLVWULEXWH��
&ORXG�6WRUDJH &ORXG�64/ &ORXG�
'DWDVWRUH
&RPSXWH
&RPSXWH�(QJLQH$SS�(QJLQH
$SS�6HUYLFHV
%LJ4XHU\ &ORXG�(QGSRLQWV
6WRUDJH
*RRJOH�&ORXG�3ODWIRUP
)RUJHW�DERXW�WKH�EDFNHQG�
8VH�*RRJOH�&ORXG�3ODWIRUP���0RELOH�%DFNHQG�6WDUWHU
2SWLRQDO�VHUYHU�VLGH�FRGLQJ&RQWURO�\RXU�FORXG�VHUYLFH�XVLQJ�$QGURLG�DQG�L26�FOLHQW�OLEUDULHV�
3XVK�1RWLILFDWLRQV6HQG�DQG�EURDGFDVW�REMHFWV�DV�PHVVDJHV�YLD�$SSOH�3XVK�1RWLILFDWLRQV�DQG�*RRJOH�&ORXG�0HVVDJLQJ�
$SS�DXWKRUL]DWLRQ��8VHU�DXWKHQWLFDWLRQ$XWKHQWLFDWH�XVHUV�XVLQJ�*RRJOH�$FFRXQWV�DQG�FRQWURO�DFFHVV�RQ�SULYDWH�GDWD�
%XLOW�WR�VFDOH0RELOH�%DFNHQG�UXQV�RQ�$SS�(QJLQH�LQIUDVWUXFWXUH�WR�VFDOH�WR�PLOOLRQV�RI�XVHUV�ZLWKLQ�KRXUV�
KWWSV���GHYHORSHUV�JRRJOH�FRP�FORXG�VDPSOHV�PEV
&UHDWH�\RXU�EDFNHQG
&UHDWH�\RXU�EDFNHQG
&UHDWH�\RXU�EDFNHQG
&UHDWH�\RXU�EDFNHQG
KWWS���JRR�JO��)/53S
'RZQORDG�$QGURLG�DSS�VRXUFH�FRGH
&KDQJHƔ 352-(&7BΖ'Ɣ 352-(&7B180%(5Ɣ :(%B&/Ζ(17BΖ'
6HW�VRPH�YDOXHV�LQ�WKH�VRXUFH�DQG�\RXȇYH�GRQH�
6WHS��$FFHVVLQJ�WR�WKH�$3ΖV
*RRJOH�&ORXG�(QGSRLQWV��JHQHUDWH�$3ΖV�IURP�DQQRWDWLRQV
KWWSV���GHYHORSHUV�JRRJOH�FRP�DSSHQJLQH�GRFV�MDYD�HQGSRLQWV�
*RRJOH�&ORXG�(QGSRLQWV��JHQHUDWH�$3ΖV�IURP�DQQRWDWLRQV
0RELOH�%DFNHQG�5XQQLQJ�RQ�*RRJOH�$SS�(QJLQH�ΖQVWDQFHV0RELOH�%DFNHQG�5XQQLQJ�RQ�*RRJOH�$SS�(QJLQH�ΖQVWDQFHV
0RELOH�%DFNHQG�5XQQLQJ�RQ�*RRJOH�$SS�(QJLQH�ΖQVWDQFHV
&ORXG�(QGSRLQWV�&OLHQWV
([SORUH�WKH�$3ΖV�KWWS����<285B352-(&7BΖ'!�DSSVSRW�FRP�BDK�DSL�H[SORUHU
([SORUH�WKH�EDFNHQG�$3ΖV
6HW�2SHQ�DXWKHQWLFDWLRQ�LQ�WKH�EDFNHQG
6HW�WKH�&RQVWV�Ζ6B$87+B(1$%/('�WR�IDOVH
6HW�WKH�&RQVWV�352-(&7BΖ'�WR
$FFHVV�WR�5(67IXO�$3ΖV��QR�DXWKHQWLFDWLRQ
ΖW�ZDV�HDV\�
*RRJOH�&ORXG�(QGSRLQWV�DXWRPDWLFDOO\�JHQHUDWHV�WKH�$QGURLG�FRGH�UHTXLUHG�WR�DFFHVV�WKH�EDFNHQG�$3ΖV
0RELOHEDFNHQG�%XLOGHU�EXLOGHU� �QHZ�0RELOHEDFNHQG�%XLOGHU���������$QGURLG+WWS�QHZ&RPSDWLEOH7UDQVSRUW�����������QHZ�*VRQ)DFWRU\�����������QXOO��
0RELOHEDFNHQG�EDFNHQG� ���������EXLOGHU�VHW5RRW8UO�&RQVWV�(1'32,17B5227B85/��EXLOG���
$FFHVV�WR�5(67IXO�$3ΖV��QR�DXWKHQWLFDWLRQ
ΖQVHUW�D�QHZ�&ORXG(QWLW\�LQ�WKH�EDFNHQG
&ORXG(QWLW\�SRVW� �QHZ�&ORXG(QWLW\��*XHVWERRN���SRVW�SXW��PHVVDJH����<RXU�PHVVDJH�KHUH������
(QWLW\'WR�UHVXOW(QWLW\'WR� �EDFNHQG�HQGSRLQW9������������LQVHUW�SRVW�JHW.LQG1DPH����SRVW�JHW(QWLW\'WR����H[HFXWH���
&ORXG(QWLW\�UHVXOW&R� ��������&ORXG(QWLW\�FUHDWH&ORXG(QWLW\)URP(QWLW\'WR�UHVXOW(QWLW\'WR��
/RJ�L�&RQVWV�7$*���LQVHUW��LQVHUWHG������UHVXOW&R��
$FFHVV�WR�5(67IXO�$3ΖV��QR�DXWKHQWLFDWLRQ
6WHS��$FFHVVLQJ�WR�WKH�$3ΖV�ZLWK�DXWKHQWLFDWLRQ
5HVWULFW�WKH�$3�DFFHVV�RQO\�WR�\RXU�DSSOLFDWLRQ�V��
$1'52Ζ'�&OLHQWBΖ'��LGHQWLILHV�\RXU�DSS�LQ�XQLTXH�ZD\��SDFNDJH�QDPH���6+$��RI�VLJQLQJ�NH\�RI�WKH�DSS�
:(%�&OLHQWBΖ'��HVWDEOLVKHV�WKDW�WKH�FOLHQW�DQG�WKH�VHUYHU�DUH�IURP�WKH�VDPH�GHYHORSHU�VR�WKH�VWDQGDUG�2$XWK��SURPSW�LV�DYRLGHG��QR��UG�SDUW\�DSS���ΖWȇV�D�VKDUHG�WRNHQ�
KWWSV���GHYHORSHUV�JRRJOH�FRP�DSSHQJLQH�GRFV�MDYD�HQGSRLQWV�DXWK
$XWKHQWLFDWHG�DFFHVV�WR�WKH�$3ΖV
*HQHUDWH�$QGURLG�&OLHQW�Ζ'
*HQHUDWH�$QGURLG�&OLHQW�Ζ'
*HQHUDWH�:HE�&OLHQW�Ζ'
*HQHUDWH�:HE�&OLHQW�Ζ'
6HW�$QGURLG�DQG�:HE��&OLHQW�Ζ'V�LQ�WKH�EDFNHQG
�6HW�WKH�&RQVWV�Ζ6B$87+B(1$%/('�WR�WUXH
6HW�WKH�&RQVWV�:(%B&/Ζ(17BΖ'�WR�:HE�&OLHQW�Ζ'
$XWKHQWLFDWHG�DFFHVV�WR�WKH�$3ΖV
*RRJOH$FFRXQW&UHGHQWLDO�FUHGHQWLDO� ��������*RRJOH$FFRXQW&UHGHQWLDO�XVLQJ$XGLHQFH�����������������JHW$FWLYLW\����&RQVWV�$87+B$8',(1&(��
LI��FUHGHQWLDO�JHW6HOHFWHG$FFRXQW1DPH��� �QXOO��^����VWDUW$FWLYLW\)RU5HVXOW�������������FUHGHQWLDO�QHZ&KRRVH$FFRXQW,QWHQW���������������5(48(67B$&&2817B3,&.(5��
6WULQJ�DFFRXQW1DPH� ��������GDWD�JHW6WULQJ([WUD�$FFRXQW0DQDJHU�.(<B$&&2817B1$0(��FUHGHQWLDO�VHW6HOHFWHG$FFRXQW1DPH�DFFRXQW1DPH��
KWWSV���GHYHORSHUV�JRRJOH�FRP�DSSHQJLQH�GRFV�MDYD�HQGSRLQWV�FRQVXPHBDQGURLG�-DYDB0DNLQJBDXWKHQWLFDWHGBFDOOV
7KH�$QGURLG�FOLHQW�SURYLGHV�FUHGHQWLDOV�
ΖQMHFW�WKH�FUHGHQWLDO�LQ�WKH�EDFNHQG�PDQDJHU�FODVV
���FKHFN�LI�FUHGHQWLDO�KDV�DFFRXQW�QDPHILQDO�*RRJOH$FFRXQW&UHGHQWLDO�JDF� ���������FUHGHQWLDO� �QXOO�__�FUHGHQWLDO�JHW6HOHFWHG$FFRXQW1DPH��� �QXOO����������������"�QXOO������������������P&UHGHQWLDO�
���FUHDWH�+WWS5HTXHVW,QLWLDOL]HU+WWS5HTXHVW,QLWLDOL]HU�KWWS5HTXHVW,QLWLDOL]HU� �QHZ�+WWS5HTXHVW,QLWLDOL]HU���^��������#2YHUULGH��������SXEOLF�YRLG�LQLWLDOL]H�+WWS5HTXHVW�UHTXHVW��WKURZV�,2([FHSWLRQ�^������������LI��JDF�� �QXOO��^����������������JDF�LQLWLDOL]H�UHTXHVW��������������`��������``�
$XWKHQWLFDWHG�DFFHVV�WR�WKH�$3ΖV
0RELOHEDFNHQG�%XLOGHU�EXLOGHU� �QHZ�0RELOHEDFNHQG�%XLOGHU���������$QGURLG+WWS�QHZ&RPSDWLEOH7UDQVSRUW�����������QHZ�*VRQ)DFWRU\�����������KWWS5HTXHVW,QLWLDOL]HU��
0RELOHEDFNHQG�EDFNHQG� ���������EXLOGHU�VHW5RRW8UO�&RQVWV�(1'32,17B5227B85/��EXLOG���
Ȑ�1RZ�WKH�$3Ζ�EDFNHQG�IUDPHZRUN�DXWRPDWLFDOO\�DXWKHQWLFDWHV�WKH�XVHU�DQG�HQIRUFHV�WKH�DXWKRUL]HG�FOLHQWΖGV�ZKLWHOLVW��XOWLPDWHO\�E\�VXSSO\LQJ�D�YDOLG�8VHU�WR�WKH�$3Ζ�SDUDPHWHUV�
$XWKHQWLFDWHG�DFFHVV�WR�WKH�$3ΖV
6WHS��$GG�SXVK�QRWLILFDWLRQV
*RRJOH�&ORXG�0HVVDJLQJ�IRU�$QGURLG
KWWS���GHYHORSHU�DQGURLG�FRP�JRRJOH�JFP�LQGH[�KWPO
(QDEOH�*&0�LQ�WKH�SURMHFW
*HQHUDWH�D�6HUYHU�$3Ζ�.H\
*HQHUDWH�D�6HUYHU�$3Ζ�.H\
(QDEOH�*&0�LQ�WKH�EDFNHQG
6HW�WKH�&RQVWV�352-(&7B180%(5�WR
(QDEOH�*&0�LQ�WKH�FOLHQW
KWWS���GHYHORSHU�DQGURLG�FRP�JRRJOH�JFP�FOLHQW�KWPO
5HJLVWHU�\RXU�DSS�DQG�VWRUH�UHJLVWUDWLRQ�Ζ'
6WULQJ�UHJ,G� �JHW5HJ,G)URP3UHI���LI��UHJLVWUDWLRQ,G�LV(PSW\����^����UHJLG� �*RRJOH&ORXG0HVVDJLQJ�JHW,QVWDQFH�FRQWH[W��������������UHJLVWHU�352-(&7B,'������VWRUH5HJ,G7R3UHI�UHJ,G��`
$�ORRN�LQWR�*&0�FOLHQW�FRGH
#2YHUULGHSXEOLF�YRLG�RQ5HFHLYH�&RQWH[W�FRQWH[W��,QWHQW�LQWHQW��^�������([SOLFLWO\�VSHFLI\�WKDW�*FP,QWHQW6HUYLFH�ZLOO�KDQGOH�WKH�LQWHQW����&RPSRQHQW1DPH�FRPS� �������������QHZ�&RPSRQHQW1DPH���������������������FRQWH[W�JHW3DFNDJH1DPH�����������������������*&0,QWHQW6HUYLFH�FODVV�JHW1DPH�����������6WDUW�VHUYLFH��NHHSLQJ�WKH�GHYLFH�DZDNH�ZKLOH�LW�LV�ODXQFKLQJ����VWDUW:DNHIXO6HUYLFH�FRQWH[W���LQWHQW�VHW&RPSRQHQW�FRPS��������VHW5HVXOW&RGH�$FWLYLW\�5(68/7B2.��`
&UHDWH�D�%URDGFDVW5HFHLYHU�WR�UHFHLYH�SXVK�PHVVDJHV
SURWHFWHG�YRLG�RQ+DQGOH,QWHQW�,QWHQW�LQWHQW��^����%XQGOH�H[WUDV� �LQWHQW�JHW([WUDV�������*RRJOH&ORXG0HVVDJLQJ�JFP� �*RRJOH&ORXG0HVVDJLQJ�JHW,QVWDQFH�WKLV������6WULQJ�PVJ7\SH� �JFP�JHW0HVVDJH7\SH�LQWHQW��
����LI��H[WUDV�LV(PSW\����^�����KDV�HIIHFW�RI�XQSDUFHOOLQJ�%XQGOH��������«����`����LI��*RRJOH&ORXG0HVVDJLQJ�0(66$*(B7<3(B0(66$*(�HTXDOV�PHVVDJH7\SH���^��������«����`�������5HOHDVH�WKH�ZDNH�ORFN�SURYLGHG�E\�WKH�:DNHIXO%URDGFDVW5HFHLYHU�����*&0%URDGFDVW5HFHLYHU�FRPSOHWH:DNHIXO,QWHQW�LQWHQW��`
+DQGOH�WKH�PHVVDJH�ZLWK�D�6HUYLFH
$QG�UHPHPEHU�WR���
$SS�UHJLVWUDWLRQ�LV�D�QHWZRUN�RSHUDWLRQ
%RQXV�6WHS$SS�LQWHUQDO�DUFKLWHFWXUH
(QWLW\'WR�UHVXOW(QWLW\'WR� �EDFNHQG�HQGSRLQW9������������LQVHUW�SRVW�JHW.LQG1DPH����SRVW�JHW(QWLW\'WR����H[HFXWH���
%HFDXVH�$3�FDOOV�DUH�VORZ���
1HYHU�IRUJHW�
���FUHDWH�D�UHVSRQVH�KDQGOHU�WKDW�ZLOO�UHFHLYH�WKH�UHVXOW�RU�DQ�HUURU&ORXG&DOOEDFN+DQGOHU�/LVW�&ORXG(QWLW\!!�KDQGOHU� ��������QHZ�&ORXG&DOOEDFN+DQGOHU�/LVW�&ORXG(QWLW\!!���^����������������#2YHUULGH����������������SXEOLF�YRLG�RQ&RPSOHWH�/LVW�&ORXG(QWLW\!�UHVXOWV��^���������������������������������������`
����������������#2YHUULGH����������������SXEOLF�YRLG�RQ(UURU�,2([FHSWLRQ�H[FHSWLRQ��^���������������������������������������`
&ORXG%DFNHQG$6\QF�H[WHQGV�&ORXG%DFNHQG
���H[HFXWH�WKH�TXHU\�ZLWK�WKH�KDQGOHUP3URFHVVLQJ)UDJPHQW�JHW&ORXG%DFNHQG���OLVW%\.LQG����������*XHVWERRN����������&ORXG(QWLW\�3523B&5($7('B$7���������2UGHU�'(6&��������������������6FRSH�)8785(B$1'B3$67��KDQGOHU��
&ORXG%DFNHQG$6\QF�H[WHQGV�&ORXG%DFNHQG
:K\�WKHVH�WZR�FODVVHV"
6HSDUDWH�WKH�ORJLF��&ORXG%DFNHQG��IURP�WKH�V\QF�PDQDJHPHQW��&ORXG%DFNHQG$V\QF��PDNHV�WKH�FRGH�PRUH�WHVWDEOH�
���&KHFN�WR�VHH�LI�ZH�KDYH�UHWDLQHG�WKH�IUDJPHQW�ZKLFK�KDQGOHV�DV\QFKURQRXV�EDFNHQG�FDOOVP3URFHVVLQJ)UDJPHQW� ��&ORXG%DFNHQG)UDJPHQW��P)UDJPHQW0DQDJHU���������ILQG)UDJPHQW%\7DJ�352&(66,1*B)5$*0(17B7$*�����,I�QRW�UHWDLQHG��RU�ILUVW�WLPH�UXQQLQJ���FUHDWH�D�QHZ�RQHLI��P3URFHVVLQJ)UDJPHQW� �QXOO��^����P3URFHVVLQJ)UDJPHQW� �QHZ�&ORXG%DFNHQG)UDJPHQW�������P3URFHVVLQJ)UDJPHQW�VHW5HWDLQ,QVWDQFH�WUXH������IUDJPHQW7UDQVDFWLRQ�DGG�P3URFHVVLQJ)UDJPHQW��352&(66,1*B)5$*0(17B7$*��`«���H[HFXWH�WKH�LQVHUWLRQ�ZLWK�WKH�KDQGOHUP3URFHVVLQJ)UDJPHQW�JHW&ORXG%DFNHQG���LQVHUW�QHZ3RVW��KDQGOHU��P0HVVDJH7[W�VHW(QDEOHG�IDOVH��P6HQG%WQ�VHW(QDEOHG�IDOVH��
$FWLYLW\�OLIHF\FOH��\RX�FDQ�GR�EHWWHU��
&ORXG(QWLW\�SRVW� �QHZ�&ORXG(QWLW\��*XHVWERRN���SRVW�SXW��PHVVDJH����<RXU�PHVVDJH�KHUH������SRVW�SXW��DOIBSURSHUW\����&XVWRP�SURSHUW\�YDOXH�KHUH������
(QWLW\'WR�UHVXOW(QWLW\'WR� �EDFNHQG�HQGSRLQW9������������LQVHUW�SRVW�JHW.LQG1DPH����SRVW�JHW(QWLW\'WR����H[HFXWH���
&ORXG(QWLW\�UHVXOW&R� ��������&ORXG(QWLW\�FUHDWH&ORXG(QWLW\)URP(QWLW\'WR�UHVXOW(QWLW\'WR��
([WHQGV�WKH�GDWD
KWWSV���GHYHORSHUVLWDOLD�EORJVSRW�FRP
&XULRXV�DERXW�*RRJOH�GHY�LQLWLDWLYHV�DQG�HYHQW�LQ�ΖWDO\"
*RRJOH�FRQILGHQWLDO��'R�QRW�GLVWULEXWH��
�����LQ�&ORXG�3ODWIRUP�FUHGLW�WR�ODXQFK�\RXU�LGHD��
%XLOG��6WRUH��$QDO\]H�2Q�WKH�VDPH�LQIUDVWUXFWXUH�
WKDW�SRZHUV�*RRJOH6WDUW�EXLOGLQJ
&OLFN�Ȇ$SSO\�1RZȇ�DQG�FRPSOHWH�WKH�
DSSOLFDWLRQ�ZLWK�SURPR�FRGH��GD
6WDUWHU�3DFN
2IIHU�'HVFULSWLRQ
�
�
�
*R�WR�FORXG�JRRJOH�FRP�GHYHORSHUV�VWDUWHUSDFN
7KDQN�\RX�KWWS���GHYHORSHUV�JRRJOH�FRP
$OIUHGR�0RUUHVLSOXV�JRRJOH�FRP��$OIUHGR0RUUHVL#UDLQERZEUHH]H