SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Android Development War
Stories
by Lope Emano
April-June 2014
Seriously though.
The Format
Share and discuss experiences in an app
you’ve built and/or the new things you’ve
learned the past few months.
Things I’ve learned the past few months
New Design-First process is kewl
First two weeks:
❖ Researched existing similar apps
(advantages and disadvantages)
❖ Watched Android Design In Action videos
❖ Sketched designs/layouts using pencil and
paper via printed out stencil kit
New Design-First process is kewl
❖ Demo app to product owner in front of
photoshop for insta changes
❖ Acquaint designer with terms like "actionbar,
navigation bar, status bar, overflow" for easy
communication
❖ Android asset studio
❖ Look around for potential tools
Libraries
Guava
- Light and useful
- Used only MultiMap and StringUtils
- Still have a lot to learn!
No need for ActionBarSherlock
- Android support library can now suffice
Butterknife
❖ Very light weight
❖ @InjectView, @Click, @OnItemClick,
@InjectView within ViewHolder
❖ A Jake Wharton project
Ormlite
❖ ORM for SQLite w/ android support
❖ annotations for field -> property mapping
❖ powerful Dao
❖ learned about extending BaseDao
❖ still figuring out how connections get
closed
FTS/Full Text Search on SQLite
❖ Found out FTS is supported on SQLite
❖ Not supported on ORMLite so used
SQLCursor
❖ Limited to prefix search:
“a” will return [“apple”, “anderson”]
“pple” will return [ ]
EventBus
“Eventbus is one of the most badass things
that has happened to me as an android
developer”
-Lope Emano
When I saw those two slides, I didn’t
really realize what it implied.
Why EventBus is a lifesaver
❖ No need to pass ids between activities via
intent bundles
❖ Passing objects from activities to
fragments is much easier
❖ Said my goodbye to parcelables
❖ Communication from background thread to
main thread is easier
Why EventBus can be dangerous
Prone to memory leaks
EventBus stores a listmap of subscribers of
different types of events. If you forget to
unregistered a registered object then eventbus will
hold that object forever
Very Addictive
EventBus even when you don’t need it and thus
ending up with an app with so many events
Check it out!
http://www.slideshare.net/greenrobot/eventbus-for-android-15314813
My hardest battle
❖ I needed to upload some images to a
server in a background thread.
❖ I needed to move around the app without
the upload getting cancelled.
AsyncTask
❖ Worked well but when I left the activity the
I/O stream for reading the image would
get closed.
Volley
❖ Popular due to I/O presentation
❖ Found a hard time to find the source code
and jar files plus I found something more
mature and well documented
❖ I think google is planning on integrating
this with SDK
❖ Mirrors available
RoboSpice
❖ Launched a service to do long running
background processes
❖ Was relatively easy to set up.
❖ There was a learning curve but it wasn't
that steep.
RoboSpice got me to where I wanted but
then I realized I wanted something more- an
offline mode for the app.
Android Priority JobQueue
Android Priority Jobqueue (Job Manager)
❖ Path project written mostly by yigit
❖ Supported Offline Mode
❖ Supported Network State Listeners
❖ Supported Job Priority
❖ Supported Job Sequencing
❖ Supported Dependency Injection (was
able to integrate it easily with dagger)
Comprehensive sample available!
https://github.com/path/android-priority-
jobqueue/tree/master/examples/twitter
Thanks!

Weitere ähnliche Inhalte

Was ist angesagt?

What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...
katydonovan
 
What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...
katydonovan
 

Was ist angesagt? (20)

An Introduction to ReactNative
An Introduction to ReactNativeAn Introduction to ReactNative
An Introduction to ReactNative
 
PhoneGap in a Day
PhoneGap in a DayPhoneGap in a Day
PhoneGap in a Day
 
Creating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitCreating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing Toolkit
 
React Native
React NativeReact Native
React Native
 
Intro to software dev and Firebase
Intro to software dev and FirebaseIntro to software dev and Firebase
Intro to software dev and Firebase
 
Introduction to Cordova
Introduction to CordovaIntroduction to Cordova
Introduction to Cordova
 
What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
Building desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy wayBuilding desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy way
 
From React to React Native
From React to React NativeFrom React to React Native
From React to React Native
 
Let’s be productive with spring boot
Let’s be productive with spring bootLet’s be productive with spring boot
Let’s be productive with spring boot
 
Show an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIShow an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CI
 
9 reasons why programmers should learn react native
9 reasons why programmers should learn react native9 reasons why programmers should learn react native
9 reasons why programmers should learn react native
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
Developing advanced universal apps using html & js
Developing advanced universal apps using html & jsDeveloping advanced universal apps using html & js
Developing advanced universal apps using html & js
 
React Native
React NativeReact Native
React Native
 
Diy cont integration_dc_cebu
Diy cont integration_dc_cebuDiy cont integration_dc_cebu
Diy cont integration_dc_cebu
 
What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...
 
Blogging for hackers (english)
Blogging for hackers (english)Blogging for hackers (english)
Blogging for hackers (english)
 
React native the good parts - react boston lightning talk
React native   the good parts - react boston lightning talkReact native   the good parts - react boston lightning talk
React native the good parts - react boston lightning talk
 

Ähnlich wie Android development War Stories

Q6 Evaluation Media
Q6 Evaluation MediaQ6 Evaluation Media
Q6 Evaluation Media
gryall97
 
[Mas 500] Mobile Basics
[Mas 500] Mobile Basics[Mas 500] Mobile Basics
[Mas 500] Mobile Basics
rahulbot
 
Question 6: Media technologies
Question 6: Media technologiesQuestion 6: Media technologies
Question 6: Media technologies
aanisahkhan
 
The front end toolkit
The front end toolkitThe front end toolkit
The front end toolkit
samuel-holt
 
Question 4 Evaluation Question
Question 4 Evaluation QuestionQuestion 4 Evaluation Question
Question 4 Evaluation Question
jelliott96
 
Developing Good Documentation
Developing Good DocumentationDeveloping Good Documentation
Developing Good Documentation
Larry Sherrod
 
Evaluation question 4
Evaluation question 4Evaluation question 4
Evaluation question 4
mediapuzzles
 

Ähnlich wie Android development War Stories (20)

Prototyping for mobile
Prototyping for mobilePrototyping for mobile
Prototyping for mobile
 
The FT Web App: Coding Responsively
The FT Web App: Coding ResponsivelyThe FT Web App: Coding Responsively
The FT Web App: Coding Responsively
 
eval 6 feedback
eval 6 feedbackeval 6 feedback
eval 6 feedback
 
App Smashing FULL CUE version
App Smashing FULL CUE versionApp Smashing FULL CUE version
App Smashing FULL CUE version
 
Q6 Evaluation Media
Q6 Evaluation MediaQ6 Evaluation Media
Q6 Evaluation Media
 
E6 improved
E6 improvedE6 improved
E6 improved
 
[Mas 500] Mobile Basics
[Mas 500] Mobile Basics[Mas 500] Mobile Basics
[Mas 500] Mobile Basics
 
Question 6: Media technologies
Question 6: Media technologiesQuestion 6: Media technologies
Question 6: Media technologies
 
Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...
Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...
Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...
 
Question 4
Question 4Question 4
Question 4
 
Keynote- We're going wrong: Choosing the web's future. Peter Paul Koch
Keynote- We're going wrong: Choosing the web's future. Peter Paul KochKeynote- We're going wrong: Choosing the web's future. Peter Paul Koch
Keynote- We're going wrong: Choosing the web's future. Peter Paul Koch
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
 
The front end toolkit
The front end toolkitThe front end toolkit
The front end toolkit
 
Question 4 Evaluation Question
Question 4 Evaluation QuestionQuestion 4 Evaluation Question
Question 4 Evaluation Question
 
JavaScript All The Things
JavaScript All The ThingsJavaScript All The Things
JavaScript All The Things
 
PhoneGap/Cordova
PhoneGap/CordovaPhoneGap/Cordova
PhoneGap/Cordova
 
Developing Good Documentation
Developing Good DocumentationDeveloping Good Documentation
Developing Good Documentation
 
I padagogy
I padagogyI padagogy
I padagogy
 
Evaluation question 4
Evaluation question 4Evaluation question 4
Evaluation question 4
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 

Mehr von Lope Emano (8)

Android development - ListView & Adapter
Android development - ListView & AdapterAndroid development - ListView & Adapter
Android development - ListView & Adapter
 
Android Development - Process & Tools
Android Development - Process & ToolsAndroid Development - Process & Tools
Android Development - Process & Tools
 
Android development - Activities, Views & Intents
Android development - Activities, Views & IntentsAndroid development - Activities, Views & Intents
Android development - Activities, Views & Intents
 
Android development - Network Requests
Android development - Network RequestsAndroid development - Network Requests
Android development - Network Requests
 
Android Architecture
Android ArchitectureAndroid Architecture
Android Architecture
 
Android History & Importance
Android History & ImportanceAndroid History & Importance
Android History & Importance
 
Dependency Injection in Android with Dagger
Dependency Injection in Android with DaggerDependency Injection in Android with Dagger
Dependency Injection in Android with Dagger
 
Android development
Android developmentAndroid development
Android development
 

Kürzlich hochgeladen

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Kürzlich hochgeladen (20)

Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
 

Android development War Stories

  • 1. Android Development War Stories by Lope Emano April-June 2014
  • 2.
  • 3.
  • 5. The Format Share and discuss experiences in an app you’ve built and/or the new things you’ve learned the past few months.
  • 6. Things I’ve learned the past few months
  • 7. New Design-First process is kewl First two weeks: ❖ Researched existing similar apps (advantages and disadvantages) ❖ Watched Android Design In Action videos ❖ Sketched designs/layouts using pencil and paper via printed out stencil kit
  • 8. New Design-First process is kewl ❖ Demo app to product owner in front of photoshop for insta changes ❖ Acquaint designer with terms like "actionbar, navigation bar, status bar, overflow" for easy communication ❖ Android asset studio ❖ Look around for potential tools
  • 10. Guava - Light and useful - Used only MultiMap and StringUtils - Still have a lot to learn!
  • 11. No need for ActionBarSherlock - Android support library can now suffice
  • 12. Butterknife ❖ Very light weight ❖ @InjectView, @Click, @OnItemClick, @InjectView within ViewHolder ❖ A Jake Wharton project
  • 13. Ormlite ❖ ORM for SQLite w/ android support ❖ annotations for field -> property mapping ❖ powerful Dao ❖ learned about extending BaseDao ❖ still figuring out how connections get closed
  • 14. FTS/Full Text Search on SQLite ❖ Found out FTS is supported on SQLite ❖ Not supported on ORMLite so used SQLCursor ❖ Limited to prefix search: “a” will return [“apple”, “anderson”] “pple” will return [ ]
  • 15. EventBus “Eventbus is one of the most badass things that has happened to me as an android developer” -Lope Emano
  • 16.
  • 17.
  • 18. When I saw those two slides, I didn’t really realize what it implied.
  • 19. Why EventBus is a lifesaver ❖ No need to pass ids between activities via intent bundles ❖ Passing objects from activities to fragments is much easier ❖ Said my goodbye to parcelables ❖ Communication from background thread to main thread is easier
  • 20. Why EventBus can be dangerous Prone to memory leaks EventBus stores a listmap of subscribers of different types of events. If you forget to unregistered a registered object then eventbus will hold that object forever Very Addictive EventBus even when you don’t need it and thus ending up with an app with so many events
  • 23. ❖ I needed to upload some images to a server in a background thread. ❖ I needed to move around the app without the upload getting cancelled.
  • 24. AsyncTask ❖ Worked well but when I left the activity the I/O stream for reading the image would get closed.
  • 25. Volley ❖ Popular due to I/O presentation ❖ Found a hard time to find the source code and jar files plus I found something more mature and well documented ❖ I think google is planning on integrating this with SDK ❖ Mirrors available
  • 26. RoboSpice ❖ Launched a service to do long running background processes ❖ Was relatively easy to set up. ❖ There was a learning curve but it wasn't that steep.
  • 27. RoboSpice got me to where I wanted but then I realized I wanted something more- an offline mode for the app.
  • 29. Android Priority Jobqueue (Job Manager) ❖ Path project written mostly by yigit ❖ Supported Offline Mode ❖ Supported Network State Listeners ❖ Supported Job Priority ❖ Supported Job Sequencing ❖ Supported Dependency Injection (was able to integrate it easily with dagger)