SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Android Frameworks
Highlighting the need for a solid
development framework
A little about me...
●
●
●
●

In the industry since 2002.
Started at Mutual Mobile in 2011.
Last hair cut 2011.
During which I’ve released 7 apps.
What is a framework
● Starting from scratch is unsustainable.
● A framework is a common code base that is
reusable in multiple contexts
● Basically its just an Android project ready to
be copied
● This is possible because most app share
common basic tasks
Technical benefits
● All libraries are bootstrapped and ready to
play
● Prevents reinventing the wheel
● Common build system interface
Organizational benefits
● Allows all team members a common ground
for communication
● Allows for cross team problem solving
● Allows for easy onboarding
● Unifies non collocated teams
● Measure team member success
Components of a Framework
Component: REST Consumption
Most app currently leverage REST. As such
this is one of your most important decisions.
● Existing Libraries
○
○
○
○
○

HttpUrlConnection
ApacheHTTPClient
Volley
Retrofit
okhttp
Component: Object Serialization
While ReST services are great at returning
strings, POJO’s are better.
● Existing Libraries
○
○
○
○

Gson
Jackson
Simple
Protobuf
Component: Caching
As mobile matures so do the users. Redundant
REST requests won’t cut it any more.
● Existing Libraries
○ Volley
○ okhttp
○ DiskLruCache
Component: Local Database
Invariably the app will need to keep state. Your
devs will need a place to keep it.
● Existing Libraries
○
○
○
○
○

Shared Preferences
Sqlite
Ormlite
GreenDAO
DB4O
Component: In App Communication
Communicating is hard, even more so if you
have Asynctasks, Services and, Fragments in
the mix.
● Existing Libraries
○ Android intent system
○ Otto
○ Eventbus
Component: Automated Testing
Well done. Here are the test results: You are a horrible
person. I'm serious, that's what it says: "A horrible person."
We weren't even testing for that.
-- GLaDOS / Portal 2
● Testing Options and Support Libraries
○ Android Test Projects
○ JUnit
○ Robolectric
○ Mockito
○ Robotium
○ uiautomator
Component: Build system & CI
Autonomous build creation is a wonderful thing
and gives you moment to moment status of
your projects.
● Existing Options
○ ANT build process
○ Maven (kinda...)
○ Gradle build process
Additional Considerations
This is not an exhaustive list keep your eyes
open for other things as well.
●
●
●
●

Logging
Crash reporting
Code Metrics
Image loading
Component: Glue
Even with the best libraries selected a
successful framework needs to be pulled
together.
Mutual Mobile’s Framework
Praxis: the process by which a theory, lesson,
or skill is realized.
● Libraries Used
○
○
○
○
○
○
○

ApacheHTTPClient
Gson / Simple
DB4O
Otto
JUnit / Robotium
ANT
Dagger
Care and feeding of your framework
● Frameworks only last so long.
● Some of the libraries listed haven’t had their
first birthday yet.
● Keep looking for new ways to improve and
adapt.
Keeping up with the times
● Some examples from Mutual Mobile’s
framework
○ On 2.2 we used a segmented controller but, after
ICS we changed to Android’s Actionbar.
○ We used singletons and static members to keep
system state, now we use our DI framework to
moderate standard POJOs, holding state
○ We used Handlers to communicate AsyncTask
results, now we ride the bus.
Questions?

Mais conteúdo relacionado

Mais procurados

Concurrency - Why it's hard ?
Concurrency - Why it's hard ?Concurrency - Why it's hard ?
Concurrency - Why it's hard ?Ramith Jayasinghe
 
.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn.NET compiler platform codename Roslyn
.NET compiler platform codename RoslynPiotr Benetkiewicz
 
8 - Javascript unit testing framework
8 - Javascript unit testing framework8 - Javascript unit testing framework
8 - Javascript unit testing frameworkNguyen Duc Phu
 
How to approach building GUIs using PyQT
How to approach building GUIs using PyQTHow to approach building GUIs using PyQT
How to approach building GUIs using PyQTJerlyn Manohar
 
The working architecture of NodeJs applications
The working architecture of NodeJs applicationsThe working architecture of NodeJs applications
The working architecture of NodeJs applicationsViktor Turskyi
 

Mais procurados (9)

CodeOff
CodeOffCodeOff
CodeOff
 
Why Concurrency is hard ?
Why Concurrency is hard ?Why Concurrency is hard ?
Why Concurrency is hard ?
 
Concurrency - Why it's hard ?
Concurrency - Why it's hard ?Concurrency - Why it's hard ?
Concurrency - Why it's hard ?
 
.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn
 
Cqrs
CqrsCqrs
Cqrs
 
8 - Javascript unit testing framework
8 - Javascript unit testing framework8 - Javascript unit testing framework
8 - Javascript unit testing framework
 
How to approach building GUIs using PyQT
How to approach building GUIs using PyQTHow to approach building GUIs using PyQT
How to approach building GUIs using PyQT
 
Automatic Test 2019-07-25
Automatic Test 2019-07-25Automatic Test 2019-07-25
Automatic Test 2019-07-25
 
The working architecture of NodeJs applications
The working architecture of NodeJs applicationsThe working architecture of NodeJs applications
The working architecture of NodeJs applications
 

Semelhante a Android Frameworks: Highlighting the Need for a Solid Development Framework 

Innovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesInnovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesSolstice Mobile Argentina
 
Keep calm and write reusable code in Android
Keep calm and write reusable code in AndroidKeep calm and write reusable code in Android
Keep calm and write reusable code in AndroidJuan Camilo Sacanamboy
 
Choosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our projectChoosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our projectHristo Chakarov
 
Pentester++
Pentester++Pentester++
Pentester++CTruncer
 
Android Modularization
Android ModularizationAndroid Modularization
Android ModularizationYoung-Hyuk Yoo
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software houseParis Apostolopoulos
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplateStanislav Petrov
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentationDrew Hannay
 
Cynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not GuaranteedCynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not GuaranteedAnna Royzman
 
Feature Development with jQuery
Feature Development with jQueryFeature Development with jQuery
Feature Development with jQueryMichael Edwards
 
Electron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesElectron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesBethmi Gunasekara
 
Iot development from prototype to production
Iot development from prototype to productionIot development from prototype to production
Iot development from prototype to productionMender.io
 
Are app servers still fascinating
Are app servers still fascinatingAre app servers still fascinating
Are app servers still fascinatingAntonio Goncalves
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipsterJulien Dubois
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux HeritageOpersys inc.
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingMatt Tesauro
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to ProductionMender.io
 

Semelhante a Android Frameworks: Highlighting the Need for a Solid Development Framework  (20)

Innovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesInnovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best Practices
 
Making Strongly-typed NETCONF Usable
Making Strongly-typed NETCONF UsableMaking Strongly-typed NETCONF Usable
Making Strongly-typed NETCONF Usable
 
Keep calm and write reusable code in Android
Keep calm and write reusable code in AndroidKeep calm and write reusable code in Android
Keep calm and write reusable code in Android
 
Choosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our projectChoosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our project
 
Pentester++
Pentester++Pentester++
Pentester++
 
Android Modularization
Android ModularizationAndroid Modularization
Android Modularization
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplate
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Cynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not GuaranteedCynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not Guaranteed
 
Feature Development with jQuery
Feature Development with jQueryFeature Development with jQuery
Feature Development with jQuery
 
Electron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesElectron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologies
 
Iot development from prototype to production
Iot development from prototype to productionIot development from prototype to production
Iot development from prototype to production
 
Are app servers still fascinating
Are app servers still fascinatingAre app servers still fascinating
Are app servers still fascinating
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux Heritage
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security Testing
 
DDD with Behat
DDD with BehatDDD with Behat
DDD with Behat
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to Production
 

Mais de Mutual Mobile

CocoaConf Austin 2014 | Demystifying Security Best Practices
CocoaConf Austin 2014 | Demystifying Security Best PracticesCocoaConf Austin 2014 | Demystifying Security Best Practices
CocoaConf Austin 2014 | Demystifying Security Best PracticesMutual Mobile
 
SXSW 2014 | How Mobile Is Changing The Research Universe
SXSW 2014 | How Mobile Is Changing The Research UniverseSXSW 2014 | How Mobile Is Changing The Research Universe
SXSW 2014 | How Mobile Is Changing The Research UniverseMutual Mobile
 
SXSW 2014 | You Can Use Glass For Good Or...
SXSW 2014 | You Can Use Glass For Good Or...SXSW 2014 | You Can Use Glass For Good Or...
SXSW 2014 | You Can Use Glass For Good Or...Mutual Mobile
 
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?Mutual Mobile
 
2014 Predictions: What's in the cards for mobile?
2014 Predictions: What's in the cards for mobile?2014 Predictions: What's in the cards for mobile?
2014 Predictions: What's in the cards for mobile?Mutual Mobile
 
Hacking Wearable Tech
Hacking Wearable TechHacking Wearable Tech
Hacking Wearable TechMutual Mobile
 
Classroom of the Future: Mobile in Education
Classroom of the Future: Mobile in EducationClassroom of the Future: Mobile in Education
Classroom of the Future: Mobile in EducationMutual Mobile
 
Lean Mobile Strategy
Lean Mobile StrategyLean Mobile Strategy
Lean Mobile StrategyMutual Mobile
 
What Brands Need to Know About iOS 7
What Brands Need to Know About iOS 7What Brands Need to Know About iOS 7
What Brands Need to Know About iOS 7Mutual Mobile
 
7 Design Tips for the New Android Experience
7 Design Tips for the New Android Experience7 Design Tips for the New Android Experience
7 Design Tips for the New Android ExperienceMutual Mobile
 
3 Ways Mobile Sales Enablement Solves Sales Problems
3 Ways Mobile Sales Enablement Solves Sales Problems3 Ways Mobile Sales Enablement Solves Sales Problems
3 Ways Mobile Sales Enablement Solves Sales ProblemsMutual Mobile
 
Designing the New Android Experience - The Golden Age of Android
Designing the New Android Experience - The Golden Age of AndroidDesigning the New Android Experience - The Golden Age of Android
Designing the New Android Experience - The Golden Age of AndroidMutual Mobile
 
SXSW Dribbble Meetup Photos
SXSW Dribbble Meetup PhotosSXSW Dribbble Meetup Photos
SXSW Dribbble Meetup PhotosMutual Mobile
 
iPad: Past, Present, and Future
iPad: Past, Present, and FutureiPad: Past, Present, and Future
iPad: Past, Present, and FutureMutual Mobile
 
Selecting a Front-End Mobile Solution
Selecting a Front-End Mobile SolutionSelecting a Front-End Mobile Solution
Selecting a Front-End Mobile SolutionMutual Mobile
 
Honeycomb Design For Developers
Honeycomb Design For DevelopersHoneycomb Design For Developers
Honeycomb Design For DevelopersMutual Mobile
 
Android Design Guidelines 1.1
Android Design Guidelines 1.1Android Design Guidelines 1.1
Android Design Guidelines 1.1Mutual Mobile
 

Mais de Mutual Mobile (20)

CocoaConf Austin 2014 | Demystifying Security Best Practices
CocoaConf Austin 2014 | Demystifying Security Best PracticesCocoaConf Austin 2014 | Demystifying Security Best Practices
CocoaConf Austin 2014 | Demystifying Security Best Practices
 
SXSW 2014 | How Mobile Is Changing The Research Universe
SXSW 2014 | How Mobile Is Changing The Research UniverseSXSW 2014 | How Mobile Is Changing The Research Universe
SXSW 2014 | How Mobile Is Changing The Research Universe
 
SXSW 2014 | You Can Use Glass For Good Or...
SXSW 2014 | You Can Use Glass For Good Or...SXSW 2014 | You Can Use Glass For Good Or...
SXSW 2014 | You Can Use Glass For Good Or...
 
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
SXSW 2014 | Wearable Tech: Game Changer for People with Disabilities?
 
2014 Predictions: What's in the cards for mobile?
2014 Predictions: What's in the cards for mobile?2014 Predictions: What's in the cards for mobile?
2014 Predictions: What's in the cards for mobile?
 
Hacking Wearable Tech
Hacking Wearable TechHacking Wearable Tech
Hacking Wearable Tech
 
Classroom of the Future: Mobile in Education
Classroom of the Future: Mobile in EducationClassroom of the Future: Mobile in Education
Classroom of the Future: Mobile in Education
 
Unboxing iOS 7
Unboxing iOS 7Unboxing iOS 7
Unboxing iOS 7
 
Lean Mobile Strategy
Lean Mobile StrategyLean Mobile Strategy
Lean Mobile Strategy
 
What Brands Need to Know About iOS 7
What Brands Need to Know About iOS 7What Brands Need to Know About iOS 7
What Brands Need to Know About iOS 7
 
7 Design Tips for the New Android Experience
7 Design Tips for the New Android Experience7 Design Tips for the New Android Experience
7 Design Tips for the New Android Experience
 
Let's Talk Android
Let's Talk AndroidLet's Talk Android
Let's Talk Android
 
3 Ways Mobile Sales Enablement Solves Sales Problems
3 Ways Mobile Sales Enablement Solves Sales Problems3 Ways Mobile Sales Enablement Solves Sales Problems
3 Ways Mobile Sales Enablement Solves Sales Problems
 
Designing the New Android Experience - The Golden Age of Android
Designing the New Android Experience - The Golden Age of AndroidDesigning the New Android Experience - The Golden Age of Android
Designing the New Android Experience - The Golden Age of Android
 
Hackathon
HackathonHackathon
Hackathon
 
SXSW Dribbble Meetup Photos
SXSW Dribbble Meetup PhotosSXSW Dribbble Meetup Photos
SXSW Dribbble Meetup Photos
 
iPad: Past, Present, and Future
iPad: Past, Present, and FutureiPad: Past, Present, and Future
iPad: Past, Present, and Future
 
Selecting a Front-End Mobile Solution
Selecting a Front-End Mobile SolutionSelecting a Front-End Mobile Solution
Selecting a Front-End Mobile Solution
 
Honeycomb Design For Developers
Honeycomb Design For DevelopersHoneycomb Design For Developers
Honeycomb Design For Developers
 
Android Design Guidelines 1.1
Android Design Guidelines 1.1Android Design Guidelines 1.1
Android Design Guidelines 1.1
 

Último

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Android Frameworks: Highlighting the Need for a Solid Development Framework 

  • 1. Android Frameworks Highlighting the need for a solid development framework
  • 2. A little about me... ● ● ● ● In the industry since 2002. Started at Mutual Mobile in 2011. Last hair cut 2011. During which I’ve released 7 apps.
  • 3. What is a framework ● Starting from scratch is unsustainable. ● A framework is a common code base that is reusable in multiple contexts ● Basically its just an Android project ready to be copied ● This is possible because most app share common basic tasks
  • 4. Technical benefits ● All libraries are bootstrapped and ready to play ● Prevents reinventing the wheel ● Common build system interface
  • 5. Organizational benefits ● Allows all team members a common ground for communication ● Allows for cross team problem solving ● Allows for easy onboarding ● Unifies non collocated teams ● Measure team member success
  • 6. Components of a Framework
  • 7. Component: REST Consumption Most app currently leverage REST. As such this is one of your most important decisions. ● Existing Libraries ○ ○ ○ ○ ○ HttpUrlConnection ApacheHTTPClient Volley Retrofit okhttp
  • 8. Component: Object Serialization While ReST services are great at returning strings, POJO’s are better. ● Existing Libraries ○ ○ ○ ○ Gson Jackson Simple Protobuf
  • 9. Component: Caching As mobile matures so do the users. Redundant REST requests won’t cut it any more. ● Existing Libraries ○ Volley ○ okhttp ○ DiskLruCache
  • 10. Component: Local Database Invariably the app will need to keep state. Your devs will need a place to keep it. ● Existing Libraries ○ ○ ○ ○ ○ Shared Preferences Sqlite Ormlite GreenDAO DB4O
  • 11. Component: In App Communication Communicating is hard, even more so if you have Asynctasks, Services and, Fragments in the mix. ● Existing Libraries ○ Android intent system ○ Otto ○ Eventbus
  • 12. Component: Automated Testing Well done. Here are the test results: You are a horrible person. I'm serious, that's what it says: "A horrible person." We weren't even testing for that. -- GLaDOS / Portal 2 ● Testing Options and Support Libraries ○ Android Test Projects ○ JUnit ○ Robolectric ○ Mockito ○ Robotium ○ uiautomator
  • 13. Component: Build system & CI Autonomous build creation is a wonderful thing and gives you moment to moment status of your projects. ● Existing Options ○ ANT build process ○ Maven (kinda...) ○ Gradle build process
  • 14. Additional Considerations This is not an exhaustive list keep your eyes open for other things as well. ● ● ● ● Logging Crash reporting Code Metrics Image loading
  • 15. Component: Glue Even with the best libraries selected a successful framework needs to be pulled together.
  • 16. Mutual Mobile’s Framework Praxis: the process by which a theory, lesson, or skill is realized. ● Libraries Used ○ ○ ○ ○ ○ ○ ○ ApacheHTTPClient Gson / Simple DB4O Otto JUnit / Robotium ANT Dagger
  • 17. Care and feeding of your framework ● Frameworks only last so long. ● Some of the libraries listed haven’t had their first birthday yet. ● Keep looking for new ways to improve and adapt.
  • 18. Keeping up with the times ● Some examples from Mutual Mobile’s framework ○ On 2.2 we used a segmented controller but, after ICS we changed to Android’s Actionbar. ○ We used singletons and static members to keep system state, now we use our DI framework to moderate standard POJOs, holding state ○ We used Handlers to communicate AsyncTask results, now we ride the bus.