SlideShare a Scribd company logo
1 of 16
Using Retrofit framework in implementation of
Android REST client
David Ante Macan*, Zlatko Stapić, Milan Pavlović*
University of Zagreb
Faculty of Organization and Informatics
Pavlinska 2, 42000 Varaždin, Croatia
http://www.foi.unizg.hr/
CASE27 – Developers conference - 02.06.2015. – Zagreb, Croatia
* Students at University of Zagreb, FOI Varazdin
Agenda
• Introduction
• REST Architecture
• Android client implementation
• Implementation using Retrofit
• Conclusion
• References
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20152
Introduction
• Today’s mobile applications are Internet dependent
• 2017 -> 90% [1], [3]
• Web services are used for supporting mobile application
functionalities
 Internet dependent monetization models
 App usage statistics, data synchronization, social components, score
tables…
• Backend servers for push notifications
• Web service – self contained and self describing application
component that can be used by other applications and can be
communicated by using open protocols [6]
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20153
Introduction
• After SOA became widely used for mobile and other applications,
the dominant way of exchanging the data with web services was
by using SOAP [7]
• XML used for creating requests and responses was too complex
and requests had to be build manually -> problematic due to
protocols intolerance on any errors
• REST (Representational State Transfer) provides lightweight
alternative and relies on simple URL approach
• REST can output the data in any format (for example in CSV, JSON
or RSS).
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20154
REST Architecture
 Architectural style for distributed hypermedia systems, as Roy
Fielding originally described it in his doctoral dissertation in 2000
[8]
 Contains 6 main characteristics:
1. Uniform interface
 Resource based
 Manipulation of resources through representations
 Usage of self-descriptive messages
 Hypermedia as the engine of application state
2. Statelessness
3. Caching
4. Client-server separation
5. Layering
6. Code on demand
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20155
REST Architecture
 HTTP request semantics
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20156
Request Method Description
GET
Used for retrieving (or read) a representation of a
resource. If everything works, HTTP GET response
contains a representation in XML or JSON with
response code of 200 (OK).
POST
Most often used for creation of new resources. It is
actually used to create subordinate or child resource of
some other (parent) resource. When server receives
POST request, it creates new resource and assigns it a
new ID.
PUT
Used for update operations. Request body should
contain newly-updated representation of the original
resource which is identified by a known resource URI.
DELETE Used to delete URI-identified resource.
Android client implementation
• Example system
 Address Manager - enables users to get geographical location (latitude
and longitude) of any user defined address
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20157
Android client implementation
• Web service specification
 http://tinyurl.com/case27-locations
 x-www-form-urlencoded request
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20158
URL Method Params Response example
base GET - [{"id":1,"location":"Ivanec","lat":
"46.2228422","lon":"16.1246793"},
…]
base POST location {"id":1,"location":"Ivanec","lat":
"46.2228422","lon":"16.1246793"}
base/id PUT location {"id":1,"location":"Ivanec 2", "lat":
"47.2228422","lon":"15.1246793"}
Android client implementation
• Native Android web-service consumption
 web service communication layer
 response parsing layer
 manual threading
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20159
Android client implementation
• Native Android web-service consumption
 Repository – consists of set of methods that are leaning on web
services
 Service – represents web-service communication layer. This class
should be flexible to be able to execute any web service request.
 Callback – interface to be implemented by any callback object
containing logic for receiving web-service response.
 Parser – static class containing knowledge on parsing the responses.
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201510
Android client implementation
• Native
Repository
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201511
Android client implementation
• Retrofit implementation
 type-safe REST client for Android and Java
 turns your REST API into a Java interface
 upon downloading the data
is parsed into POJO which
must be defined for each
"resource" in the response
 flexible in message format
 uses compile-time annotation
processor
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201512
Android client implementation
• Retrofit implementation
 Define API interface
 Define RetrofitHelper that will instantiate adapter and interface
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201513
Android client implementation
• Retrofit implementation
 Call methods
 Handle response
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201514
Conclusion
• We presented
 REST application architectural style
 Two implementations of web-service communication layer
• Main contribution
 Architectural design for the two approaches
• Native vs Retrofit approach
 Native approach is robust and hard to adapt
 Retrofit is straightforward and flexible
• Source code
 http://tinyurl.com/case27-code
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201515
References
[1] D. Bosomworth, “Mobile marketing statistics 2015” Smart Insights, 2015. Available at:
http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketingstatistics/ [Accessed: May-2015]
[2] ComScore Inc., “The U.S. Mobile App Report” 2014. Available at:
http://www.comscore.com/Insights/Presentations-and-Whitepapers/2014/The-US-Mobile-App-Report
[3] Statista, “Statistics and facts on Mobile Internet Usage,” Statista.com, 2015. [Online]. Available at:
http://www.statista.com/topics/779/mobile-internet/ [Accessed: May-2015].
[4] Android Developers, “Google Cloud Messaging for Android | Android Developers” Google Services,
2015. [Online]. Available at: https://developer.android.com/google/gcm/index.html [Accessed: May-2015].
[5] Apple inc., “Local and Push Notifications for Developers - Apple Developer” Developer Apple.com,
2015. [Online]. Available at: https://developer.apple.com/notifications/ [Accessed: May-2015].
[6] W3Schools.com, “Introduction to Web Services” Introduction to Web Services, 2015. [Online]. Available
at: http://www.w3schools.com/webservices/ws_intro.asp [Accessed: May-2015].
[7] W3Schools.com, “SOAP Introduction”, 2015. [Online]. Available at: http://www.w3schools.com/
webservices/ws_soap_intro.asp [Accessed: May-2015].
[8] R. T. Fielding, “Architectural Styles and the Design of Network-based Software Architectures”
UNIVERSITY OF CALIFORNIA, Irvine, 2000.
[9] A. Nene, “Web Services Architecture – When to Use SOAP vs REST” Javalobby, 2014. [Online]. Available
at: http://java.dzone.com/articles/web-services-architecture [Accessed: May-2015].
[10] J. Mueller, “Understanding SOAP and REST Basics” Software Quality Matters Blog, 2013. [Online].
Available at: http://blog.smartbear.com/apis/understanding-soap-and-rest-basics/ [Accessed: May-2015].
[11] F. Todd, “RESTful Service Best Practices, Recommendations for Creating Web Services”
RestAPITutorial.com, 2013.
[12] CodePath.com, “Consuming APIs with Retrofit” CodePath Android Cliffnotes, 2015. [Online]. Available
at: https://guides.codepath.com/android/Consuming-APIs-with-Retrofit#setup [Accessed: May-2015].
[13] StudyTrials, “Java Google Json (Gson) Introduction” StudyTrials.com. [Online]. Available at:
http://www.studytrails.com/java/json/java-google-json-introduction.jsp [Accessed: May-2015].
[14] “Google Gson” Google Gson Home, 2011. [Online]. Available at: https://sites.google.com/
site/gson/Home [Accessed: May-2015]
Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201516

More Related Content

What's hot

Gowsika_Cognos_Business_Intelligence
Gowsika_Cognos_Business_IntelligenceGowsika_Cognos_Business_Intelligence
Gowsika_Cognos_Business_IntelligenceGowsika Kamaraj
 
Beauty rani2.5 yrs exp in manual and selenium bangalore
Beauty rani2.5 yrs exp in manual and selenium bangaloreBeauty rani2.5 yrs exp in manual and selenium bangalore
Beauty rani2.5 yrs exp in manual and selenium bangaloreBeauty Rani
 
ABHIJIT_SEN_PERFORMANCE_TESTING
ABHIJIT_SEN_PERFORMANCE_TESTINGABHIJIT_SEN_PERFORMANCE_TESTING
ABHIJIT_SEN_PERFORMANCE_TESTINGAbhijit Sen
 
MuleSoft Meetup Bangalore #12
MuleSoft Meetup Bangalore #12MuleSoft Meetup Bangalore #12
MuleSoft Meetup Bangalore #12Nagaraju K R
 
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...WSO2
 
API Best Practices Webinar: Metrics - What to Measure
API Best Practices Webinar:  Metrics - What to MeasureAPI Best Practices Webinar:  Metrics - What to Measure
API Best Practices Webinar: Metrics - What to MeasureApigee | Google Cloud
 
Rahul_Gaur_Resume
Rahul_Gaur_ResumeRahul_Gaur_Resume
Rahul_Gaur_ResumeRahul Gaur
 
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 159 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15Open API Initiative (OAI)
 
Effective API Lifecycle Management
Effective API Lifecycle Management Effective API Lifecycle Management
Effective API Lifecycle Management SmartBear
 
Benefits of AngularJS Development for Your Business - APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB TechnologiesBenefits of AngularJS Development for Your Business - APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB TechnologiesAPPNWEB Technologies
 
Renuka Devi with 4+ yr Exp
Renuka Devi with 4+ yr ExpRenuka Devi with 4+ yr Exp
Renuka Devi with 4+ yr ExpRenuka Devi
 
apidays LIVE Australia - Growing an API Culture by Liz Douglass & Saul Caganoff
apidays LIVE Australia - Growing an API Culture by Liz Douglass & Saul Caganoffapidays LIVE Australia - Growing an API Culture by Liz Douglass & Saul Caganoff
apidays LIVE Australia - Growing an API Culture by Liz Douglass & Saul Caganoffapidays
 
apidays LIVE Hong Kong 2021 - DevOps is Dead by Jason Esli, New Relic
apidays LIVE Hong Kong 2021 - DevOps is Dead by Jason Esli, New Relicapidays LIVE Hong Kong 2021 - DevOps is Dead by Jason Esli, New Relic
apidays LIVE Hong Kong 2021 - DevOps is Dead by Jason Esli, New Relicapidays
 
Feature Scoring in Green Field Application Development and DevOps
Feature Scoring in Green Field Application Development and DevOpsFeature Scoring in Green Field Application Development and DevOps
Feature Scoring in Green Field Application Development and DevOpsDevOps Indonesia
 
Srinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_ResumeSrinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_ResumeSrinivasa rao
 

What's hot (20)

Gowsika_Cognos_Business_Intelligence
Gowsika_Cognos_Business_IntelligenceGowsika_Cognos_Business_Intelligence
Gowsika_Cognos_Business_Intelligence
 
Beauty rani2.5 yrs exp in manual and selenium bangalore
Beauty rani2.5 yrs exp in manual and selenium bangaloreBeauty rani2.5 yrs exp in manual and selenium bangalore
Beauty rani2.5 yrs exp in manual and selenium bangalore
 
ABHIJIT_SEN_PERFORMANCE_TESTING
ABHIJIT_SEN_PERFORMANCE_TESTINGABHIJIT_SEN_PERFORMANCE_TESTING
ABHIJIT_SEN_PERFORMANCE_TESTING
 
MuleSoft Meetup Bangalore #12
MuleSoft Meetup Bangalore #12MuleSoft Meetup Bangalore #12
MuleSoft Meetup Bangalore #12
 
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
 
vishal kaneria
vishal kaneriavishal kaneria
vishal kaneria
 
API Best Practices Webinar: Metrics - What to Measure
API Best Practices Webinar:  Metrics - What to MeasureAPI Best Practices Webinar:  Metrics - What to Measure
API Best Practices Webinar: Metrics - What to Measure
 
Rahul_Gaur_Resume
Rahul_Gaur_ResumeRahul_Gaur_Resume
Rahul_Gaur_Resume
 
Mule soft meetup____indy_may_02
Mule soft meetup____indy_may_02Mule soft meetup____indy_may_02
Mule soft meetup____indy_may_02
 
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 159 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15
 
Effective API Lifecycle Management
Effective API Lifecycle Management Effective API Lifecycle Management
Effective API Lifecycle Management
 
Benefits of AngularJS Development for Your Business - APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB TechnologiesBenefits of AngularJS Development for Your Business - APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB Technologies
 
Renuka Devi with 4+ yr Exp
Renuka Devi with 4+ yr ExpRenuka Devi with 4+ yr Exp
Renuka Devi with 4+ yr Exp
 
apidays LIVE Australia - Growing an API Culture by Liz Douglass & Saul Caganoff
apidays LIVE Australia - Growing an API Culture by Liz Douglass & Saul Caganoffapidays LIVE Australia - Growing an API Culture by Liz Douglass & Saul Caganoff
apidays LIVE Australia - Growing an API Culture by Liz Douglass & Saul Caganoff
 
Resume
ResumeResume
Resume
 
apidays LIVE Hong Kong 2021 - DevOps is Dead by Jason Esli, New Relic
apidays LIVE Hong Kong 2021 - DevOps is Dead by Jason Esli, New Relicapidays LIVE Hong Kong 2021 - DevOps is Dead by Jason Esli, New Relic
apidays LIVE Hong Kong 2021 - DevOps is Dead by Jason Esli, New Relic
 
Feature Scoring in Green Field Application Development and DevOps
Feature Scoring in Green Field Application Development and DevOpsFeature Scoring in Green Field Application Development and DevOps
Feature Scoring in Green Field Application Development and DevOps
 
ShainaResume
ShainaResumeShainaResume
ShainaResume
 
Srinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_ResumeSrinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_Resume
 
UpwanGupta
UpwanGuptaUpwanGupta
UpwanGupta
 

Viewers also liked

Retrofit
RetrofitRetrofit
Retrofitbresiu
 
Android libs by Square - make your development a bit easier
Android libs by Square - make your development a bit easierAndroid libs by Square - make your development a bit easier
Android libs by Square - make your development a bit easierSylwester Madej
 
Using Mobile-D methodology in development of mobile applications: Challenges ...
Using Mobile-D methodology in development of mobile applications: Challenges ...Using Mobile-D methodology in development of mobile applications: Challenges ...
Using Mobile-D methodology in development of mobile applications: Challenges ...Zlatko Stapic
 
Retrofit Android by Chris Ollenburg
Retrofit Android by Chris OllenburgRetrofit Android by Chris Ollenburg
Retrofit Android by Chris OllenburgTrey Robinson
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web servicesLilia Sfaxi
 

Viewers also liked (8)

Retrofit
RetrofitRetrofit
Retrofit
 
Retrofit
RetrofitRetrofit
Retrofit
 
Android libs by Square - make your development a bit easier
Android libs by Square - make your development a bit easierAndroid libs by Square - make your development a bit easier
Android libs by Square - make your development a bit easier
 
Android and REST
Android and RESTAndroid and REST
Android and REST
 
Using Mobile-D methodology in development of mobile applications: Challenges ...
Using Mobile-D methodology in development of mobile applications: Challenges ...Using Mobile-D methodology in development of mobile applications: Challenges ...
Using Mobile-D methodology in development of mobile applications: Challenges ...
 
Retrofit Android by Chris Ollenburg
Retrofit Android by Chris OllenburgRetrofit Android by Chris Ollenburg
Retrofit Android by Chris Ollenburg
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
Android Libs - Retrofit
Android Libs - RetrofitAndroid Libs - Retrofit
Android Libs - Retrofit
 

Similar to Implementing Android REST clients

Automatized Application Services for Android Devices Using Apache Ant in Clou...
Automatized Application Services for Android Devices Using Apache Ant in Clou...Automatized Application Services for Android Devices Using Apache Ant in Clou...
Automatized Application Services for Android Devices Using Apache Ant in Clou...IRJET Journal
 
Afzal-Khan-Resume
Afzal-Khan-ResumeAfzal-Khan-Resume
Afzal-Khan-Resumeafzal khan
 
IoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdfIoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdfGVNSK Sravya
 
Rajat Kanti Gupta
Rajat Kanti GuptaRajat Kanti Gupta
Rajat Kanti GuptaRajat Gupta
 
Assignment 2(web)
Assignment 2(web)Assignment 2(web)
Assignment 2(web)Jay Patel
 
Assignment 2(web)
Assignment 2(web)Assignment 2(web)
Assignment 2(web)Jay Patel
 
Subhajit_Das_Resume_(M)2016
Subhajit_Das_Resume_(M)2016Subhajit_Das_Resume_(M)2016
Subhajit_Das_Resume_(M)2016Subhajit Das
 
Mridul_Mandal_Resume_5+yrs_QA
Mridul_Mandal_Resume_5+yrs_QAMridul_Mandal_Resume_5+yrs_QA
Mridul_Mandal_Resume_5+yrs_QAMridul Mandal
 
Updated resume
Updated resumeUpdated resume
Updated resumeArun Kiran
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application DevelopmentWaveMaker, Inc.
 

Similar to Implementing Android REST clients (20)

Automatized Application Services for Android Devices Using Apache Ant in Clou...
Automatized Application Services for Android Devices Using Apache Ant in Clou...Automatized Application Services for Android Devices Using Apache Ant in Clou...
Automatized Application Services for Android Devices Using Apache Ant in Clou...
 
Prakash Singh Resume.docx
Prakash Singh Resume.docxPrakash Singh Resume.docx
Prakash Singh Resume.docx
 
GauthamRaj_SI_Resume
GauthamRaj_SI_ResumeGauthamRaj_SI_Resume
GauthamRaj_SI_Resume
 
PRASANTHI P
PRASANTHI PPRASANTHI P
PRASANTHI P
 
Shilpanjali_Resume
Shilpanjali_ResumeShilpanjali_Resume
Shilpanjali_Resume
 
Resume (2).docx
Resume (2).docxResume (2).docx
Resume (2).docx
 
SreenuPrasad
SreenuPrasadSreenuPrasad
SreenuPrasad
 
Oracle mobile cloud service
Oracle mobile cloud serviceOracle mobile cloud service
Oracle mobile cloud service
 
Afzal-Khan-Resume
Afzal-Khan-ResumeAfzal-Khan-Resume
Afzal-Khan-Resume
 
IoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdfIoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdf
 
Rajat Kanti Gupta
Rajat Kanti GuptaRajat Kanti Gupta
Rajat Kanti Gupta
 
Assignment 2(web)
Assignment 2(web)Assignment 2(web)
Assignment 2(web)
 
Assignment 2(web)
Assignment 2(web)Assignment 2(web)
Assignment 2(web)
 
Raju_Resume
Raju_ResumeRaju_Resume
Raju_Resume
 
Web engineering cse ru
Web engineering cse ruWeb engineering cse ru
Web engineering cse ru
 
Subhajit_Das_Resume_(M)2016
Subhajit_Das_Resume_(M)2016Subhajit_Das_Resume_(M)2016
Subhajit_Das_Resume_(M)2016
 
Mridul_Mandal_Resume_5+yrs_QA
Mridul_Mandal_Resume_5+yrs_QAMridul_Mandal_Resume_5+yrs_QA
Mridul_Mandal_Resume_5+yrs_QA
 
RohiniKrishna_Feb
RohiniKrishna_FebRohiniKrishna_Feb
RohiniKrishna_Feb
 
Updated resume
Updated resumeUpdated resume
Updated resume
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 

More from Zlatko Stapic

Using Mobile-D methodology in development of mobile applications: Challenges ...
Using Mobile-D methodology in development of mobile applications: Challenges ...Using Mobile-D methodology in development of mobile applications: Challenges ...
Using Mobile-D methodology in development of mobile applications: Challenges ...Zlatko Stapic
 
Comparing native Android and jQuery Mobile capabilities
Comparing native Android and jQuery Mobile capabilitiesComparing native Android and jQuery Mobile capabilities
Comparing native Android and jQuery Mobile capabilitiesZlatko Stapic
 
Comparing native Android and jQuery Mobile capabilities (Presentation)
Comparing native Android and jQuery Mobile capabilities (Presentation)Comparing native Android and jQuery Mobile capabilities (Presentation)
Comparing native Android and jQuery Mobile capabilities (Presentation)Zlatko Stapic
 
Challenges in development of RPG mobile application
Challenges in development of RPG mobile applicationChallenges in development of RPG mobile application
Challenges in development of RPG mobile applicationZlatko Stapic
 
Challenges in development of RPG mobile application (Presentation)
Challenges in development of RPG mobile application (Presentation)Challenges in development of RPG mobile application (Presentation)
Challenges in development of RPG mobile application (Presentation)Zlatko Stapic
 
Monetizing mobile applications
Monetizing mobile applicationsMonetizing mobile applications
Monetizing mobile applicationsZlatko Stapic
 
Monetizing mobile applications (Presentation)
Monetizing mobile applications (Presentation)Monetizing mobile applications (Presentation)
Monetizing mobile applications (Presentation)Zlatko Stapic
 

More from Zlatko Stapic (7)

Using Mobile-D methodology in development of mobile applications: Challenges ...
Using Mobile-D methodology in development of mobile applications: Challenges ...Using Mobile-D methodology in development of mobile applications: Challenges ...
Using Mobile-D methodology in development of mobile applications: Challenges ...
 
Comparing native Android and jQuery Mobile capabilities
Comparing native Android and jQuery Mobile capabilitiesComparing native Android and jQuery Mobile capabilities
Comparing native Android and jQuery Mobile capabilities
 
Comparing native Android and jQuery Mobile capabilities (Presentation)
Comparing native Android and jQuery Mobile capabilities (Presentation)Comparing native Android and jQuery Mobile capabilities (Presentation)
Comparing native Android and jQuery Mobile capabilities (Presentation)
 
Challenges in development of RPG mobile application
Challenges in development of RPG mobile applicationChallenges in development of RPG mobile application
Challenges in development of RPG mobile application
 
Challenges in development of RPG mobile application (Presentation)
Challenges in development of RPG mobile application (Presentation)Challenges in development of RPG mobile application (Presentation)
Challenges in development of RPG mobile application (Presentation)
 
Monetizing mobile applications
Monetizing mobile applicationsMonetizing mobile applications
Monetizing mobile applications
 
Monetizing mobile applications (Presentation)
Monetizing mobile applications (Presentation)Monetizing mobile applications (Presentation)
Monetizing mobile applications (Presentation)
 

Recently uploaded

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Recently uploaded (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Implementing Android REST clients

  • 1. Using Retrofit framework in implementation of Android REST client David Ante Macan*, Zlatko Stapić, Milan Pavlović* University of Zagreb Faculty of Organization and Informatics Pavlinska 2, 42000 Varaždin, Croatia http://www.foi.unizg.hr/ CASE27 – Developers conference - 02.06.2015. – Zagreb, Croatia * Students at University of Zagreb, FOI Varazdin
  • 2. Agenda • Introduction • REST Architecture • Android client implementation • Implementation using Retrofit • Conclusion • References Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20152
  • 3. Introduction • Today’s mobile applications are Internet dependent • 2017 -> 90% [1], [3] • Web services are used for supporting mobile application functionalities  Internet dependent monetization models  App usage statistics, data synchronization, social components, score tables… • Backend servers for push notifications • Web service – self contained and self describing application component that can be used by other applications and can be communicated by using open protocols [6] Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20153
  • 4. Introduction • After SOA became widely used for mobile and other applications, the dominant way of exchanging the data with web services was by using SOAP [7] • XML used for creating requests and responses was too complex and requests had to be build manually -> problematic due to protocols intolerance on any errors • REST (Representational State Transfer) provides lightweight alternative and relies on simple URL approach • REST can output the data in any format (for example in CSV, JSON or RSS). Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20154
  • 5. REST Architecture  Architectural style for distributed hypermedia systems, as Roy Fielding originally described it in his doctoral dissertation in 2000 [8]  Contains 6 main characteristics: 1. Uniform interface  Resource based  Manipulation of resources through representations  Usage of self-descriptive messages  Hypermedia as the engine of application state 2. Statelessness 3. Caching 4. Client-server separation 5. Layering 6. Code on demand Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20155
  • 6. REST Architecture  HTTP request semantics Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20156 Request Method Description GET Used for retrieving (or read) a representation of a resource. If everything works, HTTP GET response contains a representation in XML or JSON with response code of 200 (OK). POST Most often used for creation of new resources. It is actually used to create subordinate or child resource of some other (parent) resource. When server receives POST request, it creates new resource and assigns it a new ID. PUT Used for update operations. Request body should contain newly-updated representation of the original resource which is identified by a known resource URI. DELETE Used to delete URI-identified resource.
  • 7. Android client implementation • Example system  Address Manager - enables users to get geographical location (latitude and longitude) of any user defined address Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20157
  • 8. Android client implementation • Web service specification  http://tinyurl.com/case27-locations  x-www-form-urlencoded request Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20158 URL Method Params Response example base GET - [{"id":1,"location":"Ivanec","lat": "46.2228422","lon":"16.1246793"}, …] base POST location {"id":1,"location":"Ivanec","lat": "46.2228422","lon":"16.1246793"} base/id PUT location {"id":1,"location":"Ivanec 2", "lat": "47.2228422","lon":"15.1246793"}
  • 9. Android client implementation • Native Android web-service consumption  web service communication layer  response parsing layer  manual threading Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 20159
  • 10. Android client implementation • Native Android web-service consumption  Repository – consists of set of methods that are leaning on web services  Service – represents web-service communication layer. This class should be flexible to be able to execute any web service request.  Callback – interface to be implemented by any callback object containing logic for receiving web-service response.  Parser – static class containing knowledge on parsing the responses. Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201510
  • 11. Android client implementation • Native Repository Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201511
  • 12. Android client implementation • Retrofit implementation  type-safe REST client for Android and Java  turns your REST API into a Java interface  upon downloading the data is parsed into POJO which must be defined for each "resource" in the response  flexible in message format  uses compile-time annotation processor Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201512
  • 13. Android client implementation • Retrofit implementation  Define API interface  Define RetrofitHelper that will instantiate adapter and interface Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201513
  • 14. Android client implementation • Retrofit implementation  Call methods  Handle response Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201514
  • 15. Conclusion • We presented  REST application architectural style  Two implementations of web-service communication layer • Main contribution  Architectural design for the two approaches • Native vs Retrofit approach  Native approach is robust and hard to adapt  Retrofit is straightforward and flexible • Source code  http://tinyurl.com/case27-code Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201515
  • 16. References [1] D. Bosomworth, “Mobile marketing statistics 2015” Smart Insights, 2015. Available at: http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketingstatistics/ [Accessed: May-2015] [2] ComScore Inc., “The U.S. Mobile App Report” 2014. Available at: http://www.comscore.com/Insights/Presentations-and-Whitepapers/2014/The-US-Mobile-App-Report [3] Statista, “Statistics and facts on Mobile Internet Usage,” Statista.com, 2015. [Online]. Available at: http://www.statista.com/topics/779/mobile-internet/ [Accessed: May-2015]. [4] Android Developers, “Google Cloud Messaging for Android | Android Developers” Google Services, 2015. [Online]. Available at: https://developer.android.com/google/gcm/index.html [Accessed: May-2015]. [5] Apple inc., “Local and Push Notifications for Developers - Apple Developer” Developer Apple.com, 2015. [Online]. Available at: https://developer.apple.com/notifications/ [Accessed: May-2015]. [6] W3Schools.com, “Introduction to Web Services” Introduction to Web Services, 2015. [Online]. Available at: http://www.w3schools.com/webservices/ws_intro.asp [Accessed: May-2015]. [7] W3Schools.com, “SOAP Introduction”, 2015. [Online]. Available at: http://www.w3schools.com/ webservices/ws_soap_intro.asp [Accessed: May-2015]. [8] R. T. Fielding, “Architectural Styles and the Design of Network-based Software Architectures” UNIVERSITY OF CALIFORNIA, Irvine, 2000. [9] A. Nene, “Web Services Architecture – When to Use SOAP vs REST” Javalobby, 2014. [Online]. Available at: http://java.dzone.com/articles/web-services-architecture [Accessed: May-2015]. [10] J. Mueller, “Understanding SOAP and REST Basics” Software Quality Matters Blog, 2013. [Online]. Available at: http://blog.smartbear.com/apis/understanding-soap-and-rest-basics/ [Accessed: May-2015]. [11] F. Todd, “RESTful Service Best Practices, Recommendations for Creating Web Services” RestAPITutorial.com, 2013. [12] CodePath.com, “Consuming APIs with Retrofit” CodePath Android Cliffnotes, 2015. [Online]. Available at: https://guides.codepath.com/android/Consuming-APIs-with-Retrofit#setup [Accessed: May-2015]. [13] StudyTrials, “Java Google Json (Gson) Introduction” StudyTrials.com. [Online]. Available at: http://www.studytrails.com/java/json/java-google-json-introduction.jsp [Accessed: May-2015]. [14] “Google Gson” Google Gson Home, 2011. [Online]. Available at: https://sites.google.com/ site/gson/Home [Accessed: May-2015] Macan, Stapić, Pavlović: Using Retrofit framework in implementation of Android REST client - CASE27, 2nd June 201516