SlideShare a Scribd company logo
1 of 14
Nacef LABIDIConnect your app to your backend
Connect your mobile app to your
backend
Presented by Nacef LABIDI
March 2014
Who I am ?
• System Level Developer @ STMicroelectronics
• Co-founder and Technical Manager @ Oceanys
• Project Manager @ Evatys
• Technical Consultant @ Hewlett-Packard
• IT Manager @ US Peace Corps
• Global Helpdesk Manager @ Vistaprint
Who I really am ? ;)
• Computer engineer, geek and music addict.
• Open Source enthusiast, supporter and contributor.
• Android apps developer (when I find some time)
• Python fan and supporter.
• Speak many programming languages.
Audience
• Beginners in Android development
• People wanting to build mobile apps around dynamic
content
• Building multi-platform mobile apps
Storing your data inside vs. outside of your
app
Pros
• Decoupling between the app and the data
• Keeping the logic on the server side
• Makes your apps lighter
• Makes your logic consistent and reusable
• Evolution of your service relies more on the data than
the app itself.
• Publish your data to multiple medias : Website, all kind
of mobile devices, share your data with affiliates
Storing your data inside vs. outside of your
app
Cons
• Need to be connected to access the data
• This can be improved by caching some of the data
locally
• Delays in treatment depending on the volume of data
and the quality of the connection
• May expose your data to some security risks
• Again this can be addressed
How would I proceed ?
If you don’t have a backend, start by building one
• This will help you define the structure of the data that
you want to expose in your app
• Designing the data will also help you design the layout
of your app
• Build a webservice API that will be used to access the
data
• Secure your webservice
Building your backend
Choose the right tools : modern frameworks
• Define your data structures
• Use migrations to evolve your data structures without
messing with your data
• Use RESTful capabilities of your framework to publish
your data to your app
• Choose the exchange format that suits you most
(XML, JSON…)
• Use security capabilities to protect your data
Secure your backend
Different security methods :
HTTP Basic Authentication
Login and password sent with the HTTP request
ApiKey Authentication
Passing an ApiKey generated on the server side in each
HTTP request
OAuth Authentication
Through a third party authentication service (Google,
Facebook, Yahoo, OpenID …)
Create your custom authentication system
Public/Private RSA keys
…
My personal choices
Python language
• http://www.python.org
Django framework https://www.djangoproject.com
• Provides Model classes
• Supports many DB backends (Relational & NoSQL)
• Migrations: through South module
http://south.aeracode.org
• RESTful API: through Tastypie module
http://tastypieapi.org
Build your app
Use Apache HTTP Client classes
Use Google Gson to map API responses to your
local objects
• https://code.google.com/p/google-gson
Use AsyncTask to keep your app responsive while
retrieving your data from the server
Goodies : You should try RoboGuice to have a nicely
architected app
• https://github.com/roboguice/roboguice
Retrospective
Tunibus : An android app allowing users to find their
way through the Tunis public transportation (Bus,
Metro, Train …)
Neo4j Graph database representing stations and
edges representing transportation lines connecting the
stations. http://www.neo4j.org
RESTful webservice that returns the possible paths
between two points
Android app that connects through the API to the
Graph DB
Crowdsourcing web app to enhance the data quality
Retrospective
RESTful
API
Thank you !
Questions ?

More Related Content

What's hot

O365Con19 - Automate All The Things - Chris Goosen
O365Con19 - Automate All The Things - Chris GoosenO365Con19 - Automate All The Things - Chris Goosen
O365Con19 - Automate All The Things - Chris GoosenNCCOMMS
 
What is onedrive for business
What is onedrive for businessWhat is onedrive for business
What is onedrive for businessUmang shah
 
Azure Machine Learning
Azure Machine LearningAzure Machine Learning
Azure Machine LearningDavide Mauri
 
Webinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with FusionWebinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with FusionLucidworks
 
Elasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and MultitenancyElasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and MultitenancyBozhidar Bozhanov
 
[Fitzmaurice] File Sharing and Collaboration with OneDrive, SharePoint and Teams
[Fitzmaurice] File Sharing and Collaboration with OneDrive, SharePoint and Teams[Fitzmaurice] File Sharing and Collaboration with OneDrive, SharePoint and Teams
[Fitzmaurice] File Sharing and Collaboration with OneDrive, SharePoint and TeamsEuropean Collaboration Summit
 
Introduction à Application Insights
Introduction à Application InsightsIntroduction à Application Insights
Introduction à Application InsightsMSDEVMTL
 
Encryption in the enterprise
Encryption in the enterpriseEncryption in the enterprise
Encryption in the enterpriseBozhidar Bozhanov
 
CIS13: APIs, Identity, and Securing the Enterprise
CIS13: APIs, Identity, and Securing the EnterpriseCIS13: APIs, Identity, and Securing the Enterprise
CIS13: APIs, Identity, and Securing the EnterpriseCloudIDSummit
 
SemTech 2012 Talk semantify office
SemTech 2012 Talk  semantify officeSemTech 2012 Talk  semantify office
SemTech 2012 Talk semantify officeJesse Wang
 
The Internet of Things - PolarSeven
The Internet of Things - PolarSevenThe Internet of Things - PolarSeven
The Internet of Things - PolarSevenPolarSeven Pty Ltd
 
SQL Server 2016 What's New For Developers
SQL Server 2016  What's New For DevelopersSQL Server 2016  What's New For Developers
SQL Server 2016 What's New For DevelopersDavide Mauri
 
SPEVO13 - Dev212 - Document Assembly Deep Dive Part 1
SPEVO13 - Dev212 - Document Assembly Deep Dive Part 1SPEVO13 - Dev212 - Document Assembly Deep Dive Part 1
SPEVO13 - Dev212 - Document Assembly Deep Dive Part 1John F. Holliday
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...NCCOMMS
 
SenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen PaganSenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen PaganSencha
 
Anypoint platform for api
Anypoint platform for apiAnypoint platform for api
Anypoint platform for apiKrishna_in
 
Webinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewWebinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewLucidworks
 
Workshop 04 android-development
Workshop 04 android-developmentWorkshop 04 android-development
Workshop 04 android-developmentAravindharamanan S
 
Intro to Piwik project - 2014
Intro to Piwik project - 2014Intro to Piwik project - 2014
Intro to Piwik project - 2014Matthieu Aubry
 
ECS2019 - Managing Content Types in the Modern World
ECS2019 - Managing Content Types in the Modern WorldECS2019 - Managing Content Types in the Modern World
ECS2019 - Managing Content Types in the Modern WorldMarc D Anderson
 

What's hot (20)

O365Con19 - Automate All The Things - Chris Goosen
O365Con19 - Automate All The Things - Chris GoosenO365Con19 - Automate All The Things - Chris Goosen
O365Con19 - Automate All The Things - Chris Goosen
 
What is onedrive for business
What is onedrive for businessWhat is onedrive for business
What is onedrive for business
 
Azure Machine Learning
Azure Machine LearningAzure Machine Learning
Azure Machine Learning
 
Webinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with FusionWebinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with Fusion
 
Elasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and MultitenancyElasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and Multitenancy
 
[Fitzmaurice] File Sharing and Collaboration with OneDrive, SharePoint and Teams
[Fitzmaurice] File Sharing and Collaboration with OneDrive, SharePoint and Teams[Fitzmaurice] File Sharing and Collaboration with OneDrive, SharePoint and Teams
[Fitzmaurice] File Sharing and Collaboration with OneDrive, SharePoint and Teams
 
Introduction à Application Insights
Introduction à Application InsightsIntroduction à Application Insights
Introduction à Application Insights
 
Encryption in the enterprise
Encryption in the enterpriseEncryption in the enterprise
Encryption in the enterprise
 
CIS13: APIs, Identity, and Securing the Enterprise
CIS13: APIs, Identity, and Securing the EnterpriseCIS13: APIs, Identity, and Securing the Enterprise
CIS13: APIs, Identity, and Securing the Enterprise
 
SemTech 2012 Talk semantify office
SemTech 2012 Talk  semantify officeSemTech 2012 Talk  semantify office
SemTech 2012 Talk semantify office
 
The Internet of Things - PolarSeven
The Internet of Things - PolarSevenThe Internet of Things - PolarSeven
The Internet of Things - PolarSeven
 
SQL Server 2016 What's New For Developers
SQL Server 2016  What's New For DevelopersSQL Server 2016  What's New For Developers
SQL Server 2016 What's New For Developers
 
SPEVO13 - Dev212 - Document Assembly Deep Dive Part 1
SPEVO13 - Dev212 - Document Assembly Deep Dive Part 1SPEVO13 - Dev212 - Document Assembly Deep Dive Part 1
SPEVO13 - Dev212 - Document Assembly Deep Dive Part 1
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
 
SenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen PaganSenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
 
Anypoint platform for api
Anypoint platform for apiAnypoint platform for api
Anypoint platform for api
 
Webinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewWebinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's New
 
Workshop 04 android-development
Workshop 04 android-developmentWorkshop 04 android-development
Workshop 04 android-development
 
Intro to Piwik project - 2014
Intro to Piwik project - 2014Intro to Piwik project - 2014
Intro to Piwik project - 2014
 
ECS2019 - Managing Content Types in the Modern World
ECS2019 - Managing Content Types in the Modern WorldECS2019 - Managing Content Types in the Modern World
ECS2019 - Managing Content Types in the Modern World
 

Similar to Droidcon Tunisia 2014 connect your mobile app to your backend

Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1Subhransu Behera
 
Top 10 DevOps tools for software development
 Top 10 DevOps tools for software development  Top 10 DevOps tools for software development
Top 10 DevOps tools for software development Mobiloitte
 
Global Open Source Development 2011-2014 Review and 2015 Forecast
Global Open Source Development 2011-2014 Review and 2015 ForecastGlobal Open Source Development 2011-2014 Review and 2015 Forecast
Global Open Source Development 2011-2014 Review and 2015 ForecastSammy Fung
 
Portal and Intranets
Portal and Intranets Portal and Intranets
Portal and Intranets Redar Ismail
 
Feed Herny developer training : crossplatform and HTML5
Feed Herny developer training : crossplatform and  HTML5Feed Herny developer training : crossplatform and  HTML5
Feed Herny developer training : crossplatform and HTML5Mobile Monday Brussels
 
Open Source DataViz with Apache Superset
Open Source DataViz with Apache SupersetOpen Source DataViz with Apache Superset
Open Source DataViz with Apache SupersetCarl W. Handlin
 
An Introduction to AWS Mobile Services - DevDay Los Angeles 2017
An Introduction to AWS Mobile Services - DevDay Los Angeles 2017An Introduction to AWS Mobile Services - DevDay Los Angeles 2017
An Introduction to AWS Mobile Services - DevDay Los Angeles 2017Amazon Web Services
 
VanyaSehgal_Resume
VanyaSehgal_ResumeVanyaSehgal_Resume
VanyaSehgal_ResumeVANYA SEHGAL
 
Pat Farrell, Migrating Legacy Documentation to XML and DITA
Pat Farrell, Migrating Legacy Documentation to XML and DITAPat Farrell, Migrating Legacy Documentation to XML and DITA
Pat Farrell, Migrating Legacy Documentation to XML and DITAfarrelldoc
 
The Atlassian Tool Suite for Collaborative Science
The Atlassian Tool Suite for Collaborative ScienceThe Atlassian Tool Suite for Collaborative Science
The Atlassian Tool Suite for Collaborative ScienceRajbahadur Rajput
 
Backstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBackstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBrandenTimm1
 
DotNet 2019 | Hugo Biarge - Autenticación en aplicaciones web y nativas
DotNet 2019 | Hugo Biarge - Autenticación en aplicaciones web y nativasDotNet 2019 | Hugo Biarge - Autenticación en aplicaciones web y nativas
DotNet 2019 | Hugo Biarge - Autenticación en aplicaciones web y nativasPlain Concepts
 
aip_developer_overview_icar_2014
aip_developer_overview_icar_2014aip_developer_overview_icar_2014
aip_developer_overview_icar_2014Matthew Vaughn
 
Digital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slidesDigital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slidesmoanasherrill
 
Digital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slidesDigital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slidesCindy Douglas
 
Digital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slidesDigital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slidesEllen Pittleman
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Modelbgerman
 

Similar to Droidcon Tunisia 2014 connect your mobile app to your backend (20)

Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1
 
Top 10 DevOps tools for software development
 Top 10 DevOps tools for software development  Top 10 DevOps tools for software development
Top 10 DevOps tools for software development
 
Global Open Source Development 2011-2014 Review and 2015 Forecast
Global Open Source Development 2011-2014 Review and 2015 ForecastGlobal Open Source Development 2011-2014 Review and 2015 Forecast
Global Open Source Development 2011-2014 Review and 2015 Forecast
 
Portal and Intranets
Portal and Intranets Portal and Intranets
Portal and Intranets
 
Feed Herny developer training : crossplatform and HTML5
Feed Herny developer training : crossplatform and  HTML5Feed Herny developer training : crossplatform and  HTML5
Feed Herny developer training : crossplatform and HTML5
 
Resume_16-03-2016
Resume_16-03-2016Resume_16-03-2016
Resume_16-03-2016
 
Open Source DataViz with Apache Superset
Open Source DataViz with Apache SupersetOpen Source DataViz with Apache Superset
Open Source DataViz with Apache Superset
 
An Introduction to AWS Mobile Services - DevDay Los Angeles 2017
An Introduction to AWS Mobile Services - DevDay Los Angeles 2017An Introduction to AWS Mobile Services - DevDay Los Angeles 2017
An Introduction to AWS Mobile Services - DevDay Los Angeles 2017
 
VanyaSehgal_Resume
VanyaSehgal_ResumeVanyaSehgal_Resume
VanyaSehgal_Resume
 
Pat Farrell, Migrating Legacy Documentation to XML and DITA
Pat Farrell, Migrating Legacy Documentation to XML and DITAPat Farrell, Migrating Legacy Documentation to XML and DITA
Pat Farrell, Migrating Legacy Documentation to XML and DITA
 
The Atlassian Tool Suite for Collaborative Science
The Atlassian Tool Suite for Collaborative ScienceThe Atlassian Tool Suite for Collaborative Science
The Atlassian Tool Suite for Collaborative Science
 
Backstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBackstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptx
 
DotNet 2019 | Hugo Biarge - Autenticación en aplicaciones web y nativas
DotNet 2019 | Hugo Biarge - Autenticación en aplicaciones web y nativasDotNet 2019 | Hugo Biarge - Autenticación en aplicaciones web y nativas
DotNet 2019 | Hugo Biarge - Autenticación en aplicaciones web y nativas
 
aip_developer_overview_icar_2014
aip_developer_overview_icar_2014aip_developer_overview_icar_2014
aip_developer_overview_icar_2014
 
Digital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slidesDigital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slides
 
Digital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slidesDigital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slides
 
Digital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slidesDigital toolbox researchanddevelopment_slides
Digital toolbox researchanddevelopment_slides
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
 
M meijer api management - tech-days 2015
M meijer   api management - tech-days 2015M meijer   api management - tech-days 2015
M meijer api management - tech-days 2015
 
Viswanth_chadalawada_ft_resume
Viswanth_chadalawada_ft_resumeViswanth_chadalawada_ft_resume
Viswanth_chadalawada_ft_resume
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
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)
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
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
 

Droidcon Tunisia 2014 connect your mobile app to your backend

  • 1. Nacef LABIDIConnect your app to your backend Connect your mobile app to your backend Presented by Nacef LABIDI March 2014
  • 2. Who I am ? • System Level Developer @ STMicroelectronics • Co-founder and Technical Manager @ Oceanys • Project Manager @ Evatys • Technical Consultant @ Hewlett-Packard • IT Manager @ US Peace Corps • Global Helpdesk Manager @ Vistaprint
  • 3. Who I really am ? ;) • Computer engineer, geek and music addict. • Open Source enthusiast, supporter and contributor. • Android apps developer (when I find some time) • Python fan and supporter. • Speak many programming languages.
  • 4. Audience • Beginners in Android development • People wanting to build mobile apps around dynamic content • Building multi-platform mobile apps
  • 5. Storing your data inside vs. outside of your app Pros • Decoupling between the app and the data • Keeping the logic on the server side • Makes your apps lighter • Makes your logic consistent and reusable • Evolution of your service relies more on the data than the app itself. • Publish your data to multiple medias : Website, all kind of mobile devices, share your data with affiliates
  • 6. Storing your data inside vs. outside of your app Cons • Need to be connected to access the data • This can be improved by caching some of the data locally • Delays in treatment depending on the volume of data and the quality of the connection • May expose your data to some security risks • Again this can be addressed
  • 7. How would I proceed ? If you don’t have a backend, start by building one • This will help you define the structure of the data that you want to expose in your app • Designing the data will also help you design the layout of your app • Build a webservice API that will be used to access the data • Secure your webservice
  • 8. Building your backend Choose the right tools : modern frameworks • Define your data structures • Use migrations to evolve your data structures without messing with your data • Use RESTful capabilities of your framework to publish your data to your app • Choose the exchange format that suits you most (XML, JSON…) • Use security capabilities to protect your data
  • 9. Secure your backend Different security methods : HTTP Basic Authentication Login and password sent with the HTTP request ApiKey Authentication Passing an ApiKey generated on the server side in each HTTP request OAuth Authentication Through a third party authentication service (Google, Facebook, Yahoo, OpenID …) Create your custom authentication system Public/Private RSA keys …
  • 10. My personal choices Python language • http://www.python.org Django framework https://www.djangoproject.com • Provides Model classes • Supports many DB backends (Relational & NoSQL) • Migrations: through South module http://south.aeracode.org • RESTful API: through Tastypie module http://tastypieapi.org
  • 11. Build your app Use Apache HTTP Client classes Use Google Gson to map API responses to your local objects • https://code.google.com/p/google-gson Use AsyncTask to keep your app responsive while retrieving your data from the server Goodies : You should try RoboGuice to have a nicely architected app • https://github.com/roboguice/roboguice
  • 12. Retrospective Tunibus : An android app allowing users to find their way through the Tunis public transportation (Bus, Metro, Train …) Neo4j Graph database representing stations and edges representing transportation lines connecting the stations. http://www.neo4j.org RESTful webservice that returns the possible paths between two points Android app that connects through the API to the Graph DB Crowdsourcing web app to enhance the data quality